123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- using System.Threading.Tasks;
- using GxPress.Entity.WorkFlowDto;
- using System.Linq;
- using Datory;
- using System.Collections.Generic;
- namespace GxPress.Service.Implement
- {
- public partial class FlowService
- {
- public async Task<bool> AddInboxAsyc(FlowDto flow)
- {
- var user = await _userRepository.GetAsync(flow.UserId);
- var process = await _processRepository.GetAsync(flow.ProcessId);
- //获取收件人
- //获取抄送人
- var flowDtos = await _flowTodoRepository.GetListByFlowIdAsync(flow.Id);
- var addressUserIds = flowDtos.Where(n => n.Type == nameof(GxPress.EnumConst.TodoTypeConst.ApproverCheck)).Select(n => n.UserId).ToList();
- var ccUserIds = flowDtos.Where(n => n.Type == nameof(GxPress.EnumConst.TodoTypeConst.CarbonCopy)).Select(n => n.UserId).ToList();
- //收件人
- var addressUsers = await _userRepository.GetAllAsync(Q.WhereIn(nameof(Entity.User.Id), addressUserIds));
- //抄送人
- var ccUsers = await _userRepository.GetAllAsync(Q.WhereIn(nameof(Entity.User.Id), ccUserIds));
- //中间件
- var middles = new List<Entity.Middle.Middle>();
- var middle = new Entity.Middle.Middle
- {
- MiddleId = flow.Id,
- FolderType = GxPress.EnumConst.AllTypeConst.Inbox.GetHashCode(),
- IsTop = false,
- AttributeValue = 1,
- ParentId = 0,
- UserId = flow.UserId,
- MiddleSonId = 0,
- IsAdmin = false,
- NoticeAddresseeType = 0,
- IsRead = false
- };
- middles.Add(middle);
- var users = addressUsers.ToList();
- users.AddRange(ccUsers);
- foreach (var item in users.Distinct())
- {
- middle = new Entity.Middle.Middle
- {
- MiddleId = flow.Id,
- FolderType = GxPress.EnumConst.AllTypeConst.Inbox.GetHashCode(),
- IsTop = false,
- AttributeValue = 1,
- ParentId = 0,
- UserId = flow.UserId,
- MiddleSonId = 0,
- IsAdmin = false,
- NoticeAddresseeType = 0,
- IsRead = false
- };
- middles.Add(middle);
- }
- await middleRepository.InsertAsync(middles);
- return true;
- }
- }
- }
|