Browse Source

Merge branch 'test_feature_task363' into dev

Dun.Jason 4 weeks ago
parent
commit
4e48ce20b4

+ 44 - 5
src/Hotline.Api/Controllers/EarlyController.cs

@@ -213,6 +213,22 @@ namespace Hotline.Api.Controllers
             return new PagedDto<EarlyPushDto>(total, _mapper.Map<IReadOnlyList<EarlyPushDto>>(items));
         }
 
+        /// <summary>
+        /// 可以选择推送的工单
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpGet("early-canchooseorder")]
+        public async Task<PagedDto<CanChooseOrderRsp>> CanChooseOrder([FromQuery] CanChooseOrderRequest dto)
+        {
+            var (total,items) = await _earlyWarningOrderDetailRepository.Queryable()
+                .Where(x => x.OrderPushStatus != EOrderPushStatus.FiledPush)
+                .Where(x=> dto.ChooseOrderId.Contains(x.OrderId) == false)
+                .ToPagedListAsync(dto.PageIndex,dto.PageSize,HttpContext.RequestAborted);
+
+            return new PagedDto<CanChooseOrderRsp>(total, _mapper.Map<IReadOnlyList<CanChooseOrderRsp>>(items));
+        }
+
         /// <summary>
         /// 新增推送报告 TODO
         /// </summary>
@@ -262,14 +278,37 @@ namespace Hotline.Api.Controllers
             List<string> orderIds = dto.Select(x => x.OrderId).ToList();
             //查询所有工单
             var orderList = await _orderRepository.Queryable().Where(x => orderIds.Contains(x.Id)).ToListAsync();
-            var result = from a in orderList
+
+            var result = (from a in orderList
                          join b in dto on a.Id equals b.OrderId
-                         select new ReportOrderListDto (){ Id = a.Id, ActualHandleOrgName = a.ActualHandleOrgName, IsSendWord = b.IsSendWord, County = a.County, OneHotspotName = a.HotspotSpliceName.Split("-")[0], HotspotName = a.HotspotName, Status = a.Status,FileOpinion = a.FileOpinion };
+                         select new ReportOrderListDto (){ Id = a.Id, ActualHandleOrgName = a.ActualHandleOrgName, IsSendWord = b.IsSendWord, County = a.County, OneHotspotName = a.HotspotSpliceName.Split("-")[0], HotspotName = a.HotspotName, Status = a.Status,FileOpinion = a.FileOpinion, Content = a.Content }).ToList();
+
+            //Title 热点汇总
+            var reportHotDetail = result.GroupBy(x => x.OneHotspotName).ToList();
+            reportHotDetail.ForEach(x =>
+            {
+                reportDto.ReportHotDetails.Add(new ReportHotDetailDto()
+                {
+                    HotName = x.Key,
+                    Count = x.Count(),
+                    Content = string.Join(",",result.Where(d=>d.IsSendWord == true && d.OneHotspotName == x.Key).Select(d=>d.Content))
+                });
+            });
+
+            //Title 地区汇总
+            reportDto.ReportAreaDetails = result.GroupBy(x => x.County).Select(x=> new ReportAreaDetailDto() { AreaName = x.Key,Count = x.Count() }).ToList();
 
-            var reportHotDetail = orderList.GroupBy(x => x.HotspotSpliceName).ToList();
+            //附件1:重点诉求处置情况
+            reportDto.ReportOrderDetails = result.Where(x => x.Status < EOrderStatus.Filed && x.IsSendWord == true).Select(x => new ReportOrderDetailDto() { OneHotSportName = x.OneHotspotName, HotSportName = x.HotspotName, Content = x.Content, ActualOpinion = "已转发" + x.ActualHandleOrgName + ",正在处理中" }).ToList();
 
-                
-            //reportDto.ReportHotDetailDto = 
+            //附件2:
+            //查询往期
+            var earlyWarningPushDetail = await _earlyWarningPushDetailRepository.Queryable().Includes(x=>x.EarlyWarningPush).Where(x => result.Select(x => x.Id).Contains(x.OrderId)).ToListAsync();
+            var fujianTwoList = (from a in result
+                                 join b in earlyWarningPushDetail on a.Id equals b.OrderId
+                                 where a.Status>= EOrderStatus.Filed && a.IsSendWord == true
+                                 select new ReportFiledOrderDetailDto() { ReportName = b.EarlyWarningPush.EarlyWarningPushName, OneHotSportName = a.OneHotspotName, HotSportName = a.HotspotName,Content = a.Content, ActualOpinion = a.FileOpinion }).ToList();
+            reportDto.ReportFiledOrderDetails = fujianTwoList;
 
             return reportDto;
         }

+ 4 - 4
src/Hotline.Application/Early/EarlyReportProvider.cs

@@ -16,7 +16,7 @@ namespace Hotline.Application.Early
                 CssStyle = "padding-left: 10%;padding-right: 10%;padding-top: 10px;",
                 Title = new TitleDto
                 {
-                    Content = earlyReportDtoreportDto.ReportName,
+                    Content = "宜宾市12345热线每日关注",
                     CssStyle = "font-weight:bolder;color: red;font-size: 50px;font-family:宋体; width: 100 %; text-align: center; word-spacing: 10px;letter-spacing: 2px; margin-bottom: 10; line-height: 2; "
                 },
                 SubTitleDtos = new List<SubTitleDto>
@@ -24,12 +24,12 @@ namespace Hotline.Application.Early
                     new SubTitleDto
                     {
                         CssStyle = "font-weight: bold; font-size: 24px;font-family:方正楷体_GBK;width: 100%;\r\n text-align: center;letter-spacing: 5px;line-height: 1.5;",
-                        Content = "2025年第32期"
+                        Content = earlyReportDtoreportDto.ReportName
                     },
                     new SubTitleDto
                     {
                         CssStyle = "font-weight: bold; font-size: 24px;font-family:方正楷体_GBK;width: 100%;\r\n        text-align: center;letter-spacing: 5px;line-height: 1.5;",
-                        Content = "(截至3月17日12时)"
+                        Content = "(截止"+ earlyReportDtoreportDto.ReportPushTime.ToString("MM月dd日hh时")+")"
                     },
                     new SubTitleDto
                     {
@@ -44,7 +44,7 @@ namespace Hotline.Application.Early
                             new SubTitleDto
                             {
                                 CssStyle="float: right;",
-                                Content = earlyReportDtoreportDto.ReportPushTime.ToString()
+                                Content = earlyReportDtoreportDto.ReportPushTime.ToString("yyyy年MM月dd日")
                             }
                         }
                     }

+ 60 - 0
src/Hotline.Share/Dtos/Early/EarlyDto.cs

@@ -385,6 +385,37 @@ namespace Hotline.Share.Dtos.Early
         public EEarlyPushStatus? EarlyPushStatus { get; set; }
     }
 
+    public record CanChooseOrderRequest:PagedRequest
+    {
+        /// <summary>
+        /// 已选工单列表
+        /// </summary>
+        public List<string> ChooseOrderId { get; set; }
+
+        /// <summary>
+        /// 工单标题
+        /// </summary>
+        public string? Title { get; set; }
+
+        /// <summary>
+        /// 工单编号
+        /// </summary>
+        public string? No { get; set; }
+
+        /// <summary>
+        /// 推送状态
+        /// </summary>
+        public EOrderPushStatus? OrderPushStatus { get; set; }
+
+    }
+
+    public record CanChooseOrderRsp
+    {
+        public OrderDto Order { get; set; }
+
+        public EOrderPushStatus OrderPushStatus { get; set; }
+    }
+
     public record AddEarlyPushRequest
     {
         public string EarlyWarningPushName { get; set; }
@@ -526,21 +557,50 @@ namespace Hotline.Share.Dtos.Early
 
     public class ReportOrderListDto()
     {
+        /// <summary>
+        /// 工单ID
+        /// </summary>
         public string Id { get; set; }
 
+        /// <summary>
+        /// 实际办理部门
+        /// </summary>
         public string ActualHandleOrgName { get; set; }
 
+        /// <summary>
+        /// 是否生成Word
+        /// </summary>
         public bool IsSendWord { get; set; }
 
+        /// <summary>
+        /// 区县
+        /// </summary>
         public string County { get; set; }
 
+        /// <summary>
+        /// 一级热点
+        /// </summary>
         public string OneHotspotName { get; set; }
 
+        /// <summary>
+        /// 热点
+        /// </summary>
         public string HotspotName { get; set; }
 
+        /// <summary>
+        /// 工单状态
+        /// </summary>
         public EOrderStatus Status { get; set; }
 
+        /// <summary>
+        /// 归档意见
+        /// </summary>
         public string FileOpinion { get; set; }
+
+        /// <summary>
+        /// 诉求内容
+        /// </summary>
+        public string Content { get; set; }
     }
     #endregion
 }

+ 2 - 0
src/Hotline/Early/EarlyWarningPushDetail.cs

@@ -13,6 +13,8 @@ namespace Hotline.Early
     {
         public string EarlyWarningPushId { get; set; }
 
+        public EarlyWarningPush EarlyWarningPush { get; set; }
+
         public string OrderId { get; set; }
 
         /// <summary>