|
@@ -553,7 +553,6 @@ public class WorkflowController : BaseController
|
|
|
/// <param name="dto"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpGet("order-countersign")]
|
|
|
- [AllowAnonymous]
|
|
|
public async Task<PagedDto<WorkflowCountersignDto>> QueryOrderCountersigns([FromQuery] QueryOrderCountersignDto dto)
|
|
|
{
|
|
|
RefAsync<int> total = 0;
|
|
@@ -564,7 +563,7 @@ public class WorkflowController : BaseController
|
|
|
.Includes(x => x.Members)
|
|
|
.LeftJoin<Workflow>((c, w) => c.WorkflowId == w.Id)
|
|
|
.InnerJoin<Order>((c, w, o) => w.ExternalId == o.Id)
|
|
|
- .WhereIF(!_sessionContext.OrgIsCenter, (c, w, o) => c.Members.Any(m => m.Key == _sessionContext.OrgId))
|
|
|
+ // .WhereIF(!_sessionContext.OrgIsCenter, (c, w, o) => c.Members.Any(m => m.Key == _sessionContext.OrgId || m.Key == _sessionContext.RequiredOrgId))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Title), (c, w, o) => o.Title.Contains(dto.Title))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.OrderNo), (c, w, o) => o.No.Contains(dto.OrderNo))
|
|
|
.WhereIF(dto.AcceptTypes.Any(), (c, w, o) => dto.AcceptTypes.Contains(o.AcceptTypeCode)) //受理类型
|
|
@@ -580,18 +579,18 @@ public class WorkflowController : BaseController
|
|
|
//承办部门用户能看到自己发起的和同级部门用户发起的会签件
|
|
|
if (dto.InitiatedCountersignature.HasValue && dto.InitiatedCountersignature == true)
|
|
|
{
|
|
|
- if (_sessionContext.Roles.Select(p => "banzhang") != null)
|
|
|
+ if (_sessionContext.Roles.Any(p => p == "banzhang"))
|
|
|
{
|
|
|
|
|
|
}
|
|
|
else
|
|
|
- if (_sessionContext.Roles.Select(p => "paidanyuan") != null)
|
|
|
+ if (_sessionContext.Roles.Any(p => p == "paidanyuan"))
|
|
|
{
|
|
|
-
|
|
|
+ query = query.Where((c, w, o) => c.StarterId == _sessionContext.UserId);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
-
|
|
|
+ query = query.Where((c, w, o) => c.StarterOrgId == _sessionContext.RequiredOrgId);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -601,12 +600,24 @@ public class WorkflowController : BaseController
|
|
|
//承办部门用户能看到和同级部门用户已办理过的会签件
|
|
|
if (dto.HandleCountersignature.HasValue && dto.HandleCountersignature == true)
|
|
|
{
|
|
|
-
|
|
|
+ if (_sessionContext.Roles.Any(p => p == "banzhang"))
|
|
|
+ {
|
|
|
+ query = query.Where((c, w, o) => c.EndTime.HasValue);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ if (_sessionContext.Roles.Any(p => p == "paidanyuan"))
|
|
|
+ {
|
|
|
+ query = query.Where((c, w, o) => c.Members.Any(m => m.Key == _sessionContext.RequiredOrgId) && c.EndTime.HasValue);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ query = query.Where((c, w, o) => c.Members.Any(m => m.Key == _sessionContext.OrgId || m.Key == _sessionContext.RequiredOrgId) && c.EndTime.HasValue);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//if (dto.IsOnlyStarter)
|
|
|
// query = query.Where((c, w, o) => c.StarterId == _sessionContext.RequiredUserId);
|
|
|
-
|
|
|
+ // dto.CounterSignCount = await _workflowCountersignRepository.Queryable().Where(p => p.WorkflowId == dto.WorkflowId).CountAsync();
|
|
|
var items = await query
|
|
|
.OrderByDescending((c, w, o) => o.ExpiredTime)
|
|
|
.Select((c, w, o) => new { c, o })
|
|
@@ -616,6 +627,7 @@ public class WorkflowController : BaseController
|
|
|
{
|
|
|
var dto = _mapper.Map<WorkflowCountersignDto>(d.c);
|
|
|
dto.Order = _mapper.Map<OrderDto>(d.o);
|
|
|
+ dto.CounterSignCount = _workflowCountersignRepository.Queryable().Where(p => p.WorkflowId == d.c.WorkflowId).CountAsync().GetAwaiter().GetResult();
|
|
|
return dto;
|
|
|
}).ToList();
|
|
|
|