|
@@ -64,6 +64,7 @@ using XF.Domain.Entities;
|
|
|
using XF.Domain.Exceptions;
|
|
|
using XF.Domain.Repository;
|
|
|
using XF.Utility.EnumExtensions;
|
|
|
+using Newtonsoft.Json;
|
|
|
|
|
|
namespace Hotline.Api.Controllers;
|
|
|
|
|
@@ -135,8 +136,8 @@ public class OrderController : BaseController
|
|
|
private readonly IOrderAnalysisApplication _orderAnalysisApplication;
|
|
|
private readonly ICalcExpireTime _expireTime;
|
|
|
private readonly IRepository<OrderPushType> _orderPushTypeRepository;
|
|
|
- private readonly IOptions<CityBaseConfiguration> _cityBaseConfiguration;
|
|
|
private readonly IRepository<OrderRevoke> _orderRevokeRepository;
|
|
|
+ private readonly IOrderTerminateRepository _orderTerminateRepository;
|
|
|
|
|
|
public OrderController(
|
|
|
IOrderDomainService orderDomainService,
|
|
@@ -197,11 +198,12 @@ public class OrderController : BaseController
|
|
|
Publisher publisher,
|
|
|
IOrderAnalysisApplication orderAnalysisApplication,
|
|
|
ICalcExpireTime expireTime,
|
|
|
- IOptions<CityBaseConfiguration> cityBaseConfiguration,
|
|
|
IRepository<OrderPushType> orderPushTypeRepository,
|
|
|
ICallNativeRepository callNativeRepository,
|
|
|
ICallNativeApplication callNativeApplication,
|
|
|
- IRepository<OrderRevoke> orderRevokeRepository)
|
|
|
+ IRepository<OrderRevoke> orderRevokeRepository,
|
|
|
+ BaseDataApplication baseDataApplication,
|
|
|
+ IOrderTerminateRepository orderTerminateRepository)
|
|
|
{
|
|
|
_orderDomainService = orderDomainService;
|
|
|
_orderRepository = orderRepository;
|
|
@@ -264,6 +266,8 @@ public class OrderController : BaseController
|
|
|
_orderPushTypeRepository = orderPushTypeRepository;
|
|
|
_callNativeRepository = callNativeRepository;
|
|
|
_callNativeApplication = callNativeApplication;
|
|
|
+ _baseDataApplication = baseDataApplication;
|
|
|
+ _orderTerminateRepository = orderTerminateRepository;
|
|
|
_orderRevokeRepository = orderRevokeRepository;
|
|
|
}
|
|
|
#endregion
|
|
@@ -284,18 +288,18 @@ public class OrderController : BaseController
|
|
|
.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.Title), d => d.Title == dto.Title)
|
|
|
- .WhereIF(dto.PubState == EPubState.Pub, d => d.Status >= EOrderStatus.Published)
|
|
|
+ .WhereIF(dto.PubState == EPubState.Pub, d => d.Status >= EOrderStatus.Published)
|
|
|
.WhereIF(dto.PubState == EPubState.NoPub, d => d.Status < EOrderStatus.Published)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannelCode == dto.Channel)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.OrderTag), d => d.OrderTagCode == dto.OrderTag!) //工单标签
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.CenterToOrgHandlerName), d => d.CenterToOrgHandlerName == dto.CenterToOrgHandlerName! ) //派单人
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.AcceptorName == dto.NameOrNo! || d.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrderTag), d => d.OrderTagCode == dto.OrderTag!) //工单标签
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.CenterToOrgHandlerName), d => d.CenterToOrgHandlerName == dto.CenterToOrgHandlerName!) //派单人
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.AcceptorName == dto.NameOrNo! || d.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptTypeCode == dto.AcceptType)//受理类型
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.HotspotSpliceName != null && d.HotspotSpliceName.Contains(dto.Hotspot))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.FromPhone), d => d.FromPhone == dto.FromPhone) //来电号码
|
|
|
- //.WhereIF(!string.IsNullOrEmpty(dto.PubMan),
|
|
|
- // d => d.AcceptorName.Contains(dto.PubMan!) || d.AcceptorStaffNo.Contains(dto.PubMan!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.FromPhone), d => d.FromPhone == dto.FromPhone) //来电号码
|
|
|
+ //.WhereIF(!string.IsNullOrEmpty(dto.PubMan),
|
|
|
+ // d => d.AcceptorName.Contains(dto.PubMan!) || d.AcceptorStaffNo.Contains(dto.PubMan!))
|
|
|
.WhereIF(dto.PubRange == EPublicState.Pub, d => d.OrderPublish.PublishState)
|
|
|
.WhereIF(dto.PubRange == EPublicState.NoPub, d => !d.OrderPublish.PublishState)
|
|
|
.WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == true, d => d.Source == ESource.ProvinceStraight)
|
|
@@ -372,12 +376,23 @@ public class OrderController : BaseController
|
|
|
orderVisit.PublishTime = DateTime.Now;
|
|
|
orderVisit.IsCanHandle = true;
|
|
|
orderVisit.EmployeeId = _sessionContext.RequiredUserId;
|
|
|
+
|
|
|
+ if (_appOptions.Value.IsZiGong)
|
|
|
+ {
|
|
|
+ orderVisit.EmployeeId = string.Empty;
|
|
|
+ }
|
|
|
if (order is { ProcessType: EProcessType.Zhiban, CounterSignType: null } && !order.IsProvince)
|
|
|
{
|
|
|
orderVisit.VisitState = EVisitState.Visited;
|
|
|
orderVisit.VisitTime = DateTime.Now;
|
|
|
orderVisit.VisitType = EVisitType.OtherVisit;
|
|
|
orderVisit.NowEvaluate = new Kv() { Key = "4", Value = "满意" };
|
|
|
+ if (_appOptions.Value.IsZiGong)
|
|
|
+ {
|
|
|
+ // 根据禅道 自贡需求 Id_361, 第一条, 3小条需求;
|
|
|
+ // 直办件归档后自动回访量需统计在“胡玲”的默认回访量中;
|
|
|
+ orderVisit.EmployeeId = _systemSettingCacheManager.DefaultVisitEmployeeId;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (order.CounterSignType != ECounterSignType.Center)
|
|
@@ -385,10 +400,6 @@ public class OrderController : BaseController
|
|
|
orderVisit.IsCanAiVisit = true;
|
|
|
}
|
|
|
|
|
|
- if (_appOptions.Value.IsZiGong)
|
|
|
- {
|
|
|
- orderVisit.EmployeeId = string.Empty;
|
|
|
- }
|
|
|
|
|
|
string visitId = await _orderVisitRepository.AddAsync(orderVisit);
|
|
|
|
|
@@ -522,6 +533,10 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
orderVisit.EmployeeId = _sessionContext.RequiredUserId;
|
|
|
}
|
|
|
+ if (_appOptions.Value.IsZiGong)
|
|
|
+ {
|
|
|
+ orderVisit.EmployeeId = string.Empty;
|
|
|
+ }
|
|
|
|
|
|
if (order is { ProcessType: EProcessType.Zhiban, CounterSignType: null } && !order.IsProvince)
|
|
|
{
|
|
@@ -529,14 +544,15 @@ public class OrderController : BaseController
|
|
|
orderVisit.VisitTime = DateTime.Now;
|
|
|
orderVisit.VisitType = EVisitType.OtherVisit;
|
|
|
orderVisit.NowEvaluate = new Kv() { Key = "4", Value = "满意" };
|
|
|
- }
|
|
|
|
|
|
- if (_appOptions.Value.IsZiGong)
|
|
|
- {
|
|
|
- orderVisit.EmployeeId = string.Empty;
|
|
|
+ if (_appOptions.Value.IsZiGong)
|
|
|
+ {
|
|
|
+ // 根据禅道 自贡需求 Id_361, 第一条, 3小条需求;
|
|
|
+ // 直办件归档后自动回访量需统计在“胡玲”的默认回访量中;
|
|
|
+ orderVisit.EmployeeId = _systemSettingCacheManager.DefaultVisitEmployeeId;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-
|
|
|
if (order.CounterSignType != ECounterSignType.Center)
|
|
|
{
|
|
|
orderVisit.IsCanAiVisit = true;
|
|
@@ -663,13 +679,13 @@ public class OrderController : BaseController
|
|
|
.WhereIF(dto.CreationTimeEnd.HasValue, d => d.Order.CreationTime <= dto.CreationTimeEnd)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.FromPhone), d => d.Order.FromPhone == dto.FromPhone) //来电号码
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.Order.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.Order.AcceptTypeCode == dto.AcceptType)//受理类型
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.Order.AcceptTypeCode == dto.AcceptType)//受理类型
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.Order.HotspotSpliceName != null && d.Order.HotspotSpliceName.Contains(dto.Hotspot))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.PublishName), d => d.CreatorName.Contains(dto.PublishName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.PublishName), d => d.CreatorName.Contains(dto.PublishName!))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.Order.AcceptorName == dto.NameOrNo! || d.Order.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
|
|
|
.WhereIF(dto.StartTime.HasValue, d => d.CreationTime >= dto.StartTime)
|
|
|
.WhereIF(dto.EndTime.HasValue, d => d.CreationTime <= dto.EndTime)
|
|
|
- .WhereIF(dto.Resolve.HasValue, x => x.Resolve == dto.Resolve)
|
|
|
+ .WhereIF(dto.Resolve.HasValue, x => x.Resolve == dto.Resolve)
|
|
|
.OrderByDescending(d => d.CreationTime)
|
|
|
.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
|
|
@@ -820,7 +836,7 @@ public class OrderController : BaseController
|
|
|
ChannelOptions = _sysDicDataCacheManager.GetSysDicDataCache(TimeLimitBaseDataConsts.SourceChannel),
|
|
|
AcceptTypeOptions = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.AcceptType),
|
|
|
OrderTags = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.OrderTag)
|
|
|
- };
|
|
|
+ };
|
|
|
return rsp;
|
|
|
}
|
|
|
|
|
@@ -1050,7 +1066,6 @@ public class OrderController : BaseController
|
|
|
|
|
|
foreach (var visit in dto.Visit)
|
|
|
{
|
|
|
-
|
|
|
try
|
|
|
{
|
|
|
var details = await _orderVisitedDetailRepository
|
|
@@ -1096,6 +1111,10 @@ public class OrderController : BaseController
|
|
|
});
|
|
|
}
|
|
|
await _orderApplication.SaveOrderVisit(visitDto, HttpContext.RequestAborted);
|
|
|
+ await _orderVisitRepository.Updateable()
|
|
|
+ .Where(m => m.Id == visit.VisitId)
|
|
|
+ .SetColumns(m => m.IsBatchVisit == true)
|
|
|
+ .ExecuteCommandAsync();
|
|
|
outDto.CompleteCount += 1;
|
|
|
}
|
|
|
catch (Exception e)
|
|
@@ -2379,9 +2398,10 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
|
|
|
+ CityBaseConfiguration cityBase = JsonConvert.DeserializeObject<CityBaseConfiguration>(setting);
|
|
|
//推省上
|
|
|
- if (!string.IsNullOrEmpty(model.Id) && (_cityBaseConfiguration.Value.CityProvince.OrgId.Equals(model.OrgId) || _cityBaseConfiguration.Value.CityProvinceAssign.OrgId.Equals(model.OrgId)))
|
|
|
+ if (!string.IsNullOrEmpty(model.Id) && (cityBase.CityProvince.OrgId.Equals(model.OrgId) || cityBase.CityProvinceAssign.OrgId.Equals(model.OrgId)))
|
|
|
{
|
|
|
var orderDto = _mapper.Map<OrderDto>(order);
|
|
|
var supervise = await _orderSuperviseRepository.GetAsync(x => x.Id == model.Id);
|
|
@@ -2624,9 +2644,10 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
|
|
|
+ CityBaseConfiguration cityBase = JsonConvert.DeserializeObject<CityBaseConfiguration>(setting);
|
|
|
//推省上
|
|
|
- if (!string.IsNullOrEmpty(model.Id) && (_cityBaseConfiguration.Value.CityProvince.OrgId.Equals(model.OrgId) || _cityBaseConfiguration.Value.CityProvinceAssign.OrgId.Equals(model.OrgId)))
|
|
|
+ if (!string.IsNullOrEmpty(model.Id) && (cityBase.CityProvince.OrgId.Equals(model.OrgId) || cityBase.CityProvinceAssign.OrgId.Equals(model.OrgId)))
|
|
|
{
|
|
|
var orderDto = _mapper.Map<OrderDto>(order);
|
|
|
var urge = await _orderUrgeRepository.GetAsync(x => x.Id == model.Id);
|
|
@@ -3086,8 +3107,13 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
dto.ProvinceRevokeString = "该工单已由省平台发送撤单!请直接归档办理!";
|
|
|
}
|
|
|
+ //终止
|
|
|
+ var orderTerminateList = await _orderTerminateRepository.Queryable().Where(x => x.OrderId == order.Id).ToListAsync();
|
|
|
+ dto.OrderTerminateStatus = orderTerminateList.Any(x => x.Status == ETerminateStatus.End) ? "同意" : orderTerminateList.Any(x => x.Status == ETerminateStatus.Refuse) ?
|
|
|
+ "不同意" : orderTerminateList.Any(x => x.Status == ETerminateStatus.Approval || x.Status == ETerminateStatus.SendBack) ? "审批中" : null;
|
|
|
|
|
|
- return _sessionContext.OrgIsCenter ? dto : dto.DataMask();
|
|
|
+
|
|
|
+ return _sessionContext.OrgIsCenter ? dto : dto.DataMask();
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -3391,7 +3417,9 @@ public class OrderController : BaseController
|
|
|
throw new UserFriendlyException($"该工单已开启办理流程, No:{order.No}", "该工单已开启办理流程");
|
|
|
|
|
|
ExpiredTimeWithConfig expiredTimeConfig;
|
|
|
- if (dto.Workflow.NextHandlers.Any(d => d.Key == _cityBaseConfiguration.Value.CityProvince.OrgId || d.Key == _cityBaseConfiguration.Value.CityProvinceAssign.OrgId))
|
|
|
+ var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
|
|
|
+ CityBaseConfiguration cityBase = JsonConvert.DeserializeObject<CityBaseConfiguration>(setting);
|
|
|
+ if (dto.Workflow.NextHandlers.Any(d => d.Key == cityBase.CityProvince.OrgId || d.Key == cityBase.CityProvinceAssign.OrgId))
|
|
|
{
|
|
|
var timeResult = await _expireTime.CalcEndTime(DateTime.Now, ETimeType.WorkDay, 45, 80, 50);
|
|
|
expiredTimeConfig = new ExpiredTimeWithConfig
|
|
@@ -3780,6 +3808,7 @@ public class OrderController : BaseController
|
|
|
.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 => new { d.IsUrgent, d.StartTime })
|
|
|
.ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
|
|
@@ -3837,6 +3866,7 @@ public class OrderController : BaseController
|
|
|
//.Where(d => (string.IsNullOrEmpty(d.WorkflowId) && (string.IsNullOrEmpty(d.SignerId) || d.SignerId == _sessionContext.RequiredUserId)))
|
|
|
//.Where(d => string.IsNullOrEmpty(d.SignerId) || d.SignerId == _sessionContext.RequiredUserId)
|
|
|
.WhereIF(dto.IsUrgent.HasValue, d => d.IsUrgent == dto.IsUrgent.Value)
|
|
|
+ .WhereIF(dto.Status.HasValue, d => d.Status == dto.Status)
|
|
|
.Where(x => x.Source < ESource.MLSQ || x.Source > ESource.WZSC)
|
|
|
.Where(x => x.Status != EOrderStatus.BackToProvince && x.Status < EOrderStatus.Filed)
|
|
|
.OrderBy(d => d.Status)
|
|
@@ -4652,9 +4682,11 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (order != null && (_cityBaseConfiguration.Value.CityProvince.OrgId.Equals(model.OrgId) ||
|
|
|
- _cityBaseConfiguration.Value.CityProvinceAssign.OrgId.Equals(model.OrgId) || _cityBaseConfiguration.Value.CityEnterprise.OrgId.Equals(model.OrgId) ||
|
|
|
- _cityBaseConfiguration.Value.PublicSecurity.OrgId.Equals(model.OrgId)))
|
|
|
+ var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
|
|
|
+ CityBaseConfiguration cityBase = JsonConvert.DeserializeObject<CityBaseConfiguration>(setting);
|
|
|
+ if (order != null && (cityBase.CityProvince.OrgId.Equals(model.OrgId) ||
|
|
|
+ cityBase.CityProvinceAssign.OrgId.Equals(model.OrgId) || cityBase.CityEnterprise.OrgId.Equals(model.OrgId) ||
|
|
|
+ cityBase.PublicSecurity.OrgId.Equals(model.OrgId)))
|
|
|
{
|
|
|
await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderFlowRecalled,
|
|
|
new PublishSpecialDto { Order = _mapper.Map<OrderDto>(order), Special = _mapper.Map<OrderSpecialDto>(model) },
|
|
@@ -4905,9 +4937,11 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (order != null && (_cityBaseConfiguration.Value.CityProvince.OrgId.Equals(special.OrgId) ||
|
|
|
- _cityBaseConfiguration.Value.CityProvinceAssign.OrgId.Equals(special.OrgId) || _cityBaseConfiguration.Value.CityEnterprise.OrgId.Equals(special.OrgId) ||
|
|
|
- _cityBaseConfiguration.Value.PublicSecurity.OrgId.Equals(special.OrgId)))
|
|
|
+ var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
|
|
|
+ CityBaseConfiguration cityBase = JsonConvert.DeserializeObject<CityBaseConfiguration>(setting);
|
|
|
+ if (order != null && (cityBase.CityProvince.OrgId.Equals(special.OrgId) ||
|
|
|
+ cityBase.CityProvinceAssign.OrgId.Equals(special.OrgId) || cityBase.CityEnterprise.OrgId.Equals(special.OrgId) ||
|
|
|
+ cityBase.PublicSecurity.OrgId.Equals(special.OrgId)))
|
|
|
{
|
|
|
await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderFlowRecalled,
|
|
|
new PublishSpecialDto { Order = _mapper.Map<OrderDto>(order), Special = _mapper.Map<OrderSpecialDto>(special) },
|
|
@@ -5017,10 +5051,11 @@ public class OrderController : BaseController
|
|
|
await _orderVisitRepository.UpdateAsync(visit, HttpContext.RequestAborted);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- if (order != null && (_cityBaseConfiguration.Value.CityProvince.OrgId.Equals(special.OrgId) ||
|
|
|
- _cityBaseConfiguration.Value.CityProvinceAssign.OrgId.Equals(special.OrgId) || _cityBaseConfiguration.Value.CityEnterprise.OrgId.Equals(special.OrgId) ||
|
|
|
- _cityBaseConfiguration.Value.PublicSecurity.OrgId.Equals(special.OrgId)))
|
|
|
+ var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
|
|
|
+ CityBaseConfiguration cityBase = JsonConvert.DeserializeObject<CityBaseConfiguration>(setting);
|
|
|
+ if (order != null && (cityBase.CityProvince.OrgId.Equals(special.OrgId) ||
|
|
|
+ cityBase.CityProvinceAssign.OrgId.Equals(special.OrgId) || cityBase.CityEnterprise.OrgId.Equals(special.OrgId) ||
|
|
|
+ cityBase.PublicSecurity.OrgId.Equals(special.OrgId)))
|
|
|
{
|
|
|
await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderFlowRecalled,
|
|
|
new PublishSpecialDto { Order = _mapper.Map<OrderDto>(order), Special = _mapper.Map<OrderSpecialDto>(special) },
|
|
@@ -5201,6 +5236,8 @@ public class OrderController : BaseController
|
|
|
var step = await _workflowApplication.GetRecallStepsAsync(id, HttpContext.RequestAborted);
|
|
|
var specialSeats = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.SpecialSeats).SettingValue[0]);
|
|
|
var specialSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.SpecialSendOrder).SettingValue[0]);
|
|
|
+ var order = await _orderRepository.Queryable().Where(d => d.WorkflowId == id).FirstAsync(HttpContext.RequestAborted);
|
|
|
+ if (order == null) throw UserFriendlyException.SameMessage("无效工单信息!");
|
|
|
|
|
|
var baseTypeId = string.Empty;
|
|
|
if (step != null && step.Steps.Any() && _sessionContext.Roles.Contains("zuoxi") && specialSeats &&
|
|
@@ -5223,7 +5260,8 @@ public class OrderController : BaseController
|
|
|
SpecialReason = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.SpecialReason),
|
|
|
InstaShotSpecialReason = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.InstaShotSpecialReason),
|
|
|
Step = step,
|
|
|
- BaseTypeId = baseTypeId
|
|
|
+ IsTerminate = await _orderTerminateRepository.Queryable().Where(d=>d.OrderId == order.Id && d.Status == ETerminateStatus.End).AnyAsync(),
|
|
|
+ BaseTypeId = baseTypeId
|
|
|
};
|
|
|
return rsp;
|
|
|
}
|
|
@@ -5249,7 +5287,8 @@ public class OrderController : BaseController
|
|
|
SpecialTimeType = EnumExts.GetDescriptions<ETimeType>(),
|
|
|
SpecialReason = isInstaShot ? _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.InstaShotSpecialReason) : _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.SpecialReason),
|
|
|
ReTransactErrorType = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.ReTransactErrorType),
|
|
|
- Step = step,
|
|
|
+ IsTerminate = await _orderTerminateRepository.Queryable().Where(d => d.OrderId == order.Id && d.Status == ETerminateStatus.End).AnyAsync(),
|
|
|
+ Step = step,
|
|
|
Orgs = orgs,
|
|
|
};
|
|
|
return rsp;
|
|
@@ -5696,7 +5735,7 @@ public class OrderController : BaseController
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
- #region 工单观察
|
|
|
+ #region 工单观察、关注
|
|
|
|
|
|
/// <summary>
|
|
|
/// 新增工单观察
|
|
@@ -5756,8 +5795,8 @@ public class OrderController : BaseController
|
|
|
public async Task<PagedDto<OrderObserveDto>> List([FromQuery] OrderObserveListDto dto)
|
|
|
{
|
|
|
var quer = _orderApplication.OrderObserveList(dto);
|
|
|
- var (total, items) = await
|
|
|
- quer.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
+ var (total, items) = await
|
|
|
+ quer.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
return new PagedDto<OrderObserveDto>(total, _mapper.Map<IReadOnlyList<OrderObserveDto>>(items));
|
|
|
}
|
|
|
|
|
@@ -5767,70 +5806,70 @@ public class OrderController : BaseController
|
|
|
/// <param name="dto"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost("order_observe/list/export")]
|
|
|
- public async Task<FileStreamResult> ListExport([FromBody] ExportExcelDto<OrderObserveListDto> dto)
|
|
|
+ public async Task<FileStreamResult> ListExport([FromBody] ExportExcelDto<OrderObserveListDto> dto)
|
|
|
{
|
|
|
- var query = _orderApplication.OrderObserveList(dto.QueryDto);
|
|
|
- List<OrderObserve> data;
|
|
|
- if (dto.IsExportAll)
|
|
|
- {
|
|
|
- data = await query.ToListAsync(HttpContext.RequestAborted);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
|
|
|
- data = items;
|
|
|
- }
|
|
|
+ var query = _orderApplication.OrderObserveList(dto.QueryDto);
|
|
|
+ List<OrderObserve> data;
|
|
|
+ if (dto.IsExportAll)
|
|
|
+ {
|
|
|
+ data = await query.ToListAsync(HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
|
|
|
+ data = items;
|
|
|
+ }
|
|
|
|
|
|
- var dataDtos = _mapper.Map<ICollection<OrderObserveDto>>(data);
|
|
|
+ var dataDtos = _mapper.Map<ICollection<OrderObserveDto>>(data);
|
|
|
|
|
|
- dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
|
|
|
+ dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
|
|
|
|
|
|
- var dtos = dataDtos
|
|
|
- .Select(stu => _mapper.Map(stu, typeof(OrderObserveDto), dynamicClass))
|
|
|
- .Cast<object>()
|
|
|
- .ToList();
|
|
|
+ var dtos = dataDtos
|
|
|
+ .Select(stu => _mapper.Map(stu, typeof(OrderObserveDto), dynamicClass))
|
|
|
+ .Cast<object>()
|
|
|
+ .ToList();
|
|
|
|
|
|
- var stream = ExcelHelper.CreateStream(dtos);
|
|
|
+ var stream = ExcelHelper.CreateStream(dtos);
|
|
|
|
|
|
- return ExcelStreamResult(stream, "工单关注列表");
|
|
|
+ return ExcelStreamResult(stream, "工单关注列表");
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 获取工单观察
|
|
|
- /// </summary>
|
|
|
- /// <param name="id"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("order_observe/{id}")]
|
|
|
+ /// <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);
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 列表页面基础数据
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("order_observe/base-data")]
|
|
|
- public async Task<object> OrderObserveBaseData()
|
|
|
- {
|
|
|
- var rsp = new
|
|
|
- {
|
|
|
- AcceptTypeOptions = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.AcceptType)
|
|
|
- };
|
|
|
- return rsp;
|
|
|
- }
|
|
|
-
|
|
|
- #endregion
|
|
|
-
|
|
|
- #region 工单终结
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 新增工单终结
|
|
|
- /// </summary>
|
|
|
- /// <param name="dtos"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [Permission(EPermission.AddOrderFinality)]
|
|
|
+ /// <summary>
|
|
|
+ /// 列表页面基础数据
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("order_observe/base-data")]
|
|
|
+ public async Task<object> OrderObserveBaseData()
|
|
|
+ {
|
|
|
+ var rsp = new
|
|
|
+ {
|
|
|
+ AcceptTypeOptions = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.AcceptType)
|
|
|
+ };
|
|
|
+ return rsp;
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #region 工单终结
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 新增工单终结
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dtos"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.AddOrderFinality)]
|
|
|
[HttpPost("order_finality")]
|
|
|
[LogFilter("新增工单终结")]
|
|
|
public async Task Add([FromBody] OrderFinalityAddDto dto)
|
|
@@ -6524,7 +6563,7 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
var oldInfo = _mapper.Map<OrderDto>(modifyRecordsInfo);
|
|
|
oldInfo.CenterOpinion = modifyRecordsInfo.CenterToOrgOpinion;
|
|
|
- return new { OldInfo=oldInfo, NewInfo = newInfo };
|
|
|
+ return new { OldInfo = oldInfo, NewInfo = newInfo };
|
|
|
}
|
|
|
|
|
|
#endregion
|