Selaa lähdekoodia

Merge branch 'release/yibin' of http://110.188.24.182:10023/Fengwo/hotline into release/yibin

xf 11 kuukautta sitten
vanhempi
commit
96bed98331

+ 81 - 4
src/Hotline.Api/Controllers/EnforcementOrderController.cs

@@ -13,10 +13,12 @@ using Hotline.Share.Enums.Order;
 using MapsterMapper;
 using Microsoft.AspNetCore.Mvc;
 using SqlSugar;
+using StackExchange.Redis;
 using XF.Domain.Authentications;
 using XF.Domain.Exceptions;
 using XF.Domain.Repository;
 using XF.Utility.EnumExtensions;
+using Order = Hotline.Orders.Order;
 
 namespace Hotline.Api.Controllers
 {
@@ -30,6 +32,7 @@ namespace Hotline.Api.Controllers
         private readonly ISystemDicDataCacheManager _sysDicDataCacheManager;
         private readonly IRepository<SystemOrganize> _systemOrganizeRepository;
         private readonly ISessionContext _sessionContext;
+        private readonly IOrderRepository _orderRepository;
 
         /// <summary>
         /// 
@@ -37,11 +40,12 @@ namespace Hotline.Api.Controllers
         /// <param name="enforcementOrdersRepository"></param>
         /// <param name="judicialComplaintsEventTypeRepository"></param>
         /// <param name="enforcementHotspotRepository"></param>
-        /// <param name="mapper"></param> 
+        /// <param name="mapper"></param>
         /// <param name="workflowApplication"></param>
         /// <param name="sysDicDataCacheManager"></param>
         /// <param name="systemOrganizeRepository"></param>
         /// <param name="sessionContext"></param>
+        /// <param name="orderRepository"></param>
         public EnforcementOrderController(IRepository<EnforcementOrders> enforcementOrdersRepository,
          IRepository<JudicialComplaintsEventType> judicialComplaintsEventTypeRepository,
          IRepository<EnforcementHotspot> enforcementHotspotRepository,
@@ -49,7 +53,8 @@ namespace Hotline.Api.Controllers
          IWorkflowApplication workflowApplication,
          ISystemDicDataCacheManager sysDicDataCacheManager,
          IRepository<SystemOrganize> systemOrganizeRepository,
-         ISessionContext sessionContext)
+         ISessionContext sessionContext,
+         IOrderRepository orderRepository)
         {
             _enforcementOrdersRepository = enforcementOrdersRepository;
             _judicialComplaintsEventTypeRepository = judicialComplaintsEventTypeRepository;
@@ -59,6 +64,7 @@ namespace Hotline.Api.Controllers
             _sysDicDataCacheManager = sysDicDataCacheManager;
             _systemOrganizeRepository = systemOrganizeRepository;
             _sessionContext = sessionContext;
+            _orderRepository = orderRepository;
         }
 
         /// <summary>
@@ -243,7 +249,7 @@ namespace Hotline.Api.Controllers
              .LeftJoin<EnforcementOrders>((x, o) => o.EventTypeSpliceName != null && (x.EventTypeName == o.EventTypeSpliceName || o.EventTypeSpliceName.Contains(x.EventTypeName)))
             .LeftJoin<Order>((x, o, p) => p.Id == o.Id)
             .Where((x, o, p) => p.StartTime >= StartDate && p.StartTime <= EndDate)
-            .WhereIF(!string.IsNullOrEmpty(AreaCode), (x, o, p) => p.AreaCode == AreaCode)
+            .WhereIF(!string.IsNullOrEmpty(AreaCode), (x, o, p) => p.AreaCode.StartsWith(AreaCode))
              .Where((x, o, p) => x.ParentId == Id)
              .GroupBy((x, o, p) => new { x.Id, x.EventTypeName })
              .Select((x, o, p) => new
@@ -296,7 +302,7 @@ namespace Hotline.Api.Controllers
             .Where(d => d.Order.Id != null)
             .Where(d => d.Order.StartTime >= dto.StartDate && d.Order.StartTime <= dto.EndDate && d.EventTypeId != null)
             .WhereIF(!string.IsNullOrEmpty(dto.EventTypeId), d => d.EventTypeId.StartsWith(dto.EventTypeId))
-            .WhereIF(!string.IsNullOrEmpty(dto.AreaCode), d => d.Order.AreaCode == dto.AreaCode)
+            .WhereIF(!string.IsNullOrEmpty(dto.AreaCode), d => d.Order.AreaCode.StartsWith(dto.AreaCode))
               .OrderByDescending(d => d.CreationTime)
            .ToPagedListAsync(dto, HttpContext.RequestAborted);
 
@@ -671,5 +677,76 @@ namespace Hotline.Api.Controllers
             return new PagedDto<EnforcementOrgSatisfactionOrderListDto>(total, _mapper.Map<IReadOnlyList<EnforcementOrgSatisfactionOrderListDto>>(items));
 
         }
+
+        /// <summary>
+        /// 处理司法历史工单数据
+        /// </summary>
+        /// <param name="Year"></param>
+        /// <param name="Month"></param>
+        /// <returns></returns>
+        [HttpGet("add_enforcement_old_order")]
+        public async Task AddEnforcementOldOrder(int Year, int Month)
+        {
+            DateTime StartDate = DateTime.Parse(Year + "-" + Month + "-01 00:00:00");
+            DateTime EndDate = StartDate.AddMonths(1).AddSeconds(-1);
+
+            var list = await _orderRepository.Queryable()
+                .Where(p => p.CreationTime >= StartDate && p.CreationTime <= EndDate && p.Status >= EOrderStatus.Filed && p.AcceptTypeCode != "10")
+                .Select(p => new EnforcementOldOrder()
+                {
+                    Id = p.Id,
+                    No = p.No,
+                    HotspotId = p.HotspotId,
+                    HandleTime = p.ActualHandleTime,
+                    OrgLevelOneCode = p.OrgLevelOneCode,
+                    ActualHandleOrgCode = p.ActualHandleOrgCode
+                })
+                .ToListAsync();
+
+            if (list != null && list.Count > 0)
+            {
+                //查询指定热点数据
+                var hotList = await _enforcementHotspotRepository.Queryable().ToListAsync();
+
+                //查询指定部门数据
+                var JudicialManagementOrg = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.JudicialManagementOrg).ToList();
+
+                foreach (var item in list)
+                {
+                    bool isAdd = false;
+
+                    //如果是特定热点写入数据
+                    if (hotList.Exists(p => p.Id == item.HotspotId))
+                        isAdd = true;
+
+                    if (!string.IsNullOrEmpty(item.OrgLevelOneCode))
+                    {
+                        //如果是特定部门办理写入数据
+                        if (JudicialManagementOrg.Exists(p => p.DicDataValue.Trim() == item.OrgLevelOneCode))
+                            isAdd = true;
+                    }
+
+                    if (isAdd)
+                    {
+                        //是否存在此工单
+                        if (!await _enforcementOrdersRepository.AnyAsync(p => p.Id == item.Id, HttpContext.RequestAborted))
+                        {
+                            //  不存在写入
+                            EnforcementOrders enforcementOrders = new()
+                            {
+                                Id = item.Id,
+                                OrderNo = item.No,
+                                IsEnforcementOrder = false,
+                                IsTheClueTrue = null,
+                                IsPassTheBuckOrder = false,
+                                CreationTime = item.HandleTime != null ? item.HandleTime.Value : DateTime.Now
+                            };
+                            await _enforcementOrdersRepository.AddAsync(enforcementOrders, HttpContext.RequestAborted);
+
+                        }
+                    }
+                }
+            }
+        }
     }
 }

+ 34 - 1
src/Hotline.Share/Dtos/JudicialManagement/EnforcementOrderListDto.cs

@@ -204,11 +204,44 @@ namespace Hotline.Share.Dtos.JudicialManagement
         }
     }
 
-    public  class EnforcementOrgSatisfactionOrderListDto: EnforcementOrderListDto
+    public class EnforcementOrgSatisfactionOrderListDto : EnforcementOrderListDto
     {
         /// <summary>
         /// 回访主表ID
         /// </summary>
         public string VisitId { get; set; }
     }
+
+    public class EnforcementOldOrder
+    {
+        /// <summary>
+        /// 工单Id
+        /// </summary>
+        public string Id { get; set; }
+
+        /// <summary>
+        /// 编号
+        /// </summary>
+        public string No { get; set; }
+
+        /// <summary>
+        /// 热点
+        /// </summary>
+        public string HotspotId { get; set; }
+
+        /// <summary>
+        /// 办结时间
+        /// </summary>
+        public DateTime? HandleTime { get; set; }
+
+        /// <summary>
+        /// 办理一级部门名称
+        /// </summary>
+        public string OrgLevelOneCode { get; set; }
+
+        /// <summary>
+        /// 实际办理部门
+        /// </summary>
+        public string ActualHandleOrgCode { get; set; }
+    }
 }