private string GetWriteUser(CreateNoticeDocumentInput input) { if (!input.IsNeedAddWrite) { return(""); } if (input.IsNeedAddWrite && input.AddWriteOrgIds.IsNullOrWhiteSpace()) { throw new UserFriendlyException((int)ErrorCode.BussinessDataException, "为设置会签部门"); } var addOrgArry = input.AddWriteOrgIds.Split(","); var userList = new List <string>(); var orgs = from o in _organizeRepository.GetAll() where addOrgArry.Contains(o.Id.ToString()) select o; foreach (var item in orgs) { userList.Add(item.Leader); userList.Add(item.ChargeLeader); } for (int i = 0; i < (userList.Count / 2) - 1; i++) { if (userList[i * 2 + 1] == userList[(i + 1) * 2 + 1]) { userList[i * 2 + 1] = ""; } } var newUserList = new List <string>(); for (int i = 0; i < userList.Count; i++) { if (userList[i] != "") { newUserList.Add(userList[i]); } } var userStr = string.Join(",", newUserList); userStr = "," + userStr; foreach (var item in newUserList) { do { userStr = userStr.Replace1($",{item},{item}", $",{item}"); } while (userStr.IndexOf($",{item},{item}") > 0); } userStr = userStr.Remove(0, 1); return(userStr); }
public async Task Update(CreateNoticeDocumentInput input) { var model = await _noticeDocumentRepository.GetAsync(input.Id.Value); var old_Model = model.DeepClone(); //model.FileInfo = Newtonsoft.Json.JsonConvert.SerializeObject(input.FileInfo); model.NoticeType = input.NoticeType; model.DispatchUnit = input.DispatchUnit; model.DispatchTime = DateTime.Now; model.PrintNum = input.PrintNum; model.DispatchCode = input.DispatchCode; model.Urgency = input.Urgency; model.SecretLevel = input.SecretLevel; model.ReceiveId = input.ReceiveId; model.ReceiveName = input.ReceiveName; model.Reason = input.Reason; model.Content = input.Content; model.IsNeedRes = input.IsNeedRes; model.ProjectId = input.ProjectId; model.Title = input.Title; model.PubilishUserName = input.PubilishUserName; model.MainReceiveName = input.MainReceiveName; if (input.DocumentTyep.HasValue) { model.DocumentTyep = (int)input.DocumentTyep.Value; } model.DispatchUnitName = input.DispatchUnitName; model.ReplyContent = input.ReplyContent; model.IsNeedAddWrite = input.IsNeedAddWrite; model.AddType = input.AddType; model.WriteType = input.WriteType; model.AddWriteUsers = GetWriteUser(input); model.AddWriteOrgIds = input.AddWriteOrgIds; model.GW_DocumentTypeId = input.GW_DocumentTypeId; var gw_Model = await _gW_DocumentTypeRepository.GetAsync(input.GW_DocumentTypeId); model.GW_DocumentTypeName = gw_Model.Name; //model.NoticeDocumentBusinessType = (int)input.NoticeDocumentBusinessType; if (model.NoticeDocumentBusinessType == (int)NoticeDocumentBusinessType.项目评审发文) { model.Additional = input.Additional; model.AuditAmount = input.AuditAmount; model.EndDate = input.EndDate; model.ProjectId = input.ProjectId; model.ProjectLeader = input.ProjectLeader; model.ProjectReviewer = input.ProjectReviewer; model.ProjectUndertakeCode = input.ProjectUndertakeCode; model.Reason = input.Reason; model.SendUnitName = input.SendUnitName; model.StartDate = input.StartDate; } await _noticeDocumentRepository.UpdateAsync(model); if (input.IsUpdateForChange) { var flowModel = _workFlowCacheManager.GetWorkFlowModelFromCache(input.FlowId); if (flowModel == null) { throw new UserFriendlyException((int)ErrorCode.DataAccessErr, "流程不存在"); } var logs = GetChangeModel(old_Model).GetColumnAllLogs(GetChangeModel(model)); await _projectAuditManager.InsertAsync(logs, input.Id.ToString(), flowModel.TitleField.Table); _workFlowTaskManager.CreateNoticeForTask(input.FlowId, input.Id.ToString(), "发文变更", model.Title); } }
public async Task <InitWorkFlowOutput> Create(CreateNoticeDocumentInput input) { var ret = new InitWorkFlowOutput(); var model = new NoticeDocument(); model.Id = Guid.NewGuid(); //model.FileInfo = Newtonsoft.Json.JsonConvert.SerializeObject(input.FileInfo); model.NoticeType = input.NoticeType; //var userorgModel = await _userOrgRepository.FirstOrDefaultAsync(r => r.UserId == AbpSession.UserId.Value && r.IsMain == true); //var orgModel = await _organizeRepository.GetAsync(userorgModel.OrganizationUnitId); model.DispatchUnitName = input.DispatchUnitName; //model.DispatchUnit = orgModel.Id; model.DispatchTime = DateTime.Now; model.PrintNum = input.PrintNum; model.DispatchCode = input.DispatchCode; model.Urgency = input.Urgency; model.SecretLevel = input.SecretLevel; model.ReceiveId = input.ReceiveId; model.ReceiveName = input.ReceiveName; model.Reason = input.Reason; model.Content = input.Content; model.IsNeedRes = input.IsNeedRes; model.ProjectId = input.ProjectId; model.Title = input.Title; model.Status = 0; model.ProjectRegistrationId = input.ProjectRegistrationId; model.PubilishUserName = input.PubilishUserName; model.MainReceiveName = input.MainReceiveName; if (input.DocumentTyep.HasValue) { model.DocumentTyep = (int)input.DocumentTyep.Value; } model.NoticeDocumentBusinessType = (int)input.NoticeDocumentBusinessType; model.IsNeedAddWrite = input.IsNeedAddWrite; model.GW_DocumentTypeId = input.GW_DocumentTypeId; var gw_Model = await _gW_DocumentTypeRepository.FirstOrDefaultAsync(input.GW_DocumentTypeId); if (gw_Model != null) { model.GW_DocumentTypeName = gw_Model.Name; } model.AddType = input.AddType; model.WriteType = input.WriteType; model.AddWriteUsers = GetWriteUser(input); model.AddWriteOrgIds = input.AddWriteOrgIds; if (input.NoticeDocumentBusinessType == NoticeDocumentBusinessType.项目评审发文) { model.Additional = input.Additional; model.AuditAmount = input.AuditAmount; model.EndDate = input.EndDate; model.ProjectId = input.ProjectId; model.ProjectLeader = input.ProjectLeader; model.ProjectReviewer = input.ProjectReviewer; model.ProjectUndertakeCode = input.ProjectUndertakeCode; model.Reason = input.Reason; model.SendUnitName = input.SendUnitName; model.StartDate = input.StartDate; } await _noticeDocumentRepository.InsertAsync(model); await CurrentUnitOfWork.SaveChangesAsync(); ret.InStanceId = model.Id.ToString(); return(ret); }