From 0c963aa354bf13b977238497b45baf25069867d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B5=87=E6=96=87=E9=BE=99?= Date: Wed, 28 Aug 2024 19:57:05 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=A4=8D=E5=88=9B=E5=BB=BA=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Op/Method/TaskInteraction/TaskService.cs | 186 +++++++++--------- .../DS.WMS.OpApi/DS.WMS.OpApi.csproj.user | 2 +- 2 files changed, 95 insertions(+), 93 deletions(-) diff --git a/ds-wms-service/DS.WMS.Core/Op/Method/TaskInteraction/TaskService.cs b/ds-wms-service/DS.WMS.Core/Op/Method/TaskInteraction/TaskService.cs index 933e1d3f..e7a84a7b 100644 --- a/ds-wms-service/DS.WMS.Core/Op/Method/TaskInteraction/TaskService.cs +++ b/ds-wms-service/DS.WMS.Core/Op/Method/TaskInteraction/TaskService.cs @@ -130,7 +130,6 @@ namespace DS.WMS.Core.Op.Method.TaskInteraction TenantDb.QueryFilter.Clear(); } - /// /// 创建关联任务 /// @@ -154,106 +153,116 @@ namespace DS.WMS.Core.Op.Method.TaskInteraction if (task != null && task.TaskStatus != TaskStatusEnum.Cancel) return DataResult.FailedWithDesc(nameof(MultiLanguageConst.TaskExists)); + DataResult result = DataResult.Success; if (request.TaskType == TaskBaseTypeEnum.WAIT_ORDER_AUDIT) { - var result = await CheckRulesAsync(request.BusinessId, request.BusinessType.Value, RuleEngineType.COMMON_ORDER_AUDIT); + result = await CheckRulesAsync(request.BusinessId, request.BusinessType.Value, RuleEngineType.COMMON_ORDER_AUDIT); if (!result.Succeeded) return result; } - long tenatId = long.Parse(User.TenantId); - string tenatName = Db.Queryable().Where(x => x.Id == tenatId).Select(x => x.Name).First(); - var info = new TaskManageOrderMessageInfo + if (useTransaction) + await TenantDb.Ado.BeginTranAsync(); + try { - Head = new TaskManageOrderMessageHeadInfo - { - GID = Guid.NewGuid().ToString(), - BSNO = request.BusinessId, - MessageType = "WORK_FLOW_TASK", - SenderId = "WorkFlow", - SenderName = "工作流平台", - ReceiverId = "TaskManage", - ReceiverName = "任务管理平台", - Version = "1.0", - RequestDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), - RequestAction = "Add" - }, - Main = new TaskManageOrderMessageMainInfo + if (task == null) { - TaskType = request.TaskType, - TaskSource = TaskSourceEnum.WORK_FLOW, - TaskTitle = request.TaskTitle, - TaskDesp = request.TaskDescription, - TaskUserId = User.UserId, - TaskUserName = User.UserName, - TaskTenatId = tenatId, - TaskTenatName = tenatName, - IsCheckExistsByTaskType = true - } - }; + long tenatId = long.Parse(User.TenantId); + string tenatName = Db.Queryable().Where(x => x.Id == tenatId).Select(x => x.Name).First(); + var info = new TaskManageOrderMessageInfo + { + Head = new TaskManageOrderMessageHeadInfo + { + GID = Guid.NewGuid().ToString(), + BSNO = request.BusinessId, + MessageType = "WORK_FLOW_TASK", + SenderId = "WorkFlow", + SenderName = "工作流平台", + ReceiverId = "TaskManage", + ReceiverName = "任务管理平台", + Version = "1.0", + RequestDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), + RequestAction = "Add" + }, + Main = new TaskManageOrderMessageMainInfo + { + TaskType = request.TaskType, + TaskSource = TaskSourceEnum.WORK_FLOW, + TaskTitle = request.TaskTitle, + TaskDesp = request.TaskDescription, + TaskUserId = User.UserId, + TaskUserName = User.UserName, + TaskTenatId = tenatId, + TaskTenatName = tenatName, + IsCheckExistsByTaskType = true + } + }; - if ((request.RecvUserIdList == null || request.RecvUserIdList.Length == 0) && IsOrderType(request.TaskType)) - { - //根据配置获取默认接收人 - info.Main.RecvUserInfoList = await GetRecvUsersAsync(request.BusinessId, request.BusinessType, request.TaskType); - } - else if (AuditTaskTypes.Contains(request.TaskType)) - { - //审核类型默认为提交人,生成工作流后替换为工作流执行人 - info.Main.RecvUserInfoList = await FillInUserInfoAsync(long.Parse(User.UserId)); - } - else - { - info.Main.RecvUserInfoList = await FillInUserInfoAsync(request.RecvUserIdList); - } + if ((request.RecvUserIdList == null || request.RecvUserIdList.Length == 0) && IsOrderType(request.TaskType)) + { + //根据配置获取默认接收人 + info.Main.RecvUserInfoList = await GetRecvUsersAsync(request.BusinessId, request.BusinessType, request.TaskType); + } + else if (AuditTaskTypes.Contains(request.TaskType)) + { + //审核类型默认为提交人,生成工作流后替换为工作流执行人 + info.Main.RecvUserInfoList = await FillInUserInfoAsync(long.Parse(User.UserId)); + } + else + { + info.Main.RecvUserInfoList = await FillInUserInfoAsync(request.RecvUserIdList); + } - if (info.Main.RecvUserInfoList == null || info.Main.RecvUserInfoList.Count == 0) - return DataResult.FailedWithDesc(nameof(MultiLanguageConst.TaskReceiverNotFound)); + if (info.Main.RecvUserInfoList == null || info.Main.RecvUserInfoList.Count == 0) + return DataResult.FailedWithDesc(nameof(MultiLanguageConst.TaskReceiverNotFound)); - //仅为业务订单任务自动填充任务标题/描述 - if (info.Main.TaskTitle.IsNullOrEmpty() && IsOrderType(request.TaskType)) - { - var biz = await TenantDb.Queryable().Select(x => new - { - x.Id, - x.CustomerNo, - x.MBLNO, - x.Vessel, - x.Voyno, - x.ETD, - }).FirstAsync(x => x.Id == request.BusinessId); - - info.Main.TaskTitle = $"【{request.TaskType.GetDescription()}】{biz?.CustomerNo} {biz?.Vessel} {biz?.Voyno} ETD:{biz?.ETD?.ToString("yyyy-MM-dd")}"; - info.Main.MBlNo = biz?.MBLNO; - info.Main.CUSTOMNER_NO = biz?.CustomerNo; - } - info.Main.TaskDesp = info.Main.TaskDesp ?? info.Main.TaskTitle; + //仅为业务订单任务自动填充任务标题/描述 + if (info.Main.TaskTitle.IsNullOrEmpty() && IsOrderType(request.TaskType)) + { + var biz = await TenantDb.Queryable().Select(x => new + { + x.Id, + x.CustomerNo, + x.MBLNO, + x.Vessel, + x.Voyno, + x.ETD, + }).FirstAsync(x => x.Id == request.BusinessId); + + info.Main.TaskTitle = $"【{request.TaskType.GetDescription()}】{biz?.CustomerNo} {biz?.Vessel} {biz?.Voyno} ETD:{biz?.ETD?.ToString("yyyy-MM-dd")}"; + info.Main.MBlNo = biz?.MBLNO; + info.Main.CUSTOMNER_NO = biz?.CustomerNo; + } + info.Main.TaskDesp = info.Main.TaskDesp ?? info.Main.TaskTitle; - if (useTransaction) - await TenantDb.Ado.BeginTranAsync(); + result = await ManagerService.InitTaskJob(info); + if (!result.Succeeded) + return result; - try - { - DataResult result = await ManagerService.InitTaskJob(info); - if (!result.Succeeded) - return result; + task = new BusinessTask + { + BusinessId = request.BusinessId, + BusinessType = request.BusinessType, + TaskType = request.TaskType, + TaskStatus = TaskStatusEnum.Create, + RecvUsers = string.Join(',', info.Main.RecvUserInfoList.Select(x => x.RecvUserId)), + NextType = request.NextType, + CreateBy = long.Parse(User.UserId), + CreateTime = DateTime.Now + }; - task = new BusinessTask - { - BusinessId = request.BusinessId, - BusinessType = request.BusinessType, - TaskType = request.TaskType, - TaskStatus = TaskStatusEnum.Create, - RecvUsers = string.Join(',', info.Main.RecvUserInfoList.Select(x => x.RecvUserId)), - NextType = request.NextType, - CreateBy = long.Parse(User.UserId), - CreateTime = DateTime.Now - }; + if (IsOrderType(request.TaskType) && !task.NextType.HasValue) + task.NextType = await GetNextTypeAsync(task); - if (IsOrderType(request.TaskType) && !task.NextType.HasValue) - task.NextType = await GetNextTypeAsync(task); + await TenantDb.Insertable(task).ExecuteCommandAsync(); - await TenantDb.Insertable(task).ExecuteCommandAsync(); + result = await OnTaskCreated(task); + if (!result.Succeeded) + return result; + + //记录日志 + await LogService.WriteLogAsync(task); + } //审核任务需创建工作流 if (AuditTaskTypes.Contains(request.TaskType)) @@ -263,13 +272,6 @@ namespace DS.WMS.Core.Op.Method.TaskInteraction return result; } - result = await OnTaskCreated(task); - if (!result.Succeeded) - return result; - - //记录日志 - await LogService.WriteLogAsync(task); - if (useTransaction) await TenantDb.Ado.CommitTranAsync(); diff --git a/ds-wms-service/DS.WMS.OpApi/DS.WMS.OpApi.csproj.user b/ds-wms-service/DS.WMS.OpApi/DS.WMS.OpApi.csproj.user index 99e0fcb6..fb7be066 100644 --- a/ds-wms-service/DS.WMS.OpApi/DS.WMS.OpApi.csproj.user +++ b/ds-wms-service/DS.WMS.OpApi/DS.WMS.OpApi.csproj.user @@ -1,7 +1,7 @@  - D:\Code\DS\ds8-solution-pro\ds-wms-service\DS.WMS.OpApi\Properties\PublishProfiles\FolderProfile.pubxml + D:\Source\Repos\DS8\ds-wms-service\DS.WMS.OpApi\Properties\PublishProfiles\FolderProfile.pubxml MvcControllerEmptyScaffolder root/Common/MVC/Controller