diff --git a/AMESCoreStudio.Web/Controllers/PCSController.cs b/AMESCoreStudio.Web/Controllers/PCSController.cs
index ed02b258..973486cb 100644
--- a/AMESCoreStudio.Web/Controllers/PCSController.cs
+++ b/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
});
}
diff --git a/AMESCoreStudio.Web/Views/PCS/PCS021.cshtml b/AMESCoreStudio.Web/Views/PCS/PCS021.cshtml
index 85ca4d4d..befca101 100644
--- a/AMESCoreStudio.Web/Views/PCS/PCS021.cshtml
+++ b/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;
+ }
@@ -128,7 +138,7 @@
event.preventDefault(); return false; }" asp-for="InputNo" id="inputNo" style="width:100px" class="layui-input" autocomplete="off" placeholder="可輸入異常位置" />
-
+
@*@Html.ValidationMessage("error")*@
@@ -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) {
// 新增資料
diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipKpsController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipKpsController.cs
index f727e8c6..24a7ee52 100644
--- a/AMESCoreStudio.WebApi/Controllers/AMES/WipKpsController.cs
+++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipKpsController.cs
@@ -91,7 +91,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
_context.Entry(wipKp).Property("CreateDate").IsModified = false;
_context.Entry(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
{
diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipLabelController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipLabelController.cs
index e3074cbf..49aee80e 100644
--- a/AMESCoreStudio.WebApi/Controllers/AMES/WipLabelController.cs
+++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipLabelController.cs
@@ -152,7 +152,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
_context.Entry(wipLabel).Property("CreateDate").IsModified = false;
_context.Entry(wipLabel).Property("CreateUserID").IsModified = false;
wipLabel.UpdateDate = DateTime.Now;
- wipLabel.UpdateUserID = 0;
}
else
{
diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipLockController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipLockController.cs
index 03890813..d2d9e783 100644
--- a/AMESCoreStudio.WebApi/Controllers/AMES/WipLockController.cs
+++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipLockController.cs
@@ -249,8 +249,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
ResultModel result = new ResultModel();
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 result = new ResultModel();
_context.WipLocks.Attach(wiplock);
wiplock.LockStatus = "1";
- wiplock.UnLockUserID = 0;
wiplock.UnLockDate = DateTime.Now;
// 指定更新某個欄位
_context.Entry(wiplock).Property(p => p.UnLockReason).IsModified = true;
diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipOutfitController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipOutfitController.cs
index 9755b32b..c1f42c92 100644
--- a/AMESCoreStudio.WebApi/Controllers/AMES/WipOutfitController.cs
+++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipOutfitController.cs
@@ -93,7 +93,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
_context.Entry(wipOutfit).Property("CreateDate").IsModified = false;
_context.Entry(wipOutfit).Property("CreateUserID").IsModified = false;
wipOutfit.UpdateDate = DateTime.Now;
- wipOutfit.UpdateUserID = 0;
try
{
diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipSopController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipSopController.cs
index 413d6f72..239bfac7 100644
--- a/AMESCoreStudio.WebApi/Controllers/AMES/WipSopController.cs
+++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipSopController.cs
@@ -130,8 +130,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
_context.Entry(wipSop).Property("CreateDate").IsModified = false;
_context.Entry(wipSop).Property("CreateUserID").IsModified = false;
wipSop.UpdateDate = DateTime.Now;
- wipSop.UpdateUserID = 0;
-
try
{
await _context.SaveChangesAsync();
diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipSystemController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipSystemController.cs
index 8e7dc1a8..acef1c3a 100644
--- a/AMESCoreStudio.WebApi/Controllers/AMES/WipSystemController.cs
+++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipSystemController.cs
@@ -119,7 +119,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
_context.Entry(wipSystem).Property("CreateDate").IsModified = false;
_context.Entry(wipSystem).Property("CreateUserID").IsModified = false;
wipSystem.UpdateDate = DateTime.Now;
- wipSystem.UpdateUserID = 0;
}
else
{
diff --git a/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs b/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs
index e74d58d9..769f33b2 100644
--- a/AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs
+++ b/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區間不符合 ";
}
@@ -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
/// 生產單位
/// 線別
/// 流程
+ /// 作業站ID
///
[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,36 +1458,53 @@ 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;
}
- int WipID = WipNoItem.FirstOrDefault().WipID;
- LineInfoesController lineInfoesController = new LineInfoesController(_context);
- var q2 = await lineInfoesController.GetLineInfoByWipID(WipID);
- if (!q2.Value.Where(w => w.LineID == line).Any())
+ // 判斷是否是投入站
+ var RuleStation = await _context.RuleStations.Where(w => w.FlowRuleID == flowRuleID && w.StationID == station)
+ .FirstOrDefaultAsync();
+ if (RuleStation != null)
{
- resultModel.Msg = "工單號碼【" + wipNo + "】,工單尚未開線,不可過站";
- return resultModel;
+ if (RuleStation.Sequence == 1)
+ {
+ int WipID = WipNoItem.FirstOrDefault().WipID;
+ LineInfoesController lineInfoesController = new LineInfoesController(_context);
+ var q2 = await lineInfoesController.GetLineInfoByWipID(WipID);
+ if (!q2.Value.Where(w => w.LineID == line).Any())
+ {
+ 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;
}
diff --git a/AMESCoreStudio.WebApi/DTO/BLL/BarCodeCheckDto.cs b/AMESCoreStudio.WebApi/DTO/BLL/BarCodeCheckDto.cs
index d05777fb..a71e2252 100644
--- a/AMESCoreStudio.WebApi/DTO/BLL/BarCodeCheckDto.cs
+++ b/AMESCoreStudio.WebApi/DTO/BLL/BarCodeCheckDto.cs
@@ -103,7 +103,7 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
public string extNo { get; set; } = string.Empty;
///
- /// UserID
+ /// 過站UserID
///
[DataMember]
public int userID { get; set; } = 0;
@@ -132,6 +132,12 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
///
[DataMember]
public string oldInputData { get; set; }
+
+ ///
+ /// 組件:組件料號 NG:
+ ///
+ [DataMember]
+ public string kpItemNo { get; set; }
}
///