Commit 88082baa authored by liudong1993's avatar liudong1993

财务报表

parent 3f6d04f7
using System;
using System.Collections.Generic;
using System.Text;
using Edu.Common.Plugin;
namespace Edu.Common.Enum.Finance
{
/// <summary>
/// 费用类型枚举
/// </summary>
public enum CostEnum
{
/// <summary>
/// 佣金收入
/// </summary>
[EnumField("佣金收入")]
YJSR = 1,
/// <summary>
/// 自费收入
/// </summary>
[EnumField("自费收入")]
ZFSR = 2,
/// <summary>
/// 小费收入
/// </summary>
[EnumField("小费收入")]
XFSR = 3,
/// <summary>
/// 佣金+小费+自费
/// </summary>
[EnumField("佣金+小费+自费")]
YJXFZF = 4,
/// <summary>
/// 邀请函、名单表
/// </summary>
[EnumField("邀请函、名单表")]
YQH = 5,
/// <summary>
/// 车资
/// </summary>
[EnumField("车资")]
CZ = 6,
/// <summary>
/// 国内联运机票
/// </summary>
[EnumField("国内联运机票")]
GNLY = 7,
/// <summary>
/// 签证
/// </summary>
[EnumField("签证")]
QZ = 8,
/// <summary>
/// 其他
/// </summary>
[EnumField("其他")]
QT = 9,
/// <summary>
/// 地接款支出
/// </summary>
[EnumField("地接款支出")]
DJZC = 10,
/// <summary>
/// 地接款收入
/// </summary>
[EnumField("地接款收入")]
DJSR = 11,
/// <summary>
/// 保险费
/// </summary>
[EnumField("保险费")]
YWX = 14,
/// <summary>
/// 工资
/// </summary>
[EnumField("工资")]
GZ = 15,
/// <summary>
/// 员工提成
/// </summary>
[EnumField("员工提成")]
YGTC = 16,
/// <summary>
/// 社保
/// </summary>
[EnumField("社保")]
SB = 17,
/// <summary>
/// 员工福利及竞赛奖金
/// </summary>
[EnumField("福利及奖金")]
YGFL = 18,
/// <summary>
/// 办公用品
/// </summary>
[EnumField("办公用品")]
BGYP = 19,
/// <summary>
/// 差旅费
/// </summary>
[EnumField("差旅费")]
CLF = 20,
/// <summary>
/// 电话费(通訊費)
/// </summary>
[EnumField("电话费(通訊費)")]
DH = 21,
/// <summary>
/// 物管水电费
/// </summary>
[EnumField("物管水电费")]
WGSDF = 22,
/// <summary>
/// 房租
/// </summary>
[EnumField("房租")]
FZ = 23,
/// <summary>
/// 广告费
/// </summary>
[EnumField("广告费")]
GGF = 24,
/// <summary>
/// 业务招待
/// </summary>
[EnumField("业务招待")]
YWZDF = 25,
/// <summary>
/// 累计折旧
/// </summary>
[EnumField("累计折旧")]
LJZK = 26,
/// <summary>
/// 税金
/// </summary>
[EnumField("税金")]
SJ = 27,
/// <summary>
/// 平台使用费
/// </summary>
[EnumField("平台使用费")]
PTSYF = 28,
/// <summary>
/// 電腦系统费
/// </summary>
[EnumField("電腦系统费")]
DNXTF = 29,
/// <summary>
/// 市内交通费
/// </summary>
[EnumField("市内交通费")]
SNJTF = 30,
/// <summary>
/// 团队建设费
/// </summary>
[EnumField("团队建设费")]
TDJSF = 31,
/// <summary>
/// 会务费
/// </summary>
[EnumField("会务费")]
HWF = 32,
/// <summary>
/// 同行返利
/// </summary>
[EnumField("同行返利")]
THFL = 33,
/// <summary>
/// 工会经费
/// </summary>
[EnumField("工会经费")]
GFJF = 34,
/// <summary>
/// 律师费
/// </summary>
[EnumField("律师费")]
LSF = 35,
/// <summary>
/// 服务器管理费
/// </summary>
[EnumField("服务器管理费")]
FWQGLF = 36,
/// <summary>
/// 导游佣金
/// </summary>
[EnumField("导游佣金")]
DYYJ = 37,
/// <summary>
/// 导游佣金
/// </summary>
[EnumField("导游佣金")]
LDYJ = 38,
/// <summary>
/// 航空公司保证金(会退)
/// </summary>
[EnumField("航空公司保证金(会退)")]
HKBZJ = 39,
/// <summary>
/// 航空公司大订金(会抵扣)
/// </summary>
[EnumField("航空公司大订金(会抵扣)")]
HKDDJ = 40,
/// <summary>
/// 汇款手续费
/// </summary>
[EnumField("汇款手续费")]
HKSXF = 41,
/// <summary>
/// 利息收入
/// </summary>
[EnumField("利息收入")]
LXSR = 42,
/// <summary>
/// 汇兑损益
/// </summary>
[EnumField("汇兑损益")]
HDSY = 43,
/// <summary>
/// 营业外收入
/// </summary>
[EnumField("营业外收入")]
YYWSR = 44,
/// <summary>
/// 营业外收入1(公司日常收入单)
/// </summary>
[EnumField("营业外收入1(公司日常收入单)")]
YYWSR1 = 45,
/// <summary>
/// 应收款(老系统type=6)
/// </summary>
[EnumField("应收款(老系统type=6)")]
YSK = 46,
/// <summary>
/// 应付款(老系统type=7)
/// </summary>
[EnumField("应付款(老系统type=7)")]
YFK = 47,
/// <summary>
/// 其他营业支出
/// </summary>
[EnumField("其他营业支出")]
QTYYZC = 48,
/// <summary>
/// 所得税费用
/// </summary>
[EnumField("所得税费用")]
SDSFY = 49,
/// <summary>
/// 营业税金
/// </summary>
[EnumField("营业税金")]
YYSJ = 50,
/// <summary>
/// 简易报表其他
/// </summary>
[EnumField("简易报表其他")]
JYBBQT = 51,
/// <summary>
/// 快递费
/// </summary>
[EnumField("快递费")]
KDF = 52,
/// <summary>
/// 应收应付款
/// </summary>
[EnumField("应收应付款")]
YSYFK = 53,
/// <summary>
/// 赔偿
/// </summary>
[EnumField("赔偿")]
PC = 54,
/// <summary>
/// 挂账投资款
/// </summary>
[EnumField("挂账(投资款)")]
YSYFKTZ = 55,
/// <summary>
/// 挂账利润分配
/// </summary>
[EnumField("挂账(利润分配)")]
GZLRFP = 61,
/// <summary>
/// 挂账员工红利
/// </summary>
[EnumField("挂账(员工红利)")]
GZYGHL = 62,
/// <summary>
/// 预付款(酒店)
/// </summary>
[EnumField("预付款(酒店)")]
YFKJD = 63,
/// <summary>
/// 预付款(门票)
/// </summary>
[EnumField("预付款(门票)")]
YFKMP = 64,
/// <summary>
/// 预付款(餐厅)
/// </summary>
[EnumField("预付款(餐厅)")]
YFKCT = 65,
/// <summary>
/// 预付款(车资)
/// </summary>
[EnumField("预付款(车资)")]
YFKCZ = 66,
/// <summary>
/// 预付款(机票)
/// </summary>
[EnumField("预付款(机票)")]
YFKJP = 67,
/// <summary>
/// 预付款(保证金.押金)
/// </summary>
[EnumField("预付款(保证金.押金)")]
YFKBZJYJ = 68,
/// <summary>
/// 预付款(保证金.押金)
/// </summary>
[EnumField("股东权益(领队.导游保证金)")]
LDDYBZJ = 69,
/// <summary>
/// 居间佣金
/// </summary>
[EnumField("居间佣金")]
JJYJ = 70,
/// <summary>
/// 备用金
/// </summary>
[EnumField("备用金")]
BYJ = 71,
/// <summary>
/// 个人借款
/// </summary>
[EnumField("个人借款")]
GRJD = 72,
/// <summary>
/// 其他代垫代收
/// </summary>
[EnumField("其他代垫代收")]
QTDDDF = 73,
/// <summary>
/// 陈芳英款项
/// </summary>
[EnumField("陈芳英款项")]
CYFKX = 74
}
}
......@@ -44,6 +44,7 @@
<ItemGroup>
<ProjectReference Include="..\Edu.Module.Course\Edu.Module.Course.csproj" />
<ProjectReference Include="..\Edu.Module.Finance\Edu.Module.Finance.csproj" />
<ProjectReference Include="..\Edu.Module.OKR\Edu.Module.OKR.csproj" />
</ItemGroup>
......
......@@ -27,6 +27,7 @@ namespace Edu.Education
new QuarzHelper().TeachingPerfTimer().GetAwaiter().GetResult();
new QuarzHelper().OKRPeriodTimer().GetAwaiter().GetResult();
new QuarzHelper().OKRPeriodRuleTimer().GetAwaiter().GetResult();
new QuarzHelper().RevenueReportTimer().GetAwaiter().GetResult();
}
/// <summary>
......
......@@ -10,6 +10,7 @@ using Edu.Module.Course;
using Edu.Module.OKR;
using System.Linq;
using System.Collections.Generic;
using Edu.Module.Finance;
namespace Edu.Education.Helper
{
......@@ -112,6 +113,34 @@ namespace Edu.Education.Helper
await scheduler.ScheduleJob(job, trigger);
}
/// <summary>
/// 定时执行营收报表
/// </summary>
/// <returns></returns>
public async Task RevenueReportTimer()
{
NameValueCollection props = new NameValueCollection
{
{ "quartz.serializer.type", "binary" }
};
StdSchedulerFactory factory = new StdSchedulerFactory(props);
IScheduler scheduler = await factory.GetScheduler();
await scheduler.Start();
IJobDetail job = JobBuilder.Create<CreateRevenueReport>()
.WithIdentity("job4", "group4")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger4", "group4")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInHours(1)
.RepeatForever())
.Build();
await scheduler.ScheduleJob(job, trigger);
}
}
/// <summary>
......@@ -254,4 +283,34 @@ namespace Edu.Education.Helper
return null;
}
}
/// <summary>
/// 更新营收报表
/// </summary>
public class CreateRevenueReport : IJob
{
/// <summary>
/// 这里是作业调度每次定时执行方法
/// </summary>
/// <param name="context"></param>
public Task Execute(IJobExecutionContext context)
{
try
{
Console.WriteLine("开始执行营收报表....");
FinanceModule financeModule = new FinanceModule();
financeModule.SetEduRevenueReport(100000, "2020-01-01", false);
Console.WriteLine("结束执行营收报表....");
Console.WriteLine("开始执行简易报表....");
financeModule.InsertBatchSimple(100000, 2020);
financeModule.InsertBatchSimple(100000, 2021);
Console.WriteLine("结束执行简易报表....");
}
catch (Exception ex)
{
LogHelper.Write(ex, "CreateRevenueReport");
}
return null;
}
}
}
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.Finance
{
/// <summary>
/// 营收报表
/// </summary>
[Serializable]
[DB(ConnectionName = "DataStatisticsConnection")]
public class RB_Edu_RevenueReport
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 班级id
/// </summary>
public int ClassId { get; set; }
/// <summary>
/// 班级名称
/// </summary>
public string ClassName { get; set; }
/// <summary>
/// 班级状态 1未开始 2教学中 3已完成
/// </summary>
public int ClassState { get; set; }
/// <summary>
/// 开课时间
/// </summary>
public DateTime ClassBegins { get; set; }
/// <summary>
/// 课程id
/// </summary>
public int CourseId { get; set; }
/// <summary>
/// 课程名称
/// </summary>
public string CourseName { get; set; }
/// <summary>
/// 教师id
/// </summary>
public int TeacherId { get; set; }
/// <summary>
/// TeacherName
/// </summary>
public string TeacherName { get; set; }
/// <summary>
/// 校区id
/// </summary>
public int SchoolId { get; set; }
/// <summary>
/// 校区名称
/// </summary>
public string SchoolName { get; set; }
/// <summary>
/// 应收金额
/// </summary>
public decimal YingShou { get; set; }
/// <summary>
/// 实收金额
/// </summary>
public decimal ShiShou { get; set; }
/// <summary>
/// 退款
/// </summary>
public decimal TuiKuan { get; set; }
/// <summary>
/// 平台税金
/// </summary>
public decimal PingTaiShuiJin { get; set; }
/// <summary>
/// 优惠金额
/// </summary>
public decimal YouHui { get; set; }
/// <summary>
/// 待收金额
/// </summary>
public decimal DaiShou { get; set; }
/// <summary>
/// 溢收金额
/// </summary>
public decimal YiShou { get; set; }
/// <summary>
/// 在途金额
/// </summary>
public decimal ZaiTu { get; set; }
/// <summary>
/// 客人数量
/// </summary>
public int GuestNum { get; set; }
/// <summary>
/// 其他收入
/// </summary>
public decimal QTShouRu { get; set; }
/// <summary>
/// 提成金额
/// </summary>
public decimal TiCheng { get; set; }
/// <summary>
/// 课时费
/// </summary>
public decimal ClassFee { get; set; }
/// <summary>
/// 绩效奖励
/// </summary>
public decimal JiXiaoMoney { get; set; }
/// <summary>
/// 其他
/// </summary>
public decimal QTZhiChu { get; set; }
/// <summary>
/// 应付金额
/// </summary>
public decimal YingFu { get; set; }
/// <summary>
/// 毛利
/// </summary>
public decimal MaoLi { get; set; }
/// <summary>
/// 毛利率
/// </summary>
public decimal MaoLiRate { get; set; }
/// <summary>
/// 实际利润
/// </summary>
public decimal ShiJiLiRun { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 平均收入
/// </summary>
public decimal AverageIncome { get; set; }
/// <summary>
/// 平均成本
/// </summary>
public decimal AverageCost { get; set; }
/// <summary>
/// 平均利润
/// </summary>
public decimal AverageProfit { get; set; }
/// <summary>
/// 集团ID
/// </summary>
public int Rb_Group_Id { get; set; }
/// <summary>
/// 数据类型 1培训 2留学
/// </summary>
public int DateType { get; set; }
}
}
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.Finance
{
/// <summary>
/// 报表更新记录
/// </summary>
[Serializable]
[DB(ConnectionName = "DataStatisticsConnection")]
public class RB_Report_UpdateRecord
{
/// <summary>
/// ID
/// </summary>
public int ID
{
get;
set;
}
/// <summary>
/// 1 团队营收 2 简易报表
/// </summary>
public int Type
{
get;
set;
}
/// <summary>
/// 更新开始日期
/// </summary>
public DateTime? StartDate
{
get;
set;
}
/// <summary>
/// 更新结束日期
/// </summary>
public DateTime? EndDate
{
get;
set;
}
}
}
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.Finance
{
/// <summary>
/// 简易报表
/// </summary>
[Serializable]
[DB(ConnectionName = "DataStatisticsConnection")]
public class RB_SimpleReport
{
/// <summary>
/// ID
/// </summary>
public int ID
{
get;
set;
}
/// <summary>
/// 年份
/// </summary>
public int? Year
{
get;
set;
}
/// <summary>
/// 摘要
/// </summary>
public string Abstract
{
get;
set;
}
/// <summary>
/// 一月
/// </summary>
public decimal? January
{
get;
set;
}
/// <summary>
/// 二月
/// </summary>
public decimal? February
{
get;
set;
}
/// <summary>
/// 三月
/// </summary>
public decimal? March
{
get;
set;
}
/// <summary>
/// 第一季度
/// </summary>
public decimal? FirstQuarter
{
get;
set;
}
/// <summary>
/// 四月
/// </summary>
public decimal? April
{
get;
set;
}
/// <summary>
/// 五月
/// </summary>
public decimal? May
{
get;
set;
}
/// <summary>
/// 六月
/// </summary>
public decimal? June
{
get;
set;
}
/// <summary>
/// 第二季度
/// </summary>
public decimal? SecondQuarter
{
get;
set;
}
/// <summary>
/// 上半年报
/// </summary>
public decimal? HalfReport
{
get;
set;
}
/// <summary>
/// 七月
/// </summary>
public decimal? July
{
get;
set;
}
/// <summary>
/// 八月
/// </summary>
public decimal? August
{
get;
set;
}
/// <summary>
/// 九月
/// </summary>
public decimal? September
{
get;
set;
}
/// <summary>
/// 第三季度
/// </summary>
public decimal? ThirdQuarter
{
get;
set;
}
/// <summary>
/// 十月
/// </summary>
public decimal? October
{
get;
set;
}
/// <summary>
/// 十一月
/// </summary>
public decimal? November
{
get;
set;
}
/// <summary>
/// 十二月
/// </summary>
public decimal? December
{
get;
set;
}
/// <summary>
/// 第四季度
/// </summary>
public decimal? FourthQuarter
{
get;
set;
}
/// <summary>
/// 下半年报
/// </summary>
public decimal? LastHalfReport
{
get;
set;
}
/// <summary>
/// 总计
/// </summary>
public decimal? Total
{
get;
set;
}
/// <summary>
/// 集团ID
/// </summary>
public int? Rb_Group_Id
{
get;
set;
}
/// <summary>
/// 所属公司
/// </summary>
public int? BranchId
{
get; set;
}
/// <summary>
/// 排序
/// </summary>
public int? Sort
{
get; set;
}
}
}
......@@ -9,6 +9,11 @@ namespace Edu.Model.ViewModel.Course
[Serializable]
public class RB_Order_ViewModel : Model.Entity.Course.RB_Order
{
/// <summary>
/// 班级ids
/// </summary>
public string ClassIds { get; set; }
/// <summary>
/// 讲师名称
/// </summary>
......
......@@ -9,6 +9,10 @@ namespace Edu.Model.ViewModel.Course
[Serializable]
public class RB_Teaching_BonusDetail_ViewModel : Entity.Course.RB_Teaching_BonusDetail
{
/// <summary>
/// 班级ids
/// </summary>
public string ClassIds { get; set; }
/// <summary>
/// 奖励ids
/// </summary>
......
......@@ -9,6 +9,10 @@ namespace Edu.Model.ViewModel.Course
[Serializable]
public class RB_Teaching_Perf_ViewModel : Entity.Course.RB_Teaching_Perf
{
/// <summary>
/// 班级ids
/// </summary>
public string ClassIds { get; set; }
/// <summary>
/// 班级名称
/// </summary>
......
using System;
using System.Collections.Generic;
using System.Text;
using Edu.Model.Entity.Finance;
using VT.FW.DB;
namespace Edu.Model.ViewModel.Finance
{
/// <summary>
/// 营收报表扩展表
/// </summary>
[Serializable]
[DB(ConnectionName = "DataStatisticsConnection")]
public class RB_Edu_RevenueReport_Extend : RB_Edu_RevenueReport
{
/// <summary>
/// 开始时间
/// </summary>
public string StartTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public string EndTime { get; set; }
public string ClassBeginsStr { get { return Common.ConvertHelper.FormatDate(this.ClassBegins); } }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Edu.Model.Entity.Finance;
using VT.FW.DB;
namespace Edu.Model.ViewModel.Finance
{
/// <summary>
/// 简易报表扩展表
/// </summary>
[Serializable]
[DB(ConnectionName = "DataStatisticsConnection")]
public class RB_SimpleReport_Extend : RB_SimpleReport
{
/// <summary>
/// 费用类型集合
/// </summary>
public string CostIds { get; set; }
/// <summary>
/// 查询所有公司
/// </summary>
public int? IsSelectAllCompany { get; set; }
/// <summary>
/// 公司名称
/// </summary>
public string BranchName { get; set; }
/// <summary>
/// 跨年统计 起始月份
/// </summary>
public string StartMonth { get; set; }
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -67,9 +67,10 @@ WHERE 1=1
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,B.CourseName,D.TeacherName,IFNULL(D.TeacherHead,'') AS TeacherHead
SELECT A.*,B.CourseName,D.TeacherName,IFNULL(D.TeacherHead,'') AS TeacherHead ,E.SName AS SchoolName
FROM rb_class AS A LEFT JOIN rb_course AS B ON A.CouseId=B.CourseId
LEFT JOIN rb_teacher AS D ON A.Teacher_Id=D.TId
LEFT JOIN rb_school AS E ON A.School_Id=E.SId
WHERE 1=1
");
if (query != null)
......@@ -94,6 +95,14 @@ SELECT A.*,B.CourseName,D.TeacherName,IFNULL(D.TeacherHead,'') AS TeacherHead
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.ClassStatus), (int)query.ClassStatus);
}
if (!string.IsNullOrEmpty(query.StartTime))
{
builder.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_Class_ViewModel.OpenTime), query.StartTime);
}
if (!string.IsNullOrEmpty(query.EndTime))
{
builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Class_ViewModel.OpenTime), query.EndTime);
}
if (!string.IsNullOrWhiteSpace(query.ClassName))
{
builder.AppendFormat(" AND A.{0} LIKE @ClassName ", nameof(RB_Class_ViewModel.ClassName));
......
......@@ -38,6 +38,10 @@ namespace Edu.Repository.Course
{
where += $@" and o.{nameof(RB_Order_ViewModel.ClassId)} ={demodel.ClassId}";
}
if (!string.IsNullOrEmpty(demodel.ClassIds))
{
where += $@" and o.{nameof(RB_Order_ViewModel.ClassId)} in({demodel.ClassIds})";
}
if (demodel.OrderState > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderState)} ={(int)demodel.OrderState}";
......
......@@ -47,6 +47,10 @@ namespace Edu.Repository.Course
{
where += $@" and A.{nameof(RB_Teaching_BonusDetail.ClassId)} ={demodel.ClassId}";
}
if (!string.IsNullOrEmpty(demodel.ClassIds))
{
where += $@" and A.{nameof(RB_Teaching_BonusDetail.ClassId)} in({demodel.ClassIds})";
}
if (demodel.Type > 0)
{
where += $@" and A.{nameof(RB_Teaching_BonusDetail.Type)} ={demodel.Type}";
......
......@@ -112,6 +112,10 @@ where {where} order by p.Id desc";
{
where += $@" and p.{nameof(RB_Teaching_Perf.ClassId)} ={demodel.ClassId}";
}
if (!string.IsNullOrEmpty(demodel.ClassIds))
{
where += $@" and p.{nameof(RB_Teaching_Perf.ClassId)} in({demodel.ClassIds})";
}
if (!string.IsNullOrEmpty(demodel.ClassName))
{
where += $@" and c.{nameof(RB_Class.ClassName)} like '%{demodel.ClassName}%'";
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Edu.Common.Enum;
using Edu.Model.Entity.Finance;
using Edu.Model.ViewModel.Finance;
namespace Edu.Repository.Finance
{
/// <summary>
/// 营收报表仓储层
/// </summary>
public partial class RB_Edu_RevenueReportRepository : BaseRepository<RB_Edu_RevenueReport>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public List<RB_Edu_RevenueReport_Extend> GetList(RB_Edu_RevenueReport_Extend model)
{
string where = " 1=1 ";
if (model.Rb_Group_Id > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.Rb_Group_Id) + "=" + model.Rb_Group_Id);
}
if (model.SchoolId > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.SchoolId) + "=" + model.SchoolId);
}
if (model.DateType > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.DateType) + "=" + model.DateType);
}
if (model.ClassId >0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.ClassId) + "=" + model.ClassId);
}
if (!string.IsNullOrEmpty(model.ClassName))
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.ClassName) + " like '%{0}%'", model.ClassName);
}
if (model.ClassState > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.ClassState) + "=" + model.ClassState);
}
if (model.CourseId > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.CourseId) + "=" + model.CourseId);
}
if (!string.IsNullOrEmpty(model.CourseName))
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.CourseName) + " like '%{0}%'", model.CourseName);
}
if (model.TeacherId > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.TeacherId) + "=" + model.TeacherId);
}
if (!string.IsNullOrEmpty(model.TeacherName))
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.TeacherName) + " like '%{0}%'", model.TeacherName);
}
if (!string.IsNullOrEmpty(model.StartTime))
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.ClassBegins) + " >='{0}'", model.StartTime);
}
if (!string.IsNullOrEmpty(model.EndTime))
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.ClassBegins) + " <='{0} 23:59:59'", model.EndTime);
}
string sql = string.Format(@"SELECT * FROM {0} AS A WHERE {1} ", nameof(RB_Edu_RevenueReport), where);
return Get<RB_Edu_RevenueReport_Extend>(sql).ToList();
}
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="model"></param>
/// <returns></returns>
public List<RB_Edu_RevenueReport_Extend> GetPageList(int pageIndex,int pageSize,out long count,RB_Edu_RevenueReport_Extend model)
{
string where = " 1=1 ";
if (model.Rb_Group_Id > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.Rb_Group_Id) + "=" + model.Rb_Group_Id);
}
if (model.SchoolId > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.SchoolId) + "=" + model.SchoolId);
}
if (model.DateType > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.DateType) + "=" + model.DateType);
}
if (model.ClassId > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.ClassId) + "=" + model.ClassId);
}
if (!string.IsNullOrEmpty(model.ClassName))
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.ClassName) + " like '%{0}%'", model.ClassName);
}
if (model.ClassState > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.ClassState) + "=" + model.ClassState);
}
if (model.CourseId > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.CourseId) + "=" + model.CourseId);
}
if (!string.IsNullOrEmpty(model.CourseName))
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.CourseName) + " like '%{0}%'", model.CourseName);
}
if (model.TeacherId > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.TeacherId) + "=" + model.TeacherId);
}
if (!string.IsNullOrEmpty(model.TeacherName))
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.TeacherName) + " like '%{0}%'", model.TeacherName);
}
if (!string.IsNullOrEmpty(model.StartTime))
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.ClassBegins) + " >='{0}'", model.StartTime);
}
if (!string.IsNullOrEmpty(model.EndTime))
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.ClassBegins) + " <='{0} 23:59:59'", model.EndTime);
}
string sql = string.Format(@"SELECT * FROM {0} AS A WHERE {1} ", nameof(RB_Edu_RevenueReport), where);
return GetPage<RB_Edu_RevenueReport_Extend>(pageIndex, pageSize, out count, sql).ToList();
}
/// <summary>
/// 获取统计
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public RB_Edu_RevenueReport_Extend GetRevenueReportStatistics(RB_Edu_RevenueReport_Extend model)
{
string where = " 1=1 ";
if (model.Rb_Group_Id > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.Rb_Group_Id) + "=" + model.Rb_Group_Id);
}
if (model.SchoolId > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.SchoolId) + "=" + model.SchoolId);
}
if (model.DateType > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.DateType) + "=" + model.DateType);
}
if (model.ClassId > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.ClassId) + "=" + model.ClassId);
}
if (!string.IsNullOrEmpty(model.ClassName))
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.ClassName) + " like '%{0}%'", model.ClassName);
}
if (model.ClassState > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.ClassState) + "=" + model.ClassState);
}
if (model.CourseId > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.CourseId) + "=" + model.CourseId);
}
if (!string.IsNullOrEmpty(model.CourseName))
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.CourseName) + " like '%{0}%'", model.CourseName);
}
if (model.TeacherId > 0)
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.TeacherId) + "=" + model.TeacherId);
}
if (!string.IsNullOrEmpty(model.TeacherName))
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.TeacherName) + " like '%{0}%'", model.TeacherName);
}
if (!string.IsNullOrEmpty(model.StartTime))
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.ClassBegins) + " >='{0}'", model.StartTime);
}
if (!string.IsNullOrEmpty(model.EndTime))
{
where += string.Format(" AND A." + nameof(RB_Edu_RevenueReport_Extend.ClassBegins) + " <='{0} 23:59:59'", model.EndTime);
}
string sql = string.Format(@"SELECT -1 AS Id
,sum(YingShou) as YingShou
,sum(ShiShou) as ShiShou
,sum(TuiKuan) as TuiKuan
,sum(PingTaiShuiJin) as PingTaiShuiJin
,sum(YouHui) as YouHui
,sum(DaiShou) as DaiShou
,sum(YiShou) as YiShou
,sum(ZaiTu) as ZaiTu
,sum(GuestNum) as GuestNum
,sum(QTShouRu) as QTShouRu
,sum(TiCheng) as TiCheng
,sum(ClassFee) as ClassFee
,sum(JiXiaoMoney) as JiXiaoMoney
,sum(QTZhiChu) as QTZhiChu
,sum(YingFu) as YingFu
,sum(MaoLi) as MaoLi
,sum(MaoLiRate) as MaoLiRate
,sum(ShiJiLiRun) as ShiJiLiRun
,sum(AverageIncome) as AverageIncome
,sum(AverageCost) as AverageCost
,sum(AverageProfit) as AverageProfit FROM {0} AS A WHERE {1} ", nameof(RB_Edu_RevenueReport), where);
return Get<RB_Edu_RevenueReport_Extend>(sql).FirstOrDefault();
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Edu.Common.Enum;
using Edu.Model.Entity.Finance;
using Edu.Model.ViewModel.Finance;
namespace Edu.Repository.Finance
{
/// <summary>
/// 报表更新记录仓储层
/// </summary>
public partial class RB_Report_UpdateRecordRepository : BaseRepository<RB_Report_UpdateRecord>
{
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Report_UpdateRecord); } }
/// <summary>
/// 根据团控id获取操作日志列表
/// </summary>
/// <param name="where"></param>
/// <returns></returns>
public List<RB_Report_UpdateRecord> GetList(RB_Report_UpdateRecord where)
{
StringBuilder sb = new StringBuilder();
sb.AppendFormat(" SELECT * FROM {0} WHERE 1=1 ", TableName);
if (where.Type > 0)
{
sb.AppendFormat(" And Type={0}", where.Type);
}
return Get<RB_Report_UpdateRecord>(sb.ToString() + " Order By ID DESC LIMIT 1 ").ToList();
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Edu.Common.Enum;
using Edu.Model.Entity.Finance;
using Edu.Model.ViewModel.Finance;
namespace Edu.Repository.Finance
{
/// <summary>
/// 简易报表仓储层
/// </summary>
public partial class RB_SimpleReportRepository : BaseRepository<RB_SimpleReport>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public List<RB_SimpleReport_Extend> GetList(RB_SimpleReport_Extend model)
{
string where = " 1=1 ";
if (model.Year > 0)
{
where += string.Format(" AND A." + nameof(RB_SimpleReport_Extend.Year) + "=" + model.Year);
}
if (model.Rb_Group_Id > 0)
{
where += string.Format(" AND A." + nameof(RB_SimpleReport_Extend.Rb_Group_Id) + "=" + model.Rb_Group_Id);
}
if (model.BranchId >= -1)
{
where += string.Format(" AND A." + nameof(RB_SimpleReport_Extend.BranchId) + "=" + model.BranchId);
}
if (!string.IsNullOrEmpty(model.Abstract))
{
where += string.Format(" AND A." + nameof(RB_SimpleReport_Extend.Abstract) + "='{0}'", model.Abstract);
}
if (model.IsSelectAllCompany == 1)
{
where += string.Format(" AND A." + nameof(RB_SimpleReport_Extend.BranchId) + " !=-1 ");
}
string sql = string.Format(@"SELECT * FROM {0} AS A WHERE {1} ", nameof(RB_SimpleReport), where);
return Get<RB_SimpleReport_Extend>(sql).ToList();
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
......
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Edu.Common.Enum.Finance;
using Edu.Model.Entity.Finance;
using Edu.Model.ViewModel.Finance;
......@@ -130,5 +132,144 @@ namespace Edu.Repository.Finance
string sql = string.Format(@"SELECT A.* FROM {0} AS A WHERE {2} {3}", TableName, ReCordTableName, where, " GROUP BY A.FrID DESC");
return Get<RB_Finance_Extend>(sql).ToList();
}
/// <summary>
/// 获取营收报表财务单据列表
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public List<RB_Finance_Extend> GetDataStatisticsListThree(RB_Finance_Extend model)
{
string where = "1=1 and A.Is_Auto=0";
where += string.Format(" AND A." + nameof(RB_Finance.Status) + " in({0})", ((int)FinanceAuditStatus.CTemporary + "," + (int)FinanceAuditStatus.InReview + "," + (int)FinanceAuditStatus.Pass));
//营收报表
if (!string.IsNullOrEmpty(model.TCIDStr))
{
where += string.Format(" AND tfr.TCID in(" + model.TCIDStr + ")");
}
if (model.TCID.HasValue && model.TCID > 0)
{
where += string.Format(" AND tfr.TCID =" + model.TCID);
}
//简易报表
if (model.sAduitDate.HasValue)
{
where += string.Format(" AND A." + nameof(RB_Finance.TradeDate) + ">='{0}'", model.sAduitDate);
}
if (model.eAduitDate.HasValue)
{
where += string.Format(" AND A." + nameof(RB_Finance.TradeDate) + "<='{0} 23:59:59'", model.eAduitDate);
}
if (model.RB_Branch_Id >= 0)
{
where += string.Format(" AND A." + nameof(RB_Finance.RB_Branch_Id) + "={0}", model.RB_Branch_Id);
}
if (model.OrderSource.HasValue)
{
where += string.Format(" AND A." + nameof(RB_Finance.OrderSource) + "={0}", (int)model.OrderSource);
}
string sql = string.Format(@"SELECT A.FrID,tfr.TCID,A.Status,A.TradeDate,IFNULL(A.Is_Cashier,0)Is_Cashier,A.OrderID,
A.OrderSource,A.SourceID,IFNULL(C.Money,0)as Money,IFNULL(A.Fee,0) as Fee,IFNULL(A.PayMoney,0)PayMoney,C.CostTypeId as CostTypeID,D.Name,A.Type
FROM rb_finance AS A
INNER JOIN rb_financedetail AS C ON A.FrID = C.FinanceId
INNER JOIN rb_costtype AS D ON D.ID=C.CostTypeId
left join rb_travel_finance_relation as tfr on tfr.FinanceId=A.FrID
WHERE {1} {2} ", TableName, where, " ORDER BY A.FrID DESC");
return Get<RB_Finance_Extend>(sql).ToList();
}
/// <summary>
/// 营收报表获取团号下所有的单据
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public List<RB_Finance_Extend> GetListForReport(RB_Finance_Extend model)
{
StringBuilder where = new StringBuilder();
where.Append(" and b.Status in(1,2,5) and b.Is_Auto=0 ");
StringBuilder builder = new StringBuilder();
//老徐喊修改的 2019-05-11 收款用交易日期 付款用制单日期
if (model.sAduitDate.HasValue && model.eAduitDate.HasValue)
{
where.Append(" AND case when b.Type=2 then b.CreateDate>='" + model.sAduitDate.Value.ToString("yyyy-MM-dd") + "' and b.CreateDate<='" + model.eAduitDate.Value.ToString("yyyy-MM-dd") + " 23:59:59' else b.TradeDate>='" + model.sAduitDate.Value.ToString("yyyy-MM-dd") + "' and b." + nameof(RB_Finance.TradeDate) + "<='" + model.eAduitDate.Value.ToString("yyyy-MM-dd") + " 23:59:59' end");
}
else if (model.sAduitDate.HasValue)
{
where.Append(" AND case when b.Type=2 then b." + nameof(RB_Finance.CreateDate) + ">='" + model.sAduitDate.Value.ToString("yyyy-MM-dd") + "' else b." + nameof(RB_Finance.TradeDate) + ">='" + model.sAduitDate.Value.ToString("yyyy-MM-dd") + "' end");
}
else if (model.eAduitDate.HasValue)
{
where.Append(" AND case when b.Type=2 then b." + nameof(RB_Finance.CreateDate) + "<='" + model.eAduitDate.Value.ToString("yyyy-MM-dd") + " 23:59:59' else b." + nameof(RB_Finance.TradeDate) + "<='" + model.eAduitDate.Value.ToString("yyyy-MM-dd") + " 23:59:59' end");
}
if (model.RB_Branch_Id >= 0)
{
where.Append(" AND b." + nameof(RB_Finance.RB_Branch_Id) + "=" + model.RB_Branch_Id + "");
}
if (model.RB_Group_Id > 0)
{
where.Append(" AND b." + nameof(RB_Finance.RB_Group_Id) + "=" + model.RB_Group_Id + "");
}
if (!string.IsNullOrEmpty(model.TCIDStr))
{
where.Append(" and E.TCID in(" + model.TCIDStr + ")");
}
if (model.TCID == -1)
{
where.Append(" and IFNULL(E.TCID,0)=0");
}
if (model.OrderSource.HasValue)
{
where.Append(" and IFNULL(b.OrderSource,0)!=" + (int)model.OrderSource);
}
if (model.Is_TCID == 1)
{
where.Append(" and IFNULL(b.OrderSource,0) not in(" + (int)OrderResourceEnum.BulkAirTicket + "," + (int)OrderResourceEnum.DomesticTicket + "," + (int)OrderResourceEnum.TicketService + "," + (int)OrderResourceEnum.Visia + ")");
}
if (model.Is_ProfitFoHF == 1)
{
where.Append($@" And case when td.{nameof(RB_TradeWay.Type)}={(int)BranchAccountEnum.CashPool} then td.AccountId not in (14,15,19,20,21,22,23) else 1=1 end ");//日本 老挝地接部专户
}
builder.AppendFormat(@"select distinct b.FrID,IFNULL(b.MatchMoney,0) as MatchMoney,IFNULL(E.TCID,0)TCID,D.Name,b.Status,b.TradeDate,b.CreateDate,b.RB_Branch_Id,a.ID,a.CostTypeId,IFNULL(b.Is_Cashier,0)Is_Cashier,a.Money,b.OrderID,b.OrderSource,b.SourceID,IFNULL(b.PayMoney,0)PayMoney,IFNULL(b.Fee,0)Fee,b.Type
from rb_financedetail a INNER JOIN rb_finance as b on a.FinanceId=b.FrID and a.`Status`=0
INNER JOIN rb_costtype AS D ON D.ID=a.CostTypeId
LEFT JOIN rb_tradeway as td ON b.FrID=td.FinanceId
LEFT JOIN rb_travel_finance_relation as E ON A.FinanceId=E.FinanceId where 1=1 " + where);
return Get<RB_Finance_Extend>(builder.ToString() + " ORDER BY b.FrID DESC ").ToList();
}
/// <summary>
/// 获取资金调拨 汇兑损益
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public List<RB_TradeWay_Extend> GetTradeWayForCapitalAllocation(RB_Finance_Extend model)
{
StringBuilder where = new StringBuilder();
where.Append(" and b.Status in(1,2,5) and b.Is_Auto=0 and td.IsExChange=1 and td.Status=0 and b.Type=4 ");
StringBuilder builder = new StringBuilder();
if (model.sAduitDate.HasValue)
{
where.Append(" AND td." + nameof(RB_TradeWay_Extend.AllotDate) + ">='" + model.sAduitDate.Value.ToString("yyyy-MM-dd") + "'");
}
if (model.eAduitDate.HasValue)
{
where.Append(" AND td." + nameof(RB_TradeWay_Extend.AllotDate) + "<='" + model.eAduitDate.Value.ToString("yyyy-MM-dd") + " 23:59:59' ");
}
if (model.RB_Branch_Id >= 0)
{
where.Append(" AND b." + nameof(RB_Finance.RB_Branch_Id) + "=" + model.RB_Branch_Id + "");
}
if (model.RB_Group_Id > 0)
{
where.Append(" AND b." + nameof(RB_Finance.RB_Group_Id) + "=" + model.RB_Group_Id + "");
}
builder.AppendFormat(@"select td.*,b.RB_Branch_Id as BranchId from rb_tradeway td
left join rb_finance b on td.FinanceId=b.FrID where 1=1 " + where);
return Get<RB_TradeWay_Extend>(builder.ToString()).ToList();
}
}
}
\ No newline at end of file
......@@ -3,7 +3,9 @@
"DefaultConnection": "server=192.168.1.214;user id=reborn;password=Reborn@2018;database=reborn_edu;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"DefaultConnectionPName": "MySql.Data.MySqlClient",
"FinanceConnection": "server=192.168.1.214;user id=reborn;password=Reborn@2018;database=reborn_finance;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"FinanceConnectionPName": "MySql.Data.MySqlClient"
"FinanceConnectionPName": "MySql.Data.MySqlClient",
"DataStatisticsConnection": "server=192.168.1.214;user id=reborn;password=Reborn@2018;database=reborn_datastatistics;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"DataStatisticsConnectionPName": "MySql.Data.MySqlClient"
},
"Logging": {
"LogLevel": {
......
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