public async Task CreateOrUpdate(DispatchPublishInput input) { if (input.Id.HasValue) { await UpdateDispatch(input); } else { await CreateDispatch(input); } }
protected virtual async Task UpdateDispatch(DispatchPublishInput input) { var user_id = AbpSession.UserId; var ret = new DispatchPublishOutput(); var projectmodel = await _projectBaseRepository.GetAsync(input.ProjectId); var model = await _dispatchMessageRepository.GetAll().FirstOrDefaultAsync(r => r.ProjectId == input.ProjectId && r.UserId == user_id); if (model != null) { model.Additional = input.Additional; model.DispatchCode = input.DispatchCode; model.EndDate = input.EndDate; model.ProjectUndertakeCode = input.ProjectUndertakeCode; model.Reason = input.Reason; model.Remark = input.Remark; await _dispatchMessageRepository.UpdateAsync(model); } }
protected virtual async Task CreateDispatch(DispatchPublishInput input) { var userId = AbpSession.GetUserId(); var projectModel = await _projectBaseRepository.GetAll().FirstOrDefaultAsync(r => r.Id == input.ProjectId); if (projectModel != null) { projectModel.AuditAmount = input.AuditAmount; await _projectBaseRepository.UpdateAsync(projectModel); } await _workTaskManager.InsertDispatchAsync(new ProjectWorkTask { UserId = userId, ProjectId = input.ProjectId, StepId = input.StepId, StepName = input.StepName, Title = "批文签发" }, new DispatchMessage { UserId = userId, ProjectId = input.ProjectId, Additional = input.Additional, DispatchCode = input.DispatchCode, EndDate = input.EndDate, ProjectLeader = input.ProjectLeader, ProjectName = input.ProjectName, ProjectReviewer = input.ProjectReviewer, ProjectUndertakeCode = input.ProjectUndertakeCode, Reason = input.Reason, Remark = input.Remark, StartDate = input.StartDate, SendUnitName = input.SendUnitName }); }
public Guid CreateActive(string instanceId, long userId) { var ret = new DispatchPublishInput(); var projectId = instanceId.ToGuid(); var singleprojectmodel = _singleProjectRepository.Get(projectId); var projectmodel = _projectBaseRepository.FirstOrDefault(ite => ite.Id == singleprojectmodel.ProjectId); if (projectmodel == null) { throw new UserFriendlyException((int)ErrorCode.DataAccessErr, "项目信息不存在。"); } if (projectmodel.SendUnit == 0) { ret.SendUnitName = string.Empty; } else { var sendunitemodel = _constructionOrganizationRepository.Get(projectmodel.SendUnit); ret.SendUnitName = sendunitemodel == null ? "" : sendunitemodel.Name; } ret.ProjectName = projectmodel.ProjectName; ret.ProjectCode = projectmodel.ProjectCode; ret.AppraisalTypeId = projectmodel.AppraisalTypeId; ret.ProjectId = projectmodel.Id; var leaderModel = from a in _projectAuditMemberRepository.GetAll() join u in _userRepository.GetAll() on a.UserId equals u.Id where a.ProjectBaseId == projectId && a.UserAuditRole == 1 select u.Name; ret.ProjectLeader = leaderModel.FirstOrDefault() ?? ""; var query = from memeber in _projectAuditMemberRepository.GetAll() join user in _userRepository.GetAll() on memeber.UserId equals user.Id where memeber.UserAuditRole == 2 && memeber.ProjectBaseId == projectmodel.Id select user.Name; ret.ProjectReviewer = ""; var membsers = query.ToList(); foreach (var name in membsers) { if (!string.IsNullOrWhiteSpace(ret.ProjectReviewer)) { ret.ProjectReviewer = ret.ProjectReviewer + ","; } ret.ProjectReviewer = ret.ProjectReviewer + name;; } ret.StartDate = projectmodel.CreationTime; var auditRole = (int)AuditRoleEnum.核人三; var threadAuditModel = from a in _projectAuditMemberRepository.GetAll() join b in _projectAuditMemberResultRepository.GetAll() on a.Id equals b.Pid where a.ProjectBaseId == projectmodel.Id && a.UserAuditRole == auditRole select b; ret.AuditAmount = threadAuditModel.FirstOrDefault()?.AuditAmount ?? null; var newId = Guid.NewGuid(); var entity = new NoticeDocument() { Id = newId, Title = $"{projectmodel.ProjectName}-{singleprojectmodel.SingleProjectName}-发文", Additional = "", DispatchCode = "", ProjectId = projectId, ProjectLeader = ret.ProjectLeader, ProjectReviewer = ret.ProjectReviewer, ProjectUndertakeCode = ret.ProjectUndertakeCode, Reason = "", CreatorUserId = userId, SendUnitName = ret.SendUnitName, DispatchTime = DateTime.Now, NoticeDocumentBusinessType = (int)NoticeDocumentBusinessType.项目评审发文, }; if (ret.EndDate.HasValue) { entity.EndDate = ret.EndDate.Value; } if (ret.StartDate.HasValue) { entity.StartDate = ret.StartDate.Value; } _noticeDocumentRepository.Insert(entity); return(newId); }