Quellcode durchsuchen

Merge branch 'test' of http://110.188.24.182:10023/Fengwo/hotline into test

田爽 vor 3 Wochen
Ursprung
Commit
34e1ceb0cf

Datei-Diff unterdrückt, da er zu groß ist
+ 307 - 119
src/Hotline.Api/Controllers/OrderController.cs


+ 4 - 4
src/Hotline.Api/Controllers/TestController.cs

@@ -1538,9 +1538,9 @@ public class TestController : BaseController
         return ipv4;
     }
 
-    public string DecryptSign(string sign)
-    {
-        return sign;
-    }
+    //public string DecryptSign(string sign)
+    //{
+    //    return sign;
+    //}
 }
 

+ 2 - 2
src/Hotline.Application/CallCenter/DefaultCallApplication.cs

@@ -404,8 +404,8 @@ public abstract class DefaultCallApplication : ICallApplication
     {
         return _telOperationRepository.Queryable()
             .Where(m => m.OperateStateText != "未知")
-            .WhereIF(!string.IsNullOrEmpty(dto.UserName), d => d.UserName == dto.UserName)
-            .WhereIF(!string.IsNullOrEmpty(dto.StaffNo), d => d.StaffNo == dto.StaffNo)
+            .WhereIF(!string.IsNullOrEmpty(dto.UserName), d => d.UserName.Contains(dto.UserName))
+            .WhereIF(!string.IsNullOrEmpty(dto.StaffNo), d => d.StaffNo.Contains(dto.StaffNo))
             .WhereIF(!string.IsNullOrEmpty(dto.GroupId), d => d.GroupId == dto.GroupId)
             .WhereIF(dto.TelNo != null, d => d.TelNo.Contains(dto.TelNo))
             .WhereIF(dto.OperateState != null, d => d.OperateState == dto.OperateState)

+ 1 - 0
src/Hotline.Application/FlowEngine/IWorkflowApplication.cs

@@ -90,6 +90,7 @@ namespace Hotline.Application.FlowEngine
         /// 查询指定节点的下一步待选节点
         /// </summary>
         Task<NextStepsWithOpinionDto<NextStepOption>> GetNextStepsAsync(string workflowId, string stepId, CancellationToken cancellationToken);
+        Task<NextStepsWithOpinionDto<NextStepOption>> GetNextStepsAsync(Workflow workflow, CancellationToken cancellationToken);
 
         /// <summary>
         /// 跨级指派查询下一步可选节点及办理对象参数

+ 13 - 2
src/Hotline.Application/FlowEngine/WorkflowApplication.cs

@@ -203,7 +203,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
         CancellationToken cancellationToken = default)
     {
         var validator = new StartWorkflowDtoValidator();
-        var validResult = await validator.ValidateAsync(dto, cancellationToken);
+        var validResult = validator.Validate(dto);
         if (!validResult.IsValid)
             throw new UserFriendlyException(
                 $"非法参数, {string.Join(',', validResult.Errors.Select(d => d.ErrorMessage))}");
@@ -550,6 +550,17 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
 
         return await GetNextStepsAsync(workflow, currentStep, cancellationToken);
     }
+    
+    public async Task<NextStepsWithOpinionDto<NextStepOption>> GetNextStepsAsync(Workflow workflow, CancellationToken cancellationToken)
+    {
+        var currentStep = _workflowDomainService.FindCurrentStepWaitForHandle(workflow,
+            _sessionContext.RequiredUserId, _sessionContext.RequiredOrgId,
+            _sessionContext.Roles);
+        if (currentStep.StepType is EStepType.End)
+            throw new UserFriendlyException("结束节点无需办理");
+
+        return await GetNextStepsAsync(workflow, currentStep, cancellationToken);
+    }
 
     /// <summary>
     /// 跨级指派查询下一步可选节点及办理对象参数
@@ -640,7 +651,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
             CurrentOrgLevel = string.IsNullOrEmpty(currentStep.HandlerOrgId) ? null : currentStep.HandlerOrgId.CalcOrgLevel(),
             Opinion = currentStep.Opinion,
         };
-
+        
         var currentStepDefine = _workflowDomainService.GetStepDefine(workflow.WorkflowDefinition, currentStep.Code);
 
         if (currentStep.InstanceMode is EInstanceMode.Dynamic &&

+ 1 - 0
src/Hotline.Application/Handlers/FlowEngine/CancelHandler.cs

@@ -32,6 +32,7 @@ public class CancelHandler : INotificationHandler<CancelWorkflowNotify>
         switch (workflow.ModuleCode)
         {
             case WorkflowModuleConsts.OrderHandle:
+            case WorkflowModuleConsts.OrderHandleSnapshot:
                 var order = await _orderDomainService.GetOrderAsync(workflow.ExternalId, cancellationToken: cancellationToken);
                 order.CheckIfFiled();
                 order.Cancel();

+ 16 - 15
src/Hotline.Application/Handlers/FlowEngine/WorkflowEndHandler.cs

@@ -122,6 +122,7 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
                     await _telDomainService.TelRestApplyPassAsync(workflow.ExternalId, cancellationToken);
                     break;
                 case WorkflowModuleConsts.OrderHandle:
+                case WorkflowModuleConsts.OrderHandleSnapshot:
                     var order = await _orderDomainService.GetOrderAsync(workflow.ExternalId,
                         withExtension: true, cancellationToken: cancellationToken);
                     //order.CheckIfFiled();
@@ -315,21 +316,21 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
                     // await _enforcementApplication.AddPassTheBuckOrderAsync(order, _sessionContext.OrgId, _sessionContext.OrgName, cancellationToken);
                     break;
                 case WorkflowModuleConsts.OrderDelay:
-                    var delay = await _orderDelayRepository.GetAsync(workflow.ExternalId, cancellationToken);
-                    if (delay != null)
-                    {
-                        //delay.Flowed(workflow.FlowedUserIds, workflow.FlowedOrgIds, workflow.HandlerUsers, workflow.HandlerOrgs);
-                        delay.DelayState = isReviewPass ? EDelayState.Pass : EDelayState.NoPass;
-                        await _orderDelayRepository.Updateable(delay)
-                            .UpdateColumns(d => d.DelayState)
-                            .ExecuteCommandAsync(cancellationToken);
-                        if (isReviewPass)
-                        {
-                            //处理工单延期
-                            await _orderApplication.DelayOrderExpiredTimeAsync(delay.OrderId, delay.DelayNum,
-                                delay.DelayUnit, delay.IsProDelay, cancellationToken);
-                        }
-                    }
+                    // var delay = await _orderDelayRepository.GetAsync(workflow.ExternalId, cancellationToken);
+                    // if (delay != null)
+                    // {
+                    //     //delay.Flowed(workflow.FlowedUserIds, workflow.FlowedOrgIds, workflow.HandlerUsers, workflow.HandlerOrgs);
+                    //     delay.DelayState = isReviewPass ? EDelayState.Pass : EDelayState.NoPass;
+                    //     await _orderDelayRepository.Updateable(delay)
+                    //         .UpdateColumns(d => d.DelayState)
+                    //         .ExecuteCommandAsync(cancellationToken);
+                    //     if (isReviewPass)
+                    //     {
+                    //         //处理工单延期
+                    //         await _orderApplication.DelayOrderExpiredTimeAsync(delay.OrderId, delay.DelayNum,
+                    //             delay.DelayUnit, delay.IsProDelay, cancellationToken);
+                    //     }
+                    // }
                     break;
                 case WorkflowModuleConsts.OrderTerminate:
                     var orderTerminate = await _orderTerminateRepository.Queryable()

+ 1 - 0
src/Hotline.Application/Handlers/FlowEngine/WorkflowNextHandler.cs

@@ -113,6 +113,7 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
             switch (workflow.ModuleCode)
             {
                 case WorkflowModuleConsts.OrderHandle:
+                case WorkflowModuleConsts.OrderHandleSnapshot:
                     var order = await _orderDomainService.GetOrderAsync(workflow.ExternalId, withHotspot: true,
                         withAcceptor: true, withExtension: true, cancellationToken: cancellationToken);
                     order.CheckIfFiled();

+ 1 - 0
src/Hotline.Application/Handlers/FlowEngine/WorkflowPreviousHandler.cs

@@ -96,6 +96,7 @@ namespace Hotline.Application.Handlers.FlowEngine
                 switch (workflow.ModuleCode)
                 {
                     case WorkflowModuleConsts.OrderHandle:
+                    case WorkflowModuleConsts.OrderHandleSnapshot:
                         var order = await _orderDomainService.GetOrderAsync(workflow.ExternalId, withHotspot: true, withAcceptor: true,
                             withExtension: true, cancellationToken: cancellationToken);
                         order.CheckIfFiled();

+ 1 - 0
src/Hotline.Application/Handlers/FlowEngine/WorkflowStartHandler.cs

@@ -96,6 +96,7 @@ namespace Hotline.Application.Handlers.FlowEngine
                 switch (workflow.ModuleCode)
                 {
                     case WorkflowModuleConsts.OrderHandle:
+                    case WorkflowModuleConsts.OrderHandleSnapshot:
                         var order = await _orderDomainService.GetOrderAsync(workflow.ExternalId, withHotspot: true, withAcceptor: true,
                             withExtension: true, cancellationToken);
                         order.CheckIfFiled();

+ 16 - 13
src/Hotline.Application/OrderApp/OrderApplication.cs

@@ -1456,20 +1456,23 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                 {
                     if (visit.Order.Source != ESource.ProvinceStraight)
                     {
-                        //发送查询短信
-                        var messageDto = new Share.Dtos.Push.MessageDto
+                        if (visit.Order.FileOrgIsCenter.Value == false || (visit.Order.FileOrgIsCenter.Value == true && visit.Order.CounterSignType != null))
                         {
-                            PushBusiness = EPushBusiness.SearchSms,
-                            ExternalId = visit.Id,
-                            OrderId = visit.Order.Id,
-                            PushPlatform = EPushPlatform.Sms,
-                            Remark = visit.Order.Title,
-                            Name = visit.Order.FromName,
-                            TemplateCode = "1021",
-                            Params = new List<string>() { visit.Order.No, visit.Order.Password },
-                            TelNumber = visit.Order.Contact,
-                        };
-                        await _mediator.Publish(new PushMessageNotify(messageDto), cancellationToken);
+                            //发送查询短信
+                            var messageDto = new Share.Dtos.Push.MessageDto
+                            {
+                                PushBusiness = EPushBusiness.SearchSms,
+                                ExternalId = visit.Id,
+                                OrderId = visit.Order.Id,
+                                PushPlatform = EPushPlatform.Sms,
+                                Remark = visit.Order.Title,
+                                Name = visit.Order.FromName,
+                                TemplateCode = "1021",
+                                Params = new List<string>() { visit.Order.No, visit.Order.Password },
+                                TelNumber = visit.Order.Contact,
+                            };
+                            await _mediator.Publish(new PushMessageNotify(messageDto), cancellationToken);
+                        }
                     }
                 }
             }

+ 9 - 0
src/Hotline/FlowEngine/Workflows/IWorkflowDomainService.cs

@@ -46,6 +46,15 @@ namespace Hotline.FlowEngine.Workflows
             Action<Workflow, WorkflowStep, StepDefine, WorkflowStep>? newStepConfig = null,
             CancellationToken cancellationToken = default);
 
+        Task<(Workflow, WorkflowStep, StepDefine, List<WorkflowStep>)> NextAsync(
+            Workflow workflow,
+            NextWorkflowDto dto,
+            EHandleMode handleMode = EHandleMode.Normal,
+            DateTime? expiredTime = null, bool isAutoFillSummaryOpinion = false,
+            Action<Workflow, WorkflowStep, StepDefine>? currentStepConfig = null,
+            Action<Workflow, WorkflowStep, StepDefine, WorkflowStep>? newStepConfig = null,
+            CancellationToken cancellationToken = default);
+
         /// <summary>
         /// 开启流程并办理至第一个节点
         /// </summary>

+ 27 - 12
src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs

@@ -293,6 +293,20 @@ namespace Hotline.FlowEngine.Workflows
         {
             var workflow = await GetWorkflowAsync(dto.WorkflowId, withDefine: true, withSteps: true,
                 withTraces: true, withCountersigns: true, cancellationToken: cancellationToken);
+
+            return await NextAsync(workflow, dto, handleMode, expiredTime, isAutoFillSummaryOpinion, currentStepConfig,
+                newStepConfig, cancellationToken);
+        }
+
+        public async Task<(Workflow, WorkflowStep, StepDefine, List<WorkflowStep>)> NextAsync(
+            Workflow workflow,
+            NextWorkflowDto dto,
+            EHandleMode handleMode = EHandleMode.Normal,
+            DateTime? expiredTime = null, bool isAutoFillSummaryOpinion = false,
+            Action<Workflow, WorkflowStep, StepDefine>? currentStepConfig = null,
+            Action<Workflow, WorkflowStep, StepDefine, WorkflowStep>? newStepConfig = null,
+            CancellationToken cancellationToken = default)
+        {
             CheckWhetherRunnable(workflow.Status);
 
             var currentStep = workflow.Steps.FirstOrDefault(d => d.Id == dto.StepId);
@@ -477,7 +491,8 @@ namespace Hotline.FlowEngine.Workflows
                 }
             }
 
-            await Task.Run(() => currentStepConfig?.Invoke(workflow, currentStep, nextStepDefine), cancellationToken);
+            //await Task.Run(() => currentStepConfig?.Invoke(workflow, currentStep, nextStepDefine), cancellationToken);
+            currentStepConfig?.Invoke(workflow, currentStep, nextStepDefine);
             await _workflowStepRepository.UpdateRangeAsync(updateSteps, cancellationToken);
 
             //更新traces
@@ -622,11 +637,10 @@ namespace Hotline.FlowEngine.Workflows
             var nextDto = _mapper.Map<NextWorkflowDto>(dto);
             nextDto.WorkflowId = workflow.Id;
             nextDto.StepId = startStep.Id;
-            var (_, _, _, nextSteps) =
-                await NextAsync(nextDto,
-                    expiredTime: expiredTime,
-                    isAutoFillSummaryOpinion: true,
-                    newStepConfig: newStepConfig, cancellationToken: cancellationToken);
+            var (_, _, _, nextSteps) = await NextAsync(workflow, nextDto,
+                expiredTime: expiredTime,
+                isAutoFillSummaryOpinion: true,
+                newStepConfig: newStepConfig, cancellationToken: cancellationToken);
             return nextSteps;
         }
 
@@ -1056,7 +1070,7 @@ namespace Hotline.FlowEngine.Workflows
             PreviousAsync(PreviousWorkflowDto dto,
                 EHandleMode handleMode = EHandleMode.Previous,
                 Action<Workflow, WorkflowStep, StepDefine, WorkflowStep, WorkflowStep>? newStepConfig = null,
-            CancellationToken cancellationToken = default)
+                CancellationToken cancellationToken = default)
         {
             var workflow = await GetWorkflowAsync(dto.WorkflowId, withDefine: true, withSteps: true,
                 withTraces: true, withCountersigns: true, cancellationToken: cancellationToken);
@@ -1402,10 +1416,10 @@ namespace Hotline.FlowEngine.Workflows
         {
             //根据汇总对象id找到被汇总节点
             var summaryTargetStep = workflow.Steps.Where(d =>
-                d.StepType == EStepType.Normal &&
-                d.Code == summaryTargetStepCode &&
-                d.Status == EWorkflowStepStatus.Handled &&
-                d.IsOrigin)
+                    d.StepType == EStepType.Normal &&
+                    d.Code == summaryTargetStepCode &&
+                    d.Status == EWorkflowStepStatus.Handled &&
+                    d.IsOrigin)
                 .MaxBy(d => d.CreationTime);
             if (summaryTargetStep is null)
                 throw UserFriendlyException.SameMessage("未查询到汇总对象节点");
@@ -2386,6 +2400,7 @@ namespace Hotline.FlowEngine.Workflows
                 Status = EWorkflowStatus.Runnable,
                 Steps = new(),
                 Traces = new(),
+                Countersigns = new(),
                 WorkflowDefinition = definition,
                 ExternalId = externalId ?? string.Empty,
                 FlowType = definition.FlowType,
@@ -3499,7 +3514,7 @@ namespace Hotline.FlowEngine.Workflows
         }
 
         private async Task<WorkflowTrace> CreateVisitTraceAsync(WorkflowTrace pubTrace, UserInfo acceptor, string orderVisitId,
-          DateTime creationTime, CancellationToken cancellation)
+            DateTime creationTime, CancellationToken cancellation)
         {
             if (string.IsNullOrEmpty(orderVisitId))
                 throw new UserFriendlyException($"参数异常,orderVisitId不能为空, pubTraceId: {pubTrace.Id}");

+ 1 - 21
src/Hotline/Orders/OrderDomainService.cs

@@ -340,27 +340,7 @@ public class OrderDomainService : IOrderDomainService, IScopeDependency
         {
             try
             {
-                if (_appOptions.Value.IsZiGong)
-                {
-                    if (order.Source == ESource.ProvinceStraight)
-                    {
-                        //发送查询短信
-                        var messageDto = new Share.Dtos.Push.MessageDto
-                        {
-                            PushBusiness = EPushBusiness.SearchSms,
-                            ExternalId = visitId,
-                            OrderId = order.Id,
-                            PushPlatform = EPushPlatform.Sms,
-                            Remark = order.Title,
-                            Name = order.FromName,
-                            TemplateCode = "1021",
-                            Params = new List<string>() { order.No, order.Password },
-                            TelNumber = order.Contact,
-                        };
-                        await _mediator.Publish(new PushMessageNotify(messageDto), cancellationToken);
-                    }
-                }
-                else
+                if (_appOptions.Value.IsZiGong == false)
                 {
                     if (order.Source != ESource.ProvinceStraight && order.FileOrgIsCenter.Value == false)
                     {

+ 117 - 0
test/Hotline.Tests/Controller/OrderDelayControllerTest.cs

@@ -0,0 +1,117 @@
+using Hotline.Tests.Mock;
+using System.Diagnostics;
+using Hotline.Api.Controllers;
+using Hotline.Identity.Accounts;
+using Hotline.Identity.Roles;
+using Hotline.Settings;
+using Hotline.ThirdAccountDomainServices;
+using Hotline.ThirdAccountDomainServices.Interfaces;
+using Hotline.Users;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.DependencyInjection;
+using XF.Domain.Cache;
+using XF.Domain.Repository;
+using Hotline.Orders;
+using Hotline.Share.Dtos.FlowEngine;
+using Hotline.Share.Dtos.FlowEngine.Workflow;
+using Hotline.Share.Dtos.Order;
+using Hotline.Share.Enums.FlowEngine;
+using Hotline.Share.Enums.Order;
+using MapsterMapper;
+using Xunit.Abstractions;
+
+namespace Hotline.Tests.Controller
+{
+    public class OrderDelayControllerTest : TestBase
+    {
+        private readonly OrderController _orderController;
+        private readonly OrderServiceMock _orderServiceMock;
+        private readonly IOrderDelayRepository _orderDelayRepository;
+        private readonly IOrderRepository _orderRepository;
+        private readonly IMapper _mapper;
+        private readonly ITestOutputHelper _testOutputHelper;
+
+        public OrderDelayControllerTest(IAccountRepository accountRepository, IRepository<Role> roleRepository,
+            UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository,
+            IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdIdentiyService,
+            IThirdAccountRepository thirdAccountRepository, ITypedCache<SystemSetting> cacheSettingData,
+            ThirdAccounSupplierFactory thirdAccountDomainFactory,
+            OrderController orderController,
+            OrderServiceMock orderServiceMock,
+            IOrderDelayRepository orderDelayRepository,
+            IOrderRepository orderRepository,
+            IMapper mapper,
+            ITestOutputHelper testOutputHelper) : base(accountRepository, roleRepository,
+            userController, scopeFactory, userRepository, httpContextAccessor, thirdIdentiyService,
+            thirdAccountRepository, cacheSettingData, thirdAccountDomainFactory)
+        {
+            _orderController = orderController;
+            _orderServiceMock = orderServiceMock;
+            _orderDelayRepository = orderDelayRepository;
+            _orderRepository = orderRepository;
+            _mapper = mapper;
+            _testOutputHelper = testOutputHelper;
+        }
+
+        [Fact]
+        public async Task OrderDelayBatchApproveTest()
+        {
+            SetZuoXi();
+
+            var delayIds = new List<string>();
+            for (int i = 0; i < 10; i++)
+            {
+                var orderId = _orderServiceMock.CreateOrder()
+                    .办理到一级部门()
+                    .办理到二级部门(Set一级部门)
+                    .GetCreateResult().Id;
+
+                //var order = await _orderRepository.Queryable()
+                //    .FirstAsync(o => o.Id == orderId);
+                var delayId = _orderServiceMock.申请延期(Set二级部门);
+                delayIds.Add(delayId);
+            }
+
+            var delay = await _orderDelayRepository.GetAsync(delayIds.First());
+            
+            Set一级部门();
+            var option =  _orderController.OrderDelayNextsteps(delay.WorkflowId).Result as NextStepsWithOpinionDto<NextStepOption>;
+            var step = option.Steps.First();
+            
+            var req = new BatchDelayNextFlowDto
+            {
+                DelayId = delayIds.ToArray(),
+                IsPass = true,
+                NextWorkflow = new NextWorkflowDto
+                {
+                    NextStepCode = step.Key,
+                    NextStepName = step.Value,
+                }
+            };
+
+            _testOutputHelper.WriteLine($"开始审批");
+            var sw = new Stopwatch();
+            sw.Start();
+            var result = await _orderController.BatchAuditDelay(req);
+            sw.Stop();
+            
+            _testOutputHelper.WriteLine($"耗时:{sw.ElapsedMilliseconds}ms");
+            _testOutputHelper.WriteLine(result);
+
+            //var delay = await _orderDelayRepository.Queryable()
+            //    .Includes(d => d.Order)
+            //    .FirstAsync(d => d.Id == delayId);
+
+            //Assert.Equal(EDelayState.Pass, delay.DelayState);
+            //Assert.True(delay.Order.ExpiredTime > order.ExpiredTime);
+
+            //Console.WriteLine(delay.Id);
+        }
+
+        [Fact]
+        public void QueryWaitForApproveDelaysTest()
+        {
+            _testOutputHelper.WriteLine("123");
+        }
+    }
+}

+ 33 - 0
test/Hotline.Tests/Mock/OrderServiceMock.cs

@@ -28,6 +28,7 @@ using Hotline.Api.Controllers.Bi;
 using XF.Domain.Exceptions;
 using System;
 using DocumentFormat.OpenXml.Bibliography;
+using Hotline.Share.Enums.Settings;
 
 namespace Hotline.Tests.Mock;
 public class OrderServiceMock
@@ -636,4 +637,36 @@ public class OrderServiceMock
         return this;
 
     }
+    
+    public string 申请延期(Action action = null)
+    {
+        action?.Invoke();
+        var options = _orderController.GetDelayFlowStartOptions().Result as NextStepsDto<NextStepOption>;
+        var step = options.Steps.First();
+        var req = new StartWorkflowDto<ApplyDelayDto>
+        {
+            Workflow = new BasicWorkflowDto
+            {
+                NextStepCode = step.Key,
+                NextStepName = step.Value,
+                NextHandlers = new List<StepAssignInfo>{step.Items.First()},
+                Opinion = "单元测试延期申请",
+                FlowDirection = step.FlowDirection,
+                BackToCountersignEnd = step.BackToCountersignEnd,
+                HandlerType = step.HandlerType,
+                BusinessType = step.BusinessType,
+            },
+            Data = new ApplyDelayDto
+            {
+                OrderId = CreateOrderOutDto.Id,
+                DelayNum = 3,
+                DelayReason = "单元测试延期理由",
+                DelayUnit = ETimeType.WorkDay,
+                Files = new()
+            }
+        };
+
+        return _orderController.ApplyDelay(req).GetAwaiter().GetResult();
+
+    }
 }

+ 1 - 1
test/Hotline.Tests/TestBase.cs

@@ -115,7 +115,7 @@ public class TestBase
 
     public void Set二级部门()
     {
-        SetOperator("部门经办人", "测试部门/测试二级部门", "cs21", "001094001", "13408389849", EUserType.Seat, TestSettingConstants.SecondOrgAccountName);
+        SetOperator("部门经办人", "测试部门/测试二级部门", "cs21", "001094001", "13408389849", EUserType.Normal, TestSettingConstants.SecondOrgAccountName);
     }
 
     public void Set班长()

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.