diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/BarcodeStationController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/BarcodeStationController.cs
index afafa7b6..d5b8ff05 100644
--- a/AMESCoreStudio.WebApi/Controllers/AMES/BarcodeStationController.cs
+++ b/AMESCoreStudio.WebApi/Controllers/AMES/BarcodeStationController.cs
@@ -56,8 +56,8 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
///
// GET: api/BarcodeStation/5
[HttpGet("Key")]
- public async Task> GetBarcodeStationByKey(decimal barcodeID, decimal wipID
- , decimal ruleStationID, string ruleStatus)
+ public async Task> GetBarcodeStationByKey(int barcodeID, int wipID
+ , int ruleStationID, string ruleStatus)
{
var barcodeStation = await _context.BarcodeStation
.Where(w => w.BarcodeID == barcodeID
@@ -66,10 +66,10 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
&& w.RuleStatus == ruleStatus).FirstOrDefaultAsync();
- if (barcodeStation == null)
- {
- return NotFound();
- }
+ //if (barcodeStation == null)
+ //{
+ // return NotFound();
+ //}
return barcodeStation;
}
diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipClassController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipClassController.cs
index cb942e01..ceba418a 100644
--- a/AMESCoreStudio.WebApi/Controllers/AMES/WipClassController.cs
+++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipClassController.cs
@@ -46,6 +46,29 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return wipClass;
}
+ [HttpGet("Query")]
+ public async Task>> GetWipClassByData(int wipID, int ruleStationID ,string ruleStatus)
+ {
+ IQueryable q = _context.WipClass;
+
+
+ if (wipID != 0)
+ q = q.Where(w => w.WipID == wipID);
+
+
+ if (ruleStationID != 0)
+ q = q.Where(w => w.RuleStationID == ruleStationID);
+
+ if (string.IsNullOrWhiteSpace(ruleStatus))
+ q = q.Where(w => w.RuleStatus == ruleStatus);
+
+
+
+ var result = await q.ToListAsync();
+
+ return result;
+ }
+
///
/// 更新各班別數量資料檔
///
diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipTimeController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipTimeController.cs
index 54319645..5fc62c58 100644
--- a/AMESCoreStudio.WebApi/Controllers/AMES/WipTimeController.cs
+++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipTimeController.cs
@@ -46,6 +46,26 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return wipTime;
}
+ [HttpGet("Query")]
+ public async Task>> GetWipTimeByData(int wipID, int ruleStationID, string ruleStatus)
+ {
+ IQueryable q = _context.WipTimes;
+
+
+ if (wipID != 0)
+ q = q.Where(w => w.WipID == wipID);
+
+
+ if (ruleStationID != 0)
+ q = q.Where(w => w.RuleStationID == ruleStationID);
+
+ if (string.IsNullOrWhiteSpace(ruleStatus))
+ q = q.Where(w => w.RuleStatus == ruleStatus);
+
+ var result = await q.ToListAsync();
+
+ return result;
+ }
///
/// 更新工單各站數量資料檔 – By TIME
diff --git a/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs b/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs
index df148868..1dda28ff 100644
--- a/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs
+++ b/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs
@@ -352,7 +352,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
string Msg = string.Empty;
if (!Table_BarcodeInfo(barCodeCheckDto).Result.Success)
{
-
+
}
if (!Table_BarcodeStation(barCodeCheckDto).Result.Success)
@@ -379,11 +379,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
{
}
-
- if (!Table_BarcodeInfo(barCodeCheckDto).Result.Success)
- {
-
- }
}
///
@@ -500,17 +495,39 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
private async Task> Table_WipStation(BarCodeCheckDto barCodeCheckDto)
{
WipStationController wipStationController = new WipStationController(_context);
-
- var wipStation = new WipStation
+ var wipStation = new WipStation();
+ var resut = new ResultModel();
+ // 判斷是否有資料
+ var queryWipStation = await wipStationController.GetWipStation4QRS009(barCodeCheckDto.wipID, barCodeCheckDto.ruleStationID);
+ wipStation = queryWipStation.Value.Where(w => w.RuleStatus == barCodeCheckDto.ruleStatus
+ && w.CreateDate.ToString("yyyy/MM/dd") == DateTime.Now.ToString("yyyy/MM/dd"))
+ .FirstOrDefault();
+ // 有資料加1 後續判斷第一次過站
+ if (wipStation != null)
+ {
+ BarcodeStationController barcodeStationController = new BarcodeStationController(_context);
+ var barcodeStation = await barcodeStationController.GetBarcodeStationByKey(barCodeCheckDto.barcodeID,
+ barCodeCheckDto.wipID, barCodeCheckDto.ruleStationID, barCodeCheckDto.ruleStatus);
+ if (barcodeStation.Value == null)
+ {
+ wipStation.FirstCnt += 1;
+ }
+ wipStation.PassCnt += 1;
+ resut = await wipStationController.PutWipStation(wipStation);
+ }
+ else
{
- WipID = barCodeCheckDto.wipID,
- RuleStatus = barCodeCheckDto.ruleStatus,
- RuleStationID = barCodeCheckDto.ruleStationID,
- FirstCnt = 1,
- PassCnt = 1,
- };
-
- return await wipStationController.PostWipStation(wipStation);
+ wipStation = new WipStation
+ {
+ WipID = barCodeCheckDto.wipID,
+ RuleStatus = barCodeCheckDto.ruleStatus,
+ RuleStationID = barCodeCheckDto.ruleStationID,
+ FirstCnt = 1,
+ PassCnt = 1
+ };
+ resut = await wipStationController.PostWipStation(wipStation);
+ }
+ return resut;
}
///
@@ -519,28 +536,61 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
///
private async Task> Table_WipClass(BarCodeCheckDto barCodeCheckDto)
{
+ WipClassController wipClassController = new WipClassController(_context);
+ var wipClass = new WipClass();
+ var resut = new ResultModel();
+
// 取ClassID
int ClassID = 0;
ClassInfoesController classInfoesController = new ClassInfoesController(_context);
var classInfo = await classInfoesController.GetClassInfoByUnit(barCodeCheckDto.unitNo);
if (classInfo.Value.Count() != 0)
{
- //ClassID = classInfo.Value.Where(w => w.)
+ var ID = classInfo.Value.Where(w => string.Compare(w.BeginTime, DateTime.Now.ToString("HH:mm:ss")) <= 0
+ && string.Compare(w.EndTime, DateTime.Now.ToString("HH:mm:ss")) >= 0)
+ .FirstOrDefault();
+ if (ID != null)
+ {
+ ClassID = ID.ClassID;
+ }
}
- WipClassController wipClassController = new WipClassController(_context);
-
- var wipClass = new WipClass
+ if (ClassID != 0)
{
- WipID = barCodeCheckDto.wipID,
- ClassID = ClassID,
- RuleStatus = barCodeCheckDto.ruleStatus,
- RuleStationID = barCodeCheckDto.ruleStationID,
- FirstCnt = 1,
- PassCnt = 1,
- };
+ // 判斷是否有資料
+ var queryWipClass = await wipClassController.GetWipClassByData(barCodeCheckDto.wipID, barCodeCheckDto.ruleStationID, barCodeCheckDto.ruleStatus);
+ queryWipClass = queryWipClass.Value.Where(w => w.CreateDate.ToString("yyyy/MM/dd") == DateTime.Now.ToString("yyyy/MM/dd")).ToList();
+
+ // 有資料加1 後續判斷第一次過站
+ if (queryWipClass.Value.Where(w => w.ClassID == ClassID).Any())
+ {
+ wipClass = queryWipClass.Value.FirstOrDefault();
+ BarcodeStationController barcodeStationController = new BarcodeStationController(_context);
+ var barcodeStation = await barcodeStationController.GetBarcodeStationByKey(barCodeCheckDto.barcodeID,
+ barCodeCheckDto.wipID, barCodeCheckDto.ruleStationID, barCodeCheckDto.ruleStatus);
+ if (barcodeStation.Value == null)
+ {
+ wipClass.FirstCnt += 1;
+ }
+ wipClass.PassCnt += 1;
+ resut = await wipClassController.PutWipClass(wipClass);
+ }
+ else
+ {
+ wipClass = new WipClass
+ {
+ WipID = barCodeCheckDto.wipID,
+ RuleStatus = barCodeCheckDto.ruleStatus,
+ RuleStationID = barCodeCheckDto.ruleStationID,
+ ClassID = ClassID,
+ FirstCnt = 1,
+ PassCnt = 1
+ };
+ resut = await wipClassController.PostWipClass(wipClass);
+ }
+ }
- return await wipClassController.PostWipClass(wipClass);
+ return resut;
}
///
@@ -549,28 +599,62 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
///
private async Task> Table_WipTime(BarCodeCheckDto barCodeCheckDto)
{
- // SegmentID
+ WipTimeController wipTimeController = new WipTimeController(_context);
+ var wipTime = new WipTime();
+ var resut = new ResultModel();
+
+ // 取SegmentID
int SegmentID = 0;
TimeSegmentsController timeSegmentsController = new TimeSegmentsController(_context);
var timeSegment = await timeSegmentsController.GetTimeSegment();
if (timeSegment.Value.Count() != 0)
{
- //ClassID = classInfo.Value.Where(w => w.)
+ var ID = timeSegment.Value.Where(w => string.Compare(w.StartTime, DateTime.Now.ToString("HH:mm:ss")) <= 0
+ && string.Compare(w.EndTime, DateTime.Now.ToString("HH:mm:ss")) >= 0)
+ .FirstOrDefault();
+
+ if (ID != null)
+ {
+ SegmentID = ID.SegmentID;
+ }
}
- WipTimeController wipTimeController = new WipTimeController(_context);
- var wipTime = new WipTime
+ if (SegmentID != 0)
{
- WipID = barCodeCheckDto.wipID,
- SegmentID = SegmentID,
- RuleStatus = barCodeCheckDto.ruleStatus,
- RuleStationID = barCodeCheckDto.ruleStationID,
- FirstCnt = 1,
- PassCnt = 1,
- };
+ // 判斷是否有資料
+ var queryWipTime = await wipTimeController.GetWipTimeByData(barCodeCheckDto.wipID, barCodeCheckDto.ruleStationID, barCodeCheckDto.ruleStatus);
+ queryWipTime = queryWipTime.Value.Where(w => w.CreateDate.ToString("yyyy/MM/dd") == DateTime.Now.ToString("yyyy/MM/dd")).ToList();
+ // 有資料加1 後續判斷第一次過站
+ if (queryWipTime.Value.Where(w => w.SegmentID == SegmentID).Any())
+ {
+ wipTime = queryWipTime.Value.FirstOrDefault();
+ BarcodeStationController barcodeStationController = new BarcodeStationController(_context);
+ var barcodeStation = await barcodeStationController.GetBarcodeStationByKey(barCodeCheckDto.barcodeID,
+ barCodeCheckDto.wipID, barCodeCheckDto.ruleStationID, barCodeCheckDto.ruleStatus);
+ if (barcodeStation.Value == null)
+ {
+ wipTime.FirstCnt += 1;
+ }
+ wipTime.PassCnt += 1;
+ resut = await wipTimeController.PutWipTime(wipTime);
+ }
+ else
+ {
+ wipTime = new WipTime
+ {
+ WipID = barCodeCheckDto.wipID,
+ RuleStatus = barCodeCheckDto.ruleStatus,
+ RuleStationID = barCodeCheckDto.ruleStationID,
+ SegmentID = SegmentID,
+ FirstCnt = 1,
+ PassCnt = 1
+ };
+ resut = await wipTimeController.PostWipTime(wipTime);
+ }
+ }
- return await wipTimeController.PostWipTime(wipTime);
+ return resut;
}
#endregion
@@ -1310,7 +1394,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// BarCodeID
/// 目前作業站ID
/// true:false
- private async Task GetBarCodeLastStopRuleStationID(int wipID,int barCodeID ,int stationID)
+ private async Task GetBarCodeLastStopRuleStationID(int wipID, int barCodeID, int stationID)
{
ResultModel resultModel = new ResultModel { Success = false };
WipInfosController wipInfosController = new WipInfosController(_context);
@@ -1332,12 +1416,12 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
BarcodeInfoesController barcodeInfoesController = new BarcodeInfoesController(_context);
var barcodeInfo = barcodeInfoesController.GetBarcodeInfoes(barCodeID).Result.Value.FirstOrDefault();
- if (ruleSations.Where(w => w.RuleStationID == barcodeInfo.RuleStationID
+ if (ruleSations.Where(w => w.RuleStationID == barcodeInfo.RuleStationID
&& w.RuleStatus == barcodeInfo.RuleStatus).Count() == 0
)
{
- resultModel.Msg = "找不到上一個作業站過站紀錄,請確認";
- return resultModel;
+ resultModel.Msg = "找不到上一個作業站過站紀錄,請確認";
+ return resultModel;
}
}
resultModel.Success = true;
diff --git a/其他專案資料/AMES_AP/AMES_AP/StockControlForm.cs b/其他專案資料/AMES_AP/AMES_AP/StockControlForm.cs
index ddb6fc14..409e34da 100644
--- a/其他專案資料/AMES_AP/AMES_AP/StockControlForm.cs
+++ b/其他專案資料/AMES_AP/AMES_AP/StockControlForm.cs
@@ -180,7 +180,7 @@ namespace AMES_AP
{
if (e.KeyCode == Keys.Enter)
{
- var query_barCode = ApiHelper.GetMethod($"api/BqarcodeInfoes/No/{BarCodeNo.Text}");
+ var query_barCode = ApiHelper.GetMethod($"api/BarcodeInfoes/No/{BarCodeNo.Text}");
if (query_barCode == "error" || query_barCode == "無法連線WebAPI")
{
MessageBox.Show(query_barCode);
@@ -217,7 +217,7 @@ namespace AMES_AP
}
// 重新抓取BarCodeInfo
- query_barCode = ApiHelper.GetMethod($"api/BqarcodeInfoes/No/{BarCodeNo.Text}");
+ query_barCode = ApiHelper.GetMethod($"api/BarcodeInfoes/No/{BarCodeNo.Text}");
barcodeInfos = JsonConvert.DeserializeObject>(query_barCode).FirstOrDefault();
barcodeInfos.BoxNo = NowBoxNo.Text;