From bdb574249e046aae25d723fc911b77e143c5242a Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 16 Dec 2021 19:04:44 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E9=81=8E=E7=AB=99=E8=B3=87=E8=A8=8A?= =?UTF-8?q?=E6=92=B0=E5=AF=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/PCSController.cs | 53 +++---- AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs | 40 ++++- .../ViewModels/PCS/PCS021ViewModel.cs | 13 ++ AMESCoreStudio.Web/Views/PCS/PCS021.cshtml | 20 +-- .../AMES/MaterialItemController.cs | 14 ++ .../Controllers/AMES/MaterialKpController.cs | 8 +- .../AMES/MaterialOutfitController.cs | 138 ++++++++++++++++++ .../AMES/MaterialStationsItemController.cs | 126 ++++++++++++++++ .../Models/AMES/MaterialItem.cs | 23 +-- .../Models/AMES/MaterialStationsItem.cs | 2 +- 10 files changed, 380 insertions(+), 57 deletions(-) create mode 100644 AMESCoreStudio.WebApi/Controllers/AMES/MaterialOutfitController.cs create mode 100644 AMESCoreStudio.WebApi/Controllers/AMES/MaterialStationsItemController.cs diff --git a/AMESCoreStudio.Web/Controllers/PCSController.cs b/AMESCoreStudio.Web/Controllers/PCSController.cs index 0f7c2f08..eb16df6b 100644 --- a/AMESCoreStudio.Web/Controllers/PCSController.cs +++ b/AMESCoreStudio.Web/Controllers/PCSController.cs @@ -1547,28 +1547,30 @@ namespace AMESCoreStudio.Web.Controllers await GetLineInfo(); model.WipNO = "WO0001A1"; var q = await _pcsApi.GetWipInfoByWipNO(model.WipNO); - //if (q.Count() != 0) - //{ - // model.ItemNO = _pcsApi.GetWipAtt(model.WipNO) + q = q.Where(w => w.UnitNO == model.UnitNO).ToList(); + if (q.Count != 0) + { + 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.WipSopLog = await _pcsApi.GetWipSopLog(model.WipInfo.WipID); - // model.wipSop = await _pcsApi.GetWipSop(model.WipSopLog.WipSopID); - // model.materialKpDto = await _pcsApi.GetMaterialKpQuery(model.wipAtt.ItemNO, model.WipInfo.UnitNO); - //} - //var a = _pcsApi.GetWipInfoByWipNO() - //try - //{ - // int num1 = Convert.ToInt32(HttpContext.Request.Form["Text1"].ToString()); - // int num2 = Convert.ToInt32(HttpContext.Request.Form["Text2"].ToString()); - // ViewBag.Result = (num1 + num2).ToString(); - //} - //catch (Exception) - //{ - // ViewBag.Result = "Wrong Input Provided."; - //} - return View("PCS021",model); + // 料號檔案 + model.MaterialItem = await _pcsApi.GetMaterialItemByItemNO(model.ItemNO); + if (model.MaterialItem != null) + { + model.MaterialKps = await _pcsApi.GetMaterialKpByItemID(model.MaterialItem.ItemID); + model.MaterialOutfits = await _pcsApi.GetMaterialOutfitByItemID(model.MaterialItem.ItemID); + model.MaterialStationsItems = await _pcsApi.GetMaterialStationsItemByItemID(model.MaterialItem.ItemID); + } + + var wipsop = await _pcsApi.GetWipSopLog(q.FirstOrDefault().WipID); + if (wipsop != null) + { + model.SopPath = wipsop.GetWipSop.FilePath + wipsop.GetWipSop.NewName; + } + } + return View("PCS021", model); } [HttpPost] @@ -1971,7 +1973,7 @@ namespace AMESCoreStudio.Web.Controllers return View(); } var tt = result[0]; - ViewBag.BarcodeNo = tt.B.BarcodeNo; + ViewBag.BarcodeNo = tt.B.BarcodeNo; ViewBag.ItemName = tt.I.ItemName; return View(result[0]); } @@ -2049,7 +2051,7 @@ namespace AMESCoreStudio.Web.Controllers IResultModel result; IResultModel result2; - result2 = await _pcsApi.PostBarcodeItemChange(JsonConvert.SerializeObject(barcodeItemChange)); + result2 = await _pcsApi.PostBarcodeItemChange(JsonConvert.SerializeObject(barcodeItemChange)); if (result2.Success) { @@ -2057,9 +2059,10 @@ namespace AMESCoreStudio.Web.Controllers return Json(new Result() { success = (result.Success), msg = result.Msg }); } - else { + else + { return Json(new Result() { success = (result2.Success), msg = result2.Msg }); - + } } diff --git a/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs b/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs index afddd20f..654673b9 100644 --- a/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs +++ b/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs @@ -194,7 +194,7 @@ namespace AMESCoreStudio.Web ITask GetMACInfo(string id); [WebApiClient.Attributes.HttpPut("api/MACInfoes/MACInfoByClassGroup/{id}/{value}")] - ITask> PutMACInfoByClassGroup(string id,string value); + ITask> PutMACInfoByClassGroup(string id, string value); #endregion #region WipLog 工單投產纪錄資料文件 PCS006 @@ -294,7 +294,23 @@ namespace AMESCoreStudio.Web #endregion - #region MaterialKp Keypart + #region MaterialItem 料號基本資料檔 + /// + /// MaterialItem 料號基本資料檔 + /// + /// 料號 + [WebApiClient.Attributes.HttpGet("api/MaterialItem/ByItemNO/{id}")] + ITask GetMaterialItemByItemNO(string id); + #endregion + + #region MaterialKp Keypart 料號KP資訊資料檔 + /// + /// 料號KP資訊資料檔 ByItemID + /// + /// 料號ID + [WebApiClient.Attributes.HttpGet("api/MaterialKp/ByItemID/{id}")] + ITask> GetMaterialKpByItemID(int id); + /// /// Keypart查詢 /// @@ -304,6 +320,24 @@ namespace AMESCoreStudio.Web ITask> GetMaterialKpQuery(string itemno = null, string station = null); #endregion + #region MaterialOutfit 料號治具資訊資料檔 + /// + /// 料號治具資訊資料檔 ByItemID + /// + /// 料號ID + [WebApiClient.Attributes.HttpGet("api/MaterialOutfit/ByItemID/{id}")] + ITask> GetMaterialOutfitByItemID(int id); + #endregion + + #region MaterialOutfit 料號站別工項資料檔 + /// + /// 料號站別工項資料檔 By ItemID + /// + /// 料號ID + [WebApiClient.Attributes.HttpGet("api/MaterialStationsItem/ByItemID/{id}")] + ITask> GetMaterialStationsItemByItemID(int id); + #endregion + #region SOP文件維護 /// /// SOP文件查詢 @@ -341,7 +375,7 @@ namespace AMESCoreStudio.Web /// SOP文件變更狀態 /// /// - + [WebApiClient.Attributes.HttpPut("api/WipSop/{id}/{state}")] ITask> PutWipSop(int id, string state); #endregion diff --git a/AMESCoreStudio.Web/ViewModels/PCS/PCS021ViewModel.cs b/AMESCoreStudio.Web/ViewModels/PCS/PCS021ViewModel.cs index c861d850..a64d5ad9 100644 --- a/AMESCoreStudio.Web/ViewModels/PCS/PCS021ViewModel.cs +++ b/AMESCoreStudio.Web/ViewModels/PCS/PCS021ViewModel.cs @@ -60,6 +60,19 @@ namespace AMESCoreStudio.Web.ViewModels.PCS /// public MaterialItem MaterialItem { get; set; } + /// + /// 料號KP資訊資料檔 + /// + public List MaterialKps { get; set; } = new List(); + /// + /// 料號治具資訊 + /// + public List MaterialOutfits { get; set; } = new List(); + + /// + /// 站別工項資料檔 + /// + public List MaterialStationsItems { get; set; } = new List(); } } diff --git a/AMESCoreStudio.Web/Views/PCS/PCS021.cshtml b/AMESCoreStudio.Web/Views/PCS/PCS021.cshtml index 53b360e4..b24e73a4 100644 --- a/AMESCoreStudio.Web/Views/PCS/PCS021.cshtml +++ b/AMESCoreStudio.Web/Views/PCS/PCS021.cshtml @@ -1,4 +1,4 @@ -@*@model AMESCoreStudio.Web.ViewModels.PCS.PCS021ViewModel +@model AMESCoreStudio.Web.ViewModels.PCS.PCS021ViewModel @{ ViewData["Title"] = "過站作業"; Layout = "~/Views/Shared/_AMESLayout.cshtml"; @@ -64,7 +64,7 @@
-
@@ -89,7 +89,7 @@
- +
@@ -126,8 +126,6 @@
- @if (Model.materialKpDto != null) - { @@ -155,11 +153,11 @@ - @foreach (var index in Model.materialKpDto) + @foreach (var index in Model.MaterialKps) { }
- @index.ItemName + @index.ItemID @index.KpName @@ -177,13 +175,12 @@ @index.Length - @index.Station + @index.StationType
- }
@@ -192,7 +189,7 @@
- +
@@ -260,7 +257,6 @@ }; function SearchNo(e) { - alert(e.data); if (e.keyCode == 13) { $("#GetWipData").click(); } @@ -295,4 +291,4 @@ }); -}*@ +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/MaterialItemController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/MaterialItemController.cs index 5397eb32..d197b96e 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/MaterialItemController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/MaterialItemController.cs @@ -59,6 +59,20 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES return result; } + /// + /// 料號基本資料檔 to ItemNO + /// + /// 料號 + /// + [HttpGet("ByItemNO/{id}")] + public async Task GetMaterialItemByItemNO(string id) + { + IQueryable q = _context.MaterialItems; + var result = await q.Where(p => p.ItemNo == id).FirstOrDefaultAsync(); + + return result; + } + /// /// 新增料號基本資料檔 /// diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/MaterialKpController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/MaterialKpController.cs index a8c1e8a1..014ca7c5 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/MaterialKpController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/MaterialKpController.cs @@ -49,13 +49,11 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES /// /// ItemID /// - [HttpGet("{id}")] - public async Task> GetMaterialKp(int id) + [HttpGet("ByItemID/{id}")] + public async Task> GetMaterialKpByItemID(int id) { IQueryable q = _context.MaterialKps; - - ResultModel result = new ResultModel(); - result.Data = await q.Where(p => p.ItemID == id).ToListAsync(); + var result = await q.Where(p => p.ItemID == id).ToListAsync(); return result; } diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/MaterialOutfitController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/MaterialOutfitController.cs new file mode 100644 index 00000000..f61f1fe1 --- /dev/null +++ b/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 +{ + /// + /// 料號治具資訊資料檔 + /// + [Route("api/[controller]")] + [ApiController] + public class MaterialOutfitController : ControllerBase + { + private readonly AMESContext _context; + + /// + /// 建構式 + /// + public MaterialOutfitController(AMESContext context) + { + _context = context; + } + + /// + /// 查詢料號治具資訊資料檔 + /// + // GET: api/MaterialOutfits + [HttpGet] + public async Task>> GetMaterialOutfits() + { + return await _context.MaterialOutfits.ToListAsync(); + } + + /// + /// + /// + /// + /// + // GET: api/MaterialOutfits/5 + [HttpGet("{id}")] + public async Task> GetMaterialOutfit(int id) + { + var materialOutfit = await _context.MaterialOutfits.FindAsync(id); + + if (materialOutfit == null) + { + return NotFound(); + } + + return materialOutfit; + } + + /// + /// 料號基本資料檔 to ItemID + /// + /// ItemID + /// + [HttpGet("ByItemID/{id}")] + public async Task> GetMaterialOutfitByItemID(int id) + { + IQueryable 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 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> 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> 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); + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/MaterialStationsItemController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/MaterialStationsItemController.cs new file mode 100644 index 00000000..02b9766e --- /dev/null +++ b/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 +{ + /// + /// 料號站別工項資料檔 + /// + [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>> GetMaterialStationsItems() + { + return await _context.MaterialStationsItems.ToListAsync(); + } + + // GET: api/MaterialStationsItems/5 + [HttpGet("{id}")] + public async Task> GetMaterialStationsItem(int id) + { + var materialStationsItem = await _context.MaterialStationsItems.FindAsync(id); + + if (materialStationsItem == null) + { + return NotFound(); + } + + return materialStationsItem; + } + + /// + /// 料號站別工項資料檔 by ItemID + /// + /// ItemID + /// + [HttpGet("ByItemID/{id}")] + public async Task> GetMaterialStationsItemByItemID(int id) + { + IQueryable 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 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> 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> 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); + } + } +} diff --git a/AMESCoreStudio.WebApi/Models/AMES/MaterialItem.cs b/AMESCoreStudio.WebApi/Models/AMES/MaterialItem.cs index bbe20099..0c2bc42f 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/MaterialItem.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/MaterialItem.cs @@ -20,6 +20,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES /// [Key] [Column("ITEM_ID")] + [DataMember] public int ItemID { get; set; } /// @@ -82,19 +83,19 @@ namespace AMESCoreStudio.WebApi.Models.AMES /// /// 料號治具資訊資料檔 /// - - public virtual List MaterialOutfits { get; set; } - /// - /// 料號治具資訊資料檔 - /// + //public virtual List MaterialOutfits { get; set; } = new List(); + + ///// + ///// 料號治具資訊資料檔 + ///// - public virtual List MaterialKps { get; set; } + //public virtual List MaterialKps { get; set; } = new List(); - /// - /// 料號站別工項資料檔 - /// - - public virtual List MaterialStationsItems { get; set; } + ///// + ///// 料號站別工項資料檔 + ///// + + //public virtual List MaterialStationsItems { get; set; } = new List(); } } diff --git a/AMESCoreStudio.WebApi/Models/AMES/MaterialStationsItem.cs b/AMESCoreStudio.WebApi/Models/AMES/MaterialStationsItem.cs index 461d8e42..dc4925f5 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/MaterialStationsItem.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/MaterialStationsItem.cs @@ -110,7 +110,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES [Column("UPDATE_DATE")] [DataMember] [Required] - public DateTime? UpdateDate { get; set; } + public DateTime UpdateDate { get; set; } ///