|
@@ -5,7 +5,6 @@ using Hotline.CallCenter.Calls;
|
|
|
using Hotline.FlowEngine.Workflows;
|
|
|
using Hotline.Orders;
|
|
|
using Hotline.Repository.SqlSugar.Extensions;
|
|
|
-using Hotline.Repository.SqlSugar.Orders;
|
|
|
using Hotline.Schedulings;
|
|
|
using Hotline.Settings;
|
|
|
using Hotline.Settings.Hotspots;
|
|
@@ -21,10 +20,9 @@ using Hotline.Share.Enums.Order;
|
|
|
using Hotline.Share.Requests;
|
|
|
using Hotline.Tools;
|
|
|
using MapsterMapper;
|
|
|
-using Microsoft.AspNetCore.Authorization;
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
+using MiniExcelLibs;
|
|
|
using SqlSugar;
|
|
|
-using System.DirectoryServices.Protocols;
|
|
|
using XF.Domain.Authentications;
|
|
|
using XF.Domain.Exceptions;
|
|
|
using XF.Domain.Repository;
|
|
@@ -2049,10 +2047,10 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
data = await query.ToListAsync(HttpContext.RequestAborted);
|
|
|
data.Add(new OrderReTransactVo
|
|
|
{
|
|
|
- OrgName = "合计",
|
|
|
- Num = data.Select(s => s.Num).Sum(),
|
|
|
+ OrgName = "合计",
|
|
|
+ Num = data.Select(s => s.Num).Sum(),
|
|
|
});
|
|
|
- dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
|
|
|
+ dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
|
|
|
var dtos = data
|
|
|
.Select(stu => _mapper.Map(stu, typeof(OrderReTransactVo), dynamicClass))
|
|
|
.Cast<object>()
|
|
@@ -2693,28 +2691,28 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
var data = await _orderApplication.QueryOrderSourceHoursList(dto);
|
|
|
var totalVo = new OrderSourceHeaderVo()
|
|
|
{
|
|
|
- Time = "合计",
|
|
|
- Phone = data.Sum(x => x.Phone),
|
|
|
- Web = data.Sum(x => x.Web),
|
|
|
- Rests = data.Sum(x => x.Rests),
|
|
|
- Created = data.Sum(x => x.Created),
|
|
|
- WeChat = data.Sum(x => x.WeChat),
|
|
|
- App = data.Sum(x => x.App),
|
|
|
- WisdomYB = data.Sum(x => x.WisdomYB),
|
|
|
- Platform = data.Sum(x => x.Platform),
|
|
|
- Platform12328 = data.Sum(x => x.Platform12328),
|
|
|
- MayorAndNetizens = data.Sum(x => x.MayorAndNetizens),
|
|
|
- MediaYB = data.Sum(x => x.MediaYB),
|
|
|
- Platform12345 = data.Sum(x => x.Platform12345),
|
|
|
- Interaction = data.Sum(x => x.Interaction),
|
|
|
- ServiceYB = data.Sum(x => x.ServiceYB),
|
|
|
- CityTransfer = data.Sum(x => x.CityTransfer),
|
|
|
- Platform110 = data.Sum(x => x.Platform110),
|
|
|
- NoService = data.Sum(x => x.NoService),
|
|
|
- Iyb = data.Sum(x => x.Iyb)
|
|
|
+ Time = "合计",
|
|
|
+ Phone = data.Sum(x => x.Phone),
|
|
|
+ Web = data.Sum(x => x.Web),
|
|
|
+ Rests = data.Sum(x => x.Rests),
|
|
|
+ Created = data.Sum(x => x.Created),
|
|
|
+ WeChat = data.Sum(x => x.WeChat),
|
|
|
+ App = data.Sum(x => x.App),
|
|
|
+ WisdomYB = data.Sum(x => x.WisdomYB),
|
|
|
+ Platform = data.Sum(x => x.Platform),
|
|
|
+ Platform12328 = data.Sum(x => x.Platform12328),
|
|
|
+ MayorAndNetizens = data.Sum(x => x.MayorAndNetizens),
|
|
|
+ MediaYB = data.Sum(x => x.MediaYB),
|
|
|
+ Platform12345 = data.Sum(x => x.Platform12345),
|
|
|
+ Interaction = data.Sum(x => x.Interaction),
|
|
|
+ ServiceYB = data.Sum(x => x.ServiceYB),
|
|
|
+ CityTransfer = data.Sum(x => x.CityTransfer),
|
|
|
+ Platform110 = data.Sum(x => x.Platform110),
|
|
|
+ NoService = data.Sum(x => x.NoService),
|
|
|
+ Iyb = data.Sum(x => x.Iyb)
|
|
|
};
|
|
|
data.Add(totalVo);
|
|
|
- return data;
|
|
|
+ return data;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -2725,36 +2723,40 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
[HttpGet("order_source_hours_report_columnar_list")]
|
|
|
public async Task<Object> QueryOrderSourceHoursReportColumnarList([FromQuery] QueryOrderSourceRequest dto)
|
|
|
{
|
|
|
- var data = await _orderApplication.QueryOrderSourceHoursList(dto);
|
|
|
- List<string> tiems = new List<string>();
|
|
|
- for (int i = 0; i < 24; i++)
|
|
|
- {
|
|
|
- var item = i.ToString("D2") + ":00 - " + i.ToString("D2") + ":59";
|
|
|
- tiems.Add(item);
|
|
|
- }
|
|
|
- var dataList = (from t1 in tiems join t2 in data on t1 equals t2.Time into t1_t2 from item in t1_t2.DefaultIfEmpty()
|
|
|
- select new {
|
|
|
- Time = t1,
|
|
|
- Phone = t1_t2.Select(x => x.Phone).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Phone).FirstOrDefault(),
|
|
|
- Web = t1_t2.Select(x => x.Web).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Web).FirstOrDefault(),
|
|
|
- Rests = t1_t2.Select(x => x.Rests).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Rests).FirstOrDefault(),
|
|
|
- Created = t1_t2.Select(x => x.Created).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Created).FirstOrDefault(),
|
|
|
- WeChat = t1_t2.Select(x => x.WeChat).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.WeChat).FirstOrDefault(),
|
|
|
- App = t1_t2.Select(x => x.App).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.App).FirstOrDefault(),
|
|
|
- WisdomYB = t1_t2.Select(x => x.WisdomYB).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.WisdomYB).FirstOrDefault(),
|
|
|
- Platform = t1_t2.Select(x => x.Platform).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Platform).FirstOrDefault(),
|
|
|
- Platform12328 = t1_t2.Select(x => x.Platform12328).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Platform12328).FirstOrDefault(),
|
|
|
- MayorAndNetizens = t1_t2.Select(x => x.MayorAndNetizens).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.MayorAndNetizens).FirstOrDefault(),
|
|
|
- MediaYB = t1_t2.Select(x => x.MediaYB).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.MediaYB).FirstOrDefault(),
|
|
|
- Platform12345 = t1_t2.Select(x => x.Platform12345).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Platform12345).FirstOrDefault(),
|
|
|
- Interaction = t1_t2.Select(x => x.Interaction).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Interaction).FirstOrDefault(),
|
|
|
- ServiceYB = t1_t2.Select(x => x.ServiceYB).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.ServiceYB).FirstOrDefault(),
|
|
|
- CityTransfer = t1_t2.Select(x => x.CityTransfer).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.CityTransfer).FirstOrDefault(),
|
|
|
- Platform110 = t1_t2.Select(x => x.Platform110).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Platform110).FirstOrDefault(),
|
|
|
- NoService = t1_t2.Select(x => x.NoService).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.NoService).FirstOrDefault(),
|
|
|
- Iyb = t1_t2.Select(x => x.Iyb).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Iyb).FirstOrDefault(),
|
|
|
- }).ToList();
|
|
|
- var res = new {
|
|
|
+ var data = await _orderApplication.QueryOrderSourceHoursList(dto);
|
|
|
+ List<string> tiems = new List<string>();
|
|
|
+ for (int i = 0; i < 24; i++)
|
|
|
+ {
|
|
|
+ var item = i.ToString("D2") + ":00 - " + i.ToString("D2") + ":59";
|
|
|
+ tiems.Add(item);
|
|
|
+ }
|
|
|
+ var dataList = (from t1 in tiems
|
|
|
+ join t2 in data on t1 equals t2.Time into t1_t2
|
|
|
+ from item in t1_t2.DefaultIfEmpty()
|
|
|
+ select new
|
|
|
+ {
|
|
|
+ Time = t1,
|
|
|
+ Phone = t1_t2.Select(x => x.Phone).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Phone).FirstOrDefault(),
|
|
|
+ Web = t1_t2.Select(x => x.Web).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Web).FirstOrDefault(),
|
|
|
+ Rests = t1_t2.Select(x => x.Rests).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Rests).FirstOrDefault(),
|
|
|
+ Created = t1_t2.Select(x => x.Created).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Created).FirstOrDefault(),
|
|
|
+ WeChat = t1_t2.Select(x => x.WeChat).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.WeChat).FirstOrDefault(),
|
|
|
+ App = t1_t2.Select(x => x.App).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.App).FirstOrDefault(),
|
|
|
+ WisdomYB = t1_t2.Select(x => x.WisdomYB).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.WisdomYB).FirstOrDefault(),
|
|
|
+ Platform = t1_t2.Select(x => x.Platform).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Platform).FirstOrDefault(),
|
|
|
+ Platform12328 = t1_t2.Select(x => x.Platform12328).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Platform12328).FirstOrDefault(),
|
|
|
+ MayorAndNetizens = t1_t2.Select(x => x.MayorAndNetizens).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.MayorAndNetizens).FirstOrDefault(),
|
|
|
+ MediaYB = t1_t2.Select(x => x.MediaYB).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.MediaYB).FirstOrDefault(),
|
|
|
+ Platform12345 = t1_t2.Select(x => x.Platform12345).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Platform12345).FirstOrDefault(),
|
|
|
+ Interaction = t1_t2.Select(x => x.Interaction).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Interaction).FirstOrDefault(),
|
|
|
+ ServiceYB = t1_t2.Select(x => x.ServiceYB).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.ServiceYB).FirstOrDefault(),
|
|
|
+ CityTransfer = t1_t2.Select(x => x.CityTransfer).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.CityTransfer).FirstOrDefault(),
|
|
|
+ Platform110 = t1_t2.Select(x => x.Platform110).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Platform110).FirstOrDefault(),
|
|
|
+ NoService = t1_t2.Select(x => x.NoService).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.NoService).FirstOrDefault(),
|
|
|
+ Iyb = t1_t2.Select(x => x.Iyb).FirstOrDefault() == null ? 0 : t1_t2.Select(x => x.Iyb).FirstOrDefault(),
|
|
|
+ }).ToList();
|
|
|
+ var res = new
|
|
|
+ {
|
|
|
Phone = new { Key = "电话", data = dataList.Select(x => x.Phone) },
|
|
|
Web = new { Key = "因特网", data = dataList.Select(x => x.Web) },
|
|
|
Rests = new { Key = "其他", data = dataList.Select(x => x.Rests) },
|
|
@@ -2773,16 +2775,16 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
Platform110 = new { Key = "宜宾110平台", data = dataList.Select(x => x.Platform110) },
|
|
|
NoService = new { Key = "办不成事反映窗口", data = dataList.Select(x => x.NoService) },
|
|
|
Iyb = new { Key = "I宜宾", data = dataList.Select(x => x.Iyb) }
|
|
|
- };
|
|
|
- return res;
|
|
|
+ };
|
|
|
+ return res;
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 信件来源分时统计表头
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("order_source_hours_report_header")]
|
|
|
+ /// <summary>
|
|
|
+ /// 信件来源分时统计表头
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("order_source_hours_report_header")]
|
|
|
public async Task<Object> QueryOrderSourceHoursReportHeader()
|
|
|
{
|
|
|
List<Kv> header = new List<Kv>
|
|
@@ -2803,7 +2805,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
new Kv { Key = "宜办事", Value = "ServiceYB" },
|
|
|
new Kv { Key = "市州互转", Value = "CityTransfer" },
|
|
|
new Kv { Key = "宜宾110平台", Value = "Platform110" },
|
|
|
- new Kv { Key = "办不成事反映窗口", Value = "NoService" },
|
|
|
+ new Kv { Key = "办不成事反映窗口", Value = "NoService" },
|
|
|
new Kv { Key = "I宜宾", Value = "Iyb" }
|
|
|
};
|
|
|
List<string> tiems = new List<string>();
|
|
@@ -2811,8 +2813,8 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
{
|
|
|
var item = i.ToString("D2") + ":00 - " + i.ToString("D2") + ":59";
|
|
|
tiems.Add(item);
|
|
|
- }
|
|
|
- return new { Header = header,Tiems = tiems };
|
|
|
+ }
|
|
|
+ return new { Header = header, Tiems = tiems };
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -2825,28 +2827,28 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
var data = await _orderApplication.QueryOrderSourceHoursList(dto.QueryDto);
|
|
|
var totalVo = new OrderSourceHeaderVo()
|
|
|
{
|
|
|
- Time = "合计",
|
|
|
- Phone = data.Sum(x => x.Phone),
|
|
|
- Web = data.Sum(x => x.Web),
|
|
|
- Rests = data.Sum(x => x.Rests),
|
|
|
- Created = data.Sum(x => x.Created),
|
|
|
- WeChat = data.Sum(x => x.WeChat),
|
|
|
- App = data.Sum(x => x.App),
|
|
|
- WisdomYB = data.Sum(x => x.WisdomYB),
|
|
|
- Platform = data.Sum(x => x.Platform),
|
|
|
- Platform12328 = data.Sum(x => x.Platform12328),
|
|
|
- MayorAndNetizens = data.Sum(x => x.MayorAndNetizens),
|
|
|
- MediaYB = data.Sum(x => x.MediaYB),
|
|
|
- Platform12345 = data.Sum(x => x.Platform12345),
|
|
|
- Interaction = data.Sum(x => x.Interaction),
|
|
|
- ServiceYB = data.Sum(x => x.ServiceYB),
|
|
|
- CityTransfer = data.Sum(x => x.CityTransfer),
|
|
|
- Platform110 = data.Sum(x => x.Platform110),
|
|
|
- NoService = data.Sum(x => x.NoService),
|
|
|
- Iyb = data.Sum(x => x.Iyb)
|
|
|
+ Time = "合计",
|
|
|
+ Phone = data.Sum(x => x.Phone),
|
|
|
+ Web = data.Sum(x => x.Web),
|
|
|
+ Rests = data.Sum(x => x.Rests),
|
|
|
+ Created = data.Sum(x => x.Created),
|
|
|
+ WeChat = data.Sum(x => x.WeChat),
|
|
|
+ App = data.Sum(x => x.App),
|
|
|
+ WisdomYB = data.Sum(x => x.WisdomYB),
|
|
|
+ Platform = data.Sum(x => x.Platform),
|
|
|
+ Platform12328 = data.Sum(x => x.Platform12328),
|
|
|
+ MayorAndNetizens = data.Sum(x => x.MayorAndNetizens),
|
|
|
+ MediaYB = data.Sum(x => x.MediaYB),
|
|
|
+ Platform12345 = data.Sum(x => x.Platform12345),
|
|
|
+ Interaction = data.Sum(x => x.Interaction),
|
|
|
+ ServiceYB = data.Sum(x => x.ServiceYB),
|
|
|
+ CityTransfer = data.Sum(x => x.CityTransfer),
|
|
|
+ Platform110 = data.Sum(x => x.Platform110),
|
|
|
+ NoService = data.Sum(x => x.NoService),
|
|
|
+ Iyb = data.Sum(x => x.Iyb)
|
|
|
};
|
|
|
data.Add(totalVo);
|
|
|
- dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
|
|
|
+ dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
|
|
|
var dtos = data
|
|
|
.Select(stu => _mapper.Map(stu, typeof(OrderSourceHeaderVo), dynamicClass))
|
|
|
.Cast<object>()
|
|
@@ -2876,6 +2878,21 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
return new { Item = item, TitleData = titleData };
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 区域分时统计-导出
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("order_area_time_export")]
|
|
|
+ public async Task<FileStreamResult> OrderAreaTimeExport([FromBody] AreaTimePagedKeywordRequest dto)
|
|
|
+ {
|
|
|
+ var dataTable = await _orderRepository.OrderAreaTimeExport(dto.StartTime, dto.EndTime, dto.AddColumnName);
|
|
|
+
|
|
|
+ var stream = new MemoryStream();
|
|
|
+ stream.SaveAs(dataTable);
|
|
|
+ stream.Seek(0, SeekOrigin.Begin);
|
|
|
+ return ExcelStreamResult(stream, "区域分时统计数据");
|
|
|
+ }
|
|
|
|
|
|
/// <summary>
|
|
|
///
|
|
@@ -3077,5 +3094,5 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|