|
@@ -212,10 +212,10 @@ public class OrderController : BaseController
|
|
|
d => d.Acceptor.Name.Contains(dto.PubMan!) || d.Acceptor.StaffNo.Contains(dto.PubMan!))
|
|
|
.WhereIF(dto.PubRange == EPublicState.Pub, d => d.OrderPublish.PublishState)
|
|
|
.WhereIF(dto.PubRange == EPublicState.NoPub, d => !d.OrderPublish.PublishState)
|
|
|
- .WhereIF(dto.FiledType!=null && dto.FiledType == FiledType.CenterFiled,d=>d.ProcessType == EProcessType.Zhiban)
|
|
|
- .WhereIF(dto.FiledType!=null && dto.FiledType == FiledType.OrgFiled,d=>d.ProcessType == EProcessType.Jiaoban)
|
|
|
- .WhereIF(dto.IsCountersign!=null && dto.IsCountersign == true,d=>d.CounterSignType != null)
|
|
|
- .WhereIF(dto.IsCountersign!=null && dto.IsCountersign == false,d=>d.CounterSignType == null)
|
|
|
+ .WhereIF(dto.FiledType != null && dto.FiledType == FiledType.CenterFiled, d => d.ProcessType == EProcessType.Zhiban)
|
|
|
+ .WhereIF(dto.FiledType != null && dto.FiledType == FiledType.OrgFiled, d => d.ProcessType == EProcessType.Jiaoban)
|
|
|
+ .WhereIF(dto.IsCountersign != null && dto.IsCountersign == true, d => d.CounterSignType != null)
|
|
|
+ .WhereIF(dto.IsCountersign != null && dto.IsCountersign == false, d => d.CounterSignType == null)
|
|
|
.WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptType))
|
|
|
.WhereIF(dto.HotspotIds.Any(), d => dto.HotspotIds.Contains(d.HotspotId))
|
|
|
.WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart)
|
|
@@ -312,7 +312,7 @@ public class OrderController : BaseController
|
|
|
visitedDetail.Add(seatDetail);
|
|
|
await _orderVisitedDetailRepository.AddRangeAsync(visitedDetail, HttpContext.RequestAborted);
|
|
|
}
|
|
|
- catch {}
|
|
|
+ catch { }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -714,16 +714,17 @@ public class OrderController : BaseController
|
|
|
}, cancellationToken: HttpContext.RequestAborted);
|
|
|
|
|
|
//推门户
|
|
|
- await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderVisitedWeb, new PublishVisitAllDto(){
|
|
|
- Id = visit.Id,
|
|
|
- Order = orderDto,
|
|
|
- OrderVisitDetails = _mapper.Map<List<VisitDetailDto>>(visit.OrderVisitDetails),
|
|
|
- VisitName = _sessionContext.UserName,
|
|
|
- VisitTime = visit.VisitTime,
|
|
|
- VisitType = visit.VisitType,
|
|
|
- VisitState=visit.VisitState,
|
|
|
- PublishTime = visit.PublishTime,
|
|
|
- },cancellationToken:HttpContext.RequestAborted);
|
|
|
+ await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderVisitedWeb, new PublishVisitAllDto()
|
|
|
+ {
|
|
|
+ Id = visit.Id,
|
|
|
+ Order = orderDto,
|
|
|
+ OrderVisitDetails = _mapper.Map<List<VisitDetailDto>>(visit.OrderVisitDetails),
|
|
|
+ VisitName = _sessionContext.UserName,
|
|
|
+ VisitTime = visit.VisitTime,
|
|
|
+ VisitType = visit.VisitType,
|
|
|
+ VisitState = visit.VisitState,
|
|
|
+ PublishTime = visit.PublishTime,
|
|
|
+ }, cancellationToken: HttpContext.RequestAborted);
|
|
|
//try
|
|
|
//{
|
|
|
// await _provinceService.SubmitVisitInfo(new PublishVisitDto()
|
|
@@ -1270,18 +1271,18 @@ public class OrderController : BaseController
|
|
|
[HttpGet("mayscreen")]
|
|
|
public async Task<PagedDto<OrderVisitDetailDto>> MayScreenList([FromQuery] MayScreenListDto dto)
|
|
|
{
|
|
|
- var query = _orderVisitedDetailRepository.Queryable(false,true)
|
|
|
+ var query = _orderVisitedDetailRepository.Queryable(false, true)
|
|
|
.Includes(x => x.OrderVisit)
|
|
|
.Includes(x => x.OrderVisit, y => y.Order)
|
|
|
.Includes(x => x.OrderVisit, y => y.Employee)
|
|
|
- .LeftJoin<OrderScreen>((x,s)=> x.Id == s.VisitDetailId && (int)s.Status < 2 && s.IsDeleted == false)
|
|
|
- .Where((x,s)=> s.Id == null)
|
|
|
+ .LeftJoin<OrderScreen>((x, s) => x.Id == s.VisitDetailId && (int)s.Status < 2 && s.IsDeleted == false)
|
|
|
+ .Where((x, s) => s.Id == null)
|
|
|
.Where((x, s) => x.OrderVisit.VisitState != EVisitState.None && x.OrderVisit.IsCanHandle);
|
|
|
if (_sessionContext.OrgId != null && !_sessionContext.OrgIsCenter)
|
|
|
{
|
|
|
query.WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
- (x, s) => x.OrderVisit.Order.Title.Contains(dto.Keyword!) ||
|
|
|
- x.OrderVisit.Order.No.Contains(dto.Keyword!))
|
|
|
+ (x, s) => x.OrderVisit.Order.Title.Contains(dto.Keyword!) ||
|
|
|
+ x.OrderVisit.Order.No.Contains(dto.Keyword!))
|
|
|
.Where((x, s) => x.VisitTarget == EVisitTarget.Org && x.VisitOrgCode.StartsWith(_sessionContext.OrgId) && (
|
|
|
SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "1" ||
|
|
|
SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "2" ||
|
|
@@ -1292,8 +1293,8 @@ public class OrderController : BaseController
|
|
|
else
|
|
|
{
|
|
|
query.WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
- (x, s) => x.OrderVisit.Order.Title.Contains(dto.Keyword!) ||
|
|
|
- x.OrderVisit.Order.No.Contains(dto.Keyword!))
|
|
|
+ (x, s) => x.OrderVisit.Order.Title.Contains(dto.Keyword!) ||
|
|
|
+ x.OrderVisit.Order.No.Contains(dto.Keyword!))
|
|
|
.Where((x, s) => x.VisitTarget == EVisitTarget.Org && (
|
|
|
SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "1" ||
|
|
|
SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "2" ||
|
|
@@ -1932,14 +1933,15 @@ public class OrderController : BaseController
|
|
|
return new();
|
|
|
|
|
|
var canHandle = false;
|
|
|
- if (!string.IsNullOrEmpty(order?.WorkflowId))
|
|
|
+ var canEndCs = false;
|
|
|
+ if (!string.IsNullOrEmpty(order.WorkflowId))
|
|
|
{
|
|
|
- var (workflow, handlePermission) = await _workflowDomainService.GetWorkflowHandlePermissionAsync(
|
|
|
+ var (workflow, handlePermission, canEndCountersign) = await _workflowDomainService.GetWorkflowHandlePermissionAsync(
|
|
|
order.WorkflowId, _sessionContext.RequiredUserId, _sessionContext.RequiredOrgId,
|
|
|
- withSteps: true, withSupplements: true,
|
|
|
cancellationToken: HttpContext.RequestAborted);
|
|
|
order.Workflow = workflow;
|
|
|
canHandle = handlePermission;
|
|
|
+ canEndCs = canEndCountersign;
|
|
|
|
|
|
await _mediator.Publish(new GetOrderDetailNotify(order.Workflow,
|
|
|
_sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
@@ -1948,6 +1950,7 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
|
|
|
var dto = _mapper.Map<OrderDto>(order!);
|
|
|
+ dto.CanEndCountersign = canEndCs;
|
|
|
|
|
|
if (dto.FileJson != null && dto.FileJson.Any())
|
|
|
{
|
|
@@ -1959,8 +1962,11 @@ public class OrderController : BaseController
|
|
|
var call = await _trCallRecordRepository.Queryable().Where(x => x.CallAccept == order.CallId).FirstAsync();
|
|
|
if (call != null) dto.RecordingFileUrl = call.RecordingFileUrl;
|
|
|
|
|
|
- if (order?.Workflow != null)
|
|
|
+ if (order.Workflow != null)
|
|
|
+ {
|
|
|
dto.Workflow.CanHandle = canHandle;
|
|
|
+ dto.CanPrevious = !order.Workflow.IsInCountersign;
|
|
|
+ }
|
|
|
var repeatablesMap = await _repeatableEventDetailRepository.Queryable()
|
|
|
.Includes(x => x.Order)
|
|
|
.Where(x => x.OrderId == id).Distinct().ToListAsync();
|
|
@@ -2138,6 +2144,18 @@ public class OrderController : BaseController
|
|
|
HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 结束会签
|
|
|
+ /// </summary>
|
|
|
+ [HttpPost("cs-end")]
|
|
|
+ public async Task EndCountersign([FromBody] EndCountersignDto dto)
|
|
|
+ {
|
|
|
+ var order = await _orderDomainService.GetOrderAsync(dto.OrderId, cancellationToken: HttpContext.RequestAborted);
|
|
|
+ if (string.IsNullOrEmpty(order.WorkflowId))
|
|
|
+ throw new UserFriendlyException("该工单未开启流程");
|
|
|
+ await _workflowDomainService.EndCountersignAsync(order.WorkflowId, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 查询工单办理下一步可选节点(带推荐部门)
|
|
|
/// </summary>
|
|
@@ -2317,9 +2335,9 @@ public class OrderController : BaseController
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
d => d.No.Contains(dto.Keyword!) || d.Title.Contains(dto.Keyword!))
|
|
|
.Where(d => string.IsNullOrEmpty(d.SignerId) || d.SignerId == _sessionContext.RequiredUserId)
|
|
|
- .OrderBy(d=>d.Status)
|
|
|
- .OrderByIF(dto.IsHandled == true,d=>d.StartTime,OrderByType.Asc)
|
|
|
- .OrderByIF(dto.IsHandled == false,d=> d.CreationTime,OrderByType.Desc)
|
|
|
+ .OrderBy(d => d.Status)
|
|
|
+ .OrderByIF(dto.IsHandled == true, d => d.StartTime, OrderByType.Asc)
|
|
|
+ .OrderByIF(dto.IsHandled == false, d => d.CreationTime, OrderByType.Desc)
|
|
|
.ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
|
|
|
return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
|