From 2163b9489800d158c850c7c5d6143b67e8643be8 Mon Sep 17 00:00:00 2001 From: Marvin Date: Wed, 23 Mar 2022 12:53:59 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E6=B5=81=E7=A8=8B=E8=A7=84?= =?UTF-8?q?=E5=88=99=E7=BB=B4=E6=8A=A4=201.1.=E4=BF=AE=E6=94=B9PK=E4=B8=BA?= =?UTF-8?q?RULE=5FSTATION=5FID+RULE=5FSTATUS+NEXT=5FSTATION=5FID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/BASController.cs | 21 +++++--- .../Controllers/REPController.cs | 4 +- AMESCoreStudio.Web/HttpApis/IBAS.cs | 6 +-- AMESCoreStudio.Web/Views/BAS/BAS011.cshtml | 13 +++-- AMESCoreStudio.Web/Views/BAS/BAS011U.cshtml | 4 +- .../Controllers/BAS/RulesController.cs | 53 +++++++++++++------ AMESCoreStudio.WebApi/Models/AMESContext.cs | 2 +- AMESCoreStudio.WebApi/Models/BAS/Rules.cs | 2 +- 8 files changed, 68 insertions(+), 37 deletions(-) diff --git a/AMESCoreStudio.Web/Controllers/BASController.cs b/AMESCoreStudio.Web/Controllers/BASController.cs index 725ae55c..9178ea38 100644 --- a/AMESCoreStudio.Web/Controllers/BASController.cs +++ b/AMESCoreStudio.Web/Controllers/BASController.cs @@ -1390,15 +1390,19 @@ namespace AMESCoreStudio.Web.Controllers //修改页面 [HttpGet] - public async Task BAS011UAsync(int id) + public async Task BAS011UAsync(string id) { + int ruleStationID = int.Parse(id.Split('_')[0]); + string status = id.Split('_')[1]; + int nextStationID = int.Parse(id.Split('_')[2]); + await GetFlowRuleList(); - var result2 = await _basApi.GetRuleStation(id); + var result2 = await _basApi.GetRuleStation(ruleStationID); int flowId = result2[0].FlowRuleID; await GetRuleStationList(flowId); await GetNextStationList(flowId); - var result = await _basApi.GetRules(id); + var result = await _basApi.GetRules(ruleStationID, status, nextStationID); if (result.Count == 0) { @@ -1407,9 +1411,9 @@ namespace AMESCoreStudio.Web.Controllers return View(result[0]); } - public async Task BAS011DAsync(int id,string status) + public async Task BAS011DAsync(int id,string status,int nextStationID) { - var result = await _basApi.DeleteRules(id, status); + var result = await _basApi.DeleteRules(id, status, nextStationID); return Json(new Result() { success = true, msg = "" }); } @@ -1419,10 +1423,11 @@ namespace AMESCoreStudio.Web.Controllers { int id = int.Parse(ids[0].Split('_')[0]); string status = ids[0].Split('_')[1]; - var result = await _basApi.DeleteRules(id,status); + int nextStationID = int.Parse(ids[0].Split('_')[2]); + var result = await _basApi.DeleteRules(id, status, nextStationID); for (int i = 1; i < ids.Length; i++) { - result = await _basApi.DeleteRules(int.Parse(ids[i].Split('_')[0]), ids[i].Split('_')[1]); + result = await _basApi.DeleteRules(int.Parse(ids[i].Split('_')[0]), ids[i].Split('_')[1], int.Parse(ids[i].Split('_')[2])); } return Json(new Result() { success = true, msg = "" }); @@ -1447,7 +1452,7 @@ namespace AMESCoreStudio.Web.Controllers } else { - result = await _basApi.PutRules(model.RuleStationID, JsonConvert.SerializeObject(model)); + result = await _basApi.PutRules(model.RuleStationID, model.RuleStatus, model.NextStationID, JsonConvert.SerializeObject(model)); } if (result.Success) diff --git a/AMESCoreStudio.Web/Controllers/REPController.cs b/AMESCoreStudio.Web/Controllers/REPController.cs index 421b4ddc..905e2d5e 100644 --- a/AMESCoreStudio.Web/Controllers/REPController.cs +++ b/AMESCoreStudio.Web/Controllers/REPController.cs @@ -490,7 +490,7 @@ namespace AMESCoreStudio.Web.Controllers { //判断全部维修完成过站 int repairStationID = -1; - var rules = await _basApi.GetRules(model.ngInfo.Barcode.RuleStationID); + var rules = await _basApi.GetRules(model.ngInfo.Barcode.RuleStationID,model.ngInfo.Barcode.RuleStatus, repairStationID); if (rules.Count > 0) { for (int i = 0; i < rules.Count; i++) @@ -812,7 +812,7 @@ namespace AMESCoreStudio.Web.Controllers { //判断全部维修完成过站 int repairStationID = -1; - var rules = await _basApi.GetRules(model.ngInfo.Barcode.RuleStationID); + var rules = await _basApi.GetRules(model.ngInfo.Barcode.RuleStationID, model.ngInfo.Barcode.RuleStatus, repairStationID); if (rules.Count > 0) { for (int i = 0; i < rules.Count; i++) diff --git a/AMESCoreStudio.Web/HttpApis/IBAS.cs b/AMESCoreStudio.Web/HttpApis/IBAS.cs index 30c38542..2879ff29 100644 --- a/AMESCoreStudio.Web/HttpApis/IBAS.cs +++ b/AMESCoreStudio.Web/HttpApis/IBAS.cs @@ -436,21 +436,21 @@ namespace AMESCoreStudio.Web /// /// [WebApiClient.Attributes.HttpPut("api/Rules/{id}")] - ITask> PutRules(int id, [FromBody, RawJsonContent] string model); + ITask> PutRules(int id, string ruleStatus, int nextStationID, [FromBody, RawJsonContent] string model); /// /// 刪除流程站別 /// /// [WebApiClient.Attributes.HttpDelete("api/Rules/{id}")] - ITask> DeleteRules(int id,string ruleStatus); + ITask> DeleteRules(int id, string ruleStatus, int nextStationID); /// /// 根據ID獲取指定流程站別資料 /// /// [WebApiClient.Attributes.HttpGet("api/Rules/{id}")] - ITask> GetRules(int id); + ITask> GetRules(int id, string ruleStatus, int nextStationID); /// /// 獲取流程站別資料 diff --git a/AMESCoreStudio.Web/Views/BAS/BAS011.cshtml b/AMESCoreStudio.Web/Views/BAS/BAS011.cshtml index 4bf27348..5fa4aee3 100644 --- a/AMESCoreStudio.Web/Views/BAS/BAS011.cshtml +++ b/AMESCoreStudio.Web/Views/BAS/BAS011.cshtml @@ -101,6 +101,11 @@ return d.nextStation['stationName']; } }, + { + field: 'nextStationID', + title: '下一站编号', + width: 160 + }, { field: 'ruleSeq', title: '規則順序', @@ -120,7 +125,7 @@ //通过行tool编辑,lay-event="edit" function edit(obj) { if (obj.data.ruleStationID) { - hg.open('修改流程規則', '/BAS/BAS011U/' + obj.data.ruleStationID, 600, 400); + hg.open('修改流程規則', '/BAS/BAS011U/' + obj.data.ruleStationID + '_' + obj.data.ruleStatus + '_' + obj.data.nextStationID, 600, 400); } } //通过行tool删除,lay-event="del" @@ -129,7 +134,7 @@ hg.confirm("流程規則:" + obj.data.nextStation['stationName'] + ",确定要删除吗?", function () { $.ajax({ url: '/BAS/BAS011D', - data: { id: obj.data.ruleStationID, status: obj.data.ruleStatus }, + data: { id: obj.data.ruleStationID, status: obj.data.ruleStatus, nextStationID: obj.data.nextStationID }, type: 'POST', success: function (data) { if (data.success) { @@ -154,12 +159,12 @@ class: 'layui-btn-danger', handler: function (obj, row) { if (obj.checkstatus && obj.checkstatus.data.length > 0) { - console.log(obj.checkstatus.data.map(function (x) { return x.ruleStationID + '_' + x.ruleStatus }).join(',')) + console.log(obj.checkstatus.data.map(function (x) { return x.ruleStationID + '_' + x.ruleStatus + '_' + x.nextStationID }).join(',')) hg.confirm("批量删除所有选中的数据,确定要删除吗?", function () { $.ajax({ url: '/BAS/BAS011DAll', - data: { ids: obj.checkstatus.data.map(function (x) { return x.ruleStationID + '_' + x.ruleStatus }) }, + data: { ids: obj.checkstatus.data.map(function (x) { return x.ruleStationID + '_' + x.ruleStatus + '_' + x.nextStationID }) }, type: 'POST', success: function (data) { if (data.success) { diff --git a/AMESCoreStudio.Web/Views/BAS/BAS011U.cshtml b/AMESCoreStudio.Web/Views/BAS/BAS011U.cshtml index 2a7281d4..44ad2d50 100644 --- a/AMESCoreStudio.Web/Views/BAS/BAS011U.cshtml +++ b/AMESCoreStudio.Web/Views/BAS/BAS011U.cshtml @@ -16,6 +16,8 @@
+ +
@@ -44,7 +46,7 @@
- +
diff --git a/AMESCoreStudio.WebApi/Controllers/BAS/RulesController.cs b/AMESCoreStudio.WebApi/Controllers/BAS/RulesController.cs index 6d6dc3d7..4e9db523 100644 --- a/AMESCoreStudio.WebApi/Controllers/BAS/RulesController.cs +++ b/AMESCoreStudio.WebApi/Controllers/BAS/RulesController.cs @@ -96,7 +96,7 @@ namespace AMESCoreStudio.WebApi.Controllers.BAS IQueryable q = _context.Ruleses; //q = q.Where(p => list.Contains(p.RuleStationID) && status1.Contains(p.RuleStatus)); - q = q.Where(p => list.Contains(p.RuleStationID)); + q = q.Where(p => list.Contains(p.RuleStationID) && list2.Contains(p.NextStationID) && status1.Contains(p.RuleStatus)); //q = q.OrderBy(o => o.RuleStationID + o.RuleSeq); q = q.OrderBy(o => o.RuleSeq); @@ -118,17 +118,26 @@ namespace AMESCoreStudio.WebApi.Controllers.BAS } /// - /// 根據流程站別ID查詢指定單一資料 + /// 根據流程站別ID+状态+下一站查詢指定單一資料 /// /// + /// + /// /// // GET: api/Rules/5 [HttpGet("{id}")] - public async Task>> GetRules(int id) + public async Task>> GetRules(int id, string ruleStatus, int nextStationId) { IQueryable q = _context.Ruleses; - q = q.Where(p => p.RuleStationID.Equals(id)); + if (nextStationId == -1) + { + q = q.Where(p => p.RuleStationID.Equals(id) && p.RuleStatus.Equals(ruleStatus)); + } + else + { + q = q.Where(p => p.RuleStationID.Equals(id) && p.RuleStatus.Equals(ruleStatus) && p.NextStationID.Equals(nextStationId)); + } var rules = await q.ToListAsync(); @@ -164,27 +173,39 @@ namespace AMESCoreStudio.WebApi.Controllers.BAS } /// - /// 更新流程規則資料 + /// 更新流程规则资料 /// /// + /// + /// /// /// // PUT: api/Rules/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> PutRules(int id, [FromBody]Rules rules) + public async Task> PutRules(int id, string ruleStatus, int nextStationId, [FromBody] Rules rules) { ResultModel result = new ResultModel(); - if (id != rules.RuleStationID) + + var rule = await _context.Ruleses.Where(p => p.RuleStationID.Equals(id) && p.RuleStatus.Equals(ruleStatus) && p.NextStationID.Equals(nextStationId)).FirstOrDefaultAsync(); + + if (rule == null) { result.Success = false; - result.Msg = "序號錯誤"; + result.Msg = "流程站別規則不存在"; return result; } - _context.Entry(rules).State = EntityState.Modified; - rules.UpdateDate = DateTime.Now; + rule.RuleDesc = rules.RuleDesc; + rule.RuleSeq = rules.RuleSeq; + rule.UpdateDate = DateTime.Now; + + _context.Ruleses.Attach(rule); + + // 指定更新某個欄位 + _context.Entry(rule).Property(p => p.RuleDesc).IsModified = true; + _context.Entry(rule).Property(p => p.RuleSeq).IsModified = true; try { @@ -235,17 +256,19 @@ namespace AMESCoreStudio.WebApi.Controllers.BAS } /// - /// 刪除流程規則資料 + /// 删除流程规则 /// /// + /// + /// /// // DELETE: api/Rules/5 [HttpDelete("{id}")] - public async Task> DeleteRules(int id,string ruleStatus) + public async Task> DeleteRules(int id, string ruleStatus, int nextStationId) { ResultModel result = new ResultModel(); - var rules = await _context.Ruleses.Where(p => p.RuleStationID.Equals(id) && p.RuleStatus.Equals(ruleStatus)).FirstOrDefaultAsync(); + var rules = await _context.Ruleses.Where(p => p.RuleStationID.Equals(id) && p.RuleStatus.Equals(ruleStatus) && p.NextStationID.Equals(nextStationId)).FirstOrDefaultAsync(); if (rules == null) { @@ -270,9 +293,5 @@ namespace AMESCoreStudio.WebApi.Controllers.BAS return result; } - private bool RulesExists(int id) - { - return _context.Ruleses.Any(e => e.RuleStationID == id); - } } } diff --git a/AMESCoreStudio.WebApi/Models/AMESContext.cs b/AMESCoreStudio.WebApi/Models/AMESContext.cs index 7dc1f7de..2937ae75 100644 --- a/AMESCoreStudio.WebApi/Models/AMESContext.cs +++ b/AMESCoreStudio.WebApi/Models/AMESContext.cs @@ -36,7 +36,7 @@ namespace AMESCoreStudio.WebApi .HasOne(m => m.Module); */ - modelBuilder.Entity().HasKey(c => new { c.RuleStationID, c.RuleStatus }); + modelBuilder.Entity().HasKey(c => new { c.RuleStationID, c.RuleStatus, c.NextStationID }); modelBuilder.Entity().HasKey(c => new { c.WipNO, c.StartNO, c.EndNO }); modelBuilder.Entity().HasKey(c => new { c.WipID, c.CreateDate }); modelBuilder.Entity().HasKey(c => new { c.CorpSN }); diff --git a/AMESCoreStudio.WebApi/Models/BAS/Rules.cs b/AMESCoreStudio.WebApi/Models/BAS/Rules.cs index 1c038e6d..e76b6035 100644 --- a/AMESCoreStudio.WebApi/Models/BAS/Rules.cs +++ b/AMESCoreStudio.WebApi/Models/BAS/Rules.cs @@ -40,7 +40,7 @@ namespace AMESCoreStudio.WebApi.Models.BAS /// /// 下一站別編號 /// - [Column("NEXT_STATION_ID")] + [Key,Column("NEXT_STATION_ID",Order =2)] [Display(Name = "下一站別編號")] [DataMember] public int NextStationID { get; set; }