|
@@ -302,11 +302,11 @@ public class OrderController : BaseController
|
|
|
.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.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.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)
|
|
@@ -396,6 +396,7 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
orderVisit.EmployeeId = string.Empty;
|
|
|
}
|
|
|
+
|
|
|
if (order is { ProcessType: EProcessType.Zhiban, CounterSignType: null } && !order.IsProvince)
|
|
|
{
|
|
|
orderVisit.VisitState = EVisitState.Visited;
|
|
@@ -549,6 +550,7 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
orderVisit.EmployeeId = _sessionContext.RequiredUserId;
|
|
|
}
|
|
|
+
|
|
|
if (_appOptions.Value.IsZiGong)
|
|
|
{
|
|
|
orderVisit.EmployeeId = string.Empty;
|
|
@@ -694,15 +696,17 @@ public class OrderController : BaseController
|
|
|
.WhereIF(dto.CreationTimeStart.HasValue, d => d.Order.CreationTime >= dto.CreationTimeStart)
|
|
|
.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.ActualHandleOrgName),
|
|
|
+ d => d.Order.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
|
|
|
+ .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.NameOrNo), d => d.Order.AcceptorName == dto.NameOrNo! || d.Order.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
|
|
|
+ .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.IsOverTime == true,
|
|
|
+ .WhereIF(dto.IsOverTime == true,
|
|
|
d => (d.Order.ExpiredTime < DateTime.Now && d.Order.Status < EOrderStatus.Filed) ||
|
|
|
(d.Order.ExpiredTime < d.Order.ActualHandleTime && d.Order.Status >= EOrderStatus.Filed)) //是 超期
|
|
|
.WhereIF(dto.IsOverTime == false,
|
|
@@ -904,7 +908,7 @@ public class OrderController : BaseController
|
|
|
d => d.OrderVisitDetails.Any(m => dto.OrgProcessingResults.Contains(SqlFunc.JsonField(m.OrgProcessingResults, "Key"))))
|
|
|
.WhereIF(dto.OrgHandledAttitude.Any(),
|
|
|
d => d.OrderVisitDetails.Any(q => dto.OrgHandledAttitude.Contains(SqlFunc.JsonField(q.OrgHandledAttitude, "Key"))))
|
|
|
- .WhereIF(dto.IsOverTime == true,
|
|
|
+ .WhereIF(dto.IsOverTime == true,
|
|
|
d => (d.Order.ExpiredTime < DateTime.Now && d.Order.Status < EOrderStatus.Filed) ||
|
|
|
(d.Order.ExpiredTime < d.Order.ActualHandleTime && d.Order.Status >= EOrderStatus.Filed)) //是 超期
|
|
|
.WhereIF(dto.IsOverTime == false,
|
|
@@ -1964,7 +1968,7 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
if (_appOptions.Value.IsYiBin) dto.ScreenType = EOrderScreenType.Org;
|
|
|
|
|
|
- dto.CreationTimeEnd = DateTime.Now;
|
|
|
+ dto.CreationTimeEnd = DateTime.Now;
|
|
|
dto.CreationTimeStart = DateTime.Now;
|
|
|
if (dto.IsHomePage != null && dto.IsHomePage == true)
|
|
|
{
|
|
@@ -1978,12 +1982,16 @@ public class OrderController : BaseController
|
|
|
.Includes(x => x.OrderVisit, y => y.Employee)
|
|
|
//.LeftJoin<OrderScreen>((x, s) => x.Id == s.VisitDetailId && s.IsDeleted == false)
|
|
|
.Includes(x => x.OrderScreens)
|
|
|
- .Where(x => x.OrderScreens.Any(s => s.Status == EScreenStatus.SendBack && s.ScreenType == dto.ScreenType && s.SendBackApply == true) || x.OrderScreens.Any() == false
|
|
|
- //|| x.OrderScreens.Any(s => (s.Status != EScreenStatus.SendBack && s.SendBackApply != true)) == false
|
|
|
+ .Where(x => x.OrderScreens.Any(s => s.Status == EScreenStatus.SendBack && s.ScreenType == dto.ScreenType && s.SendBackApply == true) ||
|
|
|
+ x.OrderScreens.Any() == false
|
|
|
+ //|| x.OrderScreens.Any(s => (s.Status != EScreenStatus.SendBack && s.SendBackApply != true)) == false
|
|
|
)
|
|
|
.WhereIF(dto.ScreenType == EOrderScreenType.Seat, x => x.OrderVisit.Order.IsProvince == false)
|
|
|
- .WhereIF(dto.ScreenSendBack is 1, x => x.OrderScreens.Any(s => s.Status == EScreenStatus.SendBack && s.ScreenType == dto.ScreenType && s.SendBackApply == true))
|
|
|
- .WhereIF(dto.ScreenSendBack is 2, x => x.OrderScreens.Any(s => (s.Status != EScreenStatus.SendBack && s.ScreenType == dto.ScreenType && s.SendBackApply != true)) == false)
|
|
|
+ .WhereIF(dto.ScreenSendBack is 1,
|
|
|
+ x => x.OrderScreens.Any(s => s.Status == EScreenStatus.SendBack && s.ScreenType == dto.ScreenType && s.SendBackApply == true))
|
|
|
+ .WhereIF(dto.ScreenSendBack is 2,
|
|
|
+ x => x.OrderScreens.Any(s => (s.Status != EScreenStatus.SendBack && s.ScreenType == dto.ScreenType && s.SendBackApply != true)) ==
|
|
|
+ false)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.No), x => x.OrderVisit.Order!.No!.Contains(dto.No!))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.OrderVisit.Order!.Title!.Contains(dto.Title!))
|
|
|
.WhereIF(dto.IsProvince.HasValue, x => x.OrderVisit.Order!.IsProvince == dto.IsProvince)
|
|
@@ -2037,7 +2045,9 @@ public class OrderController : BaseController
|
|
|
SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "1" ||
|
|
|
SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "2"
|
|
|
))
|
|
|
- .WhereIF(dto.ScreenType == EOrderScreenType.Seat, x => x.VisitTarget == EVisitTarget.Seat && (x.SeatEvaluate == ESeatEvaluate.VeryNoSatisfied || x.SeatEvaluate == ESeatEvaluate.NoSatisfied))
|
|
|
+ .WhereIF(dto.ScreenType == EOrderScreenType.Seat,
|
|
|
+ x => x.VisitTarget == EVisitTarget.Seat &&
|
|
|
+ (x.SeatEvaluate == ESeatEvaluate.VeryNoSatisfied || x.SeatEvaluate == ESeatEvaluate.NoSatisfied))
|
|
|
;
|
|
|
}
|
|
|
|
|
@@ -2118,13 +2128,15 @@ public class OrderController : BaseController
|
|
|
if (screenAny)
|
|
|
throw UserFriendlyException.SameMessage("该工单已提起甄别申请,正在审批过程中,不能申请");
|
|
|
|
|
|
- var isNoPass = await _orderScreenRepository.AnyAsync(x => x.Status == EScreenStatus.Refuse && x.ScreenType == dto.Data.ScreenType && x.VisitDetailId == dto.Data.VisitDetailId);
|
|
|
+ var isNoPass = await _orderScreenRepository.AnyAsync(x =>
|
|
|
+ x.Status == EScreenStatus.Refuse && x.ScreenType == dto.Data.ScreenType && x.VisitDetailId == dto.Data.VisitDetailId);
|
|
|
if (isNoPass)
|
|
|
throw UserFriendlyException.SameMessage("该工单已被拒绝过甄别申请,不能再次申请");
|
|
|
|
|
|
var setting = _systemSettingCacheManager.GetSetting(SettingConstants.ScreenApplyNum);
|
|
|
int count = await _orderScreenRepository.CountAsync(x =>
|
|
|
- x.OrderId == dto.Data.OrderId && x.Status == EScreenStatus.Refuse && x.ScreenType == dto.Data.ScreenType && x.VisitDetailId == dto.Data.VisitDetailId);
|
|
|
+ x.OrderId == dto.Data.OrderId && x.Status == EScreenStatus.Refuse && x.ScreenType == dto.Data.ScreenType &&
|
|
|
+ x.VisitDetailId == dto.Data.VisitDetailId);
|
|
|
if (count > int.Parse(setting?.SettingValue[0]) && int.Parse(setting?.SettingValue[0]) > -1)
|
|
|
throw UserFriendlyException.SameMessage("甄别申请已超过系统预定设置,不能申请");
|
|
|
|
|
@@ -2453,10 +2465,12 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
|
|
|
CityBaseConfiguration cityBase = JsonSerializer.Deserialize<CityBaseConfiguration>(setting);
|
|
|
//推省上
|
|
|
- if (!string.IsNullOrEmpty(model.Id) && (cityBase.CityProvince.OrgId.Equals(model.OrgId) || cityBase.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);
|
|
@@ -2699,10 +2713,12 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
|
|
|
CityBaseConfiguration cityBase = JsonSerializer.Deserialize<CityBaseConfiguration>(setting);
|
|
|
//推省上
|
|
|
- if (!string.IsNullOrEmpty(model.Id) && (cityBase.CityProvince.OrgId.Equals(model.OrgId) || cityBase.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);
|
|
@@ -2819,7 +2835,7 @@ public class OrderController : BaseController
|
|
|
public async Task<IReadOnlyList<OrderDto>> QueryFixed([FromQuery] QueryOrderFixedDto dto)
|
|
|
{
|
|
|
var hasSetting = Int32.TryParse(
|
|
|
- _systemSettingCacheManager.GetSetting(SettingConstants.FixedQueryCount)?.SettingValue[0], out var queryCount);
|
|
|
+ _systemSettingCacheManager.GetSetting(SettingConstants.FixedQueryCount)?.SettingValue[0], out var queryCount);
|
|
|
var query = _orderApplication.QueryOrders(dto);
|
|
|
var orders = await query.ToFixedListAsync(dto.QueryIndex, hasSetting ? queryCount : null, HttpContext.RequestAborted);
|
|
|
return _mapper.Map<IReadOnlyList<OrderDto>>(orders);
|
|
@@ -2932,7 +2948,7 @@ public class OrderController : BaseController
|
|
|
.Includes(d => d.OrderDelays)
|
|
|
.Includes(d => d.OrderPublish)
|
|
|
.Includes(d => d.OrderPushTypes)
|
|
|
- .Includes(d=>d.OrderComplements)
|
|
|
+ .Includes(d => d.OrderComplements)
|
|
|
//.Includes(d => d.OrderScreens)
|
|
|
.Includes(d => d.OrderVisits.Where(x => x.VisitState == EVisitState.Visited).ToList(), x => x.OrderVisitDetails)
|
|
|
.Includes(d => d.OrderVisits.Where(x => x.VisitState == EVisitState.Visited).ToList(), x => x.Employee)
|
|
@@ -2961,16 +2977,10 @@ public class OrderController : BaseController
|
|
|
var setting = _systemSettingCacheManager.GetSetting(SettingConstants.SeatsMonitor);
|
|
|
var settingStr = setting?.SettingValue;
|
|
|
var roles = _sessionContext.Roles;
|
|
|
- foreach (var item in settingStr)
|
|
|
+ if ((settingStr?.Any() ?? false) && roles.Any())
|
|
|
{
|
|
|
- if (roles != null && roles.Contains(item))
|
|
|
- {
|
|
|
- canInsteadHandle = true;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- canInsteadHandle = false;
|
|
|
- }
|
|
|
+ var intersectRoles = settingStr.Intersect(roles);
|
|
|
+ canInsteadHandle = intersectRoles.Any();
|
|
|
}
|
|
|
|
|
|
if (canInsteadHandle)
|
|
@@ -3015,16 +3025,31 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- order.CurrentStepAcceptTime = DateTime.Now;
|
|
|
- await _orderRepository.UpdateAsync(order, HttpContext.RequestAborted);
|
|
|
-
|
|
|
- result.Workflow.UpdateCurrentStepAcceptTime(order.CurrentStepAcceptTime.Value);
|
|
|
- await _mediator.Publish(new GetOrderDetailNotify(result.Workflow,
|
|
|
- _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
- _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
- _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName));
|
|
|
+ //
|
|
|
+ // order.CurrentStepAcceptTime = DateTime.Now;
|
|
|
+ // await _orderRepository.UpdateAsync(order, HttpContext.RequestAborted);
|
|
|
+ //
|
|
|
+ // result.Workflow.UpdateCurrentStepAcceptTime(order.CurrentStepAcceptTime.Value);
|
|
|
+ // await _mediator.Publish(new GetOrderDetailNotify(result.Workflow,
|
|
|
+ // _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
+ // _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
+ // _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName));
|
|
|
+ if (result.CanHandle)
|
|
|
+ {
|
|
|
+ var acceptTime = await _workflowDomainService.AcceptAsync(result.Workflow,
|
|
|
+ _sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
+ _sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
+ _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
|
|
|
+ HttpContext.RequestAborted);
|
|
|
+ if (acceptTime != null)
|
|
|
+ {
|
|
|
+ order.ActualHandleStepAcceptTime = acceptTime;
|
|
|
+ await _orderRepository.UpdateAsync(order, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ dto.IsRed = string.IsNullOrEmpty(dto.SignerId) || !order.ActualHandleStepAcceptTime.HasValue;
|
|
|
|
|
|
//var dto = _mapper.Map<OrderDto>(order!);
|
|
|
//dto.CountersignId = countersignId;
|
|
@@ -3122,7 +3147,7 @@ public class OrderController : BaseController
|
|
|
cancellationToken: HttpContext.RequestAborted);
|
|
|
|
|
|
List<OrderRemarksDto> remarks = workflow.Steps.Where(x => !string.IsNullOrEmpty(x.Remark)).Select(x => new OrderRemarksDto
|
|
|
- { Remark = x.Remark, RemarkTime = x.CreationTime, RemarkUser = x.CreatorName }).ToList();
|
|
|
+ { Remark = x.Remark, RemarkTime = x.CreationTime, RemarkUser = x.CreatorName }).ToList();
|
|
|
dto.OrderRemarks = remarks;
|
|
|
if (order.Status == EOrderStatus.SendBack || order.Status == EOrderStatus.SendBackAudit || order.Status == EOrderStatus.BackToUnAccept)
|
|
|
{
|
|
@@ -3171,10 +3196,12 @@ 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;
|
|
|
+ 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();
|
|
@@ -3485,7 +3512,7 @@ public class OrderController : BaseController
|
|
|
//敏感分词
|
|
|
await _orderApplication.OrderSensitiveParticiple(dto.Content, order.Id, HttpContext.RequestAborted);
|
|
|
|
|
|
- return new { Id = order.Id, No = order.No, Password = order.Password , CallId = order.CallId};
|
|
|
+ return new { Id = order.Id, No = order.No, Password = order.Password, CallId = order.CallId };
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -3531,6 +3558,7 @@ public class OrderController : BaseController
|
|
|
expiredTimeConfig = await _expireTime.CalcExpiredTime(DateTime.Now, EFlowDirection.CenterToOrg, order.Adapt<OrderTimeClacInfo>());
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
order.IsForwarded = dto.Workflow.IsForwarded;
|
|
|
_mapper.Map(expiredTimeConfig, order);
|
|
|
|
|
@@ -3557,9 +3585,9 @@ public class OrderController : BaseController
|
|
|
var startDto = _mapper.Map<StartWorkflowDto>(dto.Workflow);
|
|
|
startDto.DefinitionModuleCode = WorkflowModuleConsts.OrderHandle;
|
|
|
startDto.Title = order.Title;
|
|
|
- var startStep = await _workflowDomainService.StartAsync(startDto, order.Id, order.ExpiredTime, HttpContext.RequestAborted);
|
|
|
+ var (workflow,startStep) = await _workflowDomainService.StartAsync(startDto, order.Id, order.ExpiredTime, HttpContext.RequestAborted);
|
|
|
|
|
|
- await HandleOrderAsync(order, startStep, dto.Data, dto.Workflow, HttpContext.RequestAborted);
|
|
|
+ await HandleOrderAsync(order, workflow, startStep, dto.Data, dto.Workflow, HttpContext.RequestAborted);
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
@@ -3588,6 +3616,7 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
outDto.Opinion = await _typeCache.GetAsync($"tmp_opinion_{orderId}{_sessionContext.UserId}", HttpContext.RequestAborted);
|
|
|
}
|
|
|
+
|
|
|
return outDto;
|
|
|
}
|
|
|
|
|
@@ -3606,43 +3635,10 @@ public class OrderController : BaseController
|
|
|
|
|
|
var workflow = await _workflowDomainService.GetWorkflowAsync(dto.Workflow.WorkflowId, withSteps: true, withTraces: true,
|
|
|
cancellationToken: HttpContext.RequestAborted);
|
|
|
- //1.是否是判断节点 2.是否存在历史派单节点 3.存在获取上个派单节点 4.不存在走平均派单
|
|
|
- if (dto.Data.OrderAssignMode is EOrderAssignMode.AdjoinLevel && dto.Workflow.BusinessType == EBusinessType.Send)
|
|
|
- {
|
|
|
- var sendOrderTraces = workflow.Traces.Where(x => x.BusinessType == EBusinessType.Send);
|
|
|
- if (sendOrderTraces.Any())
|
|
|
- {
|
|
|
- var sendOrderTrace = workflow.Traces.Where(x => x.BusinessType == EBusinessType.Send)
|
|
|
- .OrderByDescending(x => x.CreationTime)
|
|
|
- .FirstOrDefault();
|
|
|
- dto.Workflow.NextHandlers = new List<FlowStepHandler>
|
|
|
- {
|
|
|
- new FlowStepHandler()
|
|
|
- {
|
|
|
- Key = sendOrderTrace.HandlerId, Value = sendOrderTrace.HandlerName,
|
|
|
- UserId = sendOrderTrace.HandlerId, Username = sendOrderTrace.HandlerName,
|
|
|
- OrgId = sendOrderTrace.HandlerOrgId, OrgName = sendOrderTrace.HandlerOrgName
|
|
|
- }
|
|
|
- };
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- // 平均派单
|
|
|
- var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder).SettingValue[0]);
|
|
|
- if (averageSendOrder)
|
|
|
- {
|
|
|
- if (!dto.Workflow.NextHandlers.Any())
|
|
|
- {
|
|
|
- var handler = await _orderDomainService.AverageOrder(HttpContext.RequestAborted);
|
|
|
- dto.Workflow.NextHandlers = new List<FlowStepHandler> { handler };
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
//await _workflowApplication.NextAsync(dto.WorkflowDto, order.ExpiredTime, HttpContext.RequestAborted);
|
|
|
var startStep = workflow.Steps.First(d => d.Id == dto.Workflow.StepId);
|
|
|
- await HandleOrderAsync(order, startStep, dto.Data, dto.Workflow, HttpContext.RequestAborted);
|
|
|
+ await HandleOrderAsync(order, workflow, startStep, dto.Data, dto.Workflow, HttpContext.RequestAborted);
|
|
|
|
|
|
if (_appOptions.Value.IsZiGong && dto.Data.Transpond.HasValue && dto.Data.Transpond.Value)
|
|
|
{
|
|
@@ -3655,7 +3651,9 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private async Task HandleOrderAsync(Order order, WorkflowStep startStep, OrderHandleFlowDto orderHandleFlowDto, BasicWorkflowDto workflowDto, CancellationToken cancellationToken)
|
|
|
+ private async Task HandleOrderAsync(Order order, Workflow workflow, WorkflowStep startStep, OrderHandleFlowDto orderHandleFlowDto,
|
|
|
+ BasicWorkflowDto workflowDto,
|
|
|
+ CancellationToken cancellationToken)
|
|
|
{
|
|
|
switch (orderHandleFlowDto.OrderAssignMode)
|
|
|
{
|
|
@@ -3664,15 +3662,53 @@ public class OrderController : BaseController
|
|
|
nextDto.WorkflowId = startStep.WorkflowId;
|
|
|
nextDto.StepId = startStep.Id;
|
|
|
|
|
|
- // 平均派单
|
|
|
- var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder)
|
|
|
- .SettingValue[0]);
|
|
|
- if (workflowDto.BusinessType == EBusinessType.Send && averageSendOrder)
|
|
|
+ // 宜宾需求: 1.是否是判断节点 2.是否存在历史派单节点 3.存在获取上个派单节点 4.不存在走平均派单
|
|
|
+ if (workflowDto.BusinessType == EBusinessType.Send)
|
|
|
{
|
|
|
- if (!nextDto.NextHandlers.Any())
|
|
|
+ if (_appOptions.Value.IsYiBin)
|
|
|
{
|
|
|
- var handler = await _orderDomainService.AverageOrder(cancellationToken);
|
|
|
- nextDto.NextHandlers = new List<FlowStepHandler> { handler };
|
|
|
+ var sendOrderTraces = workflow.Traces.Where(x => x.BusinessType == EBusinessType.Send);
|
|
|
+ if (sendOrderTraces.Any())
|
|
|
+ {
|
|
|
+ var sendOrderTrace = workflow.Traces.Where(x => x.BusinessType == EBusinessType.Send)
|
|
|
+ .OrderByDescending(x => x.CreationTime)
|
|
|
+ .FirstOrDefault();
|
|
|
+ nextDto.NextHandlers = new List<FlowStepHandler>
|
|
|
+ {
|
|
|
+ new FlowStepHandler()
|
|
|
+ {
|
|
|
+ Key = sendOrderTrace.HandlerId, Value = sendOrderTrace.HandlerName,
|
|
|
+ UserId = sendOrderTrace.HandlerId, Username = sendOrderTrace.HandlerName,
|
|
|
+ OrgId = sendOrderTrace.HandlerOrgId, OrgName = sendOrderTrace.HandlerOrgName
|
|
|
+ }
|
|
|
+ };
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ // 平均派单
|
|
|
+ var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder).SettingValue[0]);
|
|
|
+ if (averageSendOrder)
|
|
|
+ {
|
|
|
+ if (!nextDto.NextHandlers.Any())
|
|
|
+ {
|
|
|
+ var handler = await _orderDomainService.AverageOrder(HttpContext.RequestAborted);
|
|
|
+ nextDto.NextHandlers = new List<FlowStepHandler> { handler };
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ // 平均派单
|
|
|
+ var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder).SettingValue[0]);
|
|
|
+ if (averageSendOrder)
|
|
|
+ {
|
|
|
+ if (!nextDto.NextHandlers.Any())
|
|
|
+ {
|
|
|
+ var handler = await _orderDomainService.AverageOrder(cancellationToken);
|
|
|
+ nextDto.NextHandlers = new List<FlowStepHandler> { handler };
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -3685,7 +3721,7 @@ public class OrderController : BaseController
|
|
|
orderHandleFlowDto.CrossSteps = orderHandleFlowDto.CrossSteps.OrderBy(d => d.Sort).ToList();
|
|
|
var stepCount = orderHandleFlowDto.CrossSteps.Count;
|
|
|
var unhandleSteps = new List<WorkflowStep> { startStep };
|
|
|
- for (int i = 0;i < stepCount;i++)
|
|
|
+ for (int i = 0; i < stepCount; i++)
|
|
|
{
|
|
|
var crossStep = orderHandleFlowDto.CrossSteps[i];
|
|
|
var tempSteps = new List<WorkflowStep>();
|
|
@@ -3709,6 +3745,7 @@ public class OrderController : BaseController
|
|
|
var nextSteps = await _workflowDomainService.NextAsync(operater, nextflowDto, order.ExpiredTime, cancellationToken);
|
|
|
tempSteps.AddRange(nextSteps);
|
|
|
}
|
|
|
+
|
|
|
unhandleSteps = tempSteps;
|
|
|
}
|
|
|
|
|
@@ -3773,7 +3810,8 @@ public class OrderController : BaseController
|
|
|
[HttpPost("steps/temp")]
|
|
|
public async Task TempSaveAsync([FromBody] StepTempInDto dto)
|
|
|
{
|
|
|
- await _typeCache.SetAsync($"tmp_opinion_{dto.OrderId}{_sessionContext.UserId}", dto.Opinion, TimeSpan.FromDays(3), HttpContext.RequestAborted);
|
|
|
+ await _typeCache.SetAsync($"tmp_opinion_{dto.OrderId}{_sessionContext.UserId}", dto.Opinion, TimeSpan.FromDays(3),
|
|
|
+ HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -3996,7 +4034,8 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
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.SpecialType == ESpecialType.ReTransact).NotAny());
|
|
|
+ .Where(d => SqlFunc.Subqueryable<OrderSpecial>().Where(os => os.OrderId == d.Id && os.SpecialType == ESpecialType.ReTransact)
|
|
|
+ .NotAny());
|
|
|
}
|
|
|
|
|
|
var (total, items) = await query
|
|
@@ -4004,7 +4043,8 @@ public class OrderController : BaseController
|
|
|
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.SpecialType == ESpecialType.ReTransact).Any())
|
|
|
+ .WhereIF(dto.QueryType is 3,
|
|
|
+ d => SqlFunc.Subqueryable<OrderSpecial>().Where(os => os.OrderId == d.Id && os.SpecialType == ESpecialType.ReTransact).Any())
|
|
|
.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)
|
|
@@ -4827,22 +4867,31 @@ public class OrderController : BaseController
|
|
|
//{
|
|
|
// var expiredTime = _timeLimitDomainService.CalcEndTime(DateTime.Now, order.AcceptTypeCode);
|
|
|
|
|
|
- ExpiredTimeWithConfig? expiredTime = null;
|
|
|
- if (_appOptions.Value.IsZiGong)
|
|
|
- {
|
|
|
- if (dto.FlowDirection != null)
|
|
|
- {
|
|
|
- expiredTime = await _expireTime.CalcExpiredTime(DateTime.Now, dto.FlowDirection.Value, order.Adapt<OrderTimeClacInfo>());
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- expiredTime = await _expireTime.CalcEndTime(DateTime.Now, order.AcceptTypeCode);
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
+ ExpiredTimeWithConfig? expiredTime = new ExpiredTimeWithConfig();
|
|
|
+
|
|
|
+ if (dto.FlowDirection is EFlowDirection.OrgToOrg)
|
|
|
{
|
|
|
- expiredTime = await _expireTime.CalcEndTime(DateTime.Now, order.AcceptTypeCode);
|
|
|
- }
|
|
|
+ expiredTime.ExpiredTime = order.ExpiredTime.Value;
|
|
|
+ expiredTime.NearlyExpiredTime = order.NearlyExpiredTime.Value;
|
|
|
+ expiredTime.NearlyExpiredTimeOne = order.NearlyExpiredTimeOne.Value;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ if (_appOptions.Value.IsZiGong)
|
|
|
+ {
|
|
|
+ if (dto.FlowDirection != null)
|
|
|
+ {
|
|
|
+ expiredTime = await _expireTime.CalcExpiredTime(DateTime.Now, dto.FlowDirection.Value, order.Adapt<OrderTimeClacInfo>());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ expiredTime = await _expireTime.CalcEndTime(DateTime.Now, order.AcceptTypeCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ expiredTime = await _expireTime.CalcEndTime(DateTime.Now, order.AcceptTypeCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
var processType = dto.FlowDirection is EFlowDirection.OrgToCenter or EFlowDirection.CenterToCenter or EFlowDirection.FiledToCenter
|
|
|
? EProcessType.Zhiban
|
|
@@ -4858,13 +4907,13 @@ public class OrderController : BaseController
|
|
|
// ETimeType.WorkDay,
|
|
|
// dto.TimeLimit.Value, order.AcceptTypeCode);
|
|
|
await _orderRepository.Updateable().SetColumns(o => new Orders.Order()
|
|
|
- {
|
|
|
- ExpiredTime = expiredTime.ExpiredTime,
|
|
|
- NearlyExpiredTime = expiredTime.NearlyExpiredTime,
|
|
|
- NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne,
|
|
|
- ProcessType = processType,
|
|
|
- Status = EOrderStatus.Special
|
|
|
- })
|
|
|
+ {
|
|
|
+ ExpiredTime = expiredTime.ExpiredTime,
|
|
|
+ NearlyExpiredTime = expiredTime.NearlyExpiredTime,
|
|
|
+ NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne,
|
|
|
+ ProcessType = processType,
|
|
|
+ Status = EOrderStatus.Special
|
|
|
+ })
|
|
|
.Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
var orderDto = _mapper.Map<OrderDto>(order);
|
|
|
await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
|
|
@@ -5020,11 +5069,11 @@ public class OrderController : BaseController
|
|
|
|
|
|
endTime = expiredTime.EndTime;
|
|
|
await _orderRepository.Updateable().SetColumns(o => new Orders.Order()
|
|
|
- {
|
|
|
- ExpiredTime = expiredTime.EndTime,
|
|
|
- NearlyExpiredTime = expiredTime.NearlyExpiredTime,
|
|
|
- NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne
|
|
|
- })
|
|
|
+ {
|
|
|
+ ExpiredTime = expiredTime.EndTime,
|
|
|
+ NearlyExpiredTime = expiredTime.NearlyExpiredTime,
|
|
|
+ NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne
|
|
|
+ })
|
|
|
.Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
var orderDto = _mapper.Map<OrderDto>(order);
|
|
|
await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
|
|
@@ -5116,26 +5165,50 @@ public class OrderController : BaseController
|
|
|
HandlerType = special.HandlerType.Value,
|
|
|
BusinessType = special.BusinessType.Value
|
|
|
};
|
|
|
- //if (dto.AlterTime)
|
|
|
- // recall.External = new External { TimeLimit = dto.TimeLimit, TimeLimitUnit = dto.TimeLimitUnit };
|
|
|
- //if (dto.Files.Any()) recall.Files = dto.Files;
|
|
|
- // 计算期满时间
|
|
|
- //if (dto.AlterTime)
|
|
|
- //{
|
|
|
- //var expiredTime = _timeLimitDomainService.CalcEndTime(DateTime.Now, order.AcceptTypeCode);
|
|
|
- var expiredTime = await _expireTime.CalcEndTime(DateTime.Now, order.AcceptTypeCode);
|
|
|
- //var processType = dto.FlowDirection == EFlowDirection.OrgToCenter || dto.FlowDirection == EFlowDirection.CenterToCenter ? EProcessType.Zhiban : EProcessType.Jiaoban;
|
|
|
- var processType = special.FlowDirection is EFlowDirection.OrgToCenter or EFlowDirection.CenterToCenter or EFlowDirection.FiledToCenter
|
|
|
+ ExpiredTimeWithConfig? expiredTime = new ExpiredTimeWithConfig();
|
|
|
+
|
|
|
+ if (dto.FlowDirection is EFlowDirection.OrgToOrg)
|
|
|
+ {
|
|
|
+ expiredTime.ExpiredTime = order.ExpiredTime.Value;
|
|
|
+ expiredTime.NearlyExpiredTime = order.NearlyExpiredTime.Value;
|
|
|
+ expiredTime.NearlyExpiredTimeOne = order.NearlyExpiredTimeOne.Value;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (_appOptions.Value.IsZiGong)
|
|
|
+ {
|
|
|
+ if (dto.FlowDirection != null)
|
|
|
+ {
|
|
|
+ expiredTime = await _expireTime.CalcExpiredTime(DateTime.Now, dto.FlowDirection.Value, order.Adapt<OrderTimeClacInfo>());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ expiredTime = await _expireTime.CalcEndTime(DateTime.Now, order.AcceptTypeCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ expiredTime = await _expireTime.CalcEndTime(DateTime.Now, order.AcceptTypeCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (expiredTime.ExpiredTime < order.ExpiredTime)
|
|
|
+ {
|
|
|
+ expiredTime.ExpiredTime = order.ExpiredTime.Value;
|
|
|
+ expiredTime.NearlyExpiredTime = order.NearlyExpiredTime.Value;
|
|
|
+ expiredTime.NearlyExpiredTimeOne = order.NearlyExpiredTimeOne.Value;
|
|
|
+ }
|
|
|
+
|
|
|
+ var processType = special.FlowDirection is EFlowDirection.OrgToCenter or EFlowDirection.CenterToCenter or EFlowDirection.FiledToCenter
|
|
|
? EProcessType.Zhiban
|
|
|
: EProcessType.Jiaoban;
|
|
|
await _orderRepository.Updateable().SetColumns(o => new Orders.Order()
|
|
|
- {
|
|
|
- ExpiredTime = expiredTime.ExpiredTime,
|
|
|
- NearlyExpiredTime = expiredTime.NearlyExpiredTime,
|
|
|
- NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne,
|
|
|
- ProcessType = processType,
|
|
|
- Status = EOrderStatus.Special
|
|
|
- })
|
|
|
+ {
|
|
|
+ ExpiredTime = expiredTime.ExpiredTime,
|
|
|
+ NearlyExpiredTime = expiredTime.NearlyExpiredTime,
|
|
|
+ NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne,
|
|
|
+ ProcessType = processType,
|
|
|
+ Status = EOrderStatus.Special
|
|
|
+ })
|
|
|
.Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
var orderDto = _mapper.Map<OrderDto>(order);
|
|
|
await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
|
|
@@ -5180,18 +5253,6 @@ public class OrderController : BaseController
|
|
|
await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderFlowRecalled,
|
|
|
new PublishSpecialDto { Order = _mapper.Map<OrderDto>(order), Special = _mapper.Map<OrderSpecialDto>(special) },
|
|
|
cancellationToken: HttpContext.RequestAborted);
|
|
|
-
|
|
|
- //try
|
|
|
- //{
|
|
|
- // await _provinceService.RevokeOrder(
|
|
|
- // new PublishSpecialDto
|
|
|
- // { Order = _mapper.Map<OrderDto>(order), Special = _mapper.Map<OrderSpecialDto>(special) },
|
|
|
- // HttpContext.RequestAborted);
|
|
|
- //}
|
|
|
- //catch (Exception e)
|
|
|
- //{
|
|
|
- // _logger.LogError("_provinceService.RevokeOrder throw exception: {ex}", e.Message);
|
|
|
- //}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
@@ -5239,26 +5300,49 @@ public class OrderController : BaseController
|
|
|
HandlerType = special.HandlerType.Value,
|
|
|
BusinessType = special.BusinessType.Value
|
|
|
};
|
|
|
- //if (dto.AlterTime)
|
|
|
- // recall.External = new External { TimeLimit = dto.TimeLimit, TimeLimitUnit = dto.TimeLimitUnit };
|
|
|
- //if (dto.Files.Any()) recall.Files = dto.Files;
|
|
|
- // 计算期满时间
|
|
|
- //if (dto.AlterTime)
|
|
|
- //{
|
|
|
- // var expiredTime = _timeLimitDomainService.CalcEndTime(DateTime.Now, order.AcceptTypeCode);
|
|
|
- var expiredTime = await _expireTime.CalcEndTime(DateTime.Now, order.AcceptTypeCode);
|
|
|
- //var processType = dto.FlowDirection == EFlowDirection.OrgToCenter || dto.FlowDirection == EFlowDirection.CenterToCenter ? EProcessType.Zhiban : EProcessType.Jiaoban;
|
|
|
- var processType = special.FlowDirection is EFlowDirection.OrgToCenter or EFlowDirection.CenterToCenter or EFlowDirection.FiledToCenter
|
|
|
+ ExpiredTimeWithConfig? expiredTime = new ExpiredTimeWithConfig();
|
|
|
+
|
|
|
+ if (dto.FlowDirection is EFlowDirection.OrgToOrg)
|
|
|
+ {
|
|
|
+ expiredTime.ExpiredTime = order.ExpiredTime.Value;
|
|
|
+ expiredTime.NearlyExpiredTime = order.NearlyExpiredTime.Value;
|
|
|
+ expiredTime.NearlyExpiredTimeOne = order.NearlyExpiredTimeOne.Value;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (_appOptions.Value.IsZiGong)
|
|
|
+ {
|
|
|
+ if (dto.FlowDirection != null)
|
|
|
+ {
|
|
|
+ expiredTime = await _expireTime.CalcExpiredTime(DateTime.Now, dto.FlowDirection.Value, order.Adapt<OrderTimeClacInfo>());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ expiredTime = await _expireTime.CalcEndTime(DateTime.Now, order.AcceptTypeCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ expiredTime = await _expireTime.CalcEndTime(DateTime.Now, order.AcceptTypeCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (expiredTime.ExpiredTime < order.ExpiredTime)
|
|
|
+ {
|
|
|
+ expiredTime.ExpiredTime = order.ExpiredTime.Value;
|
|
|
+ expiredTime.NearlyExpiredTime = order.NearlyExpiredTime.Value;
|
|
|
+ expiredTime.NearlyExpiredTimeOne = order.NearlyExpiredTimeOne.Value;
|
|
|
+ }
|
|
|
+ var processType = special.FlowDirection is EFlowDirection.OrgToCenter or EFlowDirection.CenterToCenter or EFlowDirection.FiledToCenter
|
|
|
? EProcessType.Zhiban
|
|
|
: EProcessType.Jiaoban;
|
|
|
await _orderRepository.Updateable().SetColumns(o => new Orders.Order()
|
|
|
- {
|
|
|
- ExpiredTime = expiredTime.ExpiredTime,
|
|
|
- NearlyExpiredTime = expiredTime.NearlyExpiredTime,
|
|
|
- NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne,
|
|
|
- ProcessType = processType,
|
|
|
- Status = EOrderStatus.Special
|
|
|
- })
|
|
|
+ {
|
|
|
+ ExpiredTime = expiredTime.ExpiredTime,
|
|
|
+ NearlyExpiredTime = expiredTime.NearlyExpiredTime,
|
|
|
+ NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne,
|
|
|
+ ProcessType = processType,
|
|
|
+ Status = EOrderStatus.Special
|
|
|
+ })
|
|
|
.Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
var orderDto = _mapper.Map<OrderDto>(order);
|
|
|
await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
|
|
@@ -5293,27 +5377,17 @@ public class OrderController : BaseController
|
|
|
await _orderVisitRepository.UpdateAsync(visit, HttpContext.RequestAborted);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
|
|
|
CityBaseConfiguration cityBase = JsonSerializer.Deserialize<CityBaseConfiguration>(setting);
|
|
|
if (order != null && (cityBase.CityProvince.OrgId.Equals(special.OrgId) ||
|
|
|
- cityBase.CityProvinceAssign.OrgId.Equals(special.OrgId) || cityBase.CityEnterprise.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) },
|
|
|
cancellationToken: HttpContext.RequestAborted);
|
|
|
-
|
|
|
- //try
|
|
|
- //{
|
|
|
- // await _provinceService.RevokeOrder(
|
|
|
- // new PublishSpecialDto
|
|
|
- // { Order = _mapper.Map<OrderDto>(order), Special = _mapper.Map<OrderSpecialDto>(special) },
|
|
|
- // HttpContext.RequestAborted);
|
|
|
- //}
|
|
|
- //catch (Exception e)
|
|
|
- //{
|
|
|
- // _logger.LogError("_provinceService.RevokeOrder throw exception: {ex}", e.Message);
|
|
|
- //}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
@@ -5411,7 +5485,7 @@ public class OrderController : BaseController
|
|
|
d => d.Title.Contains(dto.Keyword!) || d.No.Contains(dto.Keyword!))
|
|
|
//.WhereIF(!string.IsNullOrEmpty(dto.Content), d => d.Content.Contains(dto.Content!))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptTypeCode == dto.AcceptType) //受理类型
|
|
|
- //.WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptTypeCode)) //受理类型
|
|
|
+ //.WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptTypeCode)) //受理类型
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannelCode == dto.Channel) //来源渠道
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.HotspotSpliceName != null && d.HotspotSpliceName.Contains(dto.Hotspot))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.TransferPhone), d => d.TransferPhone.Contains(dto.TransferPhone!))
|
|
@@ -5505,7 +5579,8 @@ public class OrderController : BaseController
|
|
|
SpecialReason = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.SpecialReason),
|
|
|
InstaShotSpecialReason = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.InstaShotSpecialReason),
|
|
|
Step = step,
|
|
|
- IsTerminate = await _orderTerminateRepository.Queryable().Where(d => d.OrderId == order.Id && d.Status == ETerminateStatus.End).AnyAsync(),
|
|
|
+ IsTerminate =
|
|
|
+ await _orderTerminateRepository.Queryable().Where(d => d.OrderId == order.Id && d.Status == ETerminateStatus.End).AnyAsync(),
|
|
|
BaseTypeId = baseTypeId
|
|
|
};
|
|
|
return rsp;
|
|
@@ -5534,7 +5609,8 @@ public class OrderController : BaseController
|
|
|
? _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.InstaShotSpecialReason)
|
|
|
: _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.SpecialReason),
|
|
|
ReTransactErrorType = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.ReTransactErrorType),
|
|
|
- IsTerminate = await _orderTerminateRepository.Queryable().Where(d => d.OrderId == order.Id && d.Status == ETerminateStatus.End).AnyAsync(),
|
|
|
+ IsTerminate =
|
|
|
+ await _orderTerminateRepository.Queryable().Where(d => d.OrderId == order.Id && d.Status == ETerminateStatus.End).AnyAsync(),
|
|
|
Step = step,
|
|
|
Orgs = orgs,
|
|
|
};
|
|
@@ -7015,7 +7091,7 @@ public class OrderController : BaseController
|
|
|
|
|
|
foreach (var item in dto.Ids)
|
|
|
{
|
|
|
- var orderData = await _orderRepository.GetAsync(p => p.Id == item, HttpContext.RequestAborted);
|
|
|
+ var orderData = await _orderRepository.GetAsync(p => p.Id == item || p.ProvinceNo == item, HttpContext.RequestAborted);
|
|
|
|
|
|
if (orderData != null)
|
|
|
{
|
|
@@ -7146,7 +7222,7 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
await _orderRepository.Updateable()
|
|
|
.SetColumns(o => new Orders.Order()
|
|
|
- { SignerId = dto.Handler.UserId, SignerName = dto.Handler.Username, Status = EOrderStatus.HandOverToUnAccept })
|
|
|
+ { SignerId = dto.Handler.UserId, SignerName = dto.Handler.Username, Status = EOrderStatus.HandOverToUnAccept })
|
|
|
.Where(o => o.Id == dto.OrderId).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
}
|
|
|
else
|