|
@@ -5551,82 +5551,142 @@ public class OrderController : BaseController
|
|
|
return order.WorkflowTraces.Count(d => d.IsOrigin && d.BusinessType == EBusinessType.Seat);
|
|
|
}
|
|
|
|
|
|
- #endregion
|
|
|
-
|
|
|
- #region 工单待办
|
|
|
-
|
|
|
- ///// <summary>
|
|
|
- ///// 查询待办工单
|
|
|
- ///// </summary>
|
|
|
- //[HttpGet("waited")]
|
|
|
- //public async Task<PagedDto<OrderDto>> QueryWaited([FromQuery] QueryOrderWaitedDto dto)
|
|
|
- //{
|
|
|
- // var isHandledStep = dto.IsHandled.HasValue && dto.IsHandled.Value;
|
|
|
- // if (isHandledStep)
|
|
|
- // dto.QueryType = null;
|
|
|
-
|
|
|
- // var isAdmin = _orderDomainService.IsCheckAdmin();
|
|
|
- // var query = _orderRepository
|
|
|
- // .Queryable(hasHandledStep: isHandledStep, isAdmin: isAdmin)
|
|
|
- // .Includes(d => d.OrderSpecials);
|
|
|
- // if (dto.QueryType is 1 || dto.QueryType is 2)
|
|
|
- // {
|
|
|
- // query.WhereIF(dto.QueryType is 1, d => d.IsForwarded == false)
|
|
|
- // .WhereIF(dto.QueryType is 2, d => d.IsForwarded == true)
|
|
|
- // .Where(d => SqlFunc.Subqueryable<OrderSpecial>().Where(os => os.OrderId == d.Id && os.IsDeleted == false && os.SpecialType == ESpecialType.ReTransact)
|
|
|
- // .NotAny())
|
|
|
- // ;
|
|
|
- // }
|
|
|
-
|
|
|
- // var (total, items) = await query
|
|
|
- // .Where(d => d.Status != EOrderStatus.WaitForAccept &&
|
|
|
- // d.Status != EOrderStatus.BackToUnAccept &&
|
|
|
- // d.Status != EOrderStatus.SpecialToUnAccept &&
|
|
|
- // d.Status != EOrderStatus.HandOverToUnAccept)
|
|
|
- // .WhereIF(dto.QueryType is 3,
|
|
|
- // d => SqlFunc.Subqueryable<OrderSpecial>().Where(os => os.OrderId == d.Id && os.IsDeleted == false && os.SpecialType == ESpecialType.ReTransact).Any())
|
|
|
- // .Where(d => SqlFunc.Subqueryable<OrderDelay>().Where(od => od.OrderId == d.Id && od.IsDeleted == false && od.DelayState == EDelayState.Examining).NotAny())
|
|
|
- // .Where(d => SqlFunc.Subqueryable<OrderSendBackAudit>().Where(osba => osba.OrderId == d.Id && osba.IsDeleted == false && osba.State == ESendBackAuditState.Apply)
|
|
|
- // .NotAny())
|
|
|
- // .Where(d => SqlFunc.Subqueryable<OrderSpecial>().Where(s => s.OrderId == d.Id && s.State == 0 && s.IsDeleted == false).NotAny())
|
|
|
- // .WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
|
|
|
- // .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword))
|
|
|
- // .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No == dto.No)
|
|
|
- // .WhereIF(!string.IsNullOrEmpty(dto.AreaCode), d => d.AreaCode == dto.AreaCode)
|
|
|
- // .WhereIF(dto.IsCounterSign.HasValue && dto.IsCounterSign == true, d => d.CounterSignType.HasValue)
|
|
|
- // .WhereIF(dto.IsCounterSign.HasValue && dto.IsCounterSign == false, d => d.CounterSignType == null)
|
|
|
- // .WhereIF(dto.ExpiredOrAlmostOverdue.HasValue && dto.ExpiredOrAlmostOverdue == true,
|
|
|
- // d => (d.ExpiredTime < DateTime.Now && d.Status < EOrderStatus.Filed) ||
|
|
|
- // (d.ExpiredTime < d.ActualHandleTime && d.Status >= EOrderStatus.Filed)) //超期 未办
|
|
|
- // .WhereIF(dto.ExpiredOrAlmostOverdue.HasValue && dto.ExpiredOrAlmostOverdue == false,
|
|
|
- // d => d.NearlyExpiredTime < DateTime.Now && d.ExpiredTime > DateTime.Now) //即将超期 未办
|
|
|
- // .Where(d => d.Source < ESource.MLSQ || d.Source > ESource.WZSC)
|
|
|
- // .Where(d => d.Status != EOrderStatus.BackToProvince)
|
|
|
- // .WhereIF(!isHandledStep || _appOptions.Value.IsYiBin,d=>d.Status < EOrderStatus.Filed)
|
|
|
- // //.Where(d => SqlFunc.Subqueryable<OrderSpecial>().Where(os => os.OrderId == d.Id).NotAny())
|
|
|
- // //.Where(d => d.OrderSpecials.Any() == false || d.OrderSpecials.Any(s => s.State > 0))
|
|
|
- // .WhereIF(dto.StartTime.HasValue, d => d.StartTime >= dto.StartTime)
|
|
|
- // .WhereIF(dto.EndTime.HasValue, d => d.StartTime <= dto.EndTime)
|
|
|
- // .WhereIF(dto.IsUrgent.HasValue, d => d.IsUrgent == dto.IsUrgent!.Value)
|
|
|
- // .WhereIF(dto.Status.HasValue, d => d.Status == dto.Status)
|
|
|
- // //.OrderByDescending(d => d.IsUrgent)
|
|
|
- // .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.StartTime, OrderByType.Desc)
|
|
|
- // .OrderByIF(dto is { SortField: "creationTime", SortRule: 0 }, d => d.CreationTime, OrderByType.Asc) //创建时间升序
|
|
|
- // .OrderByIF(dto is { SortField: "creationTime", SortRule: 1 }, d => d.CreationTime, OrderByType.Desc) //创建时间降序
|
|
|
- // .OrderByIF(dto is { SortField: "startTime", SortRule: 0 }, d => d.StartTime, OrderByType.Asc) //受理时间升序
|
|
|
- // .OrderByIF(dto is { SortField: "startTime", SortRule: 1 }, d => d.StartTime, OrderByType.Desc) //受理时间降序
|
|
|
- // .OrderByIF(dto is { SortField: "expiredTime", SortRule: 0 }, d => d.ExpiredTime, OrderByType.Asc) //期满时间升序
|
|
|
- // .OrderByIF(dto is { SortField: "expiredTime", SortRule: 1 }, d => d.ExpiredTime, OrderByType.Desc) //期满时间降序
|
|
|
- // .ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
-
|
|
|
- // return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
|
|
|
- //}
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 列表页面基础数据
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("waited/base-data")]
|
|
|
+ #region 附件列表
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 获取工单所有文件
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="id"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("all_file/{id}")]
|
|
|
+ public async Task<List<FileDto>> GetOrderAllFile(string id)
|
|
|
+ {
|
|
|
+ var order = await _orderRepository.GetAsync(id);
|
|
|
+ var steps = await _workflowStepRepository.Queryable().Where(x => x.WorkflowId == order.WorkflowId).ToListAsync();
|
|
|
+ var allFiles = new List<FileDto>();
|
|
|
+ if (order != null && _sessionContext.OrgIsCenter)
|
|
|
+ {
|
|
|
+ if (order.FileJson != null )
|
|
|
+ {
|
|
|
+ var ids = order.FileJson.Select(x => x.Id).ToList();
|
|
|
+ allFiles = await _fileRepository.GetFilesAsync(ids, cancellationToken: HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ if (order.ListFileJson!= null)
|
|
|
+ {
|
|
|
+ var listIds = order.ListFileJson.Select(x => x.Id).ToList();
|
|
|
+ var listFiles = await _fileRepository.GetFilesAsync(listIds, cancellationToken: HttpContext.RequestAborted);
|
|
|
+ allFiles.AddRange(listFiles);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ foreach (var step in steps)
|
|
|
+ {
|
|
|
+ if (step.FileJson != null && step.FileJson.Any())
|
|
|
+ {
|
|
|
+ var ids = step.FileJson.Select(x => x.Id).ToList();
|
|
|
+ var stepFiles = await _fileRepository.GetPermissionFilesAsync(ids, HttpContext.RequestAborted);
|
|
|
+ allFiles.AddRange(stepFiles);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ allFiles.ForEach(x => x.GetIsDelete(_sessionContext.RequiredUserId));
|
|
|
+ return allFiles;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 新增附件 Classify ="附件列表上传"
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dtos"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("list/file_upload")]
|
|
|
+ [LogFilter("附件列表新增附件")]
|
|
|
+
|
|
|
+ public async Task Add([FromBody] OrderListUploadFilesDto dto)
|
|
|
+ {
|
|
|
+ var listFileJson = new List<FileJson>();
|
|
|
+ if (dto.Files.Any())
|
|
|
+ {
|
|
|
+ listFileJson = await _fileRepository.AddFileAsync(dto.Files, dto.OrderId, "", HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ await _orderRepository.Updateable().SetColumns(x => new Order { ListFileJson = listFileJson }).Where(x => x.Id == dto.OrderId).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #region 工单待办
|
|
|
+
|
|
|
+ ///// <summary>
|
|
|
+ ///// 查询待办工单
|
|
|
+ ///// </summary>
|
|
|
+ //[HttpGet("waited")]
|
|
|
+ //public async Task<PagedDto<OrderDto>> QueryWaited([FromQuery] QueryOrderWaitedDto dto)
|
|
|
+ //{
|
|
|
+ // var isHandledStep = dto.IsHandled.HasValue && dto.IsHandled.Value;
|
|
|
+ // if (isHandledStep)
|
|
|
+ // dto.QueryType = null;
|
|
|
+
|
|
|
+ // var isAdmin = _orderDomainService.IsCheckAdmin();
|
|
|
+ // var query = _orderRepository
|
|
|
+ // .Queryable(hasHandledStep: isHandledStep, isAdmin: isAdmin)
|
|
|
+ // .Includes(d => d.OrderSpecials);
|
|
|
+ // if (dto.QueryType is 1 || dto.QueryType is 2)
|
|
|
+ // {
|
|
|
+ // query.WhereIF(dto.QueryType is 1, d => d.IsForwarded == false)
|
|
|
+ // .WhereIF(dto.QueryType is 2, d => d.IsForwarded == true)
|
|
|
+ // .Where(d => SqlFunc.Subqueryable<OrderSpecial>().Where(os => os.OrderId == d.Id && os.IsDeleted == false && os.SpecialType == ESpecialType.ReTransact)
|
|
|
+ // .NotAny())
|
|
|
+ // ;
|
|
|
+ // }
|
|
|
+
|
|
|
+ // var (total, items) = await query
|
|
|
+ // .Where(d => d.Status != EOrderStatus.WaitForAccept &&
|
|
|
+ // d.Status != EOrderStatus.BackToUnAccept &&
|
|
|
+ // d.Status != EOrderStatus.SpecialToUnAccept &&
|
|
|
+ // d.Status != EOrderStatus.HandOverToUnAccept)
|
|
|
+ // .WhereIF(dto.QueryType is 3,
|
|
|
+ // d => SqlFunc.Subqueryable<OrderSpecial>().Where(os => os.OrderId == d.Id && os.IsDeleted == false && os.SpecialType == ESpecialType.ReTransact).Any())
|
|
|
+ // .Where(d => SqlFunc.Subqueryable<OrderDelay>().Where(od => od.OrderId == d.Id && od.IsDeleted == false && od.DelayState == EDelayState.Examining).NotAny())
|
|
|
+ // .Where(d => SqlFunc.Subqueryable<OrderSendBackAudit>().Where(osba => osba.OrderId == d.Id && osba.IsDeleted == false && osba.State == ESendBackAuditState.Apply)
|
|
|
+ // .NotAny())
|
|
|
+ // .Where(d => SqlFunc.Subqueryable<OrderSpecial>().Where(s => s.OrderId == d.Id && s.State == 0 && s.IsDeleted == false).NotAny())
|
|
|
+ // .WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
|
|
|
+ // .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword))
|
|
|
+ // .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No == dto.No)
|
|
|
+ // .WhereIF(!string.IsNullOrEmpty(dto.AreaCode), d => d.AreaCode == dto.AreaCode)
|
|
|
+ // .WhereIF(dto.IsCounterSign.HasValue && dto.IsCounterSign == true, d => d.CounterSignType.HasValue)
|
|
|
+ // .WhereIF(dto.IsCounterSign.HasValue && dto.IsCounterSign == false, d => d.CounterSignType == null)
|
|
|
+ // .WhereIF(dto.ExpiredOrAlmostOverdue.HasValue && dto.ExpiredOrAlmostOverdue == true,
|
|
|
+ // d => (d.ExpiredTime < DateTime.Now && d.Status < EOrderStatus.Filed) ||
|
|
|
+ // (d.ExpiredTime < d.ActualHandleTime && d.Status >= EOrderStatus.Filed)) //超期 未办
|
|
|
+ // .WhereIF(dto.ExpiredOrAlmostOverdue.HasValue && dto.ExpiredOrAlmostOverdue == false,
|
|
|
+ // d => d.NearlyExpiredTime < DateTime.Now && d.ExpiredTime > DateTime.Now) //即将超期 未办
|
|
|
+ // .Where(d => d.Source < ESource.MLSQ || d.Source > ESource.WZSC)
|
|
|
+ // .Where(d => d.Status != EOrderStatus.BackToProvince)
|
|
|
+ // .WhereIF(!isHandledStep || _appOptions.Value.IsYiBin,d=>d.Status < EOrderStatus.Filed)
|
|
|
+ // //.Where(d => SqlFunc.Subqueryable<OrderSpecial>().Where(os => os.OrderId == d.Id).NotAny())
|
|
|
+ // //.Where(d => d.OrderSpecials.Any() == false || d.OrderSpecials.Any(s => s.State > 0))
|
|
|
+ // .WhereIF(dto.StartTime.HasValue, d => d.StartTime >= dto.StartTime)
|
|
|
+ // .WhereIF(dto.EndTime.HasValue, d => d.StartTime <= dto.EndTime)
|
|
|
+ // .WhereIF(dto.IsUrgent.HasValue, d => d.IsUrgent == dto.IsUrgent!.Value)
|
|
|
+ // .WhereIF(dto.Status.HasValue, d => d.Status == dto.Status)
|
|
|
+ // //.OrderByDescending(d => d.IsUrgent)
|
|
|
+ // .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.StartTime, OrderByType.Desc)
|
|
|
+ // .OrderByIF(dto is { SortField: "creationTime", SortRule: 0 }, d => d.CreationTime, OrderByType.Asc) //创建时间升序
|
|
|
+ // .OrderByIF(dto is { SortField: "creationTime", SortRule: 1 }, d => d.CreationTime, OrderByType.Desc) //创建时间降序
|
|
|
+ // .OrderByIF(dto is { SortField: "startTime", SortRule: 0 }, d => d.StartTime, OrderByType.Asc) //受理时间升序
|
|
|
+ // .OrderByIF(dto is { SortField: "startTime", SortRule: 1 }, d => d.StartTime, OrderByType.Desc) //受理时间降序
|
|
|
+ // .OrderByIF(dto is { SortField: "expiredTime", SortRule: 0 }, d => d.ExpiredTime, OrderByType.Asc) //期满时间升序
|
|
|
+ // .OrderByIF(dto is { SortField: "expiredTime", SortRule: 1 }, d => d.ExpiredTime, OrderByType.Desc) //期满时间降序
|
|
|
+ // .ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ // return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
|
|
|
+ //}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 列表页面基础数据
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("waited/base-data")]
|
|
|
public async Task<object> WaitedBaseData()
|
|
|
{
|
|
|
var wfModule = await _workflowApplication.GetWorkflowModuleAsync(WorkflowModuleConsts.OrderHandle, HttpContext.RequestAborted);
|