Browse Source

1. 過站判斷更換判斷

PTD
ray 3 years ago
parent
commit
a58789c5cd
  1. 12
      AMESCoreStudio.WebApi/Controllers/AMES/BarcodeStationController.cs
  2. 23
      AMESCoreStudio.WebApi/Controllers/AMES/WipClassController.cs
  3. 20
      AMESCoreStudio.WebApi/Controllers/AMES/WipTimeController.cs
  4. 168
      AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs
  5. 4
      其他專案資料/AMES_AP/AMES_AP/StockControlForm.cs

12
AMESCoreStudio.WebApi/Controllers/AMES/BarcodeStationController.cs

@ -56,8 +56,8 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// <returns></returns> /// <returns></returns>
// GET: api/BarcodeStation/5 // GET: api/BarcodeStation/5
[HttpGet("Key")] [HttpGet("Key")]
public async Task<ActionResult<BarcodeStation>> GetBarcodeStationByKey(decimal barcodeID, decimal wipID public async Task<ActionResult<BarcodeStation>> GetBarcodeStationByKey(int barcodeID, int wipID
, decimal ruleStationID, string ruleStatus) , int ruleStationID, string ruleStatus)
{ {
var barcodeStation = await _context.BarcodeStation var barcodeStation = await _context.BarcodeStation
.Where(w => w.BarcodeID == barcodeID .Where(w => w.BarcodeID == barcodeID
@ -66,10 +66,10 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
&& w.RuleStatus == ruleStatus).FirstOrDefaultAsync(); && w.RuleStatus == ruleStatus).FirstOrDefaultAsync();
if (barcodeStation == null) //if (barcodeStation == null)
{ //{
return NotFound(); // return NotFound();
} //}
return barcodeStation; return barcodeStation;
} }

23
AMESCoreStudio.WebApi/Controllers/AMES/WipClassController.cs

@ -46,6 +46,29 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return wipClass; return wipClass;
} }
[HttpGet("Query")]
public async Task<ActionResult<IEnumerable<WipClass>>> GetWipClassByData(int wipID, int ruleStationID ,string ruleStatus)
{
IQueryable<WipClass> 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;
}
/// <summary> /// <summary>
/// 更新各班別數量資料檔 /// 更新各班別數量資料檔
/// </summary> /// </summary>

20
AMESCoreStudio.WebApi/Controllers/AMES/WipTimeController.cs

@ -46,6 +46,26 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return wipTime; return wipTime;
} }
[HttpGet("Query")]
public async Task<ActionResult<IEnumerable<WipTime>>> GetWipTimeByData(int wipID, int ruleStationID, string ruleStatus)
{
IQueryable<WipTime> 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;
}
/// <summary> /// <summary>
/// 更新工單各站數量資料檔 – By TIME /// 更新工單各站數量資料檔 – By TIME

168
AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs

@ -379,11 +379,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
{ {
} }
if (!Table_BarcodeInfo(barCodeCheckDto).Result.Success)
{
}
} }
/// <summary> /// <summary>
@ -500,17 +495,39 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
private async Task<ResultModel<WipStation>> Table_WipStation(BarCodeCheckDto barCodeCheckDto) private async Task<ResultModel<WipStation>> Table_WipStation(BarCodeCheckDto barCodeCheckDto)
{ {
WipStationController wipStationController = new WipStationController(_context); WipStationController wipStationController = new WipStationController(_context);
var wipStation = new WipStation();
var wipStation = new WipStation var resut = new ResultModel<WipStation>();
// 判斷是否有資料
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, wipStation = new WipStation
RuleStatus = barCodeCheckDto.ruleStatus, {
RuleStationID = barCodeCheckDto.ruleStationID, WipID = barCodeCheckDto.wipID,
FirstCnt = 1, RuleStatus = barCodeCheckDto.ruleStatus,
PassCnt = 1, RuleStationID = barCodeCheckDto.ruleStationID,
}; FirstCnt = 1,
PassCnt = 1
return await wipStationController.PostWipStation(wipStation); };
resut = await wipStationController.PostWipStation(wipStation);
}
return resut;
} }
/// <summary> /// <summary>
@ -519,28 +536,61 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// <returns></returns> /// <returns></returns>
private async Task<ResultModel<WipClass>> Table_WipClass(BarCodeCheckDto barCodeCheckDto) private async Task<ResultModel<WipClass>> Table_WipClass(BarCodeCheckDto barCodeCheckDto)
{ {
WipClassController wipClassController = new WipClassController(_context);
var wipClass = new WipClass();
var resut = new ResultModel<WipClass>();
// 取ClassID // 取ClassID
int ClassID = 0; int ClassID = 0;
ClassInfoesController classInfoesController = new ClassInfoesController(_context); ClassInfoesController classInfoesController = new ClassInfoesController(_context);
var classInfo = await classInfoesController.GetClassInfoByUnit(barCodeCheckDto.unitNo); var classInfo = await classInfoesController.GetClassInfoByUnit(barCodeCheckDto.unitNo);
if (classInfo.Value.Count() != 0) 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); if (ClassID != 0)
var wipClass = new WipClass
{ {
WipID = barCodeCheckDto.wipID, // 判斷是否有資料
ClassID = ClassID, var queryWipClass = await wipClassController.GetWipClassByData(barCodeCheckDto.wipID, barCodeCheckDto.ruleStationID, barCodeCheckDto.ruleStatus);
RuleStatus = barCodeCheckDto.ruleStatus, queryWipClass = queryWipClass.Value.Where(w => w.CreateDate.ToString("yyyy/MM/dd") == DateTime.Now.ToString("yyyy/MM/dd")).ToList();
RuleStationID = barCodeCheckDto.ruleStationID,
FirstCnt = 1,
PassCnt = 1,
};
return await wipClassController.PostWipClass(wipClass); // 有資料加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 resut;
} }
/// <summary> /// <summary>
@ -549,28 +599,62 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// <returns></returns> /// <returns></returns>
private async Task<ResultModel<WipTime>> Table_WipTime(BarCodeCheckDto barCodeCheckDto) private async Task<ResultModel<WipTime>> Table_WipTime(BarCodeCheckDto barCodeCheckDto)
{ {
// SegmentID WipTimeController wipTimeController = new WipTimeController(_context);
var wipTime = new WipTime();
var resut = new ResultModel<WipTime>();
// 取SegmentID
int SegmentID = 0; int SegmentID = 0;
TimeSegmentsController timeSegmentsController = new TimeSegmentsController(_context); TimeSegmentsController timeSegmentsController = new TimeSegmentsController(_context);
var timeSegment = await timeSegmentsController.GetTimeSegment(); var timeSegment = await timeSegmentsController.GetTimeSegment();
if (timeSegment.Value.Count() != 0) 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, var queryWipTime = await wipTimeController.GetWipTimeByData(barCodeCheckDto.wipID, barCodeCheckDto.ruleStationID, barCodeCheckDto.ruleStatus);
RuleStatus = barCodeCheckDto.ruleStatus, queryWipTime = queryWipTime.Value.Where(w => w.CreateDate.ToString("yyyy/MM/dd") == DateTime.Now.ToString("yyyy/MM/dd")).ToList();
RuleStationID = barCodeCheckDto.ruleStationID, // 有資料加1 後續判斷第一次過站
FirstCnt = 1, if (queryWipTime.Value.Where(w => w.SegmentID == SegmentID).Any())
PassCnt = 1, {
}; 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 #endregion
@ -1310,7 +1394,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// <param name="barCodeID">BarCodeID</param> /// <param name="barCodeID">BarCodeID</param>
/// <param name="stationID">目前作業站ID</param> /// <param name="stationID">目前作業站ID</param>
/// <returns>true:false</returns> /// <returns>true:false</returns>
private async Task<IResultModel> GetBarCodeLastStopRuleStationID(int wipID,int barCodeID ,int stationID) private async Task<IResultModel> GetBarCodeLastStopRuleStationID(int wipID, int barCodeID, int stationID)
{ {
ResultModel<string> resultModel = new ResultModel<string> { Success = false }; ResultModel<string> resultModel = new ResultModel<string> { Success = false };
WipInfosController wipInfosController = new WipInfosController(_context); WipInfosController wipInfosController = new WipInfosController(_context);
@ -1336,8 +1420,8 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
&& w.RuleStatus == barcodeInfo.RuleStatus).Count() == 0 && w.RuleStatus == barcodeInfo.RuleStatus).Count() == 0
) )
{ {
resultModel.Msg = "找不到上一個作業站過站紀錄,請確認"; resultModel.Msg = "找不到上一個作業站過站紀錄,請確認";
return resultModel; return resultModel;
} }
} }
resultModel.Success = true; resultModel.Success = true;

4
其他專案資料/AMES_AP/AMES_AP/StockControlForm.cs

@ -180,7 +180,7 @@ namespace AMES_AP
{ {
if (e.KeyCode == Keys.Enter) 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") if (query_barCode == "error" || query_barCode == "無法連線WebAPI")
{ {
MessageBox.Show(query_barCode); MessageBox.Show(query_barCode);
@ -217,7 +217,7 @@ namespace AMES_AP
} }
// 重新抓取BarCodeInfo // 重新抓取BarCodeInfo
query_barCode = ApiHelper.GetMethod($"api/BqarcodeInfoes/No/{BarCodeNo.Text}"); query_barCode = ApiHelper.GetMethod($"api/BarcodeInfoes/No/{BarCodeNo.Text}");
barcodeInfos = JsonConvert.DeserializeObject<List<BarcodeInfo>>(query_barCode).FirstOrDefault(); barcodeInfos = JsonConvert.DeserializeObject<List<BarcodeInfo>>(query_barCode).FirstOrDefault();
barcodeInfos.BoxNo = NowBoxNo.Text; barcodeInfos.BoxNo = NowBoxNo.Text;

Loading…
Cancel
Save