Browse Source

1. 修正條碼履歷

PTD
Ray 3 years ago
parent
commit
9668906dad
  1. 18
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 10
      AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs
  3. 46
      AMESCoreStudio.Web/ViewModels/PCS/PCS009RViewModel.cs
  4. 55
      AMESCoreStudio.Web/Views/PCS/PCS009.cshtml
  5. 57
      AMESCoreStudio.Web/Views/PCS/PCS009R.cshtml
  6. 134
      AMESCoreStudio.WebApi/Controllers/AMES/BarcodeOutfitController.cs
  7. 91
      AMESCoreStudio.WebApi/Models/AMES/BarcodeOutfit.cs
  8. 6
      AMESCoreStudio.WebApi/Models/AMESContext.cs

18
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -1941,7 +1941,7 @@ namespace AMESCoreStudio.Web.Controllers
UnitNo = wipinfo.GetFactoryUnit.UnitCode + "[" + wipinfo.GetFactoryUnit.UnitName + "]",
Line = wipinfo.GetLineInfo.LineDesc,
ECN = wipinfo.GetWipAtt.ECN,
ECO = wipinfo.GetWipAtt.EAN,
EAN = wipinfo.GetWipAtt.EAN,
CustomerItemNo = wipinfo.CustomerItemNO,
CreateDate = wipinfo.CreateDate.ToString(),
Remarks = wipinfo.Remarks,
@ -1950,7 +1950,7 @@ namespace AMESCoreStudio.Web.Controllers
}
}
// 條碼紀錄
// 生產歷程
foreach (var barcodestation in result_barcodestation.OrderBy(o => o.CreateDate))
{
result.BarCodeLogs.Add(new BarCodeLog
@ -1963,7 +1963,7 @@ namespace AMESCoreStudio.Web.Controllers
});
}
// 條碼組件
// 組件清單
var barcodeitems = await _pcsApi.GetBarcodeItemByBarCodeID(result_barcodeinfo.BarcodeID);
foreach (var barcodeitem in barcodeitems.OrderBy(o => o.CreateDate))
{
@ -1976,6 +1976,18 @@ namespace AMESCoreStudio.Web.Controllers
});
}
// 治具清單
var barcodeoutfits = await _pcsApi.GetBarcodeOutfitByBarcodeNo(model.BarCodeNo);
foreach (var barcodeoutfit in barcodeoutfits.OrderBy(o => o.CreateDate))
{
result.Outfits.Add(new Outfit
{
Station = barcodeoutfit.GetStation.StationName,
OutfitNo = barcodeoutfit.OutfitNo,
InputDate = barcodeoutfit.CreateDate.ToString()
});
}
// 組件變更
var barcodeitemchanges = await _pcsApi.GetBarcodeItemChangesByBarCodeID(result_barcodeinfo.BarcodeID);
foreach (var barcodeitemchange in barcodeitemchanges.OrderBy(o => o.CreateDate))

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

@ -861,7 +861,15 @@ namespace AMESCoreStudio.Web
#endregion
#region BarcodeOutfit 內部序號對應的治具序號明細
/// <summary>
/// 查詢 By BarcodeNo
/// </summary>
/// <param name="id">生產序號</param>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/BarcodeOutfit/ByBarcodeNo/{id}")]
ITask<List<BarcodeOutfit>> GetBarcodeOutfitByBarcodeNo(string id);
#endregion
}
}

46
AMESCoreStudio.Web/ViewModels/PCS/PCS009RViewModel.cs

@ -17,6 +17,7 @@ namespace AMESCoreStudio.Web.ViewModels.PCS
BarCodeChanges = new List<BarCodeChange>();
BarCodeKPs = new List<BarCodeKP>();
KPChanges = new List<KPChange>();
Outfits = new List<Outfit>();
}
/// <summary>
@ -55,20 +56,25 @@ namespace AMESCoreStudio.Web.ViewModels.PCS
/// <summary>
/// 工單資料
/// 工單歷程
/// </summary>
public List<WinInfo> WinInfos { get; set; }
/// <summary>
/// 條碼紀錄
/// 生產歷程
/// </summary>
public List<BarCodeLog> BarCodeLogs { get; set; }
/// <summary>
/// 條碼組件
/// 組件清單
/// </summary>
public List<BarCodeKP> BarCodeKPs { get; set; }
/// <summary>
/// 治具清單
/// </summary>
public List<Outfit> Outfits { get; set; }
/// <summary>
/// 條碼變更
/// </summary>
@ -111,9 +117,9 @@ namespace AMESCoreStudio.Web.ViewModels.PCS
public string ECN { get; set; }
/// <summary>
/// ECO
/// EAN
/// </summary>
public string ECO { get; set; }
public string EAN { get; set; }
/// <summary>
/// 建置日期
@ -137,7 +143,7 @@ namespace AMESCoreStudio.Web.ViewModels.PCS
}
/// <summary>
/// 條碼紀錄
/// 生產歷程
/// </summary>
public class BarCodeLog
{
@ -173,7 +179,7 @@ namespace AMESCoreStudio.Web.ViewModels.PCS
}
/// <summary>
/// 條碼組件
/// 組件清單
/// </summary>
public class BarCodeKP
{
@ -203,6 +209,32 @@ namespace AMESCoreStudio.Web.ViewModels.PCS
public string InputDate { get; set; }
}
/// <summary>
/// 治具清單
/// </summary>
public class Outfit
{
/// <summary>
/// 編號
/// </summary>
public string No { get; set; }
/// <summary>
/// 站别
/// </summary>
public string Station { get; set; }
/// <summary>
/// 治具代碼
/// </summary>
public string OutfitNo { get; set; }
/// <summary>
/// 過站日期
/// </summary>
public string InputDate { get; set; }
}
/// <summary>
/// 條碼變更
/// </summary>

55
AMESCoreStudio.Web/Views/PCS/PCS009.cshtml

@ -26,8 +26,8 @@
margin: 10px 0;
}
.layui-table th{
text-align:center;
.layui-table th {
text-align: center;
}
</style>
@ -40,53 +40,46 @@
</div>
</div>
<div class="layui-card-body">
<div class="layui-form" style="text-align:center">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">內部條碼:</label>
<div class="layui-input-inline">
<input asp-for="BarCodeNo" class="layui-input">
</div>
<div class="layui-row" style="text-align:center">
<div class="layui-col-md3" style="text-align:center">
<label class="layui-form-label">內部條碼:</label>
<div class="layui-input-inline">
<input asp-for="BarCodeNo" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">組件條碼:</label>
<div class="layui-input-inline">
<input asp-for="PartNo" class="layui-input">
</div>
<div class="layui-col-md3" style="text-align:center">
<label class="layui-form-label">組件條碼:</label>
<div class="layui-input-inline">
<input asp-for="PartNo" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">外部條碼:</label>
<div class="layui-input-inline">
<input asp-for="ExtraBarCodeNo" class="layui-input">
</div>
<div class="layui-col-md3" style="text-align:center">
<label class="layui-form-label">外部條碼:</label>
<div class="layui-input-inline">
<input asp-for="ExtraBarCodeNo" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">包裝箱號:</label>
<div class="layui-input-inline">
<input asp-for="BoxNo" class="layui-input">
</div>
<div class="layui-col-md3" style="text-align:center">
<label class="layui-form-label">包裝箱號:</label>
<div class="layui-input-inline">
<input asp-for="BoxNo" class="layui-input">
</div>
</div>
<div class="layui-form-item">
</div>
<div class="layui-form-item">
<br/>
<div class="layui-col-md12" style="text-align:center">
<div class="layui-inline layui-show-xs-block">
<a class="layui-btn layui-btn-primary layui-border-blue layui-icon layui-icon-sm" lay-submit onclick="result()"><i class="layui-icon layui-icon-sm">&#xe615;</i></a>
<a class="layui-btn layui-btn-normal layui-icon layui-icon-sm" lay-submit onclick="result()"><i class="layui-icon layui-icon-sm">&#xe615;</i></a>
@*<input type="submit" class="layui-btn layui-btn-primary layui-border-blue layui-icon layui-icon-sm" lay-submit onclick="result()"><i class="layui-icon layui-icon-sm">&#xe615;</i></input>*@
</div>
</div>
</div>
</div>
<div class="layui-row" style="text-align:center">
<div class="layui-col-md12" style="text-align:center">
<table class="layui-table" id="query" style="width:60%" lay-filter="query" lay-even lay-size="sm"></table>
</div>
</div>
</form>
</div>

57
AMESCoreStudio.Web/Views/PCS/PCS009R.cshtml

@ -84,7 +84,7 @@
</div>
<div class="layui-row">
<fieldset class="layui-elem-field layui-field-title">
<legend style="color: #e18917">工單資料</legend>
<legend style="color: #e18917">工單歷程</legend>
</fieldset>
<table id="rulestionOld" class="layui-table" lay-skin="nob">
<tbody>
@ -104,10 +104,9 @@
@index.ItemNo
</td>
<td>
94/96/97BOM版本:
BOM版本:
</td>
<td>
</td>
</tr>
<tr>
@ -129,6 +128,12 @@
<td>
@index.ECN
</td>
<td>
EAN:
</td>
<td>
@index.EAN
</td>
</tr>
<tr>
<td>
@ -164,7 +169,7 @@
</div>
<div class="layui-row">
<fieldset class="layui-elem-field layui-field-title">
<legend style="color: #e18917">條碼紀錄</legend>
<legend style="color: #e18917">生產歷程</legend>
</fieldset>
<table class="layui-table" lay-even lay-size="sm">
<thead>
@ -182,7 +187,7 @@
使用者
</th>
<th>
過站名稱
過站時間
</th>
</tr>
</thead>
@ -212,7 +217,7 @@
</div>
<div class="layui-row">
<fieldset class="layui-elem-field layui-field-title">
<legend style="color: #e18917">條碼組件</legend>
<legend style="color: #e18917">組件清單</legend>
</fieldset>
<table class="layui-table" lay-even lay-size="sm">
<thead>
@ -227,7 +232,7 @@
組件料號
</th>
<th>
投產日期
過站時間
</th>
</tr>
</thead>
@ -252,6 +257,42 @@
</tbody>
</table>
</div>
<div class="layui-row">
<fieldset class="layui-elem-field layui-field-title">
<legend style="color: #e18917">治具清單</legend>
</fieldset>
<table class="layui-table" lay-even lay-size="sm">
<thead>
<tr>
<th>
站別名稱
</th>
<th>
設備編號
</th>
<th>
過站時間
</th>
</tr>
</thead>
<tbody>
@foreach (var index in Model.Outfits)
{
<tr>
<td>
@index.Station
</td>
<td>
@index.OutfitNo
</td>
<td>
@index.InputDate
</td>
</tr>
}
</tbody>
</table>
</div>
<div class="layui-row">
<fieldset class="layui-elem-field layui-field-title">
<legend style="color: #e18917">條碼變更</legend>
@ -264,7 +305,7 @@
</div>
<div class="layui-row">
<fieldset class="layui-elem-field layui-field-title">
<legend style="color: #e18917">組件收集</legend>
<legend style="color: #e18917">備料</legend>
</fieldset>
</div>
</div>

134
AMESCoreStudio.WebApi/Controllers/AMES/BarcodeOutfitController.cs

@ -0,0 +1,134 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using AMESCoreStudio.WebApi;
using AMESCoreStudio.WebApi.Models.AMES;
using AMESCoreStudio.CommonTools.Result;
namespace AMESCoreStudio.WebApi.Controllers.AMES
{
/// <summary>
/// 內部序號對應的治具序號明細
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class BarcodeOutfitController : ControllerBase
{
private readonly AMESContext _context;
public BarcodeOutfitController(AMESContext context)
{
_context = context;
}
// GET: api/BarcodeOutfit
[HttpGet]
public async Task<ActionResult<IEnumerable<BarcodeOutfit>>> GetBarcodeOutfits()
{
return await _context.BarcodeOutfits.ToListAsync();
}
// GET: api/BarcodeOutfit/5
[HttpGet("{id}")]
public async Task<ActionResult<BarcodeOutfit>> GetBarcodeOutfit(string id)
{
var barcodeOutfit = await _context.BarcodeOutfits.FindAsync(id);
if (barcodeOutfit == null)
{
return NotFound();
}
return barcodeOutfit;
}
/// <summary>
/// 查詢 By BarcodeNo
/// </summary>
/// <param name="id">條碼料號</param>
/// <returns></returns>
[HttpGet("ByBarcodeNo/{id}")]
public async Task<ActionResult<IEnumerable<BarcodeOutfit>>> GetBarcodeOutfitByBarcodeNo(string id)
{
var barcodeOutfit = await _context.BarcodeOutfits.Where(w => w.BarcodeNo == id).ToListAsync();
return barcodeOutfit;
}
/// <summary>
/// 更新內部序號對應的治具序號明細
/// </summary>
/// <param name="barcodeOutfit"></param>
/// <returns></returns>
[HttpPut]
public async Task<ResultModel<BarcodeOutfit>> PutBarcodeOutfit(BarcodeOutfit barcodeOutfit)
{
ResultModel<BarcodeOutfit> result = new ResultModel<BarcodeOutfit>();
_context.Entry(barcodeOutfit).State = EntityState.Modified;
barcodeOutfit.UpdateDate = DateTime.Now;
barcodeOutfit.UpdateUserID = 0;
try
{
await _context.SaveChangesAsync();
result.Success = true;
result.Msg = "OK";
}
catch (Exception ex)
{
result.Success = false;
result.Msg = ex.InnerException.Message;
}
return result;
}
/// <summary>
/// 新增內部序號對應的治具序號明細
/// </summary>
/// <param name="barcodeOutfit"></param>
/// <returns></returns>
[HttpPost]
public async Task<ResultModel<BarcodeOutfit>> PostBarcodeOutfit(BarcodeOutfit barcodeOutfit)
{
ResultModel<BarcodeOutfit> result = new ResultModel<BarcodeOutfit>();
_context.BarcodeOutfits.Add(barcodeOutfit);
try
{
await _context.SaveChangesAsync();
result.Success = true;
result.Msg = "OK";
}
catch (Exception ex)
{
result.Success = false;
result.Msg = ex.InnerException.Message;
}
return result;
}
// DELETE: api/BarcodeOutfit/5
[HttpDelete("{id}")]
public async Task<ActionResult<BarcodeOutfit>> DeleteBarcodeOutfit(string id)
{
var barcodeOutfit = await _context.BarcodeOutfits.FindAsync(id);
if (barcodeOutfit == null)
{
return NotFound();
}
_context.BarcodeOutfits.Remove(barcodeOutfit);
await _context.SaveChangesAsync();
return barcodeOutfit;
}
private bool BarcodeOutfitExists(string id)
{
return _context.BarcodeOutfits.Any(e => e.BarcodeNo == id);
}
}
}

91
AMESCoreStudio.WebApi/Models/AMES/BarcodeOutfit.cs

@ -0,0 +1,91 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using System.Runtime.Serialization;
#nullable disable
namespace AMESCoreStudio.WebApi.Models.AMES
{
/// <summary>
/// 內部序號對應的治具序號明細
/// </summary>
[Table("BARCODE_OUTFIT", Schema = "JHAMES")]
public partial class BarcodeOutfit
{
/// <summary>
/// 生產序號
/// </summary>
[Key]
[Column("BARCODE_NO")]
[StringLength(20)]
[DataMember]
public string BarcodeNo { get; set; }
/// <summary>
/// 工單號碼
/// </summary>
[Key]
[Column("WIP_NO")]
[StringLength(30)]
[DataMember]
public string WipNo { get; set; }
/// <summary>
/// 設備編號
/// </summary>
[Key]
[Column("OUTFIT_NO")]
[StringLength(12)]
[DataMember]
public string OutfitNo { get; set; }
/// <summary>
/// 站別
/// </summary>
[Column("STATION_ID")]
[DataMember]
public int StationID { get; set; }
/// <summary>
/// 建立UserID
/// </summary>
[Column("CREATE_USERID")]
[Required]
[DataMember]
public int CreateUserID { get; set; } = 0;
/// <summary>
/// 建立日期
/// </summary>
[Required]
[Column("CREATE_DATE")]
[DataMember]
public DateTime CreateDate { get; set; } = DateTime.Now;
/// <summary>
/// 更新UserID
/// </summary>
[Column("UPDATE_USERID")]
[DataMember]
public int UpdateUserID { get; set; } = 0;
/// <summary>
/// 更新日期
/// </summary>
[Column("UPDATE_DATE")]
[DataMember]
public DateTime? UpdateDate { get; set; } = DateTime.Now;
/// <summary>
/// 工作站基本資料
/// </summary>
[ForeignKey("StationID")]
[DataMember]
public virtual BAS.Stations GetStation { get; set; }
}
}

6
AMESCoreStudio.WebApi/Models/AMESContext.cs

@ -43,6 +43,7 @@ namespace AMESCoreStudio.WebApi
modelBuilder.Entity<WipSop>().HasKey(c => new { c.WipID, c.MaterialSopID });
modelBuilder.Entity<BarcodeWip>().HasKey(c => new { c.WipID, c.BarcodeID });
modelBuilder.Entity<BarcodeStation>().HasKey(c => new { c.BarcodeID ,c.WipID, c.RuleStationID ,c.RuleStatus ,c.InputDate });
modelBuilder.Entity<BarcodeOutfit>().HasKey(c => new { c.BarcodeNo, c.WipNo, c.OutfitNo});
modelBuilder.Entity<WipRule>().HasKey(c => new { c.WipNO, c.RuleStationID, c.KeyNo });
modelBuilder.Entity<WipMAC>().HasKey(c => new { c.WipNO, c.StartNO, c.EndNO });
@ -705,6 +706,11 @@ namespace AMESCoreStudio.WebApi
/// </summary>
public DbSet<CalendarTable> CalendarTables { get; set; }
/// <summary>
/// 內部序號對應的治具序號明細
/// </summary>
public virtual DbSet<BarcodeOutfit> BarcodeOutfits { get; set; }
}
}

Loading…
Cancel
Save