From 90238d7f74128733de40fb56bd38b8c508b16efc Mon Sep 17 00:00:00 2001 From: "DESKTOP-H2PAFLR\\Administrator" Date: Sun, 8 Oct 2023 16:07:48 +0800 Subject: [PATCH] =?UTF-8?q?bom=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/mes/md/MdBOMController.cs | 83 +++++- ZR.Model/mes/md/MdBom.cs | 2 +- ZR.Model/mes/md/MdUnit.cs | 4 +- ZR.Service/mes/md/IService/IMdBOMService.cs | 14 +- ZR.Service/mes/md/MdBOMService.cs | 86 +++--- ZR.Vue/src/api/basisManagement/bom.js | 20 +- ZR.Vue/src/views/basisManagement/BOM.vue | 257 +++++++++++------- 7 files changed, 315 insertions(+), 151 deletions(-) diff --git a/ZR.Admin.WebApi/Controllers/mes/md/MdBOMController.cs b/ZR.Admin.WebApi/Controllers/mes/md/MdBOMController.cs index aecea8c0..2748dd1d 100644 --- a/ZR.Admin.WebApi/Controllers/mes/md/MdBOMController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/md/MdBOMController.cs @@ -1,7 +1,13 @@ -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using ZR.Admin.WebApi.Extensions; using ZR.Model.mes.md; +using ZR.Service.mes.md; using ZR.Service.MES.md; using ZR.Service.MES.md.IService; +using static System.Runtime.InteropServices.JavaScript.JSType; namespace ZR.Admin.WebApi.Controllers.MES.md { @@ -29,5 +35,80 @@ namespace ZR.Admin.WebApi.Controllers.MES.md return ToResponse(new ApiResult(200, "success", data)); } + + /// + /// 查询父产品 + /// + /// productCode码 + /// + [HttpGet("queryBOM")] + public IActionResult List(string queryString="") + { + List data = mdBOMService.QueryBOM(queryString); + + return ToResponse(new ApiResult(200, "success", data)); + } + + /// + /// 获取全部单位 + /// + /// + [HttpGet("getunitList")] + public IActionResult GetAllunitList() + { + List data = mdBOMService.GetAllunitList(); + return ToResponse(new ApiResult(200, "success", data)); + } + + + /// + /// 新增BOM数据 + /// + /// + /// + [HttpPost("addBom")] + public IActionResult AddBOM([FromBody] MdBom bomItem) + { + if(bomItem!=null&&bomItem.Id!=null) + bomItem.ToCreate(HttpContext); + if (bomItem.ParentProductId == 0) + bomItem.ParentProductId = null; + int result=mdBOMService.AddBom(bomItem); + return ToResponse(new ApiResult(200, "success", result)); + } + + /// + /// 修改bom数据 + /// + /// + /// + [HttpPost("updateBom")] + public IActionResult UpdateBOM([FromBody] MdBom bomItem) + { + if (bomItem != null && bomItem.Id != null) + bomItem.ToUpdate(HttpContext); + if (bomItem.ParentProductId == 0) + bomItem.ParentProductId = null; + int result = mdBOMService.UpdateBOM(bomItem); + return ToResponse(new ApiResult(200, "success", result)); + } + + + + [HttpPost("delBom")] + public IActionResult deleteBOM([FromBody] List ids) + { + if (ids != null) + { + int result = mdBOMService.deleteBOM(ids.ToArray()); + return ToResponse(result); + } + return null; + + } + + + + } } diff --git a/ZR.Model/mes/md/MdBom.cs b/ZR.Model/mes/md/MdBom.cs index 13873c56..9ff380d6 100644 --- a/ZR.Model/mes/md/MdBom.cs +++ b/ZR.Model/mes/md/MdBom.cs @@ -53,7 +53,7 @@ namespace ZR.Model.mes.md [SugarColumn(ColumnName = "requireNum")] public int? RequireNum { get; set; } /// - /// 子项单位id + /// 单位id /// [SugarColumn(ColumnName = "unit_id")] public int? UnitId { get; set; } diff --git a/ZR.Model/mes/md/MdUnit.cs b/ZR.Model/mes/md/MdUnit.cs index 9c671888..1fca5022 100644 --- a/ZR.Model/mes/md/MdUnit.cs +++ b/ZR.Model/mes/md/MdUnit.cs @@ -25,10 +25,10 @@ public string MeasureName { get; set; } /// - /// 是否启用(不启用0,启用1) + /// 是否启用(不启用N,启用Y) /// [SugarColumn(ColumnName = "enable_flag")] - public string EnableFlag { get; set; } + public char EnableFlag { get; set; } /// /// 备注 diff --git a/ZR.Service/mes/md/IService/IMdBOMService.cs b/ZR.Service/mes/md/IService/IMdBOMService.cs index 38c5229b..532abcde 100644 --- a/ZR.Service/mes/md/IService/IMdBOMService.cs +++ b/ZR.Service/mes/md/IService/IMdBOMService.cs @@ -1,4 +1,5 @@ -using System; +using Microsoft.AspNetCore.Http; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -9,13 +10,16 @@ namespace ZR.Service.MES.md.IService { public interface IMdBOMService { - int AddWorkline(MdBom workline); + int AddBom(MdBom bomItem); public (int, List) GetAll(string productCode, string productName, int pageNum, int pageSize); - public int UpdateWorkline(MdBom workline); + public int UpdateBOM(MdBom mdBom); + + public int deleteBOM(int[] ids); + public List QueryBOM(string queryString); + + public List GetAllunitList(); - public int deleteWorkline(int[] ids); - } } diff --git a/ZR.Service/mes/md/MdBOMService.cs b/ZR.Service/mes/md/MdBOMService.cs index 80e9bb9f..f9695932 100644 --- a/ZR.Service/mes/md/MdBOMService.cs +++ b/ZR.Service/mes/md/MdBOMService.cs @@ -16,78 +16,84 @@ namespace ZR.Service.MES.md { [AppService(ServiceType = typeof(IMdBOMService), ServiceLifetime = LifeTime.Transient)] - public class MdBOMService : BaseService, IMdBOMService + public class MdBOMService : BaseService, IMdBOMService { - int IMdBOMService.AddWorkline(MdBom workline) + public int deleteBOM(int[] ids) { - throw new NotImplementedException(); + return Delete(ids); + } - int IMdBOMService.deleteWorkline(int[] ids) + public List GetAllunitList() { - throw new NotImplementedException(); + return Context.Queryable().Where(it=>it.EnableFlag=='Y').ToList(); } + public int UpdateBOM(MdBom mdBom) + { + return Context.Updateable(mdBom).WhereColumns(it => new {it.Id, it.ProductCode }).ExecuteCommand(); + } + + int IMdBOMService.AddBom(MdBom bom) + { + return Insert(bom); + } + + + (int, List) IMdBOMService.GetAll(string productCode, string productName, int pageNum, int pageSize) { int totalNum = 0; - if (string.IsNullOrEmpty(productCode) && string.IsNullOrEmpty(productName)) { - var data = Context.Queryable().ToPageList(pageNum, pageSize,ref totalNum); + List data = Context.Queryable().ToTree(it => it.Child, it => it.ParentProductId, null); + totalNum = data.Count(); + data = data.Skip(pageSize * (pageNum - 1)).Take(pageSize).ToList(); + + return (totalNum, data); + + } else { - //1. 查询本体 var predicate = Expressionable.Create() - .AndIF(!string.IsNullOrEmpty(productCode), it => it.ProductCode.Contains(productCode)) - .AndIF(!string.IsNullOrEmpty(productName), it => it.ProductName.Contains(productName)) - .ToExpression(); - List data = Context.Queryable().Where(predicate).ToList(); + .AndIF(!string.IsNullOrEmpty(productCode), it => it.ProductCode.Contains(productCode)) + .AndIF(!string.IsNullOrEmpty(productName), it => it.ProductName.Contains(productName)) + .And(it=>it.ParentProductId==null) + .ToExpression(); - //2. 查询儿子 - if (data != null & data.Count > 0) + List data = Context.Queryable().Where(predicate).ToList(); + totalNum = data.Count(); + List dataSons = new List(); + if (data != null && data.Count > 0) { - List data1 = new List(); - List data2 = new List(); foreach (var item in data) { - List dataItems = Context.Queryable().Where(it => it.ParentProductId == item.Id).ToList(); - data1.AddRange(dataItems); - dataItems.Clear(); - - // 3. 查询孙子 - if (data1 != null & data1.Count > 0) - { - foreach (var item1 in data1) - { - List dataItemss = Context.Queryable().Where(it1 => it1.ParentProductId == item1.Id).ToList(); - data2.AddRange(dataItemss); - dataItemss.Clear(); - } - } + List data1 = Context.Queryable().ToTree(it => it.Child, it => it.ParentProductId, item.Id); + item.Child=data1; } - - data.AddRange(data1); - data.AddRange(data2); - } - return (data.Count(),data); + data = data.Skip(pageSize * (pageNum - 1)).Take(pageSize).ToList(); + return (totalNum, data); + } - } - - - int IMdBOMService.UpdateWorkline(MdBom workline) + List IMdBOMService.QueryBOM(string queryString) { - throw new NotImplementedException(); + var predicate = Expressionable.Create() + .AndIF(!string.IsNullOrEmpty(queryString), it => it.ProductCode.Contains(queryString)) + .ToExpression(); + return Context.Queryable().Where(predicate).ToList(); } + + + } } diff --git a/ZR.Vue/src/api/basisManagement/bom.js b/ZR.Vue/src/api/basisManagement/bom.js index 2c6331fc..ae84dc5a 100644 --- a/ZR.Vue/src/api/basisManagement/bom.js +++ b/ZR.Vue/src/api/basisManagement/bom.js @@ -9,7 +9,15 @@ export function getBomList(query) { }) } -export function insertBom(data) { +export function getBOMQuery(query) { + return request({ + url: '/mes/md/bom/queryBOM', + method: 'get', + params: query, + }) + } + +export function insertbom(data) { return request({ url: '/mes/md/Bom/addBom', method: 'post', @@ -19,7 +27,7 @@ export function insertBom(data) { } -export function updateBom(data) { +export function updatebom(data) { return request({ url: '/mes/md/Bom/updateBom', method: 'post', @@ -29,7 +37,7 @@ export function updateBom(data) { } -export function delBom(data) { +export function delbom(data) { return request({ url: '/mes/md/Bom/delBom', method: 'post', @@ -38,11 +46,11 @@ export function delBom(data) { }) } -export function getWorkshopList(query) { +export function getunitList(query) { return request({ - url: '/mes/md/Bom/getWorkshopList', + url: '/mes/md/Bom/getunitList', method: 'get', params: query, }) - } +} \ No newline at end of file diff --git a/ZR.Vue/src/views/basisManagement/BOM.vue b/ZR.Vue/src/views/basisManagement/BOM.vue index 64fcd7c2..ce90a4d7 100644 --- a/ZR.Vue/src/views/basisManagement/BOM.vue +++ b/ZR.Vue/src/views/basisManagement/BOM.vue @@ -13,13 +13,19 @@
- - - - - - - - - - + - - + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +