From 6990b921fa807d4d490c5f396cff6e63803d0096 Mon Sep 17 00:00:00 2001 From: yanghongwei Date: Sun, 26 May 2024 00:58:35 +0800 Subject: [PATCH] =?UTF-8?q?=20=E5=B7=A5=E5=BA=8F=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=8C=E5=8F=B0=E8=B4=A6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- langguanApi.xml | 213 +++++++++++++++++- langguanApi/Controllers/LedgerController.cs | 44 ++++ .../Controllers/OrganizedController.cs | 75 ++++++ langguanApi/Model/Device.cs | 4 + langguanApi/Model/Entity/Ledger.cs | 54 +++++ langguanApi/Model/Organized.cs | 31 ++- langguanApi/Service/DeviceService.cs | 13 ++ langguanApi/Service/LedgerService.cs | 71 ++++++ langguanApi/Service/OrganizedService.cs | 97 ++++++++ langguanApi/langguanApi.csproj | 1 + 10 files changed, 601 insertions(+), 2 deletions(-) create mode 100644 langguanApi/Controllers/LedgerController.cs create mode 100644 langguanApi/Controllers/OrganizedController.cs create mode 100644 langguanApi/Model/Entity/Ledger.cs create mode 100644 langguanApi/Service/LedgerService.cs create mode 100644 langguanApi/Service/OrganizedService.cs diff --git a/langguanApi.xml b/langguanApi.xml index 263c3e1..4451b9b 100644 --- a/langguanApi.xml +++ b/langguanApi.xml @@ -120,6 +120,63 @@ + + + 台账相关接口 + + + + + Get all ledgers + + + + + + Export all ledgers + + + + + + + + 组织的工序 + + + + + 添加组织工序 + + + + + + + 删除工序 + + + + + + + 更新工序信息 + + + + + + + 获取组织工序和设备信息 + + + + + + 获取组织工序信息 + + + 清洁运输 @@ -470,6 +527,11 @@ 设备信息 + + + 所属组织ID + + HJ212_2017 @@ -544,6 +606,61 @@ id + + + 台账 + + + + + 进场日期 + + + + + 出场日期 + + + + + 车型 + + + + + 是否是新能源车 + + + + + 国几排放量 + + + + + 进场日期 + + + + + 出场日期 + + + + + 车型 + + + + + 是否是新能源车 + + + + + 国几排放量 + + 用户实体 @@ -748,7 +865,7 @@ - 名称 + 工序名称 @@ -761,6 +878,31 @@ 排序 大在前,小在后 + + + 名称 + + + + + 1,有组织;2,无组织 + + + + + 排序 大在前,小在后 + + + + + 工序id + + + + + 设备列表 + + 拆分包及应答标志 @@ -1159,6 +1301,13 @@ + + + 通过orgid获取设备信息 + + + + 分页取数据 @@ -1298,6 +1447,68 @@ + + + 新增数据 + + + + + + + 导出数据 + + + + + + + + 分页取数据 + + + + + + + OrganizedService + + + + + Add 工序 + + + + + + + Update + + + + + + + Delete + + + + + + + ListAndDevice + + 1,有组织,2无组织 + + + + + List + + 1,有组织,2无组织 + + ping service diff --git a/langguanApi/Controllers/LedgerController.cs b/langguanApi/Controllers/LedgerController.cs new file mode 100644 index 0000000..422766a --- /dev/null +++ b/langguanApi/Controllers/LedgerController.cs @@ -0,0 +1,44 @@ +using langguanApi.Model; +using langguanApi.Service; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using System.IO; + +namespace langguanApi.Controllers +{ + /// + /// 台账相关接口 + /// + [Route("api/[controller]")] + [ApiController] + public class LedgerController : ControllerBase + { + private readonly LedgerService _ledgerService; + public LedgerController(LedgerService ledgerService) + { + _ledgerService = ledgerService; + } + /// + /// Get all ledgers + /// + /// + [HttpGet("list")] + public async Task list([FromQuery]reqpage input) + { + var result = await _ledgerService.GetPage(input); + return Ok(result); + } + /// + /// Export all ledgers + /// + /// + /// + /// + [HttpGet("export")] + public async Task Export(DateTime start, DateTime end) + { + var result = await _ledgerService.Export(start, end); + return File(result, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "台账.xlsx"); + } + } +} diff --git a/langguanApi/Controllers/OrganizedController.cs b/langguanApi/Controllers/OrganizedController.cs new file mode 100644 index 0000000..af4e64e --- /dev/null +++ b/langguanApi/Controllers/OrganizedController.cs @@ -0,0 +1,75 @@ +using langguanApi.Model; +using langguanApi.Service; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; + +namespace langguanApi.Controllers +{ + /// + /// 组织的工序 + /// + [Route("api/[controller]")] + [ApiController] + public class OrganizedController : ControllerBase + { + private readonly OrganizedService _organizedService; + + public OrganizedController(OrganizedService organizedService) + { + _organizedService = organizedService; + } + /// + /// 添加组织工序 + /// + /// + /// + [HttpPost("add")] + public async Task Add(OrganizedDto input) + { + var result = await _organizedService.Add(input); + return Ok(result); + } + /// + /// 删除工序 + /// + /// + /// + [HttpDelete("remove")] + public async Task Remove(IEnumerable ids) + { + var result = await _organizedService.Delete(ids); + return Ok(result); + } + /// + /// 更新工序信息 + /// + /// + /// + [HttpPut("update")] + public async Task Update(OrganizedUpdateDto input) + { + var result = await _organizedService.Update(input); + return Ok(result); + } + /// + /// 获取组织工序和设备信息 + /// + /// + [HttpGet("listanddevice")] + public async Task ListAndDevice(int OrganizedType = 1) + { + var result = await _organizedService.ListAndDevice(OrganizedType); + return Ok(result); + } + /// + /// 获取组织工序信息 + /// + /// + [HttpGet("list")] + public async Task List(int OrganizedType = 1) + { + var result = await _organizedService.List(OrganizedType); + return Ok(result); + } + } +} diff --git a/langguanApi/Model/Device.cs b/langguanApi/Model/Device.cs index 7081959..589908b 100644 --- a/langguanApi/Model/Device.cs +++ b/langguanApi/Model/Device.cs @@ -13,5 +13,9 @@ public string desricption { get; set; } public int state { get; set; } public string NickName { get; set; } + /// + /// 所属组织ID + /// + public string OrgId { get; set; } } } diff --git a/langguanApi/Model/Entity/Ledger.cs b/langguanApi/Model/Entity/Ledger.cs new file mode 100644 index 0000000..9004e2e --- /dev/null +++ b/langguanApi/Model/Entity/Ledger.cs @@ -0,0 +1,54 @@ +namespace langguanApi.Model.Entity +{ + /// + /// 台账 + /// + public class Ledger : BaseModel + { + public string CarNum { get; set; } + /// + /// 进场日期 + /// + public DateTime InTime { get; set; } + /// + /// 出场日期 + /// + public DateTime OutTime { get; set; } + /// + /// 车型 + /// + public string CarModel { get; set; } + /// + /// 是否是新能源车 + /// + public bool NewCar { get; set; } + /// + /// 国几排放量 + /// + public string Emissions { get; set; } + } + public class LedgerDTO + { + public string CarNum { get; set; } + /// + /// 进场日期 + /// + public DateTime InTime { get; set; } + /// + /// 出场日期 + /// + public DateTime OutTime { get; set; } + /// + /// 车型 + /// + public string CarModel { get; set; } + /// + /// 是否是新能源车 + /// + public bool NewCar { get; set; } + /// + /// 国几排放量 + /// + public string Emissions { get; set; } + } +} diff --git a/langguanApi/Model/Organized.cs b/langguanApi/Model/Organized.cs index 5119b06..828003c 100644 --- a/langguanApi/Model/Organized.cs +++ b/langguanApi/Model/Organized.cs @@ -6,7 +6,7 @@ public class Organized : BaseModel { /// - /// 名称 + /// 工序名称 /// public string Name { get; set; } /// @@ -18,4 +18,33 @@ /// public int Order { get; set; } } + public class OrganizedDto + { + /// + /// 名称 + /// + public string Name { get; set; } + /// + /// 1,有组织;2,无组织 + /// + public int OrganizedType { get; set; } = 1; + /// + /// 排序 大在前,小在后 + /// + public int Order { get; set; } + } + public class OrganizedUpdateDto : OrganizedDto + { + /// + /// 工序id + /// + public string Id { get; set; } + } + public class OrganizedByDeviceDto: Organized + { + /// + /// 设备列表 + /// + public ListItems { get; set; } + } } diff --git a/langguanApi/Service/DeviceService.cs b/langguanApi/Service/DeviceService.cs index 8cea275..83c9eff 100644 --- a/langguanApi/Service/DeviceService.cs +++ b/langguanApi/Service/DeviceService.cs @@ -80,6 +80,19 @@ namespace langguanApi.Service return (await base.GetListWithExp(exp)).FirstOrDefault(); } + /// + /// 通过orgid获取设备信息 + /// + /// + /// + public async Task> GetDeviceByOrgids(IEnumerable ids) + { + Expression> exp = filter => ids.Contains(filter.OrgId) && filter.IsDelete == false; + var list = (await base.GetListWithExp(exp)).ToList(); + return list; + } + + /// /// 分页取数据 diff --git a/langguanApi/Service/LedgerService.cs b/langguanApi/Service/LedgerService.cs new file mode 100644 index 0000000..f167882 --- /dev/null +++ b/langguanApi/Service/LedgerService.cs @@ -0,0 +1,71 @@ +using langguanApi.Extensions.AutoDI; +using langguanApi.Model; +using langguanApi.Model.Entity; +using Mapster; +using MathNet.Numerics.Distributions; +using Npoi.Mapper; +using Org.BouncyCastle.Asn1.IsisMtt.X509; +using System.Linq.Expressions; + +namespace langguanApi.Service +{ + [ServiceInjection(InjectionType.Transient)] + /// + /// Ledger service + /// + public class LedgerService : BaseService + { + public LedgerService(IConfiguration config) : base(config, nameof(Ledger)) + { + } + /// + /// 新增数据 + /// + /// + /// + public async Task AddLedger(LedgerDTO input) + { + var enity = input.Adapt(); + await base.CreateAsync(enity); + } + /// + /// 导出数据 + /// + /// + /// + /// + public async Task Export(DateTime start, DateTime end) + { + Expression> exp = filter => + filter.CreateDateTime >= start && filter.CreateDateTime <= end && filter.IsDelete == false; + var list = await base.GetListWithExp(exp); + var mapper = new Mapper(); + mapper.Map("进场时间", s => s.InTime) + .Map("车牌号", s => s.CarNum) + .Map("车型", s => s.CarModel) + .Map("新能源", s => s.NewCar ? "是" : "否") + .Map("燃油车", s => s.Emissions) + .Map("出厂日间 ", s => s.OutTime) + .Format("yyyy-MM-dd HH:mm:ss", s => s.InTime) + .Format("yyyy-MM-dd HH:mm:ss", s => s.OutTime); + MemoryStream stream = new MemoryStream(); + mapper.Save(stream, list.ToList(), sheetName: "sheet1", leaveOpen: true); + return stream.ToArray(); + } + + /// + /// 分页取数据 + /// + /// + /// + public async Task GetPage(reqpage input) + { + Expression> exp = filter => filter.IsDelete == false; + return await base.GetPager(new ReqPaing() + { + pageSize = input.pageSize, + current = input.current + }, exp); + } + } +} diff --git a/langguanApi/Service/OrganizedService.cs b/langguanApi/Service/OrganizedService.cs new file mode 100644 index 0000000..da0410c --- /dev/null +++ b/langguanApi/Service/OrganizedService.cs @@ -0,0 +1,97 @@ +using langguanApi.Extensions.AutoDI; +using langguanApi.Model; +using Mapster; +using System.Linq.Expressions; + +namespace langguanApi.Service +{ + /// + /// OrganizedService + /// + [ServiceInjection(InjectionType.Transient)] + public class OrganizedService : BaseService + { + private readonly DeviceService _deviceService; + public OrganizedService(IConfiguration config, DeviceService device) : base(config, nameof(Organized)) + { + _deviceService = device; + } + /// + /// Add 工序 + /// + /// + /// + public async Task Add(OrganizedDto input) + { + var entity = input.Adapt(); + await CreateAsync(entity); + return new ApiResult() { code = 0 }; + } + /// + /// Update + /// + /// + /// + public async Task Update(OrganizedUpdateDto input) + { + var entity = input.Adapt(); + await UpdateAsync(input.Id, entity); + return new ApiResult() { code = 0 }; + } + /// + /// Delete + /// + /// + /// + public async Task Delete(IEnumerable ids) + { + if (ids.Any()) + { + foreach (var id in ids) + { + await RemoveAsync(id); + } + } + else + { + return new ApiResult() { code = 1, msg = "请选择要删除的记录" }; + } + return new ApiResult() { code = 0 }; + } + /// + /// ListAndDevice + /// + /// 1,有组织,2无组织 + /// + public async Task ListAndDevice(int OrganizedType = 1) + { + Expression> exp = filter => filter.OrganizedType == OrganizedType && filter.IsDelete == false; + var result = (await base.GetListWithExp(exp)).OrderByDescending(x => x.Order).ToList(); + List list = new List(); + var devices = await _deviceService.GetDeviceByOrgids(result.Select(s => s.Id)); + foreach (var item in result) + { + list.Add(new OrganizedByDeviceDto + { + Items = devices.Where(s => s.OrgId == item.Id).ToList(), + Order = item.Order, + Name = item.Name, + OrganizedType = item.OrganizedType, + Id = item.Id + }); + } + return new ApiResult() { code = 0, data = list }; + } + /// + /// List + /// + /// 1,有组织,2无组织 + /// + public async Task List(int OrganizedType = 1) + { + Expression> exp = filter => filter.OrganizedType == OrganizedType && filter.IsDelete == false; + var result = (await base.GetListWithExp(exp)).OrderByDescending(x => x.Order).ToList(); + return new ApiResult() { code = 0, data = result }; + } + } +} diff --git a/langguanApi/langguanApi.csproj b/langguanApi/langguanApi.csproj index a0c71bc..ec7e81a 100644 --- a/langguanApi/langguanApi.csproj +++ b/langguanApi/langguanApi.csproj @@ -21,6 +21,7 @@ +