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