Browse Source

1. 過站資訊撰寫

PTD
Ray 3 years ago
parent
commit
bdb574249e
  1. 53
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 40
      AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs
  3. 13
      AMESCoreStudio.Web/ViewModels/PCS/PCS021ViewModel.cs
  4. 20
      AMESCoreStudio.Web/Views/PCS/PCS021.cshtml
  5. 14
      AMESCoreStudio.WebApi/Controllers/AMES/MaterialItemController.cs
  6. 8
      AMESCoreStudio.WebApi/Controllers/AMES/MaterialKpController.cs
  7. 138
      AMESCoreStudio.WebApi/Controllers/AMES/MaterialOutfitController.cs
  8. 126
      AMESCoreStudio.WebApi/Controllers/AMES/MaterialStationsItemController.cs
  9. 23
      AMESCoreStudio.WebApi/Models/AMES/MaterialItem.cs
  10. 2
      AMESCoreStudio.WebApi/Models/AMES/MaterialStationsItem.cs

53
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -1547,28 +1547,30 @@ namespace AMESCoreStudio.Web.Controllers
await GetLineInfo(); await GetLineInfo();
model.WipNO = "WO0001A1"; model.WipNO = "WO0001A1";
var q = await _pcsApi.GetWipInfoByWipNO(model.WipNO); var q = await _pcsApi.GetWipInfoByWipNO(model.WipNO);
//if (q.Count() != 0) q = q.Where(w => w.UnitNO == model.UnitNO).ToList();
//{ if (q.Count != 0)
// model.ItemNO = _pcsApi.GetWipAtt(model.WipNO) {
model.PlanQTY = q.FirstOrDefault().PlanQTY;
model.UnitNO = q.FirstOrDefault().UnitNO;
model.LineID = q.FirstOrDefault().LineID;
model.ItemNO = (await _pcsApi.GetWipAtt(model.WipNO)).ItemNO;
// model.WipInfo = q.Where(w => w.UnitNO == model.WipInfo.UnitNO).FirstOrDefault(); // 料號檔案
// model.wipAtt = await _pcsApi.GetWipAtt(model.WipInfo.WipNO); model.MaterialItem = await _pcsApi.GetMaterialItemByItemNO(model.ItemNO);
// model.WipSopLog = await _pcsApi.GetWipSopLog(model.WipInfo.WipID); if (model.MaterialItem != null)
// model.wipSop = await _pcsApi.GetWipSop(model.WipSopLog.WipSopID); {
// model.materialKpDto = await _pcsApi.GetMaterialKpQuery(model.wipAtt.ItemNO, model.WipInfo.UnitNO); model.MaterialKps = await _pcsApi.GetMaterialKpByItemID(model.MaterialItem.ItemID);
//} model.MaterialOutfits = await _pcsApi.GetMaterialOutfitByItemID(model.MaterialItem.ItemID);
//var a = _pcsApi.GetWipInfoByWipNO() model.MaterialStationsItems = await _pcsApi.GetMaterialStationsItemByItemID(model.MaterialItem.ItemID);
//try }
//{
// int num1 = Convert.ToInt32(HttpContext.Request.Form["Text1"].ToString()); var wipsop = await _pcsApi.GetWipSopLog(q.FirstOrDefault().WipID);
// int num2 = Convert.ToInt32(HttpContext.Request.Form["Text2"].ToString()); if (wipsop != null)
// ViewBag.Result = (num1 + num2).ToString(); {
//} model.SopPath = wipsop.GetWipSop.FilePath + wipsop.GetWipSop.NewName;
//catch (Exception) }
//{ }
// ViewBag.Result = "Wrong Input Provided."; return View("PCS021", model);
//}
return View("PCS021",model);
} }
[HttpPost] [HttpPost]
@ -1971,7 +1973,7 @@ namespace AMESCoreStudio.Web.Controllers
return View(); return View();
} }
var tt = result[0]; var tt = result[0];
ViewBag.BarcodeNo = tt.B.BarcodeNo; ViewBag.BarcodeNo = tt.B.BarcodeNo;
ViewBag.ItemName = tt.I.ItemName; ViewBag.ItemName = tt.I.ItemName;
return View(result[0]); return View(result[0]);
} }
@ -2049,7 +2051,7 @@ namespace AMESCoreStudio.Web.Controllers
IResultModel result; IResultModel result;
IResultModel result2; IResultModel result2;
result2 = await _pcsApi.PostBarcodeItemChange(JsonConvert.SerializeObject(barcodeItemChange)); result2 = await _pcsApi.PostBarcodeItemChange(JsonConvert.SerializeObject(barcodeItemChange));
if (result2.Success) if (result2.Success)
{ {
@ -2057,9 +2059,10 @@ namespace AMESCoreStudio.Web.Controllers
return Json(new Result() { success = (result.Success), msg = result.Msg }); return Json(new Result() { success = (result.Success), msg = result.Msg });
} }
else { else
{
return Json(new Result() { success = (result2.Success), msg = result2.Msg }); return Json(new Result() { success = (result2.Success), msg = result2.Msg });
} }
} }

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

@ -194,7 +194,7 @@ namespace AMESCoreStudio.Web
ITask<MACInfo> GetMACInfo(string id); ITask<MACInfo> GetMACInfo(string id);
[WebApiClient.Attributes.HttpPut("api/MACInfoes/MACInfoByClassGroup/{id}/{value}")] [WebApiClient.Attributes.HttpPut("api/MACInfoes/MACInfoByClassGroup/{id}/{value}")]
ITask<ResultModel<MACInfo>> PutMACInfoByClassGroup(string id,string value); ITask<ResultModel<MACInfo>> PutMACInfoByClassGroup(string id, string value);
#endregion #endregion
#region WipLog 工單投產纪錄資料文件 PCS006 #region WipLog 工單投產纪錄資料文件 PCS006
@ -294,7 +294,23 @@ namespace AMESCoreStudio.Web
#endregion #endregion
#region MaterialKp Keypart #region MaterialItem 料號基本資料檔
/// <summary>
/// MaterialItem 料號基本資料檔
/// </summary>
/// <param name="id">料號</param>
[WebApiClient.Attributes.HttpGet("api/MaterialItem/ByItemNO/{id}")]
ITask<MaterialItem> GetMaterialItemByItemNO(string id);
#endregion
#region MaterialKp Keypart 料號KP資訊資料檔
/// <summary>
/// 料號KP資訊資料檔 ByItemID
/// </summary>
/// <param name="id">料號ID</param>
[WebApiClient.Attributes.HttpGet("api/MaterialKp/ByItemID/{id}")]
ITask<List<MaterialKp>> GetMaterialKpByItemID(int id);
/// <summary> /// <summary>
/// Keypart查詢 /// Keypart查詢
/// </summary> /// </summary>
@ -304,6 +320,24 @@ namespace AMESCoreStudio.Web
ITask<List<MaterialKpDto>> GetMaterialKpQuery(string itemno = null, string station = null); ITask<List<MaterialKpDto>> GetMaterialKpQuery(string itemno = null, string station = null);
#endregion #endregion
#region MaterialOutfit 料號治具資訊資料檔
/// <summary>
/// 料號治具資訊資料檔 ByItemID
/// </summary>
/// <param name="id">料號ID</param>
[WebApiClient.Attributes.HttpGet("api/MaterialOutfit/ByItemID/{id}")]
ITask<List<MaterialOutfit>> GetMaterialOutfitByItemID(int id);
#endregion
#region MaterialOutfit 料號站別工項資料檔
/// <summary>
/// 料號站別工項資料檔 By ItemID
/// </summary>
/// <param name="id">料號ID</param>
[WebApiClient.Attributes.HttpGet("api/MaterialStationsItem/ByItemID/{id}")]
ITask<List<MaterialStationsItem>> GetMaterialStationsItemByItemID(int id);
#endregion
#region SOP文件維護 #region SOP文件維護
/// <summary> /// <summary>
/// SOP文件查詢 /// SOP文件查詢
@ -341,7 +375,7 @@ namespace AMESCoreStudio.Web
/// SOP文件變更狀態 /// SOP文件變更狀態
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[WebApiClient.Attributes.HttpPut("api/WipSop/{id}/{state}")] [WebApiClient.Attributes.HttpPut("api/WipSop/{id}/{state}")]
ITask<ResultModel<WipSop>> PutWipSop(int id, string state); ITask<ResultModel<WipSop>> PutWipSop(int id, string state);
#endregion #endregion

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

@ -60,6 +60,19 @@ namespace AMESCoreStudio.Web.ViewModels.PCS
/// </summary> /// </summary>
public MaterialItem MaterialItem { get; set; } public MaterialItem MaterialItem { get; set; }
/// <summary>
/// 料號KP資訊資料檔
/// </summary>
public List<MaterialKp> MaterialKps { get; set; } = new List<MaterialKp>();
/// <summary>
/// 料號治具資訊
/// </summary>
public List<MaterialOutfit> MaterialOutfits { get; set; } = new List<MaterialOutfit>();
/// <summary>
/// 站別工項資料檔
/// </summary>
public List<MaterialStationsItem> MaterialStationsItems { get; set; } = new List<MaterialStationsItem>();
} }
} }

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

@ -1,4 +1,4 @@
@*@model AMESCoreStudio.Web.ViewModels.PCS.PCS021ViewModel @model AMESCoreStudio.Web.ViewModels.PCS.PCS021ViewModel
@{ @{
ViewData["Title"] = "過站作業"; ViewData["Title"] = "過站作業";
Layout = "~/Views/Shared/_AMESLayout.cshtml"; Layout = "~/Views/Shared/_AMESLayout.cshtml";
@ -64,7 +64,7 @@
<div class="layui-inline"> <div class="layui-inline">
<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="unit" lay-filter="unit" lay-verify="required" asp-for="WipInfo.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" /> <input id="unitNo" type="hidden" name="unitNo" value="0" />
@ -89,7 +89,7 @@
<input id="stationsId" type="hidden" name="stationsId" value="0" /> <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="WipInfo.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" />
<input type="submit" id="GetWipData" asp-action="PCS021_GetWip" style="display:none;" /> <input type="submit" id="GetWipData" asp-action="PCS021_GetWip" style="display:none;" />
</div> </div>
</div> </div>
@ -126,8 +126,6 @@
</fieldset> </fieldset>
<div class="layui-col-md12"> <div class="layui-col-md12">
<div class="layui-form-item"> <div class="layui-form-item">
@if (Model.materialKpDto != null)
{
<table id="MydataTable" class="layui-table"> <table id="MydataTable" class="layui-table">
<thead> <thead>
<tr> <tr>
@ -155,11 +153,11 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach (var index in Model.materialKpDto) @foreach (var index in Model.MaterialKps)
{ {
<tr> <tr>
<td> <td>
@index.ItemName @index.ItemID
</td> </td>
<td> <td>
@index.KpName @index.KpName
@ -177,13 +175,12 @@
@index.Length @index.Length
</td> </td>
<td> <td>
@index.Station @index.StationType
</td> </td>
</tr> </tr>
} }
</tbody> </tbody>
</table> </table>
}
</div> </div>
</div> </div>
</div> </div>
@ -192,7 +189,7 @@
</div> </div>
</div> </div>
<div class="layui-col-md8 element" style="height:100%"> <div class="layui-col-md8 element" style="height:100%">
<iframe frameborder="0" style="height:100%;width:100%" src=@if (Model.wipSop != null){ @(Model.wipSop.FilePath)@(Model.wipSop.NewName);}></iframe> <iframe frameborder="0" style="height:100%;width:100%" src=@(Model.SopPath)></iframe>
</div> </div>
</div> </div>
</div> </div>
@ -260,7 +257,6 @@
}; };
function SearchNo(e) { function SearchNo(e) {
alert(e.data);
if (e.keyCode == 13) { if (e.keyCode == 13) {
$("#GetWipData").click(); $("#GetWipData").click();
} }
@ -295,4 +291,4 @@
}); });
</script> </script>
}*@ }

14
AMESCoreStudio.WebApi/Controllers/AMES/MaterialItemController.cs

@ -59,6 +59,20 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return result; return result;
} }
/// <summary>
/// 料號基本資料檔 to ItemNO
/// </summary>
/// <param name="id">料號</param>
/// <returns></returns>
[HttpGet("ByItemNO/{id}")]
public async Task<MaterialItem> GetMaterialItemByItemNO(string id)
{
IQueryable<MaterialItem> q = _context.MaterialItems;
var result = await q.Where(p => p.ItemNo == id).FirstOrDefaultAsync();
return result;
}
/// <summary> /// <summary>
/// 新增料號基本資料檔 /// 新增料號基本資料檔
/// </summary> /// </summary>

8
AMESCoreStudio.WebApi/Controllers/AMES/MaterialKpController.cs

@ -49,13 +49,11 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// </summary> /// </summary>
/// <param name="id">ItemID</param> /// <param name="id">ItemID</param>
/// <returns></returns> /// <returns></returns>
[HttpGet("{id}")] [HttpGet("ByItemID/{id}")]
public async Task<ResultModel<MaterialKp>> GetMaterialKp(int id) public async Task<IEnumerable<MaterialKp>> GetMaterialKpByItemID(int id)
{ {
IQueryable<MaterialKp> q = _context.MaterialKps; IQueryable<MaterialKp> q = _context.MaterialKps;
var result = await q.Where(p => p.ItemID == id).ToListAsync();
ResultModel<MaterialKp> result = new ResultModel<MaterialKp>();
result.Data = await q.Where(p => p.ItemID == id).ToListAsync();
return result; return result;
} }

138
AMESCoreStudio.WebApi/Controllers/AMES/MaterialOutfitController.cs

@ -0,0 +1,138 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using AMESCoreStudio.WebApi.Models.AMES;
using AMESCoreStudio.CommonTools.Result;
using AMESCoreStudio.WebApi.DTO.AMES;
namespace AMESCoreStudio.WebApi.Controllers.AMES
{
/// <summary>
/// 料號治具資訊資料檔
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class MaterialOutfitController : ControllerBase
{
private readonly AMESContext _context;
/// <summary>
/// 建構式
/// </summary>
public MaterialOutfitController(AMESContext context)
{
_context = context;
}
/// <summary>
/// 查詢料號治具資訊資料檔
/// </summary>
// GET: api/MaterialOutfits
[HttpGet]
public async Task<ActionResult<IEnumerable<MaterialOutfit>>> GetMaterialOutfits()
{
return await _context.MaterialOutfits.ToListAsync();
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
// GET: api/MaterialOutfits/5
[HttpGet("{id}")]
public async Task<ActionResult<MaterialOutfit>> GetMaterialOutfit(int id)
{
var materialOutfit = await _context.MaterialOutfits.FindAsync(id);
if (materialOutfit == null)
{
return NotFound();
}
return materialOutfit;
}
/// <summary>
/// 料號基本資料檔 to ItemID
/// </summary>
/// <param name="id">ItemID</param>
/// <returns></returns>
[HttpGet("ByItemID/{id}")]
public async Task<IEnumerable<MaterialOutfit>> GetMaterialOutfitByItemID(int id)
{
IQueryable<MaterialOutfit> q = _context.MaterialOutfits;
var result = await q.Where(p => p.ItemID == id).ToListAsync();
return result;
}
// PUT: api/MaterialOutfits/5
// To protect from overposting attacks, enable the specific properties you want to bind to, for
// more details, see https://go.microsoft.com/fwlink/?linkid=2123754.
[HttpPut("{id}")]
public async Task<IActionResult> PutMaterialOutfit(int id, MaterialOutfit materialOutfit)
{
if (id != materialOutfit.MaterialOutfitID)
{
return BadRequest();
}
_context.Entry(materialOutfit).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!MaterialOutfitExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return NoContent();
}
// POST: api/MaterialOutfits
// To protect from overposting attacks, enable the specific properties you want to bind to, for
// more details, see https://go.microsoft.com/fwlink/?linkid=2123754.
[HttpPost]
public async Task<ActionResult<MaterialOutfit>> PostMaterialOutfit(MaterialOutfit materialOutfit)
{
_context.MaterialOutfits.Add(materialOutfit);
await _context.SaveChangesAsync();
return CreatedAtAction("GetMaterialOutfit", new { id = materialOutfit.MaterialOutfitID }, materialOutfit);
}
// DELETE: api/MaterialOutfits/5
[HttpDelete("{id}")]
public async Task<ActionResult<MaterialOutfit>> DeleteMaterialOutfit(int id)
{
var materialOutfit = await _context.MaterialOutfits.FindAsync(id);
if (materialOutfit == null)
{
return NotFound();
}
_context.MaterialOutfits.Remove(materialOutfit);
await _context.SaveChangesAsync();
return materialOutfit;
}
private bool MaterialOutfitExists(int id)
{
return _context.MaterialOutfits.Any(e => e.MaterialOutfitID == id);
}
}
}

126
AMESCoreStudio.WebApi/Controllers/AMES/MaterialStationsItemController.cs

@ -0,0 +1,126 @@
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;
namespace AMESCoreStudio.WebApi.Controllers.AMES
{
/// <summary>
/// 料號站別工項資料檔
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class MaterialStationsItemController : ControllerBase
{
private readonly AMESContext _context;
public MaterialStationsItemController(AMESContext context)
{
_context = context;
}
// GET: api/MaterialStationsItems
[HttpGet]
public async Task<ActionResult<IEnumerable<MaterialStationsItem>>> GetMaterialStationsItems()
{
return await _context.MaterialStationsItems.ToListAsync();
}
// GET: api/MaterialStationsItems/5
[HttpGet("{id}")]
public async Task<ActionResult<MaterialStationsItem>> GetMaterialStationsItem(int id)
{
var materialStationsItem = await _context.MaterialStationsItems.FindAsync(id);
if (materialStationsItem == null)
{
return NotFound();
}
return materialStationsItem;
}
/// <summary>
/// 料號站別工項資料檔 by ItemID
/// </summary>
/// <param name="id">ItemID</param>
/// <returns></returns>
[HttpGet("ByItemID/{id}")]
public async Task<IEnumerable<MaterialStationsItem>> GetMaterialStationsItemByItemID(int id)
{
IQueryable<MaterialStationsItem> q = _context.MaterialStationsItems;
var result = await q.Where(p => p.ItemID == id).ToListAsync();
return result;
}
// PUT: api/MaterialStationsItems/5
// To protect from overposting attacks, enable the specific properties you want to bind to, for
// more details, see https://go.microsoft.com/fwlink/?linkid=2123754.
[HttpPut("{id}")]
public async Task<IActionResult> PutMaterialStationsItem(int id, MaterialStationsItem materialStationsItem)
{
if (id != materialStationsItem.MsiID)
{
return BadRequest();
}
_context.Entry(materialStationsItem).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!MaterialStationsItemExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return NoContent();
}
// POST: api/MaterialStationsItems
// To protect from overposting attacks, enable the specific properties you want to bind to, for
// more details, see https://go.microsoft.com/fwlink/?linkid=2123754.
[HttpPost]
public async Task<ActionResult<MaterialStationsItem>> PostMaterialStationsItem(MaterialStationsItem materialStationsItem)
{
_context.MaterialStationsItems.Add(materialStationsItem);
await _context.SaveChangesAsync();
return CreatedAtAction("GetMaterialStationsItem", new { id = materialStationsItem.MsiID }, materialStationsItem);
}
// DELETE: api/MaterialStationsItems/5
[HttpDelete("{id}")]
public async Task<ActionResult<MaterialStationsItem>> DeleteMaterialStationsItem(int id)
{
var materialStationsItem = await _context.MaterialStationsItems.FindAsync(id);
if (materialStationsItem == null)
{
return NotFound();
}
_context.MaterialStationsItems.Remove(materialStationsItem);
await _context.SaveChangesAsync();
return materialStationsItem;
}
private bool MaterialStationsItemExists(int id)
{
return _context.MaterialStationsItems.Any(e => e.MsiID == id);
}
}
}

23
AMESCoreStudio.WebApi/Models/AMES/MaterialItem.cs

@ -20,6 +20,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// </summary> /// </summary>
[Key] [Key]
[Column("ITEM_ID")] [Column("ITEM_ID")]
[DataMember]
public int ItemID { get; set; } public int ItemID { get; set; }
/// <summary> /// <summary>
@ -82,19 +83,19 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary> /// <summary>
/// 料號治具資訊資料檔 /// 料號治具資訊資料檔
/// </summary> /// </summary>
public virtual List<MaterialOutfit> MaterialOutfits { get; set; }
/// <summary> //public virtual List<MaterialOutfit> MaterialOutfits { get; set; } = new List<MaterialOutfit>();
/// 料號治具資訊資料檔
/// </summary> ///// <summary>
///// 料號治具資訊資料檔
///// </summary>
public virtual List<MaterialKp> MaterialKps { get; set; } //public virtual List<MaterialKp> MaterialKps { get; set; } = new List<MaterialKp>();
/// <summary> ///// <summary>
/// 料號站別工項資料檔 ///// 料號站別工項資料檔
/// </summary> ///// </summary>
public virtual List<MaterialStationsItem> MaterialStationsItems { get; set; } //public virtual List<MaterialStationsItem> MaterialStationsItems { get; set; } = new List<MaterialStationsItem>();
} }
} }

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

@ -110,7 +110,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("UPDATE_DATE")] [Column("UPDATE_DATE")]
[DataMember] [DataMember]
[Required] [Required]
public DateTime? UpdateDate { get; set; } public DateTime UpdateDate { get; set; }
/// <summary> /// <summary>

Loading…
Cancel
Save