|
@@ -32,6 +32,7 @@ using XF.Domain.Constants;
|
|
|
using XF.Domain.Exceptions;
|
|
|
using XF.Domain.Repository;
|
|
|
using XF.Utility.EnumExtensions;
|
|
|
+using Microsoft.IdentityModel.Tokens;
|
|
|
|
|
|
namespace Hotline.Api.Controllers;
|
|
|
|
|
@@ -72,6 +73,7 @@ public class OrderController : BaseController
|
|
|
private readonly IRepository<RepeatableEvent> _repeatableEventRepository;
|
|
|
private readonly IRepeatableEventDetailRepository _repeatableEventDetailRepository;
|
|
|
private readonly IRepository<OrderWord> _orderWrodRepository;
|
|
|
+ private readonly IRepository<OrderObserve> _orderObserveRepository;
|
|
|
|
|
|
|
|
|
public OrderController(
|
|
@@ -106,7 +108,8 @@ public class OrderController : BaseController
|
|
|
IRepository<CitizenLabelDetail> labelDetailRepository,
|
|
|
IRepository<RepeatableEvent> repeatableEventRepository,
|
|
|
IRepeatableEventDetailRepository repeatableEventDetailRepository,
|
|
|
- IRepository<OrderWord> orderWrodRepository
|
|
|
+ IRepository<OrderWord> orderWrodRepository,
|
|
|
+ IRepository<OrderObserve> orderObserveRepository
|
|
|
)
|
|
|
{
|
|
|
_orderDomainService = orderDomainService;
|
|
@@ -141,6 +144,7 @@ public class OrderController : BaseController
|
|
|
_repeatableEventRepository = repeatableEventRepository;
|
|
|
_repeatableEventDetailRepository = repeatableEventDetailRepository;
|
|
|
_orderWrodRepository = orderWrodRepository;
|
|
|
+ _orderObserveRepository = orderObserveRepository;
|
|
|
|
|
|
}
|
|
|
|
|
@@ -2064,4 +2068,79 @@ public class OrderController : BaseController
|
|
|
return rsp;
|
|
|
}
|
|
|
#endregion
|
|
|
+
|
|
|
+ #region 工单观察
|
|
|
+ /// <summary>
|
|
|
+ /// 新增工单观察
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dtos"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.AddOrderObserve)]
|
|
|
+ [HttpPost("order_observe")]
|
|
|
+ public async Task Add([FromBody] OrderObserveAddDto dto)
|
|
|
+ {
|
|
|
+ var observe = _mapper.Map<OrderObserve>(dto);
|
|
|
+ await _orderObserveRepository.AddAsync(observe, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 删除工单观察
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.DeleteOrderObserve)]
|
|
|
+ [HttpDelete("order_observe")]
|
|
|
+ public async Task Delete([FromBody] OrderObserveDeleteDto dto)
|
|
|
+ {
|
|
|
+ await _orderRepository.RemoveOrderObserveBatchAsync(dto.Ids, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 更新工单观察
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.UpdateOrderObserve)]
|
|
|
+ [HttpPut("order_observe")]
|
|
|
+ public async Task Update([FromBody] OrderObserveUpdateDto dto)
|
|
|
+ {
|
|
|
+ var word = await _orderObserveRepository.GetAsync(dto.Id, HttpContext.RequestAborted);
|
|
|
+ if (word is null)
|
|
|
+ throw UserFriendlyException.SameMessage("无效工单观察");
|
|
|
+ _mapper.Map(dto, word);
|
|
|
+ await _orderObserveRepository.UpdateAsync(word, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 获取工单观察列表
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.OrderObserveList)]
|
|
|
+ [HttpGet("order_observe/list")]
|
|
|
+ public async Task<PagedDto<OrderObserveDto>> List([FromQuery] OrderObserveListDto dto)
|
|
|
+ {
|
|
|
+ var (total, items) = await _orderObserveRepository.Queryable()
|
|
|
+ .Includes(x=>x.Order)
|
|
|
+ .WhereIF(dto.IsProvince.HasValue, x => x.Order.IsProvince == dto.IsProvince)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.Order.Title.Contains(dto.Title!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.Order.No.Contains(dto.No!))
|
|
|
+ .OrderByDescending(x => x.CreationTime)
|
|
|
+ .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
+ return new PagedDto<OrderObserveDto>(total, _mapper.Map<IReadOnlyList<OrderObserveDto>>(items));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 获取工单观察
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="id"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("order_observe/{id}")]
|
|
|
+ public async Task<OrderObserve> OrderObserveEntity(string id)
|
|
|
+ {
|
|
|
+ return await _orderObserveRepository.Queryable()
|
|
|
+ .FirstAsync(x => x.Id == id);
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
}
|