Browse Source

修正過站程式

1. 工單鎖定加入StationID(鎖定站判斷)
2. 工單開線只卡投入站
3. 加入作業站類別Check Key 判斷
4. KeyParts料號資料寫入BarCodeItem
5  過站成功訊息修改
6. 過站掃描框調整顏色
7. 無工項時不顯示訊息
PTD
ray 3 years ago
parent
commit
f612bb5814
  1. 5
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 14
      AMESCoreStudio.Web/Views/PCS/PCS021.cshtml
  3. 2
      AMESCoreStudio.WebApi/Controllers/AMES/WipKpsController.cs
  4. 1
      AMESCoreStudio.WebApi/Controllers/AMES/WipLabelController.cs
  5. 3
      AMESCoreStudio.WebApi/Controllers/AMES/WipLockController.cs
  6. 1
      AMESCoreStudio.WebApi/Controllers/AMES/WipOutfitController.cs
  7. 2
      AMESCoreStudio.WebApi/Controllers/AMES/WipSopController.cs
  8. 1
      AMESCoreStudio.WebApi/Controllers/AMES/WipSystemController.cs
  9. 47
      AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs
  10. 8
      AMESCoreStudio.WebApi/DTO/BLL/BarCodeCheckDto.cs

5
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -3478,7 +3478,7 @@ namespace AMESCoreStudio.Web.Controllers
model.MaterialStationsItems = model.MaterialStationsItems.Where(w => w.RuleStationID == model.RuleStation).OrderBy(o => o.StationsItemSeq).ToList();
if (model.MaterialStationsItems.Count() == 0)
{
ModelState.AddModelError("error", "找不到該站別作業工項");
//ModelState.AddModelError("error", "找不到該站別作業工項");
}
// 治具
@ -3636,7 +3636,8 @@ namespace AMESCoreStudio.Web.Controllers
{
inputType = KeyPartItem.Input.Contains("$") ? "NG" : model.WipKps[i - 1 + KpItemQty].KpNo,
inputData = KeyPartItem.Input,
oldInputData = KeyPartItem.InputNo
oldInputData = KeyPartItem.InputNo,
kpItemNo = KeyPartItem.Input.Contains("$") ? "" : model.WipKps[i - 1 + KpItemQty].KpName
});
}

14
AMESCoreStudio.Web/Views/PCS/PCS021.cshtml

@ -42,6 +42,16 @@
.layui-form-item {
margin-bottom: auto;
}
.barcodeInput {
border: 2px solid #090;
color: blue;
}
.barcodeInput:focus {
border: 3px solid #0026ff;
color: blue;
}
</style>
@ -128,7 +138,7 @@
event.preventDefault(); return false; }" asp-for="InputNo" id="inputNo" style="width:100px" class="layui-input" autocomplete="off" placeholder="可輸入異常位置" />
</div>
<div class="layui-input-inline">
<input type="text" onkeydown="input(event);" id="inputtxt" asp-for="Input" class="layui-input" autocomplete="off" />
<input type="text" onkeydown="input(event);" id="inputtxt" asp-for="Input" class="layui-input barcodeInput" autocomplete="off" />
</div>
</div>
@*<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span>*@
@ -382,7 +392,7 @@
else {
if (result.msg.length != 0)
{ parent.hg.msg(result.msg); }
{ parent.hg.msghide(result.msg); }
if (result.data.length != 0) {
// 新增資料

2
AMESCoreStudio.WebApi/Controllers/AMES/WipKpsController.cs

@ -91,7 +91,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
_context.Entry<WipKp>(wipKp).Property("CreateDate").IsModified = false;
_context.Entry<WipKp>(wipKp).Property("CreateUserID").IsModified = false;
wipKp.UpdateDate = DateTime.Now;
wipKp.UpdateUserID = 0;
try
{
@ -120,7 +119,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
var resultWipKp = GetWipKp(wipKp.WipKpID).Result.Value;
_context.Entry(resultWipKp).State = EntityState.Modified;
resultWipKp.UpdateDate = DateTime.Now;
resultWipKp.UpdateUserID = 0;
try
{

1
AMESCoreStudio.WebApi/Controllers/AMES/WipLabelController.cs

@ -152,7 +152,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
_context.Entry<WipLabel>(wipLabel).Property("CreateDate").IsModified = false;
_context.Entry<WipLabel>(wipLabel).Property("CreateUserID").IsModified = false;
wipLabel.UpdateDate = DateTime.Now;
wipLabel.UpdateUserID = 0;
}
else
{

3
AMESCoreStudio.WebApi/Controllers/AMES/WipLockController.cs

@ -249,8 +249,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
ResultModel<WipLock> result = new ResultModel<WipLock>();
Helper helper = new Helper(_context);
wiplock.WipLockID = helper.GetIDKey("WIP_LOCK_ID").Result;
wiplock.UnLockUserID = 0;
_context.WipLocks.Add(wiplock);
try
{
@ -276,7 +274,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
ResultModel<WipLock> result = new ResultModel<WipLock>();
_context.WipLocks.Attach(wiplock);
wiplock.LockStatus = "1";
wiplock.UnLockUserID = 0;
wiplock.UnLockDate = DateTime.Now;
// 指定更新某個欄位
_context.Entry(wiplock).Property(p => p.UnLockReason).IsModified = true;

1
AMESCoreStudio.WebApi/Controllers/AMES/WipOutfitController.cs

@ -93,7 +93,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
_context.Entry<WipOutfit>(wipOutfit).Property("CreateDate").IsModified = false;
_context.Entry<WipOutfit>(wipOutfit).Property("CreateUserID").IsModified = false;
wipOutfit.UpdateDate = DateTime.Now;
wipOutfit.UpdateUserID = 0;
try
{

2
AMESCoreStudio.WebApi/Controllers/AMES/WipSopController.cs

@ -130,8 +130,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
_context.Entry<WipSop>(wipSop).Property("CreateDate").IsModified = false;
_context.Entry<WipSop>(wipSop).Property("CreateUserID").IsModified = false;
wipSop.UpdateDate = DateTime.Now;
wipSop.UpdateUserID = 0;
try
{
await _context.SaveChangesAsync();

1
AMESCoreStudio.WebApi/Controllers/AMES/WipSystemController.cs

@ -119,7 +119,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
_context.Entry<WipSystem>(wipSystem).Property("CreateDate").IsModified = false;
_context.Entry<WipSystem>(wipSystem).Property("CreateUserID").IsModified = false;
wipSystem.UpdateDate = DateTime.Now;
wipSystem.UpdateUserID = 0;
}
else
{

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

@ -274,8 +274,8 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
// 判斷是否符合區間
if (KPs.inputData.Length == 12)
{
if (!(Convert.ToInt32(wipMAC.Value.StartNO, 16) <= Convert.ToInt32(KPs.inputData.Substring(7, 6), 16)
&& Convert.ToInt32(KPs.inputData.Substring(7, 6), 16) <= Convert.ToInt32(wipMAC.Value.EndNO, 16)))
if (!(Convert.ToInt32(wipMAC.Value.StartNO, 16) <= Convert.ToInt32(KPs.inputData.Substring(6, 6), 16)
&& Convert.ToInt32(KPs.inputData.Substring(6, 6), 16) <= Convert.ToInt32(wipMAC.Value.EndNO, 16)))
{
resultModel.Msg += "組件序號【" + KPs.inputData + "】 與工單設定MAC區間不符合 </br>";
}
@ -329,8 +329,12 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
//var NextStopCloseStation = await CheckNextStopCloseStation(barCodeCheckDto.wipNo, barCodeCheckDto.unitNo, barCodeCheckDto.station);
#region 判斷下一站為完工時.組件是否都有資料
if (CheckNextStopCloseStation(barCodeCheckDto.wipNo, barCodeCheckDto.unitNo, barCodeCheckDto.station).Result.Success)
#region 判斷為CHECK站.組件是否都有資料
// 判斷作業站是否為燒機站
StationsesController stationsesController = new StationsesController(_context);
var station = await stationsesController.GetStations(barCodeCheckDto.station);
if (station.Value.Where(w => w.TypeNo == "C").Any())
//if (CheckNextStopCloseStation(barCodeCheckDto.wipNo, barCodeCheckDto.unitNo, barCodeCheckDto.station).Result.Success)
{
// 過站輸入組件數量
var inputKPQty = barCodeCheckDto.inputItems.Where(w => !w.inputData.Contains("$")).Count();
@ -345,7 +349,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
if (wipKpQty != inputKPQty + BarCodeItemsQty)
{
resultModel.Success = false;
resultModel.Msg = "該作業站為流程最後最後一站,組件資料筆數不符,請確認";
resultModel.Msg = "組件資料筆數不符,請確認";
return resultModel;
}
}
@ -666,7 +670,8 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
SysType = "S",
CreateUserID = barCodeCheckDto.userID,
CreateDate = DateTime.Now,
UpdateDate = DateTime.Now
UpdateDate = DateTime.Now,
KpItemNo = KeyPartsItem[i].kpItemNo
};
result = await barcodeItemsController.PostBarcodeItems(barcodeItem);
if (!result.Success)
@ -773,7 +778,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
if (item != null)
{
item.FinishTime = DateTime.Now;
item.OutUserID = 1;
item.OutUserID = model.userID;
item.UpdateDate = DateTime.Now;
item.UpdateUserID = model.userID;
result = await burnInfoeController.PutBurnInfo(item);
@ -788,7 +793,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
BurnPlanHour = PlanHour,
StartTime = DateTime.Now,
ScheduleFinishTime = DateTime.Now.AddMinutes((double)PlanHour),
InUserID = 0,
InUserID = model.userID,
Status = 0,
CreateUserID = model.userID,
UpdateUserID = model.userID
@ -1085,11 +1090,12 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// <param name="unitno">生產單位</param>
/// <param name="line">線別</param>
/// <param name="flowrule">流程</param>
/// <param name="stationID">作業站ID</param>
/// <returns></returns>
[HttpGet("CheckWipNoSation")]
public IActionResult GetCheckWipNoSation(string wipno, string unitno, int line, int flowrule)
public IActionResult GetCheckWipNoSation(string wipno, string unitno, int line, int flowrule, int stationID)
{
var result = CheckWipNoSationAsync(wipNo: wipno, unitNo: unitno, flowRuleID: flowrule, line: line);
var result = CheckWipNoSationAsync(wipNo: wipno, unitNo: unitno, flowRuleID: flowrule, line: line, station: stationID);
return Ok(result.Result);
}
@ -1452,18 +1458,28 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return resultModel;
}
if (!WipNoItem.Where(w => w.LineID == line).Any())
{
resultModel.Msg = "工單號碼【" + wipNo + "】,尚未設定此線別";
return resultModel;
}
if (WipNoItem.Where(w => w.StatusNO == "E").Any())
{
resultModel.Msg = "工單號碼【" + wipNo + "】,該工單已經投入完工,請切換工單";
return resultModel;
}
// 判斷是否是投入站
var RuleStation = await _context.RuleStations.Where(w => w.FlowRuleID == flowRuleID && w.StationID == station)
.FirstOrDefaultAsync();
if (RuleStation != null)
{
if (RuleStation.Sequence == 1)
{
int WipID = WipNoItem.FirstOrDefault().WipID;
LineInfoesController lineInfoesController = new LineInfoesController(_context);
var q2 = await lineInfoesController.GetLineInfoByWipID(WipID);
@ -1472,16 +1488,23 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
resultModel.Msg = "工單號碼【" + wipNo + "】,工單尚未開線,不可過站";
return resultModel;
}
}
}
// 該筆工單號碼鎖定
WipLockController wipLockController = new WipLockController(_context);
var q3 = await wipLockController.GetWipLockByWipNO(wipNo);
if (q3.Data.Where(w => w.LockStatus == "0" && w.StationID == station).Any())
if (q3.Data.Where(w => w.LockStatus == "0" && w.StationID == 0).Any())
{
resultModel.Msg = "工單號碼【" + wipNo + "】,已被鎖定,不可過站";
return resultModel;
}
// StationID = 0 代表批次鎖定
else if (q3.Data.Where(w => w.LockStatus == "0" && w.StationID == station).Any())
{
resultModel.Msg = "工單號碼【" + wipNo + "】,工單在當前站別被鎖定,不可過站";
return resultModel;
}
resultModel.Success = true;
return resultModel;
}

8
AMESCoreStudio.WebApi/DTO/BLL/BarCodeCheckDto.cs

@ -103,7 +103,7 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
public string extNo { get; set; } = string.Empty;
/// <summary>
/// UserID
/// 過站UserID
/// </summary>
[DataMember]
public int userID { get; set; } = 0;
@ -132,6 +132,12 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
/// </summary>
[DataMember]
public string oldInputData { get; set; }
/// <summary>
/// 組件:組件料號 NG:
/// </summary>
[DataMember]
public string kpItemNo { get; set; }
}
/// <summary>

Loading…
Cancel
Save