Browse Source

Merge branch 'master' of http://git.12345lm.cn/Fengwo/hotline

Dun.Jason 1 year ago
parent
commit
049f96ac1d

+ 38 - 5
src/Hotline.Api/Controllers/EnforcementOrderController.cs

@@ -2,6 +2,7 @@
 using Hotline.Caching.Interfaces;
 using Hotline.FlowEngine.WorkflowModules;
 using Hotline.JudicialManagement;
+using Hotline.Orders;
 using Hotline.Repository.SqlSugar.Extensions;
 using Hotline.Settings;
 using Hotline.Settings.TimeLimits;
@@ -11,6 +12,7 @@ using Hotline.Share.Enums.Order;
 using MapsterMapper;
 using Microsoft.AspNetCore.Mvc;
 using System.Diagnostics.Eventing.Reader;
+using XF.Domain.Authentications;
 using XF.Domain.Exceptions;
 using XF.Domain.Repository;
 using XF.Utility.EnumExtensions;
@@ -27,6 +29,7 @@ namespace Hotline.Api.Controllers
         private readonly IWorkflowApplication _workflowApplication;
         private readonly ISystemDicDataCacheManager _sysDicDataCacheManager;
         private readonly IRepository<SystemOrganize> _systemOrganizeRepository;
+        private readonly ISessionContext _sessionContext;
 
         public EnforcementOrderController(IRepository<EnforcementOrderHander> enforcementOrderHanderRepository,
          IRepository<EnforcementOrders> enforcementOrdersRepository,
@@ -35,7 +38,8 @@ namespace Hotline.Api.Controllers
          IMapper mapper,
          IWorkflowApplication workflowApplication,
          ISystemDicDataCacheManager sysDicDataCacheManager,
-         IRepository<SystemOrganize> systemOrganizeRepository)
+         IRepository<SystemOrganize> systemOrganizeRepository,
+         ISessionContext sessionContext)
         {
             _enforcementOrderHanderRepository = enforcementOrderHanderRepository;
             _enforcementOrdersRepository = enforcementOrdersRepository;
@@ -45,6 +49,7 @@ namespace Hotline.Api.Controllers
             _workflowApplication = workflowApplication;
             _sysDicDataCacheManager = sysDicDataCacheManager;
             _systemOrganizeRepository = systemOrganizeRepository;
+            _sessionContext = sessionContext;
         }
 
         /// <summary>
@@ -94,7 +99,17 @@ namespace Hotline.Api.Controllers
            .OrderByDescending(d => d.CreationTime)
            .ToPagedListAsync(dto, HttpContext.RequestAborted);
 
-            return new PagedDto<EnforcementOrderListDto>(total, _mapper.Map<IReadOnlyList<EnforcementOrderListDto>>(items));
+            var data = _mapper.Map<List<EnforcementOrderListDto>>(items);
+
+            if (_sessionContext.RequiredOrgId == "001188")
+            {
+                foreach (var item in data)
+                {
+                    if (item.IsTheClueTrue.HasValue)
+                        item.IsShowUpdateButton = true;
+                }
+            }
+            return new PagedDto<EnforcementOrderListDto>(total, data);
         }
 
         /// <summary>
@@ -142,8 +157,11 @@ namespace Hotline.Api.Controllers
             if (dto.OrderIds == null || dto.OrderIds.Count == 0)
                 throw UserFriendlyException.SameMessage("工单不能为空");
 
-            if (string.IsNullOrEmpty(dto.EventTypeId) || string.IsNullOrEmpty(dto.EventTypeName))
-                throw UserFriendlyException.SameMessage("事项不能为空");
+            if (dto.IsTheClueTrue.HasValue && dto.IsTheClueTrue.Value == true)
+            {
+                if (string.IsNullOrEmpty(dto.EventTypeId) || string.IsNullOrEmpty(dto.EventTypeName))
+                    throw UserFriendlyException.SameMessage("事项不能为空");
+            }
 
             foreach (var item in dto.OrderIds)
             {
@@ -155,7 +173,7 @@ namespace Hotline.Api.Controllers
 
                 if (!string.IsNullOrEmpty(dto.EventTypeName))
                     order.EventTypeName = dto.EventTypeName;
-                else 
+                else
                     order.EventTypeName = null;
 
                 if (!string.IsNullOrEmpty(dto.EventTypeId))
@@ -182,6 +200,21 @@ namespace Hotline.Api.Controllers
             return await _judicialComplaintsEventTypeRepository.Queryable().ToTreeAsync(it => it.Children, it => it.ParentId, null, it => it.Id);
         }
 
+        ///// <summary>
+        ///// 
+        ///// </summary>
+        ///// <param name="StartDate"></param>
+        ///// <param name="EndDate"></param>
+        ///// <returns></returns>
+        //[HttpGet("departmental_processing_statistics")]
+        //public async Task<object> GetDepartmentalProcessingStatisticsAsync(DateTime StartDate, DateTime EndDate)
+        //{
+
+        //    EndDate = EndDate.AddDays(1).AddSeconds(-1);
+        //    await _enforcementOrdersRepository.Queryable()
+        //        .LeftJoin<Order>
+
 
+        //}
     }
 }

+ 5 - 3
src/Hotline.Api/Controllers/OrderController.cs

@@ -2780,14 +2780,16 @@ public class OrderController : BaseController
         var isHandled = dto.IsHandled.HasValue && dto.IsHandled.Value;
         var (total, items) = await _orderRepository
             .Queryable(viewFilter: true, handlerFilter: !isHandled)
-            .WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
+            //.Includes(d => d.OrderSpecials)
+			.WhereIF(dto.IsProvince.HasValue, d=> d.IsProvince == dto.IsProvince)
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.No.Contains(dto.Keyword) || d.Title.Contains(dto.Keyword))
             .WhereIF(dto.IsCounterSign.HasValue && dto.IsCounterSign == true, d => d.CounterSignType.HasValue)
             .WhereIF(dto.IsCounterSign.HasValue && dto.IsCounterSign == false, d => !d.CounterSignType.HasValue)
             .WhereIF(dto.ExpiredOrAlmostOverdue.HasValue && dto.ExpiredOrAlmostOverdue == true, d => (d.ExpiredTime < DateTime.Now && d.Status < EOrderStatus.Filed) || (d.ExpiredTime < d.ActualHandleTime && d.Status >= EOrderStatus.Filed)) //超期 未办
             .WhereIF(dto.ExpiredOrAlmostOverdue.HasValue && dto.ExpiredOrAlmostOverdue == false, d => d.NearlyExpiredTime < DateTime.Now && d.ExpiredTime > DateTime.Now)//即将超期 未办
-            .Where(x => x.Source < ESource.MLSQ || x.Source > ESource.WZSC)
-            .Where(x => x.Status != EOrderStatus.BackToProvince)
+            .Where(d => d.Source < ESource.MLSQ || d.Source > ESource.WZSC)
+            .Where(d => d.Status != EOrderStatus.BackToProvince)
+            //.Where(d=>d.OrderSpecials.Any(s=>s.State != 0 || s.Id ==  null ||  s.IsDeleted == null ))
             .OrderByDescending(d => d.StartTime)
             .ToPagedListAsync(dto, HttpContext.RequestAborted);
 

+ 1 - 0
src/Hotline.Application/Mappers/MapperConfigs.cs

@@ -70,6 +70,7 @@ namespace Hotline.Application.Mappers
                 .Map(d => d.IsPassTheBuckOrder, x => x.IsPassTheBuckOrder)
                 .Map(d => d.IsTheClueTrue, x => x.IsTheClueTrue)
                 .Map(d => d.EventTypeName, x => x.EventTypeName)
+                .Map(d => d.EventTypeId, x => x.EventTypeId)
                  ;
 
 

+ 10 - 0
src/Hotline.Share/Dtos/JudicialManagement/EnforcementOrderListDto.cs

@@ -157,11 +157,21 @@ namespace Hotline.Share.Dtos.JudicialManagement
         /// </summary>
         public bool? IsTheClueTrue { get; set; }
 
+        /// <summary>
+        /// 诉事项类型Id
+        /// </summary>
+        public string? EventTypeId { get; set; }
+
         /// <summary>
         /// 诉事项类型名称
         /// </summary>
         public string? EventTypeName { get; set; }
 
+        /// <summary>
+        /// 是否显示修改按钮
+        /// </summary>
+        public bool IsShowUpdateButton { get; set; }
+
         public EExpiredStatus? CalculateExpiredState()
         {
             DateTime? dateTime = DateTime.Now;

+ 8 - 2
src/Hotline/Orders/Order.cs

@@ -736,9 +736,15 @@ namespace Hotline.Orders
         public List<OrderScreen> OrderScreens { get; set; }
 
         /// <summary>
-        /// 延期
+        /// 
         /// </summary>
-        [Navigate(NavigateType.OneToMany, nameof(OrderDelay.OrderId))]
+        [Navigate(NavigateType.OneToMany, nameof(OrderSpecial.OrderId))]
+        public List<OrderSpecial> OrderSpecials { get; set; }
+
+		/// <summary>
+		/// 延期
+		/// </summary>
+		[Navigate(NavigateType.OneToMany, nameof(OrderDelay.OrderId))]
         public List<OrderDelay> OrderDelays { get; set; }
 
         /// <summary>