From 7dd77a51b2bd1f2047f75a633b375e2f89a50300 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 25 Nov 2021 09:45:50 +0800 Subject: [PATCH] =?UTF-8?q?1.=20PCS012=20=E5=B7=A5=E5=96=AE=E9=8E=96?= =?UTF-8?q?=E5=AE=9A=E6=9F=A5=E8=A9=A2=E5=8A=9F=E8=83=BD=202.=20=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E5=85=B6=E4=BB=96=E8=B3=87=E6=96=99=E5=A4=BE=203.=20S?= =?UTF-8?q?tartup=20=E5=8A=A0=E5=85=A5Model=E9=97=9C=E9=96=89=E9=A9=97?= =?UTF-8?q?=E8=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/PCSController.cs | 6 +- AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs | 4 +- .../Views/Home/Framework.cshtml | 3 - AMESCoreStudio.Web/Views/PCS/PCS012.cshtml | 25 +++--- AMESCoreStudio.Web/wwwroot/js/grids.min.js | 9 ++ .../Controllers/AMES/WipLockController.cs | 38 ++++++-- AMESCoreStudio.WebApi/DTO/AMES/WipLockDto.cs | 82 ++++++++++++++++++ AMESCoreStudio.WebApi/Models/AMES/WipAtt.cs | 2 +- AMESCoreStudio.WebApi/Models/AMES/WipLock.cs | 14 +++ AMESCoreStudio.WebApi/Startup.cs | 6 ++ .../DB備份/AMES1112.sql | 0 .../DB備份/SQL20211112.txt | 0 其他專案資料/Oracle EF Core.docx | Bin 0 -> 28173 bytes .../oracle指令.txt | 0 14 files changed, 160 insertions(+), 29 deletions(-) create mode 100644 AMESCoreStudio.Web/wwwroot/js/grids.min.js create mode 100644 AMESCoreStudio.WebApi/DTO/AMES/WipLockDto.cs rename AMES1112.sql => 其他專案資料/DB備份/AMES1112.sql (100%) rename SQL20211112.txt => 其他專案資料/DB備份/SQL20211112.txt (100%) create mode 100644 其他專案資料/Oracle EF Core.docx rename oracle指令.txt => 其他專案資料/oracle指令.txt (100%) diff --git a/AMESCoreStudio.Web/Controllers/PCSController.cs b/AMESCoreStudio.Web/Controllers/PCSController.cs index 4168ae24..f4b7128f 100644 --- a/AMESCoreStudio.Web/Controllers/PCSController.cs +++ b/AMESCoreStudio.Web/Controllers/PCSController.cs @@ -10,6 +10,7 @@ using AMESCoreStudio.WebApi.Models.AMES; using AMESCoreStudio.WebApi.Models.BAS; using AMESCoreStudio.Web.ViewModels; using AMESCoreStudio.Web.ViewModels.PCS; +using AMESCoreStudio.WebApi.DTO.AMES; using System.Linq; using AMESCoreStudio.CommonTools.Result; using System; @@ -1025,13 +1026,12 @@ namespace AMESCoreStudio.Web.Controllers [HttpPost] public async Task PCS011Async(WipLock model) { - IResultModel result; result = await _pcsApi.PutWipLock(JsonConvert.SerializeObject(model)); if (result.Success) { - var _msg = model.WipLockID == 0 ? "新增成功!" : "修改成功!"; + var _msg = "解鎖成功!"; return RedirectToAction("Refresh", "Home", new { msg = _msg }); } else @@ -1069,7 +1069,7 @@ namespace AMESCoreStudio.Web.Controllers public async Task PCS012QueryAsync(string lockStatus, string lockType, string lockReasonType, string stations, string wipNO, string itemNO, string dateStr, string dateEnd) { - IResultModel result = await _pcsApi.GetWipLockQuery(lockStatus: lockStatus, lockType: lockType, lockReasonType: lockReasonType, + IResultModel result = await _pcsApi.GetWipLockQuery(lockStatus: lockStatus, lockType: lockType, lockReasonType: lockReasonType, stations: stations, wipNO: wipNO, itemNO: itemNO, date_str: dateStr, date_end: dateEnd); if (result.Data.Count() != 0) diff --git a/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs b/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs index 406c0f6a..fa6be9f1 100644 --- a/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs +++ b/AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs @@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Mvc; using AMESCoreStudio.WebApi.Models.AMES; //using AMESCoreStudio.WebApi.Models.BAS; using AMESCoreStudio.CommonTools.Result; - +using AMESCoreStudio.WebApi.DTO.AMES; namespace AMESCoreStudio.Web { [JsonReturn] @@ -199,7 +199,7 @@ namespace AMESCoreStudio.Web /// /// [WebApiClient.Attributes.HttpGet("api/WipLock/GetWipLockQuery")] - ITask> GetWipLockQuery(string lockStatus = null, string lockType = null, string lockReasonType = null + ITask> GetWipLockQuery(string lockStatus = null, string lockType = null, string lockReasonType = null , string stations = null, string wipNO = null, string itemNO = null, string date_str = null, string date_end = null); /// diff --git a/AMESCoreStudio.Web/Views/Home/Framework.cshtml b/AMESCoreStudio.Web/Views/Home/Framework.cshtml index 5369889d..ac2b38cb 100644 --- a/AMESCoreStudio.Web/Views/Home/Framework.cshtml +++ b/AMESCoreStudio.Web/Views/Home/Framework.cshtml @@ -239,9 +239,6 @@
  • 工單開線收線作業
  • -
  • - 工單對應站別鎖定 -
  • 製程工單鎖定查詢
  • diff --git a/AMESCoreStudio.Web/Views/PCS/PCS012.cshtml b/AMESCoreStudio.Web/Views/PCS/PCS012.cshtml index 188949f9..a81b287c 100644 --- a/AMESCoreStudio.Web/Views/PCS/PCS012.cshtml +++ b/AMESCoreStudio.Web/Views/PCS/PCS012.cshtml @@ -44,8 +44,8 @@
    @@ -104,11 +104,11 @@
    - +
    - +
    @@ -189,7 +189,7 @@ sort: true }, { - field: 'stationID', + field: 'stationName', title: '站別', width: 100, sort: true @@ -203,7 +203,7 @@ { field: 'lockStatus', title: '鎖定狀態', - width: 50, + width: 100, sort: true }, { @@ -212,19 +212,23 @@ }, { field: 'lockDate', - title: '鎖定日期' + title: '鎖定日期', + width: 100, + templet: '
    {{ layui.util.toDateString(d.lockDate, "yyyy/MM/dd") }}
    ' }, { field: 'unLockReason', title: '解鎖原因' }, { - field: 'unLockDate', - title: '解鎖日期' + field: 'unLockDate', + title: '解鎖日期', + width: 100, + templet: '
    {{ layui.util.toDateString(d.unLockDate, "yyyy/MM/dd") }}
    ' }, { field: 'right', - width: 100, + width: 80, title: '操作', align: 'center', fixed: 'right', @@ -242,7 +246,6 @@ //通过行tool编辑,lay-event="edit" function edit(obj) { if (obj.data.wipNO) { - alert(obj.data.wipNO); hg.open('解鎖工單', '/PCS/PCS011/' + obj.data.wipLockID, 480, 480,false); } } diff --git a/AMESCoreStudio.Web/wwwroot/js/grids.min.js b/AMESCoreStudio.Web/wwwroot/js/grids.min.js new file mode 100644 index 00000000..fb479afe --- /dev/null +++ b/AMESCoreStudio.Web/wwwroot/js/grids.min.js @@ -0,0 +1,9 @@ +/** + * Javascript-Equal-Height-Responsive-Rows + * https://github.com/Sam152/Javascript-Equal-Height-Responsive-Rows + */ +(function($){'use strict';$.fn.equalHeight=function(){var heights=[];$.each(this,function(i,element){var $element=$(element);var elementHeight;var includePadding=($element.css('box-sizing')==='border-box')||($element.css('-moz-box-sizing')==='border-box');if(includePadding){elementHeight=$element.innerHeight();}else{elementHeight=$element.height();} +heights.push(elementHeight);});this.css('height',Math.max.apply(window,heights)+'px');return this;};$.fn.equalHeightGrid=function(columns){var $tiles=this.filter(':visible');$tiles.css('height','auto');for(var i=0;i<$tiles.length;i++){if(i%columns===0){var row=$($tiles[i]);for(var n=1;n鎖定類型 /// 料號 /// 鎖定原因類別 - /// 站別 + /// 站別 /// 鎖定日期起 /// 鎖定日期迄 /// [Route("[action]")] [HttpGet] - public async Task> GetWipLockQuery(string wipNO, string lockstatus, string locktype - , string itemno, string lockreasontype, int stationid = 0, string date_str = null, string date_end = null) + public async Task> GetWipLockQuery(string wipNO, string lockstatus, string locktype + , string itemno, string lockreasontype, int stations = 0, string date_str = null, string date_end = null) { IQueryable q = _context.WipLocks; if (!string.IsNullOrWhiteSpace(wipNO)) - q = q.Where(w => w.WipNO == wipNO); + q = q.Where(w => w.WipNO == wipNO); if (!string.IsNullOrWhiteSpace(lockstatus)) q = q.Where(w => w.LockStatus == lockstatus); @@ -114,8 +115,11 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES if (!string.IsNullOrWhiteSpace(lockreasontype)) q = q.Where(w => w.LockReasonType == lockreasontype); - if (stationid != 0) - q = q.Where(w => w.StationID == stationid); + if (!string.IsNullOrWhiteSpace(itemno)) + q = q.Where(w => w.WipAtt.ItemNO == itemno); + + if (stations != 0) + q = q.Where(w => w.StationID == stations); DateTime dateValue; if (DateTime.TryParse(date_str, out dateValue)) @@ -127,8 +131,24 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES { q = q.Where(w => w.LockDate <= DateTime.Parse(date_end)); } - ResultModel result = new ResultModel(); - result.Data = await q.ToListAsync(); + + ResultModel result = new ResultModel(); + result.Data = await q.Select(s => new WipLockDto + { + WipNO = s.WipNO, + WipLockID = s.WipLockID, + ItemNO = s.WipAtt.ItemNO, + LockDate = s.LockDate, + UnLockDate = s.UnLockDate, + LockUserID = s.LockUserID, + LockReason = s.LockReason, + LockStatus = s.LockStatus == "0" ? "鎖定" : "解鎖", + UnLockUserID = s.UnLockUserID, + UnLockReason = s.UnLockReason, + LockReasonType = s.LockReasonType, + LockType = s.LockType, + StationName = s.Stations.StationName + }).ToListAsync(); return result; } @@ -165,7 +185,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES /// 工單解鎖資料檔 ///
    /// - [HttpPut()] + [HttpPut] public async Task> PutWipLock([FromBody] WipLock wiplock) { ResultModel result = new ResultModel(); diff --git a/AMESCoreStudio.WebApi/DTO/AMES/WipLockDto.cs b/AMESCoreStudio.WebApi/DTO/AMES/WipLockDto.cs new file mode 100644 index 00000000..1fc0615a --- /dev/null +++ b/AMESCoreStudio.WebApi/DTO/AMES/WipLockDto.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace AMESCoreStudio.WebApi.DTO.AMES +{ + /// + /// WipInfo Select Dto + /// + public class WipLockDto + { + + /// + /// 工單鎖定ID + /// + public int WipLockID { get; set; } + + /// + /// 工單號碼 + /// + public string WipNO { get; set; } + + /// + /// 鎖定狀態(0:鎖定;1:解鎖) + /// + public string LockStatus { get; set; } + + /// + /// 料號 + /// + public string ItemNO { get; set; } + + /// + /// 鎖定原因 + /// + public string LockReason { get; set; } + + /// + /// 解鎖原因 + /// + public string UnLockReason { get; set; } + + /// + /// 站別ID + /// + + + public string StationName { get; set; } + /// + /// 鎖定類型 + /// + public string LockType { get; set; } + + /// + /// 鎖定原因類別(0-3C認證工單;1-驗證工單;3-維修換料待分析) + /// + public string LockReasonType { get; set; } + + /// + /// 鎖定人員 + /// + public decimal LockUserID { get; set; } + + /// + /// 鎖定日期 + /// + public DateTime LockDate { get; set; } + + /// + /// 解鎖人員 + /// + public decimal? UnLockUserID { get; set; } + + /// + /// 解鎖日期 + /// + + public DateTime? UnLockDate { get; set; } + + } +} diff --git a/AMESCoreStudio.WebApi/Models/AMES/WipAtt.cs b/AMESCoreStudio.WebApi/Models/AMES/WipAtt.cs index 7f09df07..e0c2f99f 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/WipAtt.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/WipAtt.cs @@ -6,7 +6,7 @@ using System.Runtime.Serialization; namespace AMESCoreStudio.WebApi.Models.AMES { /// - /// 用户资料表 + /// 工單機種資料 /// [Table("WIP_ATT", Schema = "JHAMES")] [DataContract] diff --git a/AMESCoreStudio.WebApi/Models/AMES/WipLock.cs b/AMESCoreStudio.WebApi/Models/AMES/WipLock.cs index faf75ede..75451035 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/WipLock.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/WipLock.cs @@ -62,6 +62,8 @@ namespace AMESCoreStudio.WebApi.Models.AMES [DataMember] [Required(ErrorMessage = "{0},不能空白")] [Display(Name = "站別ID")] + + public int StationID { get; set; } = 0; /// @@ -116,5 +118,17 @@ namespace AMESCoreStudio.WebApi.Models.AMES [Display(Name = "解鎖日期")] public DateTime? UnLockDate { get; set; } + + /// + /// 站别資料 + /// + [ForeignKey("StationID")] + public virtual AMESCoreStudio.WebApi.Models.BAS.Stations Stations { get; set; } + + /// + /// 工單機種資料 + /// + [ForeignKey("WipNO")] + public virtual WipAtt WipAtt { get; set; } } } diff --git a/AMESCoreStudio.WebApi/Startup.cs b/AMESCoreStudio.WebApi/Startup.cs index 3adfe683..47ee76e9 100644 --- a/AMESCoreStudio.WebApi/Startup.cs +++ b/AMESCoreStudio.WebApi/Startup.cs @@ -76,6 +76,12 @@ namespace AMESCoreStudio.WebApi var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); c.IncludeXmlComments(xmlPath); }); + + // Invalid ModelState Filter ( Model ҥѷ|L) + services.Configure(options => + { + options.SuppressModelStateInvalidFilter = true; + }); } /// diff --git a/AMES1112.sql b/其他專案資料/DB備份/AMES1112.sql similarity index 100% rename from AMES1112.sql rename to 其他專案資料/DB備份/AMES1112.sql diff --git a/SQL20211112.txt b/其他專案資料/DB備份/SQL20211112.txt similarity index 100% rename from SQL20211112.txt rename to 其他專案資料/DB備份/SQL20211112.txt diff --git a/其他專案資料/Oracle EF Core.docx b/其他專案資料/Oracle EF Core.docx new file mode 100644 index 0000000000000000000000000000000000000000..3381fa7bfdd883379d3a8b3a9cec4cc775df86e9 GIT binary patch literal 28173 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 nynpAV{^gbU`7rzk@E1$ literal 0 HcmV?d00001 diff --git a/oracle指令.txt b/其他專案資料/oracle指令.txt similarity index 100% rename from oracle指令.txt rename to 其他專案資料/oracle指令.txt