|
@@ -2317,8 +2317,8 @@ ORDER BY
|
|
|
{
|
|
|
|
|
|
|
|
|
- List<int> pickGroupIds = _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0).Select(it => it.JietuanOperator).Distinct().ToList();
|
|
|
- List<int> userIds = new List<int>();
|
|
|
+ var pickGroupIds = _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0).Select(it => it.JietuanOperator).Distinct().ToList();
|
|
|
+ var userIds = new List<int>();
|
|
|
var userDatas = await _sqlSugar.Queryable<Sys_Users>()
|
|
|
.InnerJoin<Sys_Company>((u, c) => u.CompanyId == c.Id)
|
|
|
.Where((u, c) => u.IsDel == 0 && pickGroupIds.Contains(u.Id))
|
|
@@ -2463,7 +2463,6 @@ FROM
|
|
|
public string yoy { get; set; } = "1.00";
|
|
|
}
|
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
@@ -2616,6 +2615,132 @@ FROM
|
|
|
return Ok(JsonView(true, "操作成功!", groupData, total));
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ [HttpPost("PostMarketingSalesGroupExcel")]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> PostMarketingSalesGroupExcel(MarketingSalesGroupListDto _dto)
|
|
|
+ {
|
|
|
+ #region 参数验证
|
|
|
+
|
|
|
+ MarketingSalesStatisticsDtoFoalidator validationRules = new MarketingSalesStatisticsDtoFoalidator();
|
|
|
+ var validResult = await validationRules.ValidateAsync(_dto);
|
|
|
+ if (!validResult.IsValid)
|
|
|
+ {
|
|
|
+ var errors = new StringBuilder();
|
|
|
+ foreach (var error in validResult.Errors) errors.AppendLine(error.ErrorMessage);
|
|
|
+ return Ok(JsonView(false, errors.ToString()));
|
|
|
+ }
|
|
|
+
|
|
|
+ PageFunAuthViewBase pageFunAuthView = new PageFunAuthViewBase();
|
|
|
+
|
|
|
+ #region 页面操作权限验证
|
|
|
+ pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(_dto.UserId, _dto.PageId);
|
|
|
+
|
|
|
+ if (pageFunAuthView.CheckAuth == 0) return Ok(JsonView(false, MsgTips.CheckAuth));
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ string userSql = "";
|
|
|
+ var userIds = new List<int>();
|
|
|
+ userIds = await GetUserIds(_dto.CompanyId, _dto.GroupPickupUserId);
|
|
|
+
|
|
|
+ if (userIds.Count <= 0)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false));
|
|
|
+ }
|
|
|
+ else userSql = @$" And di.JietuanOperator In ({string.Join(",", userIds)})";
|
|
|
+
|
|
|
+
|
|
|
+ if (!string.IsNullOrEmpty(_dto.SearchCriteria))
|
|
|
+ {
|
|
|
+ userSql += string.Format(@$" AND di.TeamName Like '%{_dto.SearchCriteria}%'");
|
|
|
+ }
|
|
|
+
|
|
|
+ string beginDt = $"{_dto.BeginDt} 00:00:00",
|
|
|
+ endDt = $"{_dto.EndDt} 23:59:59";
|
|
|
+
|
|
|
+ string sql = string.Format(@$"SELECT
|
|
|
+ ROW_NUMBER() OVER (
|
|
|
+ ORDER BY
|
|
|
+ CollectionDays
|
|
|
+ ) AS RowNumber,
|
|
|
+ *
|
|
|
+FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ di.Id,
|
|
|
+ di.TeamName,
|
|
|
+ di.ClientUnit,
|
|
|
+ di.ClientName,
|
|
|
+ di.VisitDate,
|
|
|
+ di.VisitPNumber,
|
|
|
+ di.JietuanOperator,
|
|
|
+ di.VisitEndDate,
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ CAST(
|
|
|
+ COALESCE(SUM(ItemSumPrice * Rate), 0) AS DECIMAL(12, 2)
|
|
|
+ ) AS GroupSales
|
|
|
+ FROM
|
|
|
+ Fin_ForeignReceivables
|
|
|
+ WHERE
|
|
|
+ IsDel = 0
|
|
|
+ AND di.Id = Diid
|
|
|
+ AND AddingWay IN (0, 1, 2)
|
|
|
+ ) AS GroupSales,
|
|
|
+ u.CnName AS GroupPickupUser,
|
|
|
+ DATEADD(DAY, 7, di.VisitEndDate) AS CollectionDays
|
|
|
+ FROM
|
|
|
+ Grp_DelegationInfo di
|
|
|
+ WITH
|
|
|
+ (NoLock)
|
|
|
+ LEFT JOIN Sys_Users u ON di.JietuanOperator = u.Id
|
|
|
+ WHERE
|
|
|
+ di.Isdel = 0
|
|
|
+ AND (
|
|
|
+ SELECT
|
|
|
+ CAST(
|
|
|
+ COALESCE(SUM(ItemSumPrice * Rate), 0) AS DECIMAL(12, 2)
|
|
|
+ ) AS GroupSales
|
|
|
+ FROM
|
|
|
+ Fin_ForeignReceivables
|
|
|
+ WHERE
|
|
|
+ IsDel = 0
|
|
|
+ AND di.Id = Diid
|
|
|
+ AND AddingWay IN (0, 1, 2)
|
|
|
+ ) > 0
|
|
|
+ {userSql}
|
|
|
+ AND VisitDate Between '{beginDt}' And '{endDt}'
|
|
|
+ ) Temp ");
|
|
|
+
|
|
|
+ var view = await _sqlSugar.SqlQueryable<MarketingSalesGroupList>(sql).ToListAsync();
|
|
|
+
|
|
|
+
|
|
|
+ if (view.Count < 1 ) return Ok(JsonView(false, "暂无数据!"));
|
|
|
+
|
|
|
+
|
|
|
+ DataTable dt = CommonFun.GetDataTableFromIList(view);
|
|
|
+ dt.TableName = $"_view";
|
|
|
+ WorkbookDesigner designer = new WorkbookDesigner();
|
|
|
+ designer.Workbook = new Workbook(AppSettingsHelper.Get("ExcelBasePath") + "Template/营业额团组报表模板.xls");
|
|
|
+ designer.SetDataSource(dt);
|
|
|
+ designer.Workbook.Worksheets[0].Name = "营业额团组报表";
|
|
|
+
|
|
|
+ designer.Process();
|
|
|
+
|
|
|
+ string fileName = $"MarketingSales/{_dto.BeginDt}~{_dto.EndDt}营业额团组报表{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx";
|
|
|
+ designer.Workbook.Save(AppSettingsHelper.Get("ExcelBasePath") + fileName);
|
|
|
+ string rst = AppSettingsHelper.Get("ExcelBaseUrl") + AppSettingsHelper.Get("ExcelFtpPath") + fileName;
|
|
|
+ return Ok(JsonView(true, "操作成功", new { url = rst }));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
|
|
|
|