|
@@ -30,6 +30,9 @@ using Microsoft.Extensions.Configuration;
|
|
using System.Text.Json;
|
|
using System.Text.Json;
|
|
using OASystem.RedisRepository;
|
|
using OASystem.RedisRepository;
|
|
using OASystem.RedisRepository.RedisAsyncHelper;
|
|
using OASystem.RedisRepository.RedisAsyncHelper;
|
|
|
|
+using System.Data;
|
|
|
|
+using OfficeOpenXml.Export.ToDataTable;
|
|
|
|
+using Aspose.Cells;
|
|
|
|
|
|
namespace OASystem.API.Controllers
|
|
namespace OASystem.API.Controllers
|
|
{
|
|
{
|
|
@@ -3061,28 +3064,86 @@ Left Join Sys_SetData sd2 On dfp.PriceTypeId = sd2.Id
|
|
Where dfp.IsDel = 0 And dfp.IsPay = 1
|
|
Where dfp.IsDel = 0 And dfp.IsPay = 1
|
|
",sqlWhere);//--Order By dfp.CreateTime Desc
|
|
",sqlWhere);//--Order By dfp.CreateTime Desc
|
|
|
|
|
|
- RefAsync<int> total = 0;
|
|
|
|
- var _view = await _sqlSugar.SqlQueryable<DailyFeePaymentRangeView>(sql)
|
|
|
|
- //.Includes(x => x.Contents)
|
|
|
|
- //.ToListAsync();
|
|
|
|
- .Where(x => x.ApplicantDt >= _beginDt && x.ApplicantDt <= _endDt)
|
|
|
|
- .WhereIF(dailypaymentTypeData.Count > 0,
|
|
|
|
- x => dailypaymentTypeData.Contains(x.PriceTypeId))
|
|
|
|
- .OrderByDescending(x => x.ApplicantDt)
|
|
|
|
- .ToPageListAsync(
|
|
|
|
- pageNumber: _dto.PageIndex,
|
|
|
|
- pageSize: _dto.PageSize,
|
|
|
|
- totalNumber: total
|
|
|
|
- );
|
|
|
|
-
|
|
|
|
- _sqlSugar.ThenMapper(_view, x =>
|
|
|
|
|
|
+
|
|
|
|
+ if (_dto.Type == 1) //data
|
|
{
|
|
{
|
|
- x.Contents = _sqlSugar.Queryable<DailyFeePaymentContentView>()
|
|
|
|
- .SetContext(x1 => x1.DFPId, () => x.Id, x)
|
|
|
|
- .ToList();
|
|
|
|
- });
|
|
|
|
|
|
+ RefAsync<int> total = 0;
|
|
|
|
+ var _view = await _sqlSugar.SqlQueryable<DailyFeePaymentRangeView>(sql)
|
|
|
|
+ .Where(x => x.ApplicantDt >= _beginDt && x.ApplicantDt <= _endDt)
|
|
|
|
+ .WhereIF(dailypaymentTypeData.Count > 0,
|
|
|
|
+ x => dailypaymentTypeData.Contains(x.PriceTypeId))
|
|
|
|
+ .OrderByDescending(x => x.ApplicantDt)
|
|
|
|
+ .ToPageListAsync(
|
|
|
|
+ pageNumber: _dto.PageIndex,
|
|
|
|
+ pageSize: _dto.PageSize,
|
|
|
|
+ totalNumber: total
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ _sqlSugar.ThenMapper(_view, x =>
|
|
|
|
+ {
|
|
|
|
+ x.Contents = _sqlSugar.Queryable<DailyFeePaymentContentView>()
|
|
|
|
+ .SetContext(x1 => x1.DFPId, () => x.Id, x)
|
|
|
|
+ .ToList();
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ return Ok(JsonView(true, "操作成功!", _view, total));
|
|
|
|
+ }
|
|
|
|
+ else if (_dto.Type == 2) //view
|
|
|
|
+ {
|
|
|
|
+ var _view = await _sqlSugar.SqlQueryable<ExcelView>(sql)
|
|
|
|
+ .Where(x => x.ApplicantDt >= _beginDt && x.ApplicantDt <= _endDt)
|
|
|
|
+ .WhereIF(dailypaymentTypeData.Count > 0,
|
|
|
|
+ x => dailypaymentTypeData.Contains(x.PriceTypeId))
|
|
|
|
+ .OrderByDescending(x => x.ApplicantDt)
|
|
|
|
+ .ToPageListAsync(
|
|
|
|
+ pageNumber: 1,
|
|
|
|
+ pageSize: 99999
|
|
|
|
+ ) ;
|
|
|
|
+
|
|
|
|
+ _sqlSugar.ThenMapper(_view, x =>
|
|
|
|
+ {
|
|
|
|
+ x.Contents = _sqlSugar.Queryable<DailyFeePaymentContentView>()
|
|
|
|
+ .SetContext(x1 => x1.DFPId, () => x.Id, x)
|
|
|
|
+ .ToList();
|
|
|
|
+
|
|
|
|
+ string str = "";
|
|
|
|
+ int index = 1;
|
|
|
|
+ foreach (var item in x.Contents)
|
|
|
|
+ {
|
|
|
|
+ string str1 = $"{index}、费用名称:[{item.PriceName}] 单价:[{item.Price.ToString("#0.00")}] 数量:[{item.Quantity.ToString("#0.00")}] 小计:[{item.ItemTotal.ToString("#0.00")}] 备注:[{item.Remark}]";
|
|
|
|
+
|
|
|
|
+ if (index == x.Contents.Count) str += str1;
|
|
|
|
+ else str += str1 + "\r\n";
|
|
|
|
+ index++;
|
|
|
|
+ }
|
|
|
|
+ x.ContentStr = str;
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ if (_view.Count > 0 )
|
|
|
|
+ {
|
|
|
|
+ //DataTable dt = GeneralMethod.
|
|
|
|
+ DataTable dt = CommonFun.GetDataTableFromIList(_view );
|
|
|
|
+ dt.TableName = $"_view";
|
|
|
|
+ decimal total = _view.Sum(x => x.SumPrice);
|
|
|
|
+ WorkbookDesigner designer = new WorkbookDesigner();
|
|
|
|
+ designer.Workbook = new Workbook(AppSettingsHelper.Get("ExcelBasePath") + "Template/日付报表模板.xls");
|
|
|
|
+ designer.SetDataSource(dt);
|
|
|
|
+ designer.SetDataSource("Total", total);
|
|
|
|
+ designer.Workbook.Worksheets[0].Name = "日付报表";
|
|
|
|
+
|
|
|
|
+ designer.Process();
|
|
|
|
+
|
|
|
|
+ string fileName = $"DailyPayment/日付报表{ 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 })) ;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return Ok(JsonView(true, ",暂无数据"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return Ok(JsonView(false, "操作失败"));
|
|
|
|
|
|
- return Ok(JsonView(true, "操作成功!", _view, total));
|
|
|
|
}
|
|
}
|
|
else return Ok(JsonView(false, "操作失败"));
|
|
else return Ok(JsonView(false, "操作失败"));
|
|
}
|
|
}
|