维修管理

This commit is contained in:
2023-05-19 17:39:09 +08:00
parent 59769a91d5
commit 9b091e3a11
14 changed files with 858 additions and 413 deletions

View File

@@ -0,0 +1,58 @@
namespace Tnb.EquipMgr
{
/// <summary>
/// 设备维修状态
/// </summary>
public static class RepairApplyStatus
{
/// <summary>
/// 待执行
/// </summary>
public const string TOBEEXECUTED = "1";
/// <summary>
/// 待接收
/// </summary>
public const string TOBERECEIVED = "2";
/// <summary>
/// 已接收
/// </summary>
public const string RECEIVED = "3";
/// <summary>
/// 拒绝
/// </summary>
public const string REFUSE = "4";
/// <summary>
/// 已维修
/// </summary>
public const string REPAIRED = "5";
/// <summary>
/// 已完成
/// </summary>
public const string COMPLETED = "6";
/// <summary>
/// 外修申请待审批
/// </summary>
public const string OUTAPPLYAPPROVE = "7";
/// <summary>
/// 审批通过
/// </summary>
public const string APPROVEPASS = "8";
/// <summary>
/// 审批拒绝
/// </summary>
public const string APPROVENOTPASS = "9";
/// <summary>
/// 已关闭
/// </summary>
public const string CLOSE = "10";
/// <summary>
/// 已作废
/// </summary>
public const string REPEAL = "11";
/// <summary>
/// 申请外修
/// </summary>
public const string TOBEOUTAPPLY = "12";
}
}

View File

@@ -0,0 +1,21 @@
namespace Tnb.EquipMgr
{
/// <summary>
/// 设备维修状态
/// </summary>
public static class RepairOutApplyStatus
{
/// <summary>
/// 待审批
/// </summary>
public const string TOBEAPPROVE = "1";
/// <summary>
/// 退回
/// </summary>
public const string BACK = "2";
/// <summary>
/// 通过
/// </summary>
public const string PASS = "3";
}
}

View File

@@ -0,0 +1,52 @@
namespace Tnb.EquipMgr.Entities.Dto
{
public class RepairApplyRegisterInput
{
public string id { get; set; }
/// <summary>
/// 故障ID
/// </summary>
public string fault_id { get; set; }
/// <summary>
/// 是否完成
/// </summary>
public string? is_complete { get; set; }
/// <summary>
/// 完成时间
/// </summary>
public DateTime? complete_time { get; set; }
/// <summary>
/// 维修耗时
/// </summary>
public string? repair_take_time { get; set; }
/// <summary>
/// 是否停机
/// </summary>
public int? is_halt { get; set; }
/// <summary>
/// 停机时长
/// </summary>
public string? halt_take_time { get; set; }
/// <summary>
/// 维修描述
/// </summary>
public string? repair_description { get; set; }
/// <summary>
/// 附件
/// </summary>
public string? attachment { get; set; }
/// <summary>
/// 是否外修
/// </summary>
public int? is_out_apply { get; set; }
}
}

View File

@@ -0,0 +1,17 @@
namespace Tnb.EquipMgr.Entities.Dto
{
public class RepairDelayInput
{
public string repair_apply_id { get; set; }
public string equip_id { get; set; }
public string repair_request_sender_id { get; set; }
public string repair_sender_id { get; set; }
public DateTime expected_time { get; set; }
public string delay_reason { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
namespace Tnb.EquipMgr.Entities.Dto
{
public class RepairOutApplyInput
{
public string id { get; set; }
public string repair_apply_id { get; set; }
public string equip_id { get; set; }
public string? supplier_id { get; set; }
public decimal? estimated_cost { get; set; }
public string? construction_period_requirement { get; set; }
public string out_apply_reason { get; set; }
public string? remark { get; set; }
}
}

View File

@@ -1,420 +1,152 @@
using System;
using System.Linq;
using System.Text;
using JNPF.Common.Security;
using SqlSugar;
using Tnb.Common.Contracts;
namespace Tnb.EquipMgr.Entities
namespace Tnb.EquipMgr.Entities;
/// <summary>
/// 设备报修申请
/// </summary>
[SugarTable("eqp_repair_apply")]
public partial class EqpRepairApply : BaseEntity<string>
{
///<summary>
///TODO
///</summary>
[SugarTable("eqp_repair_apply")]
public partial class EqpRepairApply
public EqpRepairApply()
{
public EqpRepairApply(){
}
/// <summary>
/// Desc:创建时间
/// Default:
/// Nullable:False
/// </summary>
public DateTime create_time {get;set;}
/// <summary>
/// Desc:创建用户
/// Default:
/// Nullable:True
/// </summary>
public string? create_id {get;set;}
/// <summary>
/// Desc:修改时间
/// Default:
/// Nullable:True
/// </summary>
public DateTime? modify_time {get;set;}
/// <summary>
/// Desc:修改用户
/// Default:
/// Nullable:True
/// </summary>
public string? modify_id {get;set;}
/// <summary>
/// Desc:编号
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(IsPrimaryKey=true)]
public string id {get;set;} = SnowflakeIdHelper.NextId();
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? apply_code {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? apply_name {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? equip_id {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? apply_user_id {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? tel {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? fault_id {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public DateTime? expect_complete_time {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:False
/// </summary>
public int is_ugent {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? charge_user_id {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? fault_phenomenon {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:False
/// </summary>
public int status {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? reason {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? remark {get;set;}
/// <summary>
/// Desc:排序
/// Default:
/// Nullable:False
/// </summary>
public int ordinal {get;set;}
/// <summary>
/// Desc:是否启用
/// Default:
/// Nullable:False
/// </summary>
public int enabled {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? extend01 {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? extend02 {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? extend03 {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? extend04 {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? extend05 {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? extend06 {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? extend07 {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? extend08 {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? extend09 {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? extend10 {get;set;}
/// <summary>
/// Desc:删除用户
/// Default:
/// Nullable:True
/// </summary>
public string? delete_id {get;set;}
/// <summary>
/// Desc:删除时间
/// Default:
/// Nullable:True
/// </summary>
public DateTime? delete_time {get;set;}
/// <summary>
/// Desc:删除标志
/// Default:
/// Nullable:False
/// </summary>
public short deleted {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? closing_remark {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? invalid_remark {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public int? professional_choice {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? address {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? instructions {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public DateTime? start_date {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? use_department_id {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:False
/// </summary>
public int is_equip {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public DateTime? reject_time {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? reject_user_id {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? reject_user_name {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? shift_remarks {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public DateTime? shift_time {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? shift_user_id {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? shift_user_name {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public int? is_send {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public DateTime? send_date_time {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public int? is_msg_send {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public DateTime? to_received_time {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public DateTime? to_repair_time {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public int? is_untreated_send {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public DateTime? send_reive_date_time {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public DateTime? send_untreated_date_time {get;set;}
/// <summary>
/// Desc:TODO
/// Default:
/// Nullable:True
/// </summary>
public string? section_id {get;set;}
id = SnowflakeIdHelper.NextId();
}
/// <summary>
/// 创建时间
/// </summary>
public DateTime? create_time { get; set; }
/// <summary>
/// 创建用户
/// </summary>
public string? create_id { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? modify_time { get; set; }
/// <summary>
/// 修改用户
/// </summary>
public string? modify_id { get; set; }
/// <summary>
/// 申请编码
/// </summary>
public string? code { get; set; }
/// <summary>
/// 申请名称
/// </summary>
public string? name { get; set; }
/// <summary>
/// 设备ID
/// </summary>
public string? equip_id { get; set; }
/// <summary>
/// 申请用户ID
/// </summary>
public string? apply_user_id { get; set; }
/// <summary>
/// 故障ID
/// </summary>
public string? fault_id { get; set; }
/// <summary>
/// 期望完成时间
/// </summary>
public DateTime? expect_complete_time { get; set; }
/// <summary>
/// 是否紧急
/// </summary>
public int? is_ugent { get; set; }
/// <summary>
/// 现象描述
/// </summary>
public string? description { get; set; }
/// <summary>
/// 状态
/// </summary>
public string status { get; set; } = string.Empty;
/// <summary>
/// 原因
/// </summary>
public string? reason { get; set; }
/// <summary>
/// 备注
/// </summary>
public string? remark { get; set; }
/// <summary>
/// 是否启用
/// </summary>
public int? enabled { get; set; }
/// <summary>
/// 所属组织
/// </summary>
public string? org_id { get; set; }
/// <summary>
/// 是否外修
/// </summary>
public int? is_out_apply { get; set; }
/// <summary>
/// 安装位置
/// </summary>
public string? installation_position { get; set; }
/// <summary>
/// 是否完成
/// </summary>
public string? is_complete { get; set; }
/// <summary>
/// 完成时间
/// </summary>
public DateTime? complete_time { get; set; }
/// <summary>
/// 维修耗时
/// </summary>
public string? repair_take_time { get; set; }
/// <summary>
/// 是否停机
/// </summary>
public int? is_halt { get; set; }
/// <summary>
/// 停机时长
/// </summary>
public string? halt_take_time { get; set; }
/// <summary>
/// 维修描述
/// </summary>
public string? repair_description { get; set; }
/// <summary>
/// 维修人id/责任人id
/// </summary>
public string? repairer_id { get; set; }
/// <summary>
/// 附件
/// </summary>
public string? attachment { get; set; }
}

View File

@@ -0,0 +1,83 @@
using System;
using System.Linq;
using System.Text;
using JNPF.Common.Security;
using SqlSugar;
namespace Tnb.EquipMgr.Entities
{
///<summary>
///设备延期
///</summary>
[SugarTable("eqp_repair_delay")]
public partial class EqpRepairDelay
{
public EqpRepairDelay()
{
}
/// <summary>
/// Desc:主键
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(IsPrimaryKey = true)]
public string id { get; set; } = SnowflakeIdHelper.NextId();
/// <summary>
/// Desc:设备id
/// Default:
/// Nullable:False
/// </summary>
public string equip_id { get; set; } = string.Empty;
/// <summary>
/// Desc:报修id
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string? repair_apply_id { get; set; }
/// <summary>
/// Desc:报修抄送人员id
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string? repair_request_sender_id { get; set; }
/// <summary>
/// Desc:维修抄送人员id
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string? repair_sender_id { get; set; }
/// <summary>
/// Desc:预期维修时间
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public DateTime expected_time { get; set; }
/// <summary>
/// Desc:延期原因
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string delay_reason { get; set; }
/// <summary>
/// Desc:创建用户
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string? create_id { get; set; }
/// <summary>
/// Desc:创建时间
/// Default:
/// Nullable:True
/// </summary>
public DateTime? create_time { get; set; }
}
}

View File

@@ -0,0 +1,117 @@
using Tnb.Common.Contracts;
using JNPF.Common.Security;
using SqlSugar;
namespace Tnb.EquipMgr.Entities;
/// <summary>
/// 设备外修申请表
/// </summary>
[SugarTable("eqp_repair_out_apply")]
public partial class EqpRepairOutApply : BaseEntity<string>
{
public EqpRepairOutApply()
{
id = SnowflakeIdHelper.NextId();
}
/// <summary>
/// 设备id
/// </summary>
public string equip_id { get; set; } = string.Empty;
/// <summary>
/// 报修id
/// </summary>
public string repair_apply_id { get; set; } = string.Empty;
/// <summary>
/// 供应商
/// </summary>
public string? supplier_id { get; set; }
/// <summary>
/// 预估费用
/// </summary>
public decimal? estimated_cost { get; set; }
/// <summary>
/// 费用
/// </summary>
public decimal? cost { get; set; }
/// <summary>
/// 工期要求
/// </summary>
public string? construction_period_requirement { get; set; }
/// <summary>
/// 外修理由
/// </summary>
public string? out_apply_reason { get; set; }
/// <summary>
/// 外修备注
/// </summary>
public string? remark { get; set; }
/// <summary>
/// 审批状态 0待审批 1 退回 2 通过
/// </summary>
public string? approve_status { get; set; }
/// <summary>
/// 修复时间
/// </summary>
public DateTime? repair_time { get; set; }
/// <summary>
/// 维修耗时
/// </summary>
public decimal? repair_take_time { get; set; }
/// <summary>
/// 维修备注
/// </summary>
public string? repair_remark { get; set; }
/// <summary>
/// 登记备注
/// </summary>
public string? register_remark { get; set; }
/// <summary>
/// 创建用户
/// </summary>
public string? create_id { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? create_time { get; set; }
/// <summary>
/// 修改用户
/// </summary>
public string? modify_id { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? modify_time { get; set; }
/// <summary>
/// 审批人id
/// </summary>
public string? approve_id { get; set; }
/// <summary>
/// 审批时间
/// </summary>
public DateTime? approve_time { get; set; }
/// <summary>
/// 所属组织
/// </summary>
public string? org_id { get; set; }
}

View File

@@ -0,0 +1,52 @@
using Tnb.EquipMgr.Entities;
using Tnb.EquipMgr.Entities.Dto;
namespace Tnb.EquipMgr.Interfaces
{
public interface IEqpRepairApplyService
{
/// <summary>
/// 维修作废
/// </summary>
/// <param name="dic"></param>
public Task<string> Repeal(Dictionary<string,string> dic);
/// <summary>
/// 维修关闭
/// </summary>
/// <param name="dic"></param>
public Task<string> Close(Dictionary<string,string> dic);
/// <summary>
/// 维修指派
/// </summary>
/// <param name="dic"></param>
public Task<string> Assign(Dictionary<string,string> dic);
/// <summary>
/// 维修接收
/// </summary>
/// <param name="dic"></param>
public Task<string> Receive(Dictionary<string,string> dic);
/// <summary>
/// 维修拒绝
/// </summary>
/// <param name="dic"></param>
public Task<string> Refuse(Dictionary<string,string> dic);
/// <summary>
/// 维修信息
/// </summary>
/// <param name="dic"></param>
public Task<EqpRepairApply> GetInfo(Dictionary<string,string> dic);
/// <summary>
/// 维修登记
/// </summary>
/// <param name="dic"></param>
public Task<string> Register(RepairApplyRegisterInput input);
}
}

View File

@@ -0,0 +1,14 @@
using Tnb.EquipMgr.Entities.Dto;
namespace Tnb.EquipMgr.Interfaces
{
public interface IEqpRepairDelayService
{
/// <summary>
/// 维修延期
/// </summary>
/// <param name="dic"></param>
public Task<string> Delay(RepairDelayInput input);
}
}

View File

@@ -0,0 +1,16 @@
using Tnb.EquipMgr.Entities;
using Tnb.EquipMgr.Entities.Dto;
namespace Tnb.EquipMgr.Interfaces
{
public interface IEqpRepairOutApplyService
{
/// <summary>
/// 外修申请
/// </summary>
/// <param name="dic"></param>
public Task<string> OutApply(RepairOutApplyInput input);
}
}

View File

@@ -0,0 +1,118 @@
using JNPF.Common.Core.Manager;
using JNPF.Common.Enums;
using JNPF.Common.Security;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.FriendlyException;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using Tnb.EquipMgr.Entities;
using Tnb.EquipMgr.Entities.Dto;
using Tnb.EquipMgr.Interfaces;
namespace Tnb.EquipMgr
{
/// <summary>
/// 设备维修延期
/// </summary>
[ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)]
[Route("api/[area]/[controller]/[action]")]
public class EqpRepairApplyService : IEqpRepairApplyService, IDynamicApiController, ITransient
{
private readonly ISqlSugarRepository<EqpRepairApply> _repository;
private readonly IUserManager _userManager;
public EqpRepairApplyService(ISqlSugarRepository<EqpRepairApply> repository,
IUserManager userManager)
{
_repository = repository;
_userManager = userManager;
}
[HttpPost]
public async Task<string> Repeal(Dictionary<string, string> dic)
{
string id = dic["id"];
await _repository.UpdateAsync(x => new EqpRepairApply()
{
status = RepairApplyStatus.REPEAL
}, x => x.id == id);
return "作废成功";
}
[HttpPost]
public async Task<string> Close(Dictionary<string, string> dic)
{
string id = dic["id"];
await _repository.UpdateAsync(x => new EqpRepairApply()
{
status = RepairApplyStatus.CLOSE
}, x => x.id == id);
return "关闭成功";
}
[HttpPost]
public async Task<string> Assign(Dictionary<string, string> dic)
{
string id = dic["id"];
string repairerId = dic["repairerId"];
await _repository.UpdateAsync(x => new EqpRepairApply()
{
repairer_id = repairerId,
status = RepairApplyStatus.TOBERECEIVED,
}, x => x.id == id);
return "指派成功";
}
[HttpPost]
public async Task<string> Receive(Dictionary<string, string> dic)
{
string id = dic["id"];
await _repository.UpdateAsync(x => new EqpRepairApply()
{
status = RepairApplyStatus.RECEIVED,
}, x => x.id == id);
return "接收成功";
}
[HttpPost]
public async Task<string> Refuse(Dictionary<string, string> dic)
{
string id = dic["id"];
await _repository.UpdateAsync(x => new EqpRepairApply()
{
status = RepairApplyStatus.REFUSE,
}, x => x.id == id);
return "拒绝成功";
}
[HttpPost]
public async Task<EqpRepairApply> GetInfo(Dictionary<string, string> dic)
{
string id = dic["id"];
return await _repository.GetSingleAsync(x => x.id == id);
}
[HttpPost]
public async Task<string> Register(RepairApplyRegisterInput input)
{
string status = input.is_out_apply==1 ? RepairApplyStatus.TOBEOUTAPPLY : RepairApplyStatus.COMPLETED;
await _repository.UpdateAsync(x => new EqpRepairApply()
{
fault_id = input.fault_id,
is_complete = input.is_complete,
complete_time = input.complete_time,
repair_take_time = input.repair_take_time,
is_halt = input.is_halt,
halt_take_time = input.halt_take_time,
repair_description = input.repair_description,
attachment = input.attachment,
is_out_apply = input.is_out_apply,
status = status,
}, x => x.id == input.id);
return "登记成功";
}
}
}

View File

@@ -0,0 +1,68 @@
using JNPF.Common.Core.Manager;
using JNPF.Common.Enums;
using JNPF.Common.Security;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.FriendlyException;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using Tnb.EquipMgr.Entities;
using Tnb.EquipMgr.Entities.Dto;
using Tnb.EquipMgr.Interfaces;
namespace Tnb.EquipMgr
{
/// <summary>
/// 设备维修延期
/// </summary>
[ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)]
[Route("api/[area]/[controller]/[action]")]
public class EqpRepairDelayService : IEqpRepairDelayService, IDynamicApiController, ITransient
{
private readonly ISqlSugarRepository<EqpRepairDelay> _repository;
private readonly IUserManager _userManager;
public EqpRepairDelayService(ISqlSugarRepository<EqpRepairDelay> repository,
IUserManager userManager)
{
_repository = repository;
_userManager = userManager;
}
/// <summary>
/// 维修延期
/// </summary>
/// <param name="dic"></param>
[HttpPost]
public async Task<string> Delay(RepairDelayInput input)
{
DbResult<bool> result = await _repository.AsSugarClient().Ado.UseTranAsync(async () =>
{
EqpRepairApply eqpRepairApply = await _repository.AsSugarClient().Queryable<EqpRepairApply>().SingleAsync(x => x.id == input.repair_apply_id);
EqpRepairDelay repairDelay = new EqpRepairDelay()
{
id = SnowflakeIdHelper.NextId(),
equip_id = eqpRepairApply.equip_id,
repair_apply_id = input.repair_apply_id,
delay_reason = input.delay_reason,
expected_time = input.expected_time,
repair_request_sender_id = input.repair_request_sender_id,
repair_sender_id = input.repair_request_sender_id,
create_id = _userManager.UserId,
create_time = DateTime.Now,
};
await _repository.InsertAsync(repairDelay);
await _repository.AsSugarClient().Updateable<EqpRepairApply>()
.SetColumns(x => x.expect_complete_time == input.expected_time)
.Where(x => x.id == input.repair_apply_id).ExecuteCommandAsync();
});
if(!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008);
return result.IsSuccess ? "延期成功" : result.ErrorMessage;
}
}
}

View File

@@ -0,0 +1,82 @@
using JNPF.Common.Core.Manager;
using JNPF.Common.Enums;
using JNPF.Common.Security;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.FriendlyException;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using Tnb.EquipMgr.Entities;
using Tnb.EquipMgr.Entities.Dto;
using Tnb.EquipMgr.Interfaces;
namespace Tnb.EquipMgr
{
/// <summary>
/// 设备维修延期
/// </summary>
[ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)]
[Route("api/[area]/[controller]/[action]")]
public class EqpRepairOutApplyService : IEqpRepairOutApplyService, IDynamicApiController, ITransient
{
private readonly ISqlSugarRepository<EqpRepairOutApply> _repository;
private readonly IUserManager _userManager;
public EqpRepairOutApplyService(ISqlSugarRepository<EqpRepairOutApply> repository,
IUserManager userManager)
{
_repository = repository;
_userManager = userManager;
}
public async Task<string> OutApply(RepairOutApplyInput input)
{
var db = _repository.AsSugarClient();
DbResult<bool> result = await db.Ado.UseTranAsync(async () =>
{
if (string.IsNullOrEmpty(input.id))
{
await _repository.InsertAsync(new EqpRepairOutApply
{
id = SnowflakeIdHelper.NextId(),
repair_apply_id = input.repair_apply_id,
equip_id = input.equip_id,
supplier_id = input.supplier_id,
estimated_cost = input.estimated_cost,
construction_period_requirement = input.construction_period_requirement,
out_apply_reason = input.out_apply_reason,
remark = input.remark,
create_id = _userManager.UserId,
create_time = DateTime.Now,
approve_status = RepairOutApplyStatus.TOBEAPPROVE,
});
}
else
{
await _repository.UpdateAsync(x=>new EqpRepairOutApply
{
repair_apply_id = input.repair_apply_id,
equip_id = input.equip_id,
supplier_id = input.supplier_id,
estimated_cost = input.estimated_cost,
construction_period_requirement = input.construction_period_requirement,
out_apply_reason = input.out_apply_reason,
remark = input.remark,
create_id = _userManager.UserId,
create_time = DateTime.Now,
approve_status = RepairOutApplyStatus.TOBEAPPROVE,
},x=>x.id==input.id);
}
await db.Updateable<EqpRepairApply>()
.SetColumns(x=>x.status == RepairApplyStatus.OUTAPPLYAPPROVE)
.Where(x=>x.id==input.repair_apply_id).ExecuteCommandAsync();
});
if(!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008);
return result.IsSuccess ? "操作成功" : result.ErrorMessage;
}
}
}