xfe 4 mēneši atpakaļ
vecāks
revīzija
8988862a75

+ 21 - 2
src/Hotline.Api/Controllers/OrderController.cs

@@ -3736,7 +3736,7 @@ public class OrderController : BaseController
     /// <summary>
     /// 查询工单办理流程开启参数
     /// </summary>
-    /// <returns></returns>
+    /// <returns></returns>4
     [HttpGet("startflow")]
     public async Task<NextStepsDto> GetFlowStartOptions([FromQuery] string? orderId)
     {
@@ -4272,7 +4272,26 @@ public class OrderController : BaseController
             .QueryWaited(dto)
             .ToFixedListAsync(dto, HttpContext.RequestAborted);
 
-        return _mapper.Map<IReadOnlyList<OrderDto>>(orders);
+        var orderDtos = _mapper.Map<IReadOnlyList<OrderDto>>(orders);
+        if (_appOptions.Value.IsYiBin)
+        {
+            //宜宾需求:特提待受理、退回待受理、移交待受理、退回信件、退回省平台、特提信件、移交信件、特提审批中、退回审批中、会签中。工单状态需标红显示
+            foreach (var orderDto in orderDtos)
+            {
+
+                if (!orderDto.IsRed)
+                    orderDto.IsRed = orderDto.Status is EOrderStatus.SpecialToUnAccept
+                        or EOrderStatus.BackToUnAccept
+                        or EOrderStatus.HandOverToUnAccept
+                        or EOrderStatus.SendBack
+                        or EOrderStatus.BackToProvince
+                        or EOrderStatus.Special
+                        or EOrderStatus.HandOver
+                        or EOrderStatus.SpecialAudit
+                        or EOrderStatus.SendBackAudit
+                        or EOrderStatus.Countersigning;
+            }
+        }
     }
 
     [HttpGet("waited/count")]

+ 48 - 0
src/Hotline.Application/Orders/OrderApplication.cs

@@ -950,6 +950,54 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             _capPublisher.PublishDelay(expiredTimeConfig.ExpiredTime - DateTime.Now.AddHours(1), EventNames.HotlineOrderAutomaticDelay,
                 new PublishAutomaticDelayDto() { OrderId = order.Id });
         }
+        else if (dto.Workflow.NextHandlers.Any(d => d.Key == cityBase.Province12315.OrgId) && !_appOptions.Value.IsYiBin)
+        {
+            var startTime = DateTime.Now;
+            if (order.CenterToOrgTime.HasValue)
+            {
+                startTime = order.CenterToOrgTime.Value;
+            }
+
+            TimeResult? timeResult;
+            if (_appOptions.Value.IsLuZhou)
+            {
+                timeResult = await _expireTime.CalcEndTime(DateTime.Now, startTime, ETimeType.Day, 60, 80, 50);
+                expiredTimeConfig = new ExpiredTimeWithConfig
+                {
+                    Count = 60,
+                    TimeType = ETimeType.Day,
+                    TimeText = "60个自然日",
+                    ExpiredTime = timeResult.EndTime,
+                    NearlyExpiredTime = timeResult.NearlyExpiredTime,
+                    NearlyExpiredTimeOne = timeResult.NearlyExpiredTimeOne
+                };
+            }
+            else if (_appOptions.Value.IsZiGong)
+            {
+                timeResult = await _expireTime.CalcEndTime(DateTime.Now, startTime, ETimeType.Day, 5, 80, 50);
+                expiredTimeConfig = new ExpiredTimeWithConfig
+                {
+                    Count = 5,
+                    TimeType = ETimeType.Day,
+                    TimeText = "5个自然日",
+                    ExpiredTime = timeResult.EndTime,
+                    NearlyExpiredTime = timeResult.NearlyExpiredTime,
+                    NearlyExpiredTimeOne = timeResult.NearlyExpiredTimeOne
+                };
+            }
+            else
+            {
+                throw new UserFriendlyException("暂不支持该方案");
+            }
+           
+            var canUpdateOrderSender = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.CanUpdateOrderSender).SettingValue[0]);
+            order.CenterToOrg(
+                expiredTimeConfig.TimeText, expiredTimeConfig.Count,
+                expiredTimeConfig.TimeType, expiredTimeConfig.ExpiredTime,
+                expiredTimeConfig.NearlyExpiredTime, expiredTimeConfig.NearlyExpiredTimeOne, dto.Workflow.Opinion,
+                _sessionContextProvider.SessionContext.RequiredUserId, _sessionContextProvider.SessionContext.UserName,
+                canUpdateOrderSender);
+        }
         else if (dto.Workflow.FlowDirection is EFlowDirection.CenterToOrg)
         {
             expiredTimeConfig = await _expireTime.CalcExpiredTime(DateTime.Now, DateTime.Now, EFlowDirection.CenterToOrg, order.Adapt<OrderTimeClacInfo>());

+ 35 - 30
src/Hotline/Configurations/CityBaseConfiguration.cs

@@ -6,37 +6,42 @@ using System.Threading.Tasks;
 
 namespace Hotline.Configurations
 {
-	public class CityBaseConfiguration
-	{
-		public CityProvinceConfiguration CityProvince { get; set; }
+    public class CityBaseConfiguration
+    {
+        public CityProvinceConfiguration CityProvince { get; set; }
 
-		public CityProvinceAssignConfiguration CityProvinceAssign { get; set; }
-		public PublicSecurityConfiguration PublicSecurity { get; set; }
-		public CityEnterpriseConfiguration CityEnterprise { get; set; }
-		public ComprehensiveTreatmentConfiguration ComprehensiveTreatment { get; set; }
-	}
+        public CityProvinceAssignConfiguration CityProvinceAssign { get; set; }
+        public PublicSecurityConfiguration PublicSecurity { get; set; }
+        public CityEnterpriseConfiguration CityEnterprise { get; set; }
+        public ComprehensiveTreatmentConfiguration ComprehensiveTreatment { get; set; }
+        public Province12315 Province12315 { get; set; }
+    }
 
-	public class CityProvinceConfiguration : DefaultCityBaseConfiguration
-	{
-	}
-	public class CityProvinceAssignConfiguration : DefaultCityBaseConfiguration
-	{
-	}
-	public class PublicSecurityConfiguration : DefaultCityBaseConfiguration
-	{
-	}
-	public class CityEnterpriseConfiguration : DefaultCityBaseConfiguration
-	{
-	}
-	public class ComprehensiveTreatmentConfiguration : DefaultCityBaseConfiguration
-	{
-	}
+    public class Province12315 : DefaultCityBaseConfiguration
+    {
+    }
 
-	public abstract class DefaultCityBaseConfiguration
-	{
-		public string UserId { get; set; }
-		public string UserName { get; set; }
-		public string OrgId { get; set; }
-		public string OrgName { get; set; }
-	}
+    public class CityProvinceConfiguration : DefaultCityBaseConfiguration
+    {
+    }
+    public class CityProvinceAssignConfiguration : DefaultCityBaseConfiguration
+    {
+    }
+    public class PublicSecurityConfiguration : DefaultCityBaseConfiguration
+    {
+    }
+    public class CityEnterpriseConfiguration : DefaultCityBaseConfiguration
+    {
+    }
+    public class ComprehensiveTreatmentConfiguration : DefaultCityBaseConfiguration
+    {
+    }
+
+    public abstract class DefaultCityBaseConfiguration
+    {
+        public string UserId { get; set; }
+        public string UserName { get; set; }
+        public string OrgId { get; set; }
+        public string OrgName { get; set; }
+    }
 }