|
@@ -60,8 +60,8 @@ public class OrderController : BaseController
|
|
|
private readonly IRepository<OrderRedo> _orderRedoRepository;
|
|
|
private readonly IRepository<OrderSupervise> _orderSuperviseRepository;
|
|
|
private readonly IRepository<OrderUrge> _orderUrgeRepository;
|
|
|
- private readonly IFileRepository _file;
|
|
|
- private readonly IRepository<OrderScreen> _orderScreen;
|
|
|
+ private readonly IFileRepository _fileRepository;
|
|
|
+ private readonly IRepository<OrderScreen> _orderScreenRepository;
|
|
|
|
|
|
|
|
|
public OrderController(
|
|
@@ -87,8 +87,8 @@ public class OrderController : BaseController
|
|
|
IRepository<OrderRedo> orderRedoRepository,
|
|
|
IRepository<OrderSupervise> orderSuperviseRepository,
|
|
|
IRepository<OrderUrge> orderUrgeRepository,
|
|
|
- IFileRepository file,
|
|
|
- IRepository<OrderScreen> orderScreen
|
|
|
+ IFileRepository fileRepository,
|
|
|
+ IRepository<OrderScreen> orderScreenRepository
|
|
|
)
|
|
|
{
|
|
|
_orderDomainService = orderDomainService;
|
|
@@ -113,8 +113,8 @@ public class OrderController : BaseController
|
|
|
_orderRedoRepository = orderRedoRepository;
|
|
|
_orderSuperviseRepository = orderSuperviseRepository;
|
|
|
_orderUrgeRepository = orderUrgeRepository;
|
|
|
- _file = file;
|
|
|
- _orderScreen = orderScreen;
|
|
|
+ _fileRepository = fileRepository;
|
|
|
+ _orderScreenRepository = orderScreenRepository;
|
|
|
|
|
|
}
|
|
|
|
|
@@ -518,23 +518,109 @@ public class OrderController : BaseController
|
|
|
.FirstAsync(x => x.Id == id);
|
|
|
}
|
|
|
|
|
|
- #endregion
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #region 工单甄别
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 工单甄别列表
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.OrderScreenList)]
|
|
|
+ [HttpGet("screen")]
|
|
|
+ public async Task<PagedDto<OrderScreen>> ScreenList([FromQuery] ScreenListDto dto)
|
|
|
+ {
|
|
|
+ var (total, items) = await _orderScreenRepository.Queryable()
|
|
|
+ .Includes(x => x.Visit,d=>d.Order)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Visit.Order.Title.Contains(dto.Keyword!) || d.Visit.Order.No.Contains(dto.Keyword!))
|
|
|
+ .WhereIF(dto.Status == EScreenStatus.Apply || dto.Status == EScreenStatus.Approval || dto.Status == EScreenStatus.End, x => x.Status == dto.Status)
|
|
|
+ .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart)
|
|
|
+ .WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd)
|
|
|
+ .OrderByDescending(x => x.CreationTime)
|
|
|
+ .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
+ return new PagedDto<OrderScreen>(total, items);
|
|
|
+ }
|
|
|
|
|
|
- #region 工单甄别
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 开始工单甄别流程
|
|
|
+ /// </summary>
|
|
|
+ [Permission(EPermission.ApplyScreen)]
|
|
|
+ [HttpPost("screen/startflow")]
|
|
|
+ public async Task StartFlow([FromBody] ScreenStartFlowDto dto)
|
|
|
+ {
|
|
|
+ var model = _mapper.Map<OrderScreen>(dto.Data);
|
|
|
+ model.Status = EScreenStatus.Apply;
|
|
|
+ var id = await _orderScreenRepository.AddAsync(model, HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var startDto = _mapper.Map<StartWorkflowDto>(dto.Workflow);
|
|
|
+ startDto.DefinitionModuleCode = WorkflowModuleConsts.OrderHandle;
|
|
|
+ startDto.Title = dto.Data.Content;
|
|
|
+ await _workflowApplication.StartWorkflowAsync(startDto, id, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
+ {
|
|
|
+ await Remove(id);
|
|
|
+ throw new UserFriendlyException($"工单开启甄别流程失败!, {e.Message}", "工单开启甄别流程失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 查询工单甄别流程开启参数
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("screen/startflow")]
|
|
|
+ public async Task<DefinedStepDto> GetScreenFlowStartOptionsAsync()
|
|
|
+ {
|
|
|
+ return await _workflowApplication.GetStartOptionsAsync(WorkflowModuleConsts.OrderScreen, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 列表页面基础数据
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("screen/base")]
|
|
|
+ public async Task<object> ScreenBaseData()
|
|
|
+ {
|
|
|
+ var rsp = new
|
|
|
+ {
|
|
|
+ ScreenStatus = EnumExts.GetDescriptions<EScreenStatus>(),
|
|
|
+ ScreenType = await _systemDomainService.GetSysDicDataByCodeAsync(SysDicTypeConsts.ScreenType),
|
|
|
+ };
|
|
|
+ return rsp;
|
|
|
+ }
|
|
|
|
|
|
- #endregion
|
|
|
|
|
|
- #region 工单督办
|
|
|
+ /// <summary>
|
|
|
+ /// 甄别详情
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="id"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.ScreenEntity)]
|
|
|
+ [HttpGet("screen/{id}")]
|
|
|
+ public async Task<OrderScreen> ScreenEntity(string id)
|
|
|
+ {
|
|
|
+ return await _orderScreenRepository.Queryable()
|
|
|
+ .Includes(x => x.Visit, d=>d.Order)
|
|
|
+ .FirstAsync(x => x.Id == id);
|
|
|
+ }
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 工单督办列表
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [Permission(EPermission.SuperviseOrderList)]
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #region 工单督办
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 工单督办列表
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.SuperviseOrderList)]
|
|
|
[HttpGet("supervise")]
|
|
|
public async Task<PagedDto<SuperviseOrderDto>> SuperviseList([FromQuery] SuperviseListDto dto)
|
|
|
{
|
|
@@ -586,12 +672,10 @@ public class OrderController : BaseController
|
|
|
if (supervise.State > 0)
|
|
|
throw UserFriendlyException.SameMessage("督办已回复,请勿重复回复");
|
|
|
|
|
|
- var model = _mapper.Map<OrderSupervise>(dto);
|
|
|
- model.ReplyId = _sessionContext.UserId;
|
|
|
- model.ReplyTime = DateTime.Now;
|
|
|
- model.State = 1;
|
|
|
- model.Id = dto.Id;
|
|
|
- await _orderSuperviseRepository.UpdateAsync(model, HttpContext.RequestAborted);
|
|
|
+ supervise.ReplyId = _sessionContext.UserId;
|
|
|
+ supervise.ReplyTime = DateTime.Now;
|
|
|
+ supervise.State = 1;
|
|
|
+ await _orderSuperviseRepository.UpdateAsync(supervise, HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -607,11 +691,8 @@ public class OrderController : BaseController
|
|
|
var supervise = await _orderSuperviseRepository.GetAsync(dto.Id, HttpContext.RequestAborted);
|
|
|
if (supervise is null)
|
|
|
throw UserFriendlyException.SameMessage("无效督办");
|
|
|
-
|
|
|
- var model = _mapper.Map<OrderSupervise>(dto);
|
|
|
- model.SignTime = DateTime.Now;
|
|
|
- model.Id = dto.Id;
|
|
|
- await _orderSuperviseRepository.UpdateAsync(model, HttpContext.RequestAborted);
|
|
|
+ supervise.SignTime = DateTime.Now;
|
|
|
+ await _orderSuperviseRepository.UpdateAsync(supervise, HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -669,7 +750,9 @@ public class OrderController : BaseController
|
|
|
throw UserFriendlyException.SameMessage("无效工单");
|
|
|
|
|
|
var model = _mapper.Map<OrderUrge>(dto);
|
|
|
- await _orderUrgeRepository.AddAsync(model, HttpContext.RequestAborted);
|
|
|
+ model.CreatorOrgName = _sessionContext.OrgName;
|
|
|
+ model.State = 0;
|
|
|
+ await _orderUrgeRepository.AddAsync(model, HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -688,12 +771,10 @@ public class OrderController : BaseController
|
|
|
if (urge.State > 0)
|
|
|
throw UserFriendlyException.SameMessage("督办已回复,请勿重复回复");
|
|
|
|
|
|
- var model = _mapper.Map<OrderUrge>(dto);
|
|
|
- model.ReplyId = _sessionContext.UserId;
|
|
|
- model.ReplyTime = DateTime.Now;
|
|
|
- model.State = 1;
|
|
|
- model.Id = dto.Id;
|
|
|
- await _orderUrgeRepository.UpdateAsync(model, HttpContext.RequestAborted);
|
|
|
+ urge.ReplyId = _sessionContext.UserId;
|
|
|
+ urge.ReplyTime = DateTime.Now;
|
|
|
+ urge.State = 1;
|
|
|
+ await _orderUrgeRepository.UpdateAsync(urge, HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -710,10 +791,8 @@ public class OrderController : BaseController
|
|
|
if (urge is null)
|
|
|
throw UserFriendlyException.SameMessage("无效催办");
|
|
|
|
|
|
- var model = _mapper.Map<OrderUrge>(dto);
|
|
|
- model.SignTime = DateTime.Now;
|
|
|
- model.Id = dto.Id;
|
|
|
- await _orderUrgeRepository.UpdateAsync(model, HttpContext.RequestAborted);
|
|
|
+ urge.SignTime = DateTime.Now;
|
|
|
+ await _orderUrgeRepository.UpdateAsync(urge, HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -850,7 +929,7 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
var order = _mapper.Map<Order>(dto);
|
|
|
var orderNo = await _orderDomainService.AddAsync(order, HttpContext.RequestAborted);
|
|
|
- if (dto.Files.Any()) await _file.AddFileAsync(dto.Files, orderNo, HttpContext.RequestAborted);
|
|
|
+ if (dto.Files.Any()) await _fileRepository.AddFileAsync(dto.Files, orderNo, HttpContext.RequestAborted);
|
|
|
return orderNo;
|
|
|
}
|
|
|
|