Example #1
0
        public async Task <InitWorkFlowOutput> Create(OATaskCreateInput input)
        {
            var ret    = new InitWorkFlowOutput();
            var oATask = new OATask();

            input.MapTo(oATask);
            oATask.Id = Guid.NewGuid();
            if (input.FileList != null)
            {
                var fileList = new List <AbpFileListInput>();
                foreach (var item in input.FileList)
                {
                    fileList.Add(new AbpFileListInput()
                    {
                        Id = item.Id, Sort = item.Sort
                    });
                }
                await _abpFileRelationAppService.CreateAsync(new CreateFileRelationsInput()
                {
                    BusinessId   = oATask.Id.ToString(),
                    BusinessType = (int)AbpFileBusinessType.OA任务附件,
                    Files        = fileList
                });
            }
            oATask.NotifyUsers = oATask.ExecutorUser;
            var manager = Abp.AbpBootstrapper.Create <Abp.Modules.AbpModule>().IocManager.IocContainer.Resolve <WorkFlowOrganizationUnitsManager>();
            var users   = manager.GetAllUsers(input.ExecutorUser);

            foreach (var user in users)
            {
                var entity = new OATaskUser();
                entity.Id       = Guid.NewGuid();
                entity.OATaskId = oATask.Id;
                entity.UserId   = user.Id;
                await _oATaskUserRepository.InsertAsync(entity);
            }

            oATask.ValUser1    = "u_" + input.ValUser.ToString();
            oATask.NotifyUsers = oATask.ExecutorUser + ",u_" + oATask.ValUser;
            await _oATaskRepository.InsertAsync(oATask);

            ret.InStanceId = oATask.Id.ToString();
            return(ret);
        }
Example #2
0
        public async Task Update(OATaskUpdateInput input)
        {
            Debug.Assert(input.Id != null, "input Id should be set.");

            var oATask = await _oATaskRepository.GetAsync(input.Id);

            input.MapTo(oATask);
            var fileList = new List <AbpFileListInput>();

            if (input.FileList != null)
            {
                foreach (var item in input.FileList)
                {
                    fileList.Add(new AbpFileListInput()
                    {
                        Id = item.Id, Sort = item.Sort
                    });
                }
            }
            await _abpFileRelationAppService.UpdateAsync(new CreateFileRelationsInput()
            {
                BusinessId   = input.Id.ToString(),
                BusinessType = (int)AbpFileBusinessType.OA任务附件,
                Files        = fileList
            });

            var manager = Abp.AbpBootstrapper.Create <Abp.Modules.AbpModule>().IocManager.IocContainer.Resolve <WorkFlowOrganizationUnitsManager>();
            var users   = manager.GetAllUsers(input.ExecutorUser);
            await _oATaskUserRepository.DeleteAsync(r => r.OATaskId == input.Id);

            foreach (var item in users)
            {
                var entity = new OATaskUser();
                entity.Id       = Guid.NewGuid();
                entity.OATaskId = input.Id;
                entity.UserId   = item.Id;
                await _oATaskUserRepository.InsertAsync(entity);
            }
            oATask.ValUser1    = "u_" + oATask.ValUser;
            oATask.NotifyUsers = oATask.ExecutorUser + ",u_" + oATask.ValUser;
            await _oATaskRepository.UpdateAsync(oATask);
        }