Commit 7a95ea71 by 陶然

优化

parent 864227ae
...@@ -79,7 +79,7 @@ namespace Kivii.Finances.Transforms ...@@ -79,7 +79,7 @@ namespace Kivii.Finances.Transforms
Item.ParentKvid = Guid.Empty; Item.ParentKvid = Guid.Empty;
//Item.AmountUsed = 0; //Item.AmountUsed = 0;
Item.OperateTime = DateTime.Now; Item.OperateTime = DateTime.Now;
Item.Status = (int)InvoiceApplyStatus.FinancialApproval; Item.Status = (int)InvoiceApplyStatus.FinancialExecute;
Item.Kvid = applyKvid; Item.Kvid = applyKvid;
conn.Insert(Item); conn.Insert(Item);
rtns.Results.Add(Item); rtns.Results.Add(Item);
...@@ -118,7 +118,7 @@ namespace Kivii.Finances.Transforms ...@@ -118,7 +118,7 @@ namespace Kivii.Finances.Transforms
Item.ParentKvid = Guid.Empty; Item.ParentKvid = Guid.Empty;
//Item.AmountUsed = Item.Amount; //Item.AmountUsed = Item.Amount;
Item.OperateTime = DateTime.Now; Item.OperateTime = DateTime.Now;
Item.Status = (int)InvoiceApplyStatus.FinancialApproval; Item.Status = (int)InvoiceApplyStatus.FinancialExecute;
Item.Kvid = applyKvid; Item.Kvid = applyKvid;
conn.Insert(Item); conn.Insert(Item);
rtns.Results.Add(Item); rtns.Results.Add(Item);
......
...@@ -584,112 +584,181 @@ namespace Kivii.Finances.Transforms ...@@ -584,112 +584,181 @@ namespace Kivii.Finances.Transforms
} }
} }
[Api(Description = "待认领流水")] [Api(Description = "到账流水无操作分析")]
[RequiresAnyRole(SystemRoles.Everyone)] [RequiresAnyRole(SystemRoles.Everyone)]
public class PaymentUnSplitAnalysis : RestfulExecution<Payment> public class PaymentNoOperateAnalysis : RestfulExecution<Payment>
{ {
public override object OnExecution(IRequest req, IResponse res) public DateTime BeginTime { get; set; }
{
var conn = KiviiContext.GetOpenedDbConnection<Payment>();
var queryAccount = conn.From<Account>();
queryAccount.Where(o => o.OrganizationKvid == KiviiContext.CurrentMember.OrganizationKvid && Sql.In(o.Type, AccountType.Balance, AccountType.Cash, AccountType.Pos));
queryAccount.Select(o => o.Kvid);
var sqlExpress = conn.From<Payment>();
sqlExpress.Where(o => o.RootKvid == o.Kvid && o.OffsetKvid == Guid.Empty && Sql.In(o.Type, PaymentType.AliPay, PaymentType.WeChat, PaymentType.Bank, PaymentType.Cash, PaymentType.Pos));
sqlExpress.And(o => o.AmountSplited == 0 || o.AmountSplited < o.Amount);
sqlExpress.And(o => (Sql.In(o.PayerAccountKvid, queryAccount)));
sqlExpress.Select(o => new { o.AmountSplited, o.Amount });
var results = conn.Select(sqlExpress);
var rtns = new StatisticResponse<Payment>(); public DateTime EndTime { get; set; }
rtns.Description = "待认领流水";
if (results.IsNullOrEmpty()) return rtns;
rtns.TotalAmount = results.Sum(o => o.Amount - o.AmountSplited);
rtns.TotalQuantity = results.Count();
return rtns;
}
}
[Api(Description = "待开票流水")]
[RequiresAnyRole(SystemRoles.Everyone)]
public class PaymentUnInvoiceAnalysis : RestfulExecution<Payment>
{
public Guid OwnerKvid { get; set; }
public List<Guid> OwnerKvids { get; set; }
public override object OnExecution(IRequest req, IResponse res) public override object OnExecution(IRequest req, IResponse res)
{ {
if (OwnerKvids.IsNullOrEmpty()) OwnerKvids = new List<Guid>(); int monthDay = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
if (OwnerKvid != Guid.Empty) OwnerKvids.Add(OwnerKvid); if (BeginTime == DateTime.MinValue) BeginTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
var conn = KiviiContext.GetOpenedDbConnection<Payment>(); if (EndTime == DateTime.MinValue) EndTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, monthDay);
var queryAccount = conn.From<Account>();
queryAccount.Where(o => o.OrganizationKvid == KiviiContext.CurrentMember.OrganizationKvid && Sql.In(o.Type, AccountType.Balance, AccountType.Cash, AccountType.Pos));
queryAccount.Select(o => o.Kvid);
var sqlExpress = conn.From<Payment>();
sqlExpress.Where(o => o.OffsetKvid == Guid.Empty && Sql.In(o.Type, PaymentType.AliPay, PaymentType.WeChat, PaymentType.Split, PaymentType.Cash, PaymentType.Pos));
if (!OwnerKvids.IsNullOrEmpty()) sqlExpress.And(o => Sql.In(o.OwnerKvid, OwnerKvids));
//if (OwnerKvid != Guid.Empty) sqlExpress.And(o => o.OwnerKvid == OwnerKvid);
sqlExpress.And(o => o.AmountInvoice == 0 || o.AmountInvoice < o.Amount);
sqlExpress.And(o => (Sql.In(o.PayerAccountKvid, queryAccount)));
sqlExpress.Select(o => new { o.AmountInvoice, o.Amount });
var results = conn.Select(sqlExpress);
var rtns = new StatisticResponse<Payment>(); BeginTime = DateTime.Parse(BeginTime.ToString("yyyy-MM-dd"));
rtns.Description = "待开票流水"; EndTime = DateTime.Parse(EndTime.ToString("yyyy-MM-dd"));
if (results.IsNullOrEmpty()) return rtns; if (EndTime < BeginTime) throw new Exception("查询结束日期不可小于开始日期!");
rtns.TotalAmount = results.Sum(o => o.Amount - o.AmountInvoice);
rtns.TotalQuantity = results.Count();
return rtns;
}
}
[Api(Description = "待使用流水")]
[RequiresAnyRole(SystemRoles.Everyone)]
public class PaymentUnUsedAnalysis : RestfulExecution<Payment>
{
public Guid OwnerKvid { get; set; }
public List<Guid> OwnerKvids { get; set; }
public override object OnExecution(IRequest req, IResponse res)
{
if (OwnerKvids.IsNullOrEmpty()) OwnerKvids = new List<Guid>();
if (OwnerKvid != Guid.Empty) OwnerKvids.Add(OwnerKvid);
var conn = KiviiContext.GetOpenedDbConnection<Payment>(); var conn = KiviiContext.GetOpenedDbConnection<Payment>();
var queryAccount = conn.From<Account>(); var queryAccount = conn.From<Account>();
queryAccount.Where(o => o.OrganizationKvid == KiviiContext.CurrentMember.OrganizationKvid && Sql.In(o.Type, AccountType.Balance, AccountType.Cash, AccountType.Pos)); queryAccount.Where(o => o.OrganizationKvid == KiviiContext.CurrentMember.OrganizationKvid && Sql.In(o.Type, AccountType.Balance, AccountType.Cash, AccountType.Pos));
queryAccount.Select(o => o.Kvid); queryAccount.Select(o => o.Kvid);
var sqlExpress = conn.From<Payment>(); var sqlExpress = conn.From<Payment>();
sqlExpress.Where(o => o.OffsetKvid == Guid.Empty && Sql.In(o.Type, PaymentType.AliPay, PaymentType.WeChat, PaymentType.Split, PaymentType.Cash, PaymentType.Pos)); sqlExpress.Where(o => o.RootKvid == o.Kvid && o.OffsetKvid == Guid.Empty && Sql.In(o.Type, PaymentType.AliPay, PaymentType.WeChat, PaymentType.Bank, PaymentType.Cash, PaymentType.Pos));
if (!OwnerKvids.IsNullOrEmpty()) sqlExpress.And(o => Sql.In(o.OwnerKvid, OwnerKvids)); sqlExpress.And(o => o.OperateTime >= BeginTime && o.OperateTime < EndTime);
//if (OwnerKvid != Guid.Empty) sqlExpress.And(o => o.OwnerKvid == OwnerKvid); //sqlExpress.And(o => o.AmountSplited == 0 || o.AmountSplited < o.Amount);
sqlExpress.And(o => o.AmountUsed == 0 || o.AmountUsed < o.Amount);
sqlExpress.And(o => (Sql.In(o.PayerAccountKvid, queryAccount))); sqlExpress.And(o => (Sql.In(o.PayerAccountKvid, queryAccount)));
sqlExpress.Select(o => new { o.AmountUsed, o.Amount }); sqlExpress.Select(o => new { o.AmountSplited, o.AmountInvoice,o.AmountUsed,o.Amount });
var results = conn.Select(sqlExpress); var results = conn.Select(sqlExpress);
var rtns = new StatisticResponse<Payment>(); var rtns = new StatisticResponse<Payment>();
rtns.Description = "待使用流水"; //rtns.Description = "待认领流水";
if (results.IsNullOrEmpty()) return rtns; if (results.IsNullOrEmpty()) return rtns;
rtns.TotalAmount = results.Sum(o => o.Amount - o.AmountUsed); rtns.Total = results.Count();
rtns.TotalQuantity = results.Count(); rtns.TotalAmount = results.Sum(o => o.Amount);
rtns.TotalAmountSplited = results.Sum(o => o.Amount - o.AmountSplited);
rtns.TotalQuantitySplited = results.Where(o=> o.AmountSplited == 0 || o.AmountSplited < o.Amount).Count();
rtns.TotalAmountInvoice = results.Sum(o => o.Amount - o.AmountInvoice);
rtns.TotalQuantityInvoice = results.Where(o => o.AmountInvoice == 0 || o.AmountInvoice < o.Amount).Count();
rtns.TotalAmountUsed = results.Sum(o => o.Amount - o.AmountUsed);
rtns.TotalQuantityUsed = results.Where(o => o.AmountUsed == 0 || o.AmountUsed < o.Amount).Count();
return rtns; return rtns;
} }
} }
//[Api(Description = "待开票流水")]
//[RequiresAnyRole(SystemRoles.Everyone)]
//public class PaymentUnInvoiceAnalysis : RestfulExecution<Payment>
//{
// public Guid OwnerKvid { get; set; }
// public List<Guid> OwnerKvids { get; set; }
// public DateTime BeginTime { get; set; }
// public DateTime EndTime { get; set; }
// public override object OnExecution(IRequest req, IResponse res)
// {
// int monthDay = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
// if (BeginTime == DateTime.MinValue) BeginTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
// if (EndTime == DateTime.MinValue) EndTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, monthDay);
// BeginTime = DateTime.Parse(BeginTime.ToString("yyyy-MM-dd"));
// EndTime = DateTime.Parse(EndTime.ToString("yyyy-MM-dd"));
// if (EndTime < BeginTime) throw new Exception("查询结束日期不可小于开始日期!");
// if (OwnerKvids.IsNullOrEmpty()) OwnerKvids = new List<Guid>();
// if (OwnerKvid != Guid.Empty) OwnerKvids.Add(OwnerKvid);
// var conn = KiviiContext.GetOpenedDbConnection<Payment>();
// var queryAccount = conn.From<Account>();
// queryAccount.Where(o => o.OrganizationKvid == KiviiContext.CurrentMember.OrganizationKvid && Sql.In(o.Type, AccountType.Balance, AccountType.Cash, AccountType.Pos));
// queryAccount.Select(o => o.Kvid);
// var sqlExpress = conn.From<Payment>();
// if (!OwnerKvids.IsNullOrEmpty())
// {
// sqlExpress.Where(o => o.OffsetKvid == Guid.Empty && Sql.In(o.Type, PaymentType.AliPay, PaymentType.WeChat, PaymentType.Split, PaymentType.Cash, PaymentType.Pos));
// sqlExpress.And(o => Sql.In(o.OwnerKvid, OwnerKvids));
// }
// else
// {
// sqlExpress.Where(o => o.RootKvid == o.Kvid && o.OffsetKvid == Guid.Empty && Sql.In(o.Type, PaymentType.AliPay, PaymentType.WeChat, PaymentType.Bank, PaymentType.Cash, PaymentType.Pos));
// }
// sqlExpress.And(o => o.OperateTime >= BeginTime && o.OperateTime < EndTime);
// //if (OwnerKvid != Guid.Empty) sqlExpress.And(o => o.OwnerKvid == OwnerKvid);
// //sqlExpress.And(o => o.AmountInvoice == 0 || o.AmountInvoice < o.Amount);
// sqlExpress.And(o => (Sql.In(o.PayerAccountKvid, queryAccount)));
// sqlExpress.Select(o => new { o.AmountInvoice, o.Amount });
// var results = conn.Select(sqlExpress);
// var rtns = new StatisticResponse<Payment>();
// rtns.Description = "待开票流水";
// if (results.IsNullOrEmpty()) return rtns;
// rtns.Total = results.Count();
// rtns.TotalAmount = results.Sum(o => o.Amount);
// rtns.TotalAmountInvoice = results.Sum(o => o.Amount - o.AmountInvoice);
// rtns.TotalQuantity = results.Where(o => o.AmountInvoice == 0 || o.AmountInvoice < o.Amount).Count();
// //rtns.TotalAmount = results.Sum(o => o.Amount - o.AmountInvoice);
// //rtns.TotalQuantity = results.Count();
// return rtns;
// }
//}
//[Api(Description = "待使用流水")]
//[RequiresAnyRole(SystemRoles.Everyone)]
//public class PaymentUnUsedAnalysis : RestfulExecution<Payment>
//{
// public Guid OwnerKvid { get; set; }
// public List<Guid> OwnerKvids { get; set; }
// public DateTime BeginTime { get; set; }
// public DateTime EndTime { get; set; }
// public override object OnExecution(IRequest req, IResponse res)
// {
// int monthDay = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
// if (BeginTime == DateTime.MinValue) BeginTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
// if (EndTime == DateTime.MinValue) EndTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, monthDay);
// BeginTime = DateTime.Parse(BeginTime.ToString("yyyy-MM-dd"));
// EndTime = DateTime.Parse(EndTime.ToString("yyyy-MM-dd"));
// if (EndTime < BeginTime) throw new Exception("查询结束日期不可小于开始日期!");
// if (OwnerKvids.IsNullOrEmpty()) OwnerKvids = new List<Guid>();
// if (OwnerKvid != Guid.Empty) OwnerKvids.Add(OwnerKvid);
// var conn = KiviiContext.GetOpenedDbConnection<Payment>();
// var queryAccount = conn.From<Account>();
// queryAccount.Where(o => o.OrganizationKvid == KiviiContext.CurrentMember.OrganizationKvid && Sql.In(o.Type, AccountType.Balance, AccountType.Cash, AccountType.Pos));
// queryAccount.Select(o => o.Kvid);
// var sqlExpress = conn.From<Payment>();
// sqlExpress.Where(o => o.OffsetKvid == Guid.Empty && Sql.In(o.Type, PaymentType.AliPay, PaymentType.WeChat, PaymentType.Split, PaymentType.Cash, PaymentType.Pos));
// sqlExpress.And(o => o.OperateTime >= BeginTime && o.OperateTime < EndTime);
// if (!OwnerKvids.IsNullOrEmpty()) sqlExpress.And(o => Sql.In(o.OwnerKvid, OwnerKvids));
// //if (OwnerKvid != Guid.Empty) sqlExpress.And(o => o.OwnerKvid == OwnerKvid);
// sqlExpress.And(o => o.AmountUsed == 0 || o.AmountUsed < o.Amount);
// sqlExpress.And(o => (Sql.In(o.PayerAccountKvid, queryAccount)));
// sqlExpress.Select(o => new { o.AmountUsed, o.Amount });
// var results = conn.Select(sqlExpress);
// var rtns = new StatisticResponse<Payment>();
// rtns.Description = "待使用流水";
// if (results.IsNullOrEmpty()) return rtns;
// rtns.TotalAmount = results.Sum(o => o.Amount - o.AmountUsed);
// rtns.TotalQuantity = results.Count();
// return rtns;
// }
//}
[Api(Description = "已结算未收费")] [Api(Description = "已结算未收费")]
[RequiresAnyRole(SystemRoles.Everyone)] [RequiresAnyRole(SystemRoles.Everyone)]
public class SettlementUnPayedAnalysis : RestfulExecution<Settlement> public class SettlementUnPayedAnalysis : RestfulExecution<Settlement>
{ {
public Guid OwnerKvid { get; set; } public Guid OwnerKvid { get; set; }
public List<Guid> OwnerKvids { get; set; } public List<Guid> OwnerKvids { get; set; }
public DateTime BeginTime { get; set; }
public DateTime EndTime { get; set; }
public override object OnExecution(IRequest req, IResponse res) public override object OnExecution(IRequest req, IResponse res)
{ {
int monthDay = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
if (BeginTime == DateTime.MinValue) BeginTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
if (EndTime == DateTime.MinValue) EndTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, monthDay);
BeginTime = DateTime.Parse(BeginTime.ToString("yyyy-MM-dd"));
EndTime = DateTime.Parse(EndTime.ToString("yyyy-MM-dd"));
if (EndTime < BeginTime) throw new Exception("查询结束日期不可小于开始日期!");
if (OwnerKvids.IsNullOrEmpty()) OwnerKvids = new List<Guid>(); if (OwnerKvids.IsNullOrEmpty()) OwnerKvids = new List<Guid>();
if (OwnerKvid != Guid.Empty) OwnerKvids.Add(OwnerKvid); if (OwnerKvid != Guid.Empty) OwnerKvids.Add(OwnerKvid);
var conn = KiviiContext.GetOpenedDbConnection<Settlement>(); var conn = KiviiContext.GetOpenedDbConnection<Settlement>();
var sqlExpress = conn.From<Settlement>(); var sqlExpress = conn.From<Settlement>();
sqlExpress.Where(o => o.OffsetKvid == Guid.Empty); sqlExpress.Where(o => o.OffsetKvid == Guid.Empty);
sqlExpress.And(o => o.OperateTime >= BeginTime && o.OperateTime < EndTime);
sqlExpress.And(o => o.AmountPayment < o.Amount || o.AmountPayment == 0); sqlExpress.And(o => o.AmountPayment < o.Amount || o.AmountPayment == 0);
if (!OwnerKvids.IsNullOrEmpty()) sqlExpress.And(o => Sql.In(o.OwnerKvid, OwnerKvids)); if (!OwnerKvids.IsNullOrEmpty()) sqlExpress.And(o => Sql.In(o.OwnerKvid, OwnerKvids));
//if (OwnerKvid != Guid.Empty) sqlExpress.And(o => o.OwnerKvid == OwnerKvid); //if (OwnerKvid != Guid.Empty) sqlExpress.And(o => o.OwnerKvid == OwnerKvid);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment