From dace6212de59f23d9d551a6710874984a2066c9a Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Fri, 7 Jul 2023 14:49:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E5=85=B7=E9=A2=86=E7=94=A8=E5=BD=92?= =?UTF-8?q?=E8=BF=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Consts/DictConst.cs | 26 ++++ .../Dto/ToolMoldRequisitionListOutput.cs | 15 +++ .../Entity/ToolMoldRequisition.cs | 97 +++++++++++++++ .../Entity/ToolMoldReturn.cs | 87 +++++++++++++ .../IToolMoldRequisitionService.cs | 10 ++ .../IToolMoldReturnService.cs | 9 ++ .../ToolMoldRequisitionService.cs | 116 ++++++++++++++++++ .../Tnb.EquipMgr/ToolMoldReturnService.cs | 67 ++++++++++ 8 files changed, 427 insertions(+) create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Dto/ToolMoldRequisitionListOutput.cs create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldRequisition.cs create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldReturn.cs create mode 100644 EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldRequisitionService.cs create mode 100644 EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldReturnService.cs create mode 100644 EquipMgr/Tnb.EquipMgr/ToolMoldRequisitionService.cs create mode 100644 EquipMgr/Tnb.EquipMgr/ToolMoldReturnService.cs diff --git a/BasicData/Tnb.BasicData.Entities/Consts/DictConst.cs b/BasicData/Tnb.BasicData.Entities/Consts/DictConst.cs index ab870c7d..bbd98d72 100644 --- a/BasicData/Tnb.BasicData.Entities/Consts/DictConst.cs +++ b/BasicData/Tnb.BasicData.Entities/Consts/DictConst.cs @@ -129,5 +129,31 @@ public static class DictConst /// 保养状态待保养Code /// public const string UnMaintainStatusCode = "UnMaintain"; + /// + /// 模具在库TypeId + /// + public const string ZKTypeId = "26149307089941"; + /// + /// 模具生产TypeId + /// + public const string SCTypeId = "26149309121045"; + /// + /// 模具保养TypeId + /// + public const string BYTypeId = "26149311082005"; + /// + /// 模具报废TypeId + /// + public const string BFTypeId = "26149314425877"; + /// + /// 模具外协TypeId + /// + public const string WXXTypeId = "26149312750101"; + /// + /// 模具维修TypeId + /// + public const string WXTypeId = "26149320818965"; + + #endregion } \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/ToolMoldRequisitionListOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/ToolMoldRequisitionListOutput.cs new file mode 100644 index 00000000..45545fb1 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/ToolMoldRequisitionListOutput.cs @@ -0,0 +1,15 @@ +namespace Tnb.EquipMgr.Entities.Dto +{ + public class ToolMoldRequisitionListOutput + { + public string id { get; set; } + public string? code { get; set; } = string.Empty; + public string? mold_id { get; set; } = string.Empty; + public string? mo_task_id { get; set; } = string.Empty; + public string? equip_id { get; set; } = string.Empty; + public string? recipient_id { get; set; } = string.Empty; + public string? estimated_return_time { get; set; } = string.Empty; + public string? requisition_time { get; set; } = string.Empty; + public string? remark { get; set; } = string.Empty; + } +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldRequisition.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldRequisition.cs new file mode 100644 index 00000000..f977b131 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldRequisition.cs @@ -0,0 +1,97 @@ +using JNPF.Common.Contracts; +using JNPF.Common.Security; +using SqlSugar; + +namespace Tnb.EquipMgr.Entities; + +/// +/// 模具领用 +/// +[SugarTable("tool_mold_requisition")] +public partial class ToolMoldRequisition : BaseEntity +{ + public ToolMoldRequisition() + { + id = SnowflakeIdHelper.NextId(); + } + /// + /// 领用编号 + /// + public string? code { get; set; } + + /// + /// 模具ID + /// + public string? mold_id { get; set; } + + /// + /// 领用人 + /// + public string? recipient_id { get; set; } + + /// + /// 创建用户 + /// + public string? create_id { get; set; } + + /// + /// 创建时间 + /// + public DateTime? create_time { get; set; } + + /// + /// 修改用户 + /// + public string? modify_id { get; set; } + + /// + /// 修改时间 + /// + public DateTime? modify_time { get; set; } + + /// + /// 生产任务单编号 + /// + public string? mo_task_code { get; set; } + + /// + /// 生产任务单id + /// + public string? mo_task_id { get; set; } + + /// + /// 预计归还日期 + /// + public DateTime? estimated_return_time { get; set; } + + /// + /// 所属组织 + /// + public string? org_id { get; set; } + + /// + /// 领用时间 + /// + public DateTime? requisition_time { get; set; } + + /// + /// 用于设备 + /// + public string? equip_id { get; set; } + + /// + /// 流程任务Id + /// + public string? f_flowtaskid { get; set; } + + /// + /// 流程引擎Id + /// + public string? f_flowid { get; set; } + + /// + /// 备注 + /// + public string? remark { get; set; } + +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldReturn.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldReturn.cs new file mode 100644 index 00000000..d8ef0ab1 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldReturn.cs @@ -0,0 +1,87 @@ +using JNPF.Common.Contracts; +using JNPF.Common.Security; +using SqlSugar; + +namespace Tnb.EquipMgr.Entities; + +/// +/// 模具归还 +/// +[SugarTable("tool_mold_return")] +public partial class ToolMoldReturn : BaseEntity +{ + public ToolMoldReturn() + { + id = SnowflakeIdHelper.NextId(); + } + /// + /// 归还编号 + /// + public string? code { get; set; } + + /// + /// 模具ID + /// + public string? mold_id { get; set; } + + /// + /// 归还人 + /// + public string? return_id { get; set; } + + /// + /// 创建用户 + /// + public string? create_id { get; set; } + + /// + /// 创建时间 + /// + public DateTime? create_time { get; set; } + + /// + /// 修改用户 + /// + public string? modify_id { get; set; } + + /// + /// 修改时间 + /// + public DateTime? modify_time { get; set; } + + /// + /// 所属组织 + /// + public string? org_id { get; set; } + + /// + /// 归还时间 + /// + public DateTime? return_time { get; set; } + + /// + /// 用于设备 + /// + public string? equip_id { get; set; } + + /// + /// 流程任务Id + /// + public string? f_flowtaskid { get; set; } + + /// + /// 流程引擎Id + /// + public string? f_flowid { get; set; } + + /// + /// 备注 + /// + public string? remark { get; set; } + + /// + /// 归还库位id + /// + public string? location_id { get; set; } + +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldRequisitionService.cs b/EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldRequisitionService.cs new file mode 100644 index 00000000..15fbd54c --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldRequisitionService.cs @@ -0,0 +1,10 @@ +namespace Tnb.EquipMgr.Interfaces +{ + /// + /// 模具领用服务 + /// + public interface IToolMoldRequisitionService + { + + } +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldReturnService.cs b/EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldReturnService.cs new file mode 100644 index 00000000..0f9485db --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldReturnService.cs @@ -0,0 +1,9 @@ +namespace Tnb.EquipMgr.Interfaces +{ + /// + /// 模具归还服务 + /// + public interface IToolMoldReturnService + { + } +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr/ToolMoldRequisitionService.cs b/EquipMgr/Tnb.EquipMgr/ToolMoldRequisitionService.cs new file mode 100644 index 00000000..6b8b554e --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr/ToolMoldRequisitionService.cs @@ -0,0 +1,116 @@ +using JNPF.Common.Dtos.VisualDev; +using JNPF.Common.Enums; +using JNPF.Common.Extension; +using JNPF.Common.Filter; +using JNPF.Common.Security; +using JNPF.DependencyInjection; +using JNPF.DynamicApiController; +using JNPF.FriendlyException; +using JNPF.Systems.Entitys.Permission; +using JNPF.VisualDev; +using JNPF.VisualDev.Entitys; +using JNPF.VisualDev.Entitys.Dto.VisualDevModelData; +using JNPF.VisualDev.Interfaces; +using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json; +using SqlSugar; +using Tnb.EquipMgr.Entities; +using Tnb.EquipMgr.Entities.Dto; +using Tnb.EquipMgr.Interfaces; +using Tnb.ProductionMgr.Entities; + +namespace Tnb.EquipMgr +{ + /// + /// 模具领用接口 + /// + [ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)] + [Route("api/[area]/[controller]/[action]")] + [OverideVisualDev(ModuleId)] + public class ToolMoldRequisitionService : IOverideVisualDevService, IToolMoldRequisitionService, + IDynamicApiController, ITransient + { + private const string ModuleId = "27254745336853"; + private readonly ISqlSugarClient _db; + private readonly IRunService _runService; + private readonly IVisualDevService _visualDevService; + public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); + + public ToolMoldRequisitionService( + ISqlSugarRepository repository, + IRunService runService, + IVisualDevService visualDevService + ) + { + _db = repository.AsSugarClient(); + _runService = runService; + _visualDevService = visualDevService; + OverideFuncs.GetListAsync = GetList; + OverideFuncs.CreateAsync = Create; + } + + private async Task GetList(VisualDevModelListQueryInput input) + { + Dictionary? queryJson = new Dictionary(); + string requisitionCode = ""; + DateTime[] requisitionTimeArr = null; + DateTime[] estimatedReturnArr = null; + if (input!=null && !string.IsNullOrEmpty(input.queryJson)) + { + queryJson = JsonConvert.DeserializeObject>(input?.queryJson ?? ""); + } + + if (queryJson.TryGetValue("requisition_code", out var value)) + { + requisitionCode = value.ToString(); + } + if (queryJson.TryGetValue("requisition_time", out var value1)) + { + requisitionTimeArr = value1.ToObject().Select(x=>DateTimeOffset.FromUnixTimeSeconds(x/1000).ToLocalTime().DateTime).ToArray(); + } + if (queryJson.TryGetValue("estimated_return_time", out var value2)) + { + estimatedReturnArr = value2.ToObject().Select(x=>DateTimeOffset.FromUnixTimeSeconds(x/1000).ToLocalTime().DateTime).ToArray(); + } + + var result = await _db.Queryable() + .LeftJoin((a, b) => a.mo_task_id == b.id) + .LeftJoin((a, b, c) => a.equip_id == c.id) + .LeftJoin((a, b, c, d) => a.recipient_id == d.Id) + .LeftJoin((a,b,c,d,e)=>a.mold_id==e.id) + .WhereIF(!string.IsNullOrEmpty(requisitionCode), (a, b, c, d) => a.code.Contains(requisitionCode)) + .WhereIF(requisitionTimeArr!=null, (a, b, c, d) => a.requisition_time>=requisitionTimeArr[0] && a.requisition_time<=requisitionTimeArr[1]) + .WhereIF(estimatedReturnArr!=null, (a, b, c, d) => a.estimated_return_time>=estimatedReturnArr[0] && a.estimated_return_time<=estimatedReturnArr[1]) + .Select((a, b, c, d,e) => new ToolMoldRequisitionListOutput + { + id = a.id, + code = a.code, + mold_id = e.mold_code, + mo_task_id = b.mo_task_code, + equip_id = c.code+"/"+c.name, + recipient_id = d.RealName, + estimated_return_time = a.estimated_return_time==null ? "" : a.estimated_return_time.Value.ToString("yyyy-MM-dd"), + requisition_time = a.requisition_time==null ? "" : a.requisition_time.Value.ToString("yyyy-MM-dd"), + remark = a.remark + }).ToPagedListAsync(input.currentPage, input.pageSize); + + return PageResult.SqlSugarPageResult(result); + } + + private async Task Create(VisualDevModelDataCrInput input) + { + DbResult result = await _db.Ado.UseTranAsync(async () => + { + VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true); + await _runService.Create(templateEntity, input); + + + await _db.Updateable().SetColumns(x => x.mold_status == Tnb.BasicData.DictConst.SCTypeId) + .Where(X => X.id == input.data["mold_id"]).ExecuteCommandAsync(); + }); + + if (!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); + return result.IsSuccess ? "保存成功" : result.ErrorMessage; + } + } +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr/ToolMoldReturnService.cs b/EquipMgr/Tnb.EquipMgr/ToolMoldReturnService.cs new file mode 100644 index 00000000..9f64db8e --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr/ToolMoldReturnService.cs @@ -0,0 +1,67 @@ +using JNPF.Common.Dtos.VisualDev; +using JNPF.Common.Enums; +using JNPF.DependencyInjection; +using JNPF.DynamicApiController; +using JNPF.FriendlyException; +using JNPF.VisualDev; +using JNPF.VisualDev.Entitys; +using JNPF.VisualDev.Interfaces; +using Microsoft.AspNetCore.Mvc; +using SqlSugar; +using Tnb.EquipMgr.Entities; +using Tnb.EquipMgr.Entities.Dto; +using Tnb.EquipMgr.Interfaces; +using Tnb.ProductionMgr.Entities; + +namespace Tnb.EquipMgr +{ + /// + /// 模具归还接口 + /// + [ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)] + [Route("api/[area]/[controller]/[action]")] + [OverideVisualDev(ModuleId)] + public class ToolMoldReturnService : IOverideVisualDevService, IToolMoldReturnService,IDynamicApiController, ITransient + { + private const string ModuleId = "27275901607701"; + private readonly ISqlSugarClient _db; + private readonly IRunService _runService; + private readonly IVisualDevService _visualDevService; + public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); + + public ToolMoldReturnService( + ISqlSugarRepository repository, + IRunService runService, + IVisualDevService visualDevService + ) + { + _db = repository.AsSugarClient(); + _runService = runService; + _visualDevService = visualDevService; + OverideFuncs.CreateAsync = Create; + } + + private async Task Create(VisualDevModelDataCrInput input) + { + DbResult result = await _db.Ado.UseTranAsync(async () => + { + VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true); + await _runService.Create(templateEntity, input); + + + string locationId = ""; + if (input.data.TryGetValue("location_id", out var value)) + { + locationId = value.ToString(); + } + await _db.Updateable() + .SetColumns(x => x.mold_status == Tnb.BasicData.DictConst.ZKTypeId) + .SetColumnsIF(!string.IsNullOrEmpty(locationId),x=>x.location_id==locationId) + .Where(X => X.id == input.data["mold_id"]).ExecuteCommandAsync(); + }); + + if (!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); + return result.IsSuccess ? "保存成功" : result.ErrorMessage; + } + } +} \ No newline at end of file