From ae41b9b78ba38a2ef1256592eb186a0c4045aac0 Mon Sep 17 00:00:00 2001 From: zhoukeda <1315948824@qq.com> Date: Wed, 24 May 2023 11:52:47 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=A4=96=E4=BF=AE=E7=99=BB?= =?UTF-8?q?=E8=AE=B0=20=E6=B5=81=E7=A8=8B=E8=BF=98=E4=B8=8D=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E9=80=80=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dto/RepairApplyOutRegisterInput.cs | 42 ++++++++ .../Entity/EqpRepairApply.cs | 2 +- .../Entity/EqpRepairOutApply.cs | 22 +++++ .../Entity/EqpSpotInsItem.cs | 2 +- .../IEqpRepairOutApplyService.cs | 12 +++ .../Tnb.EquipMgr/EqpRepairOutApplyService.cs | 97 ++++++++++++++++--- .../Tnb.EquipMgr/EquSpotInsRecordService.cs | 2 +- .../Manager/User/UserManager.cs | 13 ++- .../Tnb.WorkFlow/Service/FlowTaskService.cs | 1 + 9 files changed, 175 insertions(+), 18 deletions(-) create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Dto/RepairApplyOutRegisterInput.cs diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/RepairApplyOutRegisterInput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/RepairApplyOutRegisterInput.cs new file mode 100644 index 00000000..22d61759 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/RepairApplyOutRegisterInput.cs @@ -0,0 +1,42 @@ +namespace Tnb.EquipMgr.Entities.Dto +{ + public class RepairApplyOutRegisterInput + { + public string id { get; set; } + + /// + /// 实际维修供应商id + /// + public string? real_supplier_id { get; set; } + + /// + /// 附件 + /// + public string? attachment { get; set; } + + /// + /// 费用 + /// + public decimal? cost { get; set; } + + /// + /// 修复时间 + /// + public DateTime? repair_time { get; set; } + + /// + /// 维修耗时 + /// + public decimal? repair_take_time { get; set; } + + /// + /// 维修备注 + /// + public string? repair_remark { get; set; } + + /// + /// 报修申请id + /// + public string repair_apply_id { get; set; } + } +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpRepairApply.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpRepairApply.cs index 874ef15f..96668b36 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpRepairApply.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpRepairApply.cs @@ -47,7 +47,7 @@ public partial class EqpRepairApply : BaseEntity /// /// 设备ID /// - public string? equip_id { get; set; } + public string equip_id { get; set; } /// /// 申请用户ID diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpRepairOutApply.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpRepairOutApply.cs index f8aca2cc..adc2cfe6 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpRepairOutApply.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpRepairOutApply.cs @@ -113,5 +113,27 @@ public partial class EqpRepairOutApply : BaseEntity /// 所属组织 /// public string? org_id { get; set; } + + /// + /// 附件 + /// + public string? attachment { get; set; } + + /// + /// 实际维修供应商 + /// + public string? real_supplier_id { get; set; } + + /// + /// 流程id + /// + [SugarColumn(ColumnName = "f_flowid")] + public string? flow_id { get; set; } + + /// + /// 流程任务id + /// + [SugarColumn(ColumnName = "f_flowtaskid")] + public string? flow_task_id { get; set; } } diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsItem.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsItem.cs index 086cad89..35deb165 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsItem.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/EqpSpotInsItem.cs @@ -82,7 +82,7 @@ public partial class EqpSpotInsItem : BaseEntity /// /// 单位id /// - public string unit_id { get; set; } = string.Empty; + public string? unit_id { get; set; } = string.Empty; /// /// 点巡检方法 diff --git a/EquipMgr/Tnb.EquipMgr.Interfaces/IEqpRepairOutApplyService.cs b/EquipMgr/Tnb.EquipMgr.Interfaces/IEqpRepairOutApplyService.cs index 8416d5f7..5e3b57dd 100644 --- a/EquipMgr/Tnb.EquipMgr.Interfaces/IEqpRepairOutApplyService.cs +++ b/EquipMgr/Tnb.EquipMgr.Interfaces/IEqpRepairOutApplyService.cs @@ -6,11 +6,23 @@ namespace Tnb.EquipMgr.Interfaces public interface IEqpRepairOutApplyService { + /// + /// 获取外修申请信息 + /// + /// + public Task GetInfo(Dictionary dic); + /// /// 外修申请 /// /// public Task OutApply(RepairOutApplyInput input); + /// + /// 外修登记 + /// + /// + public Task Register(RepairApplyOutRegisterInput input); + } } \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr/EqpRepairOutApplyService.cs b/EquipMgr/Tnb.EquipMgr/EqpRepairOutApplyService.cs index 02b29e68..0707afa3 100644 --- a/EquipMgr/Tnb.EquipMgr/EqpRepairOutApplyService.cs +++ b/EquipMgr/Tnb.EquipMgr/EqpRepairOutApplyService.cs @@ -1,10 +1,13 @@ using JNPF.Common.Core.Manager; using JNPF.Common.Enums; +using JNPF.Common.Models.WorkFlow; using JNPF.Common.Security; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.FriendlyException; +using JNPF.WorkFlow.Interfaces.Service; using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json.Linq; using SqlSugar; using Tnb.EquipMgr.Entities; using Tnb.EquipMgr.Entities.Dto; @@ -21,36 +24,50 @@ namespace Tnb.EquipMgr { private readonly ISqlSugarRepository _repository; private readonly IUserManager _userManager; + private readonly IFlowTaskService _flowTaskService; + private const string flowId = "26299060075302"; public EqpRepairOutApplyService(ISqlSugarRepository repository, + IFlowTaskService flowTaskService, IUserManager userManager) { _repository = repository; _userManager = userManager; + _flowTaskService = flowTaskService; } + [HttpPost] + public async Task GetInfo(Dictionary dic) + { + string id = dic["id"]; + EqpRepairApply eqpRepairApply = await _repository.AsSugarClient().Queryable().SingleAsync(x => x.id == id); + return await _repository.GetSingleAsync(x => x.repair_apply_id==eqpRepairApply.id); + } + + [HttpPost] public async Task OutApply(RepairOutApplyInput input) { var db = _repository.AsSugarClient(); + string id = string.IsNullOrEmpty(input.id) ? SnowflakeIdHelper.NextId() : input.id; DbResult 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, - }); + // await _repository.InsertAsync(new EqpRepairOutApply + // { + // id = id, + // 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 { @@ -73,10 +90,62 @@ namespace Tnb.EquipMgr .SetColumns(x=>x.status == RepairApplyStatus.OUTAPPLYAPPROVE) .Where(x=>x.id==input.repair_apply_id).ExecuteCommandAsync(); + + }); if(!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); + + //todo 退回流程 + if (result.IsSuccess) + { + _flowTaskService.Create(new FlowTaskSubmitModel() + { + flowId = flowId, + parentId = "0", + formData = new JObject() + { + {"id",id}, + {"repair_apply_id",input.repair_apply_id}, + {"equip_id",input.equip_id}, + {"create_id",_userManager.UserId}, + {"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}, + {"approve_status",RepairOutApplyStatus.TOBEAPPROVE}, + } + + }); + } return result.IsSuccess ? "操作成功" : result.ErrorMessage; } + + [HttpPost] + public async Task Register(RepairApplyOutRegisterInput input) + { + + var db = _repository.AsSugarClient(); + DbResult result = await db.Ado.UseTranAsync(async () => + { + await _repository.UpdateAsync(x => new EqpRepairOutApply() + { + real_supplier_id = input.real_supplier_id, + cost = input.cost, + repair_time = input.repair_time, + repair_take_time = input.repair_take_time, + repair_remark = input.repair_remark, + attachment = input.attachment, + }, x => x.id == input.id); + + await db.Updateable().SetColumns(x => x.status == RepairApplyStatus.COMPLETED) + .Where(x => x.id == input.repair_apply_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/EquSpotInsRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs index d7fc7a2f..cf3a76aa 100644 --- a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs +++ b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs @@ -121,7 +121,7 @@ namespace Tnb.EquipMgr { repeat_result = input.repeat_result, repeat_remark = input.repeat_remark, - repeat_post_info_user_id = _userManager.UserId, + repeat_user_id = _userManager.UserId, repeat_time = DateTime.Now, status = SpotInsRecordExecutionStatus.COMPLETED }, x => x.id == input.id); diff --git a/common/Tnb.Common.Core/Manager/User/UserManager.cs b/common/Tnb.Common.Core/Manager/User/UserManager.cs index 9f19adae..0d8f67ac 100644 --- a/common/Tnb.Common.Core/Manager/User/UserManager.cs +++ b/common/Tnb.Common.Core/Manager/User/UserManager.cs @@ -193,7 +193,18 @@ public class UserManager : IUserManager, IScoped /// public string UserOrigin { - get => _httpContext?.Request.Headers["jnpf-origin"]; + //modifyby zhoukeda 调用发起工作流接口取不到pc还是app 改成默认pc + get + { + try + { + return _httpContext?.Request.Headers["jnpf-origin"] ?? "pc"; + } + catch (Exception e) + { + return "pc"; + } + } } /// diff --git a/workflow/Tnb.WorkFlow/Service/FlowTaskService.cs b/workflow/Tnb.WorkFlow/Service/FlowTaskService.cs index 262df2ba..ce7fdec1 100644 --- a/workflow/Tnb.WorkFlow/Service/FlowTaskService.cs +++ b/workflow/Tnb.WorkFlow/Service/FlowTaskService.cs @@ -6,6 +6,7 @@ using JNPF.FriendlyException; using JNPF.WorkFlow.Entitys.Model; using JNPF.WorkFlow.Interfaces.Manager; using JNPF.WorkFlow.Interfaces.Service; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace JNPF.WorkFlow.Service;