Browse Source

1. 工單修改取LotNo方式

2. 新增條碼區間判斷
PTD
Ray 3 years ago
parent
commit
6d1883b4ad
  1. 56
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 7
      AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs
  3. 5
      AMESCoreStudio.Web/ViewModels/PCS/PCS004CViewModel.cs
  4. 2
      AMESCoreStudio.Web/Views/PCS/PCS001.cshtml
  5. 24
      AMESCoreStudio.Web/Views/PCS/PCS003.cshtml
  6. 50
      AMESCoreStudio.Web/Views/PCS/PCS004C.cshtml
  7. 2
      AMESCoreStudio.Web/Views/PCS/PCS005.cshtml
  8. 6
      AMESCoreStudio.WebApi/Controllers/AMES/BarcodeInfoesController.cs

56
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -1384,7 +1384,7 @@ namespace AMESCoreStudio.Web.Controllers
/// <param name="wipNo">工單號碼</param> /// <param name="wipNo">工單號碼</param>
/// <returns>RuleStation </returns> /// <returns>RuleStation </returns>
[HttpPost] [HttpPost]
public async Task<JsonResult> GetBarcodeOther(string itemNo, string lotNo, int num ,string wipNo) public async Task<JsonResult> GetBarcodeOther(string itemNo, string lotNo, int num, string wipNo)
{ {
var result = await _pcsApi.GetSerialRuleByQurey(itemNo, lotNo.Trim().ToUpper(), num); var result = await _pcsApi.GetSerialRuleByQurey(itemNo, lotNo.Trim().ToUpper(), num);
string StartNO = ""; string StartNO = "";
@ -2169,7 +2169,7 @@ namespace AMESCoreStudio.Web.Controllers
} }
// 判斷WipKp 順序是否重複 // 判斷WipKp 順序是否重複
if (model.WipKps.GroupBy(g => g.KpSeq).Where(w => w.Count() > 1).Any()) if (model.WipKps.Where(w => w.WipKpID != -1).GroupBy(g => g.KpSeq).Where(w => w.Count() > 1).Any())
{ {
ModelState.AddModelError("error", "KeyParts 順序有重複"); ModelState.AddModelError("error", "KeyParts 順序有重複");
@ -2629,6 +2629,52 @@ namespace AMESCoreStudio.Web.Controllers
{ {
await GetLineInfo(); await GetLineInfo();
await GetFlowRuleList(); await GetFlowRuleList();
// 起訖序號沒填寫 或者 綁定序號沒填寫
if ((string.IsNullOrWhiteSpace(model.WipBarcode.StartNO) || string.IsNullOrWhiteSpace(model.WipBarcode.EndNO))
&& string.IsNullOrWhiteSpace(model.BarcodeNo))
{
ModelState.AddModelError("error", "請確認新增的條碼是否有填寫?");
return View(model);
}
if ((!string.IsNullOrWhiteSpace(model.WipBarcode.StartNO) || !string.IsNullOrWhiteSpace(model.WipBarcode.EndNO))
&& !string.IsNullOrWhiteSpace(model.BarcodeNo))
{
ModelState.AddModelError("error", "請則一選擇要新增條碼的方式?");
return View(model);
}
// 既有序號綁定
if (!string.IsNullOrWhiteSpace(model.BarcodeNo))
{
// 內部序號
if (model.Type == "SN")
{
if (_pcsApi.GetBarcodeInfoesByNo(model.BarcodeNo).InvokeAsync().Result.Count() == 0)
{
ModelState.AddModelError("error", "綁定序號【" + model.BarcodeNo + "】,找不到已綁定的內部序號");
return View(model);
}
}
// 出貨序號
else if (model.Type == "SSN")
{
var resultExtraNo = await _pcsApi.GetBarcodeInfoesByExtraNo(model.BarcodeNo);
if (resultExtraNo.Count() == 0)
{
ModelState.AddModelError("error", "綁定序號【" + model.BarcodeNo + "】,找不到已綁定的出貨序號");
return View(model);
}
else
model.BarcodeNo = resultExtraNo.FirstOrDefault().BarcodeNo;
}
model.WipBarcode.StartNO = model.BarcodeNo;
model.WipBarcode.EndNO = model.BarcodeNo;
}
// 流水碼預設長度 // 流水碼預設長度
int NoLength = 4; int NoLength = 4;
string _msg = string.Empty; string _msg = string.Empty;
@ -4969,7 +5015,7 @@ namespace AMESCoreStudio.Web.Controllers
{ {
var id = GetLogInUserID(); var id = GetLogInUserID();
ViewBag.UserID = id; ViewBag.UserID = id;
var result = await _sysApi.GetUserInfo(id); var result = await _sysApi.GetUserInfo(id);
var name = result[0].UserName; var name = result[0].UserName;
ViewBag.UserName = name; ViewBag.UserName = name;
return View(); return View();
@ -4997,7 +5043,7 @@ namespace AMESCoreStudio.Web.Controllers
result = await _pcsApi.PostSampleSipmentSN(JsonConvert.SerializeObject(model)); result = await _pcsApi.PostSampleSipmentSN(JsonConvert.SerializeObject(model));
if (result.Success) if (result.Success)
{ {
var _msg = "取得序號成功!,序號為["+ result2.Msg + "]"; var _msg = "取得序號成功!,序號為[" + result2.Msg + "]";
return RedirectToAction("Refresh", "Home", new { msg = _msg }); return RedirectToAction("Refresh", "Home", new { msg = _msg });
} }
else else
@ -5048,7 +5094,7 @@ namespace AMESCoreStudio.Web.Controllers
if (string.IsNullOrEmpty(Edate)) if (string.IsNullOrEmpty(Edate))
Edate = "*"; Edate = "*";
var result = await _pcsApi.GetSampleSipmentSNsByQurey( itemNo, wipNo, userName, Sdate, Edate); var result = await _pcsApi.GetSampleSipmentSNsByQurey(itemNo, wipNo, userName, Sdate, Edate);
if (result.Count > 0) if (result.Count > 0)
{ {

7
AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs

@ -299,6 +299,13 @@ namespace AMESCoreStudio.Web
[WebApiClient.Attributes.HttpPut("api/BarcodeInfoes")] [WebApiClient.Attributes.HttpPut("api/BarcodeInfoes")]
ITask<ResultModel<BarcodeInfo>> PutBarcodeInfoes([FromBody, RawJsonContent] string model); ITask<ResultModel<BarcodeInfo>> PutBarcodeInfoes([FromBody, RawJsonContent] string model);
/// <summary>
/// 查詢條碼資料-客戶序號
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/BarcodeInfoes/ByExtraNo/{extraNo}")]
ITask<List<BarcodeInfo>> GetBarcodeInfoesByExtraNo(string extraNo);
#endregion #endregion
#region BarCodeStation 條碼過站資料檔 PCS021 #region BarCodeStation 條碼過站資料檔 PCS021

5
AMESCoreStudio.Web/ViewModels/PCS/PCS004CViewModel.cs

@ -19,5 +19,10 @@ namespace AMESCoreStudio.Web.ViewModels.PCS
public IEnumerable<RuleStation> RuleStation { get; set; } public IEnumerable<RuleStation> RuleStation { get; set; }
// 序號綁定 Type SN:內部序號 SSN:出貨序號
public string Type { get; set; }
// 綁定條碼
public string BarcodeNo { get; set; }
} }
} }

2
AMESCoreStudio.Web/Views/PCS/PCS001.cshtml

@ -30,9 +30,7 @@
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label asp-for="wipInfo.WipNO" class="layui-form-label"></label> <label asp-for="wipInfo.WipNO" class="layui-form-label"></label>
<label asp-for="wipInfo.WipNO" class="layui-form-label">@sharedLocalizer["SYSTEM_ID"]</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="wipInfo.WipNO" class="layui-input" autocomplete="off" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" placeholder="請輸入工單號碼" /> <input asp-for="wipInfo.WipNO" class="layui-input" autocomplete="off" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" placeholder="請輸入工單號碼" />
<span asp-validation-for="wipInfo.WipNO" class="layui-bg-red"></span> <span asp-validation-for="wipInfo.WipNO" class="layui-bg-red"></span>
<input id="btnCreateWipNo" hidden type="submit" value="submit" asp-controller="PCS" asp-action="PCS001CreateWipNo" /> <input id="btnCreateWipNo" hidden type="submit" value="submit" asp-controller="PCS" asp-action="PCS001CreateWipNo" />

24
AMESCoreStudio.Web/Views/PCS/PCS003.cshtml

@ -1170,9 +1170,9 @@
parent.hg.msg("請確認計畫數量"); parent.hg.msg("請確認計畫數量");
return; return;
} }
if (lotNo == '' || !lotNo) { if (lotNo == '' || !lotNo) {
parent.hg.msg("請確認lotNo"); lotNo = getLotNo();
return;
} }
$.ajax({ $.ajax({
@ -1685,6 +1685,26 @@
}); });
return a; return a;
} }
function getLotNo() {
var b = "";
$.ajax(
{
url: "@Url.Action("GetFactoryInfoes", "BAS")",
dataType: 'json',
data: {},
async:false,
type: 'get',
success: function (result) {
$.each(result.data, function (index, item) {
if ($("#wipInfo_Werks").val() == item.factoryID) {
b = item.factoryNo.substr(2, 2);
}
});
},
});
return b;
}
</script> </script>
} }

50
AMESCoreStudio.Web/Views/PCS/PCS004C.cshtml

@ -1,7 +1,7 @@
@model AMESCoreStudio.Web.ViewModels.PCS.PCS004CViewModel @model AMESCoreStudio.Web.ViewModels.PCS.PCS004CViewModel
@{ @{
Layout = "~/Views/Shared/_AMESLayout.cshtml"; } Layout = "~/Views/Shared/_AMESLayout.cshtml"; }
<style> <style>
@ -21,7 +21,7 @@
<div class="layui-inline"> <div class="layui-inline">
<label asp-for="WipInfo.WipNO" class="layui-form-label"></label> <label asp-for="WipInfo.WipNO" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="WipInfo.WipNO" class="layui-input" autocomplete="off" readonly="readonly"/> <input asp-for="WipInfo.WipNO" class="layui-input" autocomplete="off" readonly="readonly" />
<span asp-validation-for="WipInfo.WipNO" class="layui-bg-red"></span> <span asp-validation-for="WipInfo.WipNO" class="layui-bg-red"></span>
</div> </div>
<label asp-for="WipInfo.LineID" class="layui-form-label"></label> <label asp-for="WipInfo.LineID" class="layui-form-label"></label>
@ -35,12 +35,12 @@
<div class="layui-inline"> <div class="layui-inline">
<label asp-for="WipInfo.PlanQTY" class="layui-form-label"></label> <label asp-for="WipInfo.PlanQTY" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="WipInfo.PlanQTY" class="layui-input" autocomplete="off" readonly="readonly"/> <input asp-for="WipInfo.PlanQTY" class="layui-input" autocomplete="off" readonly="readonly" />
</div> </div>
<label class="layui-form-label">完成數量</label> <label class="layui-form-label">完成數量</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="layui-input" autocomplete="off" readonly="readonly"/> <input class="layui-input" autocomplete="off" readonly="readonly" />
</div> </div>
</div> </div>
</div> </div>
@ -53,7 +53,7 @@
</div> </div>
<label asp-for="WipInfo.StatusNO" class="layui-form-label"></label> <label asp-for="WipInfo.StatusNO" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="WipInfo.StatusNO" class="layui-input" readonly="readonly"/> <input asp-for="WipInfo.StatusNO" class="layui-input" readonly="readonly" />
</div> </div>
</div> </div>
</div> </div>
@ -62,11 +62,11 @@
<div class="layui-inline"> <div class="layui-inline">
<label asp-for="WipInfo.OrderNO" class="layui-form-label"></label> <label asp-for="WipInfo.OrderNO" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="WipInfo.OrderNO" class="layui-input" readonly="readonly"/> <input asp-for="WipInfo.OrderNO" class="layui-input" readonly="readonly" />
</div> </div>
<label asp-for="WipInfo.WipSEQ" class="layui-form-label"></label> <label asp-for="WipInfo.WipSEQ" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="WipInfo.WipSEQ" class="layui-input" readonly="readonly"/> <input asp-for="WipInfo.WipSEQ" class="layui-input" readonly="readonly" />
</div> </div>
</div> </div>
</div> </div>
@ -76,11 +76,11 @@
<div class="layui-inline"> <div class="layui-inline">
<label asp-for="WipInfo.CNO" class="layui-form-label"></label> <label asp-for="WipInfo.CNO" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="WipInfo.CNO" class="layui-input" readonly="readonly"/> <input asp-for="WipInfo.CNO" class="layui-input" readonly="readonly" />
</div> </div>
<label asp-for="WipInfo.BoxCNT" class="layui-form-label"></label> <label asp-for="WipInfo.BoxCNT" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="WipInfo.BoxCNT" class="layui-input" readonly="readonly"/> <input asp-for="WipInfo.BoxCNT" class="layui-input" readonly="readonly" />
</div> </div>
</div> </div>
</div> </div>
@ -89,11 +89,11 @@
<div class="layui-inline"> <div class="layui-inline">
<label asp-for="WipAtt.ItemNO" class="layui-form-label"></label> <label asp-for="WipAtt.ItemNO" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="WipAtt.ItemNO" class="layui-input" readonly="readonly"/> <input asp-for="WipAtt.ItemNO" class="layui-input" readonly="readonly" />
</div> </div>
<label asp-for="WipAtt.ModelNO" class="layui-form-label"></label> <label asp-for="WipAtt.ModelNO" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="WipAtt.ModelNO" class="layui-input" readonly="readonly"/> <input asp-for="WipAtt.ModelNO" class="layui-input" readonly="readonly" />
</div> </div>
</div> </div>
</div> </div>
@ -103,12 +103,10 @@
<div class="layui-inline"> <div class="layui-inline">
<label asp-for="WipAtt.ECN" class="layui-form-label"></label> <label asp-for="WipAtt.ECN" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="WipAtt.ECN" class="layui-input" readonly="readonly"/> <input asp-for="WipAtt.ECN" class="layui-input" readonly="readonly" />
</div> </div>
</div> </div>
</div> </div>
</fieldset> </fieldset>
<fieldset class="layui-elem-field layui-field-title"> <fieldset class="layui-elem-field layui-field-title">
@ -134,11 +132,11 @@
{ {
<tr> <tr>
<td> <td>
<input type="text" asp-for="@index.StartNO" name="WipBarcodes[@i].StartNO" style="width:100px" readonly="readonly"/> <input type="text" class="layui-input" asp-for="@index.StartNO" name="WipBarcodes[@i].StartNO" readonly="readonly" />
</td> </td>
<td> <td>
<input type="text" asp-for="@index.EndNO" name="WipBarcodes[@i].EndNO" style="width:100px" readonly="readonly"/> <input type="text" class="layui-input" asp-for="@index.EndNO" name="WipBarcodes[@i].EndNO" readonly="readonly" />
</td> </td>
<td> <td>
@ -158,15 +156,26 @@
<label asp-for="WipBarcode.StartNO" class="layui-form-label"></label> <label asp-for="WipBarcode.StartNO" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="WipBarcode.StartNO" class="layui-input" /> <input asp-for="WipBarcode.StartNO" class="layui-input" />
<span asp-validation-for="WipBarcode.StartNO" class="layui-bg-red"></span> @*<span asp-validation-for="WipBarcode.StartNO" class="layui-bg-red"></span>*@
</div> </div>
<label asp-for="WipBarcode.EndNO" class="layui-form-label"></label> <label asp-for="WipBarcode.EndNO" class="layui-form-label"></label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input asp-for="WipBarcode.EndNO" class="layui-input" /> <input asp-for="WipBarcode.EndNO" class="layui-input" />
<span asp-validation-for="WipBarcode.EndNO" class="layui-bg-red"></span> @*<span asp-validation-for="WipBarcode.EndNO" class="layui-bg-red"></span>*@
</div> </div>
</div> </div>
</div> </div>
<div class="layui-form-item">
<label class="layui-form-label">既有序號綁定</label>
<div class="layui-input-inline" style="width:220px">
<input type="radio" name="Type" value="SN" title="內部序號" checked>
<input type="radio" name="Type" value="SSN" title="出貨序號">
</div>
<div class="layui-input-inline">
<input asp-for="BarcodeNo" class="layui-input" />
</div>
</div>
</fieldset> </fieldset>
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> <span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span>
@ -179,9 +188,6 @@
</div> </div>
@section Scripts { @section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial");
await Html.RenderPartialAsync("_FileinputScriptsPartial"); }
<script type="text/javascript"> <script type="text/javascript">
layui.use(['form'], function () { layui.use(['form'], function () {
var form = layui.form; var form = layui.form;

2
AMESCoreStudio.Web/Views/PCS/PCS005.cshtml

@ -46,7 +46,7 @@
<div class="layui-input-inline" style="width:150px"> <div class="layui-input-inline" style="width:150px">
<select id="unitNo" lay-filter="unitNo" name="unitNo" lay-submit asp-items="@ViewBag.FactoryUnitList"> <select id="unitNo" lay-filter="unitNo" name="unitNo" lay-submit asp-items="@ViewBag.FactoryUnitList">
</select> </select>
<input id="unitNo" type="hidden" name="unitNo" value="@ViewBag.UnitNo" /> <input id="unitNo" type="hidden" name="unitNo1" value="@ViewBag.UnitNo" />
</div> </div>
</div> </div>
</div> </div>

6
AMESCoreStudio.WebApi/Controllers/AMES/BarcodeInfoesController.cs

@ -176,12 +176,6 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
IQueryable<BarcodeInfo> q = _context.BarcodeInfoes; IQueryable<BarcodeInfo> q = _context.BarcodeInfoes;
q = q.Where(p => p.ExtraBarcodeNo == extraNo); q = q.Where(p => p.ExtraBarcodeNo == extraNo);
var barcodeInfo = await q.ToListAsync(); var barcodeInfo = await q.ToListAsync();
if (barcodeInfo == null)
{
return NotFound();
}
return barcodeInfo; return barcodeInfo;
} }

Loading…
Cancel
Save