Browse Source

1. 過站判斷

PTD
ray 3 years ago
parent
commit
a5dceddad1
  1. 100
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 1
      AMESCoreStudio.Web/ViewModels/PCS/PCS021ViewModel.cs
  3. 21
      AMESCoreStudio.Web/Views/PCS/PCS021.cshtml
  4. 2
      AMESCoreStudio.WebApi/Controllers/AMES/NgInfoController.cs
  5. 72
      AMESCoreStudio.WebApi/Controllers/BLL/BarCodeCheckController.cs
  6. 2
      AMESCoreStudio.WebApi/Models/AMES/BarcodeWip.cs
  7. 4
      AMESCoreStudio.WebApi/Models/AMES/NgInfo.cs

100
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -1666,10 +1666,10 @@ namespace AMESCoreStudio.Web.Controllers
Msg += "請刷入治具編號\r\n"; Msg += "請刷入治具編號\r\n";
if (string.IsNullOrWhiteSpace(model.Input)) if (string.IsNullOrWhiteSpace(model.Input))
{ {
Msg += "請刷讀條碼\r\n"; Msg += "請刷讀條碼\r\n";
} }
else else
{ {
if (model.Input.ToUpper() != "OK") if (model.Input.ToUpper() != "OK")
@ -1679,30 +1679,78 @@ namespace AMESCoreStudio.Web.Controllers
if (!string.IsNullOrWhiteSpace(Msg)) if (!string.IsNullOrWhiteSpace(Msg))
Success = false; Success = false;
//// 新增or更新 BarCode_Info
//BarcodeInfo barcodeInfo = new BarcodeInfo #region 內部序號輸入後新增 or 更新
//{ string BarStatusNo = _basApi.GetFactoryUnit(model.UnitNO).InvokeAsync().Result.FirstOrDefault().UnitCode;
// BarcodeNo = model.Input, string RuleStationID = "";
// StatusNo = "SMT",
// RuleStationID = model.Station, // 新增or更新 BarCode_Info
// RuleStatus = "P", //F 不良 BarcodeInfo barcodeInfo = new BarcodeInfo
// WipID = model.WipID, {
// StatusID = 1, BarcodeNo = model.Input,
// CreateUserID = 1 StatusNo = BarStatusNo,
//}; RuleStationID = model.Station,
//await _pcsApi.PostBarcodeInfoes(JsonConvert.SerializeObject(barcodeInfo)); RuleStatus = "P", //F 不良
WipID = model.WipID,
//// 新增or更新 BarCodeStation StatusID = 1,
//BarcodeStation barcodeStation = new BarcodeStation CreateUserID = 1
//{ };
// BarcodeID = 1, await _pcsApi.PostBarcodeInfoes(JsonConvert.SerializeObject(barcodeInfo));
// WipID = model.WipID,
// RuleStationID = model.Station, // 新增 BarCodeStation
// RuleStatus = "S", BarcodeStation barcodeStation = new BarcodeStation
// InputDate = DateTime.Now, {
// LineId = (decimal)model.LineID BarcodeID = 1,
//}; WipID = model.WipID,
//await _pcsApi.PostBarcodeStation(JsonConvert.SerializeObject(barcodeStation)); RuleStationID = model.Station,
RuleStatus = "P", //F 不良
InputDate = DateTime.Now,
LineId = (decimal)model.LineID
};
await _pcsApi.PostBarcodeStation(JsonConvert.SerializeObject(barcodeStation));
// 新增 BarCodeItem
List<BarcodeItem> barcodeItems = new List<BarcodeItem>();
foreach (string str in model.Inputs)
{
barcodeItems.Add(new BarcodeItem
{
BarcodeID = 1001,
WipID = model.WipID,
RuleStationID = model.Station,
ItemNo = "01",
PartNo = str,
SysType = "S",
CreateUserID = 0,
CreateDate = DateTime.Now,
UpdateDate = DateTime.Now
}); ;
await _pcsApi.PostBarcodeItem(JsonConvert.SerializeObject(barcodeItems));
}
#endregion
// 新增 BarCodeWip 投入站新增
BarcodeWip barcodeWip = new BarcodeWip
{
BarcodeID = 1001,
WipID = model.WipID
};
// 刪除 BarCodeGroup DIP完工後刪除
// 新增 NgInfo 不良時新增
NgInfo ngInfo = new NgInfo
{
TypeNo = "",
OperatorID = 0,
FixtureNo = string.Join(",", model.MaterialOutfits.Select(s => s.Inputs).ToArray()),
BarcodeId = 1001,
ProgramNo = "N/A",
MachineNo = "N/A",
RuleStationId =1001,
WipId = model.WipID
};
await _pcsApi.PostNgInfo(JsonConvert.SerializeObject(ngInfo));
return Json(new Result() { success = Success, msg = Msg, data = Data }); return Json(new Result() { success = Success, msg = Msg, data = Data });
} }

1
AMESCoreStudio.Web/ViewModels/PCS/PCS021ViewModel.cs

@ -40,6 +40,7 @@ namespace AMESCoreStudio.Web.ViewModels.PCS
/// </summary> /// </summary>
public int Station { get; set; } public int Station { get; set; }
/// <summary> /// <summary>
/// SOP路徑 /// SOP路徑
/// </summary> /// </summary>

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

@ -73,13 +73,11 @@
<select id="unit" lay-filter="unit" lay-verify="required" asp-for="UnitNO" style="width:100px" lay-submit asp-items="@ViewBag.FactoryUnitList"> <select id="unit" lay-filter="unit" lay-verify="required" asp-for="UnitNO" style="width:100px" lay-submit asp-items="@ViewBag.FactoryUnitList">
</select> </select>
</div> </div>
<input id="unitNo" type="hidden" name="unitNo" value="0" />
<label class="layui-form-label">線別:</label> <label class="layui-form-label">線別:</label>
<div class="layui-input-inline" style="width:100px"> <div class="layui-input-inline" style="width:100px">
<select id="line" lay-filter="line" lay-verify="required" asp-for="LineID" lay-submit> <select id="line" lay-filter="line" lay-verify="required" asp-for="LineID" lay-submit>
</select> </select>
</div> </div>
<input id="lineId" type="hidden" name="lineId" value="0" />
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
@ -93,7 +91,7 @@
<select id="stations" lay-filter="stations" lay-verify="required" asp-for="Station" lay-submit> <select id="stations" lay-filter="stations" lay-verify="required" asp-for="Station" lay-submit>
</select> </select>
</div> </div>
<input id="stationsId" type="hidden" name="stationsId" value="0" />
<label class="layui-form-label">工單號碼:</label> <label class="layui-form-label">工單號碼:</label>
<div class="layui-input-inline" style="width:100px"> <div class="layui-input-inline" style="width:100px">
<input type="text" onkeydown="SearchNo(event);" asp-for="WipNO" asp-action="PCS021_GetWip" class="layui-input" autocomplete="off" /> <input type="text" onkeydown="SearchNo(event);" asp-for="WipNO" asp-action="PCS021_GetWip" class="layui-input" autocomplete="off" />
@ -297,11 +295,11 @@
// Jquery 將兩邊DIV設定同高度 // Jquery 將兩邊DIV設定同高度
jQuery(function ($) { jQuery(function ($) {
$('.element').responsiveEqualHeightGrid(); $('.element').responsiveEqualHeightGrid();
getFlowRuleList($("#unit").val()); getUnitLineList($("#unit").val());
getStationsList($("#unit").val()); getRuleStationList($("#unit").val());
}); });
function getFlowRuleList(data) function getUnitLineList(data)
{ {
$.ajax( $.ajax(
{ {
@ -325,7 +323,7 @@
}); });
}; };
function getStationsList(data) function getRuleStationList(data)
{ {
$.ajax( $.ajax(
{ {
@ -390,15 +388,10 @@
form = layui.form; form = layui.form;
form.on('select(unit)', function (data) { form.on('select(unit)', function (data) {
$("#unitNo").val(data.value); getUnitLineList(data.value);
getRuleStationList(data.value);
getFlowRuleList(data.value);
getStationsList(data.value);
}); });
form.on('select(line)', function (data) {
$("#lineId").val(data.value);
});
}); });
// 新增trRow // 新增trRow

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

@ -79,6 +79,8 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
public async Task<ResultModel<NgInfo>> PostNgInfo([FromBody] NgInfo ngInfo) public async Task<ResultModel<NgInfo>> PostNgInfo([FromBody] NgInfo ngInfo)
{ {
ResultModel<NgInfo> result = new ResultModel<NgInfo>(); ResultModel<NgInfo> result = new ResultModel<NgInfo>();
Helper helper = new Helper(_context);
ngInfo.NgID = helper.GetIDKey("NG_ID").Result;
_context.NgInfos.Add(ngInfo); _context.NgInfos.Add(ngInfo);
try try
{ {

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

@ -47,13 +47,12 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
} }
/// <summary> /// <summary>
/// 判斷內部序號 /// 內部序號查詢工單號碼
/// </summary> /// </summary>
/// <param name="barcode"></param> /// <param name="barcode">內部序號</param>
/// <param name="wipno"></param> /// <returns>Success:true or false</returns>
/// <returns></returns>
[HttpGet("BarCodeFromWip")] [HttpGet("BarCodeFromWip")]
public IActionResult CheckBarCodeFromWip(string barcode, string wipno) public IActionResult CheckBarCodeFromWip(string barcode)
{ {
ResultModel<string> resultModel = new ResultModel<string> { Success = false }; ResultModel<string> resultModel = new ResultModel<string> { Success = false };
if (barcode.Length <= 4) if (barcode.Length <= 4)
@ -63,14 +62,57 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
} }
WipInfosController wipInfosController = new WipInfosController(_context); WipInfosController wipInfosController = new WipInfosController(_context);
// 內部序號扣除流水號 查詢
IQueryable<WipBarcode> q = _context.WipBarcodes.Where(w => w.StartNO.Contains(barcode.Substring(0, (barcode.Length - 4)))); IQueryable<WipBarcode> q = _context.WipBarcodes.Where(w => w.StartNO.Contains(barcode.Substring(0, (barcode.Length - 4))));
if (!q.Any()) if (!q.Any())
{ {
resultModel.Msg = "找不到內部序號:" + barcode + " 對應相關工單號碼"; resultModel.Msg = "找不到內部序號:" + barcode + " 對應相關工單號碼";
return Ok(resultModel); return Ok(resultModel);
} }
else
{
try
{
var No = int.Parse(barcode.Substring(barcode.Length - 4, 4));
foreach (var item in q)
{
int StartNo = int.Parse(item.StartNO.Substring(item.StartNO.Length - 4, 4));
int EndNo = int.Parse(item.EndNO.Substring(item.EndNO.Length - 4, 4));
if (StartNo <= No && No <= EndNo)
{
resultModel.Success = true;
resultModel.Msg = q.Select(s => s.WipNO).FirstOrDefault();
return Ok(resultModel);
}
}
resultModel.Msg = "工單號碼:" + q.Select(s => s.WipNO).FirstOrDefault() + " 找不到範圍內的內部序號";
}
catch (Exception ex)
{
resultModel.Msg = ex.Message;
}
}
return Ok(resultModel);
}
/// <summary>
/// 內部序號是否報廢
/// </summary>
/// <param name="barcode">內部序號</param>
/// <returns>Success:true or false</returns>
[HttpGet("BarCodeLock")]
public IActionResult CheckBarCodeLock(string barcode)
{
ResultModel<string> resultModel = new ResultModel<string> { Success = false };
if (barcode.Length <= 4)
{
resultModel.Msg = "內部序號小於4個字數";
return Ok(resultModel);
}
//BarcodeLock barcodeLock = new BarcodeLock(_context);
//IQueryable<WipBarcode> q = _context.WipBarcodes.Where(w => w.StartNO.Contains(barcode.Substring(0, (barcode.Length - 4))));
return Ok(resultModel); return Ok(resultModel);
} }
@ -166,17 +208,17 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return ""; return "";
} }
/// <summary> ///// <summary>
/// 判斷內部序號對應工單號買 ///// 判斷內部序號對應工單號買
/// </summary> ///// </summary>
/// <param name="BarCode">內部序號</param> ///// <param name="BarCode">內部序號</param>
/// <returns></returns> ///// <returns></returns>
private async Task<string> CheckBarCodeFromWip(string BarCode) //private async Task<string> CheckBarCodeFromWip(string BarCode)
{ //{
//if (BarCode.Length <= 4) // //if (BarCode.Length <= 4)
return "NG, 找不到相關工單號碼"; // return "NG, 找不到相關工單號碼";
} //}
} }
} }

2
AMESCoreStudio.WebApi/Models/AMES/BarcodeWip.cs

@ -38,7 +38,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[DataMember] [DataMember]
[Required(ErrorMessage = "{0},不能空白")] [Required(ErrorMessage = "{0},不能空白")]
[Display(Name = "建立者")] [Display(Name = "建立者")]
public decimal CreateUserID { get; set; } = -1; public decimal CreateUserID { get; set; } = 0;
/// <summary> /// <summary>
/// 建立時間 /// 建立時間

4
AMESCoreStudio.WebApi/Models/AMES/NgInfo.cs

@ -70,14 +70,14 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// </summary> /// </summary>
[Column("TEST_QTY", TypeName = "NUMBER")] [Column("TEST_QTY", TypeName = "NUMBER")]
[DataMember] [DataMember]
public decimal TestQty { get; set; } public decimal TestQty { get; set; } = 0;
/// <summary> /// <summary>
/// 不良總點數 /// 不良總點數
/// </summary> /// </summary>
[Column("NG_QTY", TypeName = "NUMBER")] [Column("NG_QTY", TypeName = "NUMBER")]
[DataMember] [DataMember]
public decimal NgQty { get; set; } public decimal NgQty { get; set; } = 0;
/// <summary> /// <summary>
/// 開始測試時間 /// 開始測試時間

Loading…
Cancel
Save