示例#1
0
        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);
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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);
        }