Commit 7e536ea0 authored by liudong1993's avatar liudong1993

1

parent cb57870a
...@@ -20,6 +20,7 @@ using System.ServiceProcess; ...@@ -20,6 +20,7 @@ using System.ServiceProcess;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Xml.Linq; using System.Xml.Linq;
using REBORN.Module.DataStatisticsModule;
namespace REBORN.HuaTuQUART namespace REBORN.HuaTuQUART
...@@ -74,6 +75,63 @@ namespace REBORN.HuaTuQUART ...@@ -74,6 +75,63 @@ namespace REBORN.HuaTuQUART
await scheduler.ScheduleJob(job, trigger); await scheduler.ScheduleJob(job, trigger);
} }
/// <summary>
/// 营收报表
/// </summary>
/// <returns></returns>
public async Task StartUpdateRevenueReport()
{
//string cronExpression = "0 0 */3 * * ?";/*从左往右秒 [秒] [分] [小时] [日] [月] [周] [年]格式为'0 0 12 * * ?-每3个小时触发'*/
string CronExpression2 = "0 0 6,13,18,21 * * ?";//每天8,12,19,22点触发
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<RevenueReportTask>()
.WithIdentity("job4", "group4")
.Build();
//ITrigger trigger = TriggerBuilder.Create()
// .WithIdentity("trigger4", "group4")
// .StartNow()
// .WithSimpleSchedule(x => x
// .WithIntervalInHours(130)
// .RepeatForever())
// .Build();
ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create()
.WithIdentity("trigger4", "group4")
.WithCronSchedule(CronExpression2)
.Build();
await scheduler.ScheduleJob(job, trigger);
}
/// <summary>
/// 历史更新
/// </summary>
/// <returns></returns>
public async Task StartUpdateRevenueReportHistory()
{
//string cronExpression = "0 0 */3 * * ?";/*从左往右秒 [秒] [分] [小时] [日] [月] [周] [年]格式为'0 0 12 * * ?-每3个小时触发'*/
string CronExpression2 = "0 0 3 * * ?";//每天8,12,19,22点触发
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<RevenueReportTaskHistory>()
.WithIdentity("job6", "group6")
.Build();
ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create()
.WithIdentity("trigger6", "group6")
.WithCronSchedule(CronExpression2)
.Build();
await scheduler.ScheduleJob(job, trigger);
}
} }
...@@ -447,5 +505,117 @@ where a.FinalPriceTips>0 and a.DepartTime>NOW() AND DATE_SUB(a.DepartTime, INTER ...@@ -447,5 +505,117 @@ where a.FinalPriceTips>0 and a.DepartTime>NOW() AND DATE_SUB(a.DepartTime, INTER
} }
} }
/// <summary>
/// 营收报表
/// </summary>
public class RevenueReportTask : IJob
{
/// <summary>
/// 这里是作业调度每次定时执行方法
/// </summary>
/// <param name="context"></param>
public Task Execute(IJobExecutionContext context)
{
LogHelper.Write("进入营收报表方法");
try
{
FinanceStatisticsModule FinanceStatisticsModule = new FinanceStatisticsModule();
//可以用字典配置 需要执行的集团ID
DateTime sdate1 = DateTime.Now;
FinanceStatisticsModule.InsertBatchStatistics(0, "2025-01-01", groupId: 106);//团队
FinanceStatisticsModule.InsertBatchVisaStatistics(106);//签证
FinanceStatisticsModule.InsertBatchCRMTicketStatistics(106);//单机票
FinanceStatisticsModule.InsertBatchSinleHotelStatistics(106);//单项酒店 --- 2023-05-06 ld
FinanceStatisticsModule.InsertBatchSinleCarStatistics(106);//单项包车 --- 2023-05-06 ld
FinanceStatisticsModule.InsertBatchSinleTicketStatistics(106);//单项门票 --- 2023-05-06 ld
DateTime eeedate = DateTime.Now;
LogHelper.Write("营收报表执行完毕.累计耗时:" + (eeedate - sdate1).Minutes.ToString() + "分钟.请不要关闭此窗口");
DateTime sdate = DateTime.Now;
if (DateTime.Now.Year > 2025)
{
FinanceStatisticsModule.InsertBatchSimple(new Model.Extend.DataStatistics.RB_SimpleReport_Extend(), null, DateTime.Now.Year - 1, 106, out string errMsg1);
if (!string.IsNullOrEmpty(errMsg1))
{
LogHelper.Write("简易报表执行错误1:" + errMsg1);
}
}
FinanceStatisticsModule.InsertBatchSimple(new Model.Extend.DataStatistics.RB_SimpleReport_Extend(), null, DateTime.Now.Year, 106, out string errMsg2);
DateTime edate = DateTime.Now;
LogHelper.Write("简易报表执行完毕.累计耗时:" + (edate - sdate).Minutes.ToString() + "分钟.请不要关闭此窗口");
if (!string.IsNullOrEmpty(errMsg2))
{
LogHelper.Write("简易报表执行错误2:" + errMsg2);
}
//FinanceStatisticsModule.UpdateSimpleTaxes(2, DateTime.Now.Year);
//LogHelper.Write("已更新税金");
FinanceStatisticsModule.UpdateFinanceTravelDate("106");//更新财务单据 关联团队出团日期
LogHelper.Write("已更新出团日期");
try
{
//更新预付款 本位币冲抵金额
FinanceStatisticsModule.UpdateAdvanceOK(106);
LogHelper.Write("更新预付款 本位币冲抵金额");
}
catch (Exception e)
{
LogHelper.Write("更新预付款:" + e.Message);
}
try
{
if (DateTime.Now.Hour <= 9)
{
FinanceStatisticsModule.UpdateRejectUnDispose(106);
LogHelper.Write("更新驳回单据长时间未处理,自动作废");
}
}
catch (Exception e)
{
LogHelper.Write("自动作废驳回长时间未处理单:" + e.Message);
}
}
catch (System.Exception e)
{
LogHelper.Write("服务调用营收报表错误信息:" + e.Message);
}
return null;
}
}
public class RevenueReportTaskHistory : IJob
{
/// <summary>
/// 这里是作业调度每次定时执行方法
/// </summary>
/// <param name="context"></param>
public Task Execute(IJobExecutionContext context)
{
Console.WriteLine("进入方法");
try
{
FinanceStatisticsModule FinanceStatisticsModule = new FinanceStatisticsModule();
DateTime sdate1 = DateTime.Now;
FinanceStatisticsModule.InsertBatchStatistics(0, "2025-01-01", true, groupId: 106);
DateTime eeedate = DateTime.Now;
LogHelper.Write("营收报表执行完毕.累计耗时:" + (eeedate - sdate1).Minutes.ToString() + "分钟.请不要关闭此窗口");
}
catch (System.Exception e)
{
Console.WriteLine("报错:" + e.Message.ToString());
LogHelper.Write("报错:" + e.Message.ToString());
}
return null;
}
}
} }
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup> <PropertyGroup>
...@@ -86,6 +86,10 @@ ...@@ -86,6 +86,10 @@
<Project>{C0C71A88-A513-4DB5-BC0E-72F08FFD790F}</Project> <Project>{C0C71A88-A513-4DB5-BC0E-72F08FFD790F}</Project>
<Name>REBORN.Model</Name> <Name>REBORN.Model</Name>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\REBORN.Module.DataStatisticsModule\REBORN.Module.DataStatisticsModule.csproj">
<Project>{cfbabc88-b4e9-4f5d-8950-7bec12af7ba5}</Project>
<Name>REBORN.Module.DataStatisticsModule</Name>
</ProjectReference>
<ProjectReference Include="..\REBORN.Repository\REBORN.Repository.csproj"> <ProjectReference Include="..\REBORN.Repository\REBORN.Repository.csproj">
<Project>{DE668CE6-7AD2-4960-96DE-2C2653723180}</Project> <Project>{DE668CE6-7AD2-4960-96DE-2C2653723180}</Project>
<Name>REBORN.Repository</Name> <Name>REBORN.Repository</Name>
......
...@@ -26,6 +26,7 @@ namespace REBORN.HuaTuQUART ...@@ -26,6 +26,7 @@ namespace REBORN.HuaTuQUART
{ {
QuarzHelper quarzHelper = new QuarzHelper(); QuarzHelper quarzHelper = new QuarzHelper();
quarzHelper.StartAsync().GetAwaiter().GetResult(); quarzHelper.StartAsync().GetAwaiter().GetResult();
quarzHelper.StartUpdateRevenueReport().GetAwaiter().GetResult();//营收报表执行
} }
/// <summary> /// <summary>
......
...@@ -819,5 +819,10 @@ namespace REBORN.Model.Entity.DataStatistics ...@@ -819,5 +819,10 @@ namespace REBORN.Model.Entity.DataStatistics
/// 团上现收 /// 团上现收
/// </summary> /// </summary>
public decimal CashReceiptsMoney { get; set; } public decimal CashReceiptsMoney { get; set; }
/// <summary>
/// 单订单模式 订单ID
/// </summary>
public int OrderId { get; set; }
} }
} }
...@@ -137,6 +137,7 @@ namespace REBORN.Model.Entity.Finance ...@@ -137,6 +137,7 @@ namespace REBORN.Model.Entity.Finance
/// 2 地接费结算 /// 2 地接费结算
/// ///
/// 10 标记转账手续费科目(适用于会计审核时 可以填入此单的手续费,手续费需进入当团成本) /// 10 标记转账手续费科目(适用于会计审核时 可以填入此单的手续费,手续费需进入当团成本)
/// 11 领队导游科目
/// </summary> /// </summary>
public int MarkType { get; set; } public int MarkType { get; set; }
} }
......
...@@ -25,7 +25,7 @@ namespace REBORN.Model.Entity.Log ...@@ -25,7 +25,7 @@ namespace REBORN.Model.Entity.Log
/// <summary> /// <summary>
/// 1 团队营收 2 简易报表 /// 1 团队营收 2 简易报表
/// </summary> /// </summary>
// 1-团队营收2-国际机票3-单办签证-4国内票务5-散卖机票 // 1-团队营收2-国际机票3-单办签证-4国内票务5-散卖机票 11 单订单模式营收报表 12单订单模式简易报表
public int? Type public int? Type
{ {
get; get;
...@@ -47,5 +47,10 @@ namespace REBORN.Model.Entity.Log ...@@ -47,5 +47,10 @@ namespace REBORN.Model.Entity.Log
get; get;
set; set;
} }
/// <summary>
/// 集团ID
/// </summary>
public int Rb_Group_Id { get; set; }
} }
} }
...@@ -1157,10 +1157,10 @@ namespace REBORN.Module.DMCModule ...@@ -1157,10 +1157,10 @@ namespace REBORN.Module.DMCModule
List<Tourist> Tourist = new List<Tourist>(); List<Tourist> Tourist = new List<Tourist>();
TouristId QZModel = new TouristId() TouristId QZModel = new TouristId()
{ {
IDType = (int)IDType.IDCard, IDType = htModel.Tourists_IDType,
IDNumber = htModel.Tourists_IDNum IDNumber = htModel.Tourists_IDNum
}; };
if ((QZModel.IDNumber ?? "").Length <= 10) { QZModel.IDType = (int)IDType.Passport; } //if ((QZModel.IDNumber ?? "").Length <= 10) { QZModel.IDType = (int)IDType.Passport; }
int Number = 1; int Number = 1;
foreach (var item in htModel.ContractGuestList) foreach (var item in htModel.ContractGuestList)
{ {
...@@ -1181,10 +1181,10 @@ namespace REBORN.Module.DMCModule ...@@ -1181,10 +1181,10 @@ namespace REBORN.Module.DMCModule
IsChild = IsChild == "1" ? true : false IsChild = IsChild == "1" ? true : false
}); });
if (!string.IsNullOrEmpty(htModel.Tourists_Name) && htModel.Tourists_Name == item.CGuestName) //if (!string.IsNullOrEmpty(htModel.Tourists_Name) && htModel.Tourists_Name == item.CGuestName)
{ //{
QZModel = JsonHelper.DeserializeObject<TouristId>(JsonHelper.Serialize(TouristId));//用名单上的 // QZModel = JsonHelper.DeserializeObject<TouristId>(JsonHelper.Serialize(TouristId));//用名单上的
} //}
} }
#region 解析其他json #region 解析其他json
......
...@@ -2784,7 +2784,7 @@ TEL:03-3779-9111"; ...@@ -2784,7 +2784,7 @@ TEL:03-3779-9111";
{ {
supplierId = 0; supplierId = 0;
bool flag = false; bool flag = false;
if (supplierModel.ID == 0)//供应商要新增 if (supplierModel.ID <= 0)//供应商要新增
{ {
supplierId = supplierRepository.Insert(supplierModel); supplierId = supplierRepository.Insert(supplierModel);
if (supplierId > 0) if (supplierId > 0)
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -1339,7 +1339,7 @@ namespace REBORN.Module.SellModule ...@@ -1339,7 +1339,7 @@ namespace REBORN.Module.SellModule
{ {
supplierId = 0; supplierId = 0;
bool flag = false; bool flag = false;
if (supplierModel.ID == 0)//供应商要新增 if (supplierModel.ID <= 0)//供应商要新增
{ {
supplierId = supplierRepository.Insert(supplierModel); supplierId = supplierRepository.Insert(supplierModel);
if (supplierId > 0) if (supplierId > 0)
......
...@@ -5223,7 +5223,7 @@ namespace REBORN.Module.SellModule ...@@ -5223,7 +5223,7 @@ namespace REBORN.Module.SellModule
{ {
supplierId = 0; supplierId = 0;
bool flag = false; bool flag = false;
if (supplierModel.ID == 0)//供应商要新增 if (supplierModel.ID <= 0)//供应商要新增
{ {
supplierId = supplierRepository.Insert(supplierModel); supplierId = supplierRepository.Insert(supplierModel);
if (supplierId > 0) if (supplierId > 0)
...@@ -16826,7 +16826,7 @@ namespace REBORN.Module.SellModule ...@@ -16826,7 +16826,7 @@ namespace REBORN.Module.SellModule
#endregion #endregion
#region 提成比例显示 + 金额显示 #region 提成比例显示 + 金额显示
item.Commission = commissionList.Where(x => x.OrderId == item.OrderId && x.RoleType == 4).FirstOrDefault()?.CommissionMoney ?? 0; item.Commission = commissionList.Where(x => x.OrderId == item.OrderId && x.RoleType == 4).Sum(x => x.CommissionMoney ?? 0);
if (cRuleList.Any()) if (cRuleList.Any())
{ {
var ruleModel = cRuleList.Where(x => ("," + x.BranchIds + ",").Contains("," + item.RB_Branch_Id + ",")).FirstOrDefault(); var ruleModel = cRuleList.Where(x => ("," + x.BranchIds + ",").Contains("," + item.RB_Branch_Id + ",")).FirstOrDefault();
...@@ -69,7 +69,7 @@ namespace REBORN.Repository.DataStatistics ...@@ -69,7 +69,7 @@ namespace REBORN.Repository.DataStatistics
} }
if (model.TCID > 0) if (model.TCID > 0)
{ {
where += " AND r." + nameof(RB_RevenueReport.TCID) + "=" + model.TCID; where += $" AND (r.TCID ={model.TCID} or r.OrderId ={model.TCID}) ";
} }
if (!string.IsNullOrEmpty(model.TCNUM)) if (!string.IsNullOrEmpty(model.TCNUM))
{ {
...@@ -214,7 +214,7 @@ namespace REBORN.Repository.DataStatistics ...@@ -214,7 +214,7 @@ namespace REBORN.Repository.DataStatistics
} }
if (model.TCID > 0) if (model.TCID > 0)
{ {
where += " AND r." + nameof(RB_RevenueReport.TCID) + "=" + model.TCID; where += $" AND (r.TCID ={model.TCID} or r.OrderId ={model.TCID})";
} }
if (!string.IsNullOrEmpty(model.TCNUM)) if (!string.IsNullOrEmpty(model.TCNUM))
{ {
......
...@@ -4016,7 +4016,7 @@ WHERE IFNULL(o.PreferPrice,0) = (IFNULL(o.Income,0)+IFNULL(o.PlatformTax,0)-IFNU ...@@ -4016,7 +4016,7 @@ WHERE IFNULL(o.PreferPrice,0) = (IFNULL(o.Income,0)+IFNULL(o.PlatformTax,0)-IFNU
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT TCID,SUM(IFNULL(PreferPrice,0))AS PreferPrice,SUM(IFNULL(Income,0)) AS Income,SUM(IFNULL(PlatformTax,0)) AS PlatformTax,SUM(IFNULL(Refund,0)) AS Refund ,SUM(IFNULL(DiscountMoney,0)) AS DiscountMoney,SUM(IFNULL(Meet,0)) AS Meet,sum(IFNULL(YSeatNum,0)+IFNULL(ESeatNum,0)+IFNULL(FSeatNum,0)) as YSeatNum SELECT TCID,OrderId,SUM(IFNULL(PreferPrice,0))AS PreferPrice,SUM(IFNULL(Income,0)) AS Income,SUM(IFNULL(PlatformTax,0)) AS PlatformTax,SUM(IFNULL(Refund,0)) AS Refund ,SUM(IFNULL(DiscountMoney,0)) AS DiscountMoney,SUM(IFNULL(Meet,0)) AS Meet,sum(IFNULL(YSeatNum,0)+IFNULL(ESeatNum,0)+IFNULL(FSeatNum,0)) as YSeatNum
FROM rb_travel_order WHERE TCID={0} AND IFNULL(IsLeaderOrder,0)=0 AND (OrderState=1 or OrderState = 2) FROM rb_travel_order WHERE TCID={0} AND IFNULL(IsLeaderOrder,0)=0 AND (OrderState=1 or OrderState = 2)
GROUP BY TCID GROUP BY TCID
", TCID); ", TCID);
......
...@@ -429,13 +429,13 @@ WHERE f.type =2 and f.`Status` in(1,2,5) and d.`Status` =0 AND f.ClientID in({dm ...@@ -429,13 +429,13 @@ WHERE f.type =2 and f.`Status` in(1,2,5) and d.`Status` =0 AND f.ClientID in({dm
/// 更新财务单关联团队表 出团日期 /// 更新财务单关联团队表 出团日期
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public bool UpdateFinanceTravelDate() public bool UpdateFinanceTravelDate(string groupIds)
{ {
string sql = $@"UPDATE rb_travel_finance_relation r string sql = $@"UPDATE rb_travel_finance_relation r
INNER JOIN rb_finance f on r.FinanceId =f.FrID INNER JOIN rb_finance f on r.FinanceId =f.FrID
LEFT JOIN uat_reborn_dmc.rb_travel_price p on r.TCID =p.TCID LEFT JOIN uat_reborn_dmc.rb_travel_price p on r.TCID =p.TCID
SET r.StartDate =p.StartDate SET r.StartDate =p.StartDate
WHERE f.RB_Group_Id =2 and p.StartDate>='{Common.ConvertHelper.FormatDate(DateTime.Now.AddYears(-1))}' and IFNULL(r.StartDate,now()) <> p.StartDate and r.Source not in (17,18)"; WHERE f.RB_Group_Id in({groupIds}) and p.StartDate>='{Common.ConvertHelper.FormatDate(DateTime.Now.AddYears(-1))}' and IFNULL(r.StartDate,now()) <> p.StartDate and r.Source not in (17,18)";
return Execute(sql) > 0; return Execute(sql) > 0;
} }
...@@ -494,7 +494,7 @@ WHERE f.RB_Group_Id ={rB_Group_id} and r.TCID in({tcids}) and d.CostTypeId =9"; ...@@ -494,7 +494,7 @@ WHERE f.RB_Group_Id ={rB_Group_id} and r.TCID in({tcids}) and d.CostTypeId =9";
/// <param name="groupId"></param> /// <param name="groupId"></param>
/// <returns></returns> /// <returns></returns>
public List<RB_Finance_Extend> GetFinaceRejectUnDispose(int groupId) { public List<RB_Finance_Extend> GetFinaceRejectUnDispose(int groupId) {
string date = DateTime.Now.AddMonths(-2).ToString("yyyy-MM-dd"); string date = DateTime.Now.AddMonths(-3).ToString("yyyy-MM-dd");
string sql = $@"select f.FrID,f.OtherType,MatchFrId FROM rb_finance f string sql = $@"select f.FrID,f.OtherType,MatchFrId FROM rb_finance f
INNER JOIN rb_workflow_auditrecord r on f.FrID =r.WorkFlowId INNER JOIN rb_workflow_auditrecord r on f.FrID =r.WorkFlowId
WHERE f.RB_Group_Id ={groupId} and f.`Status` =3 and r.AuditStatus=4 and f.CreateDate>='2023-01-01' and f.CreateDate<='{date}' and r.UpdateTime <= '{date}'"; WHERE f.RB_Group_Id ={groupId} and f.`Status` =3 and r.AuditStatus=4 and f.CreateDate>='2023-01-01' and f.CreateDate<='{date}' and r.UpdateTime <= '{date}'";
......
...@@ -31,6 +31,10 @@ namespace REBORN.Repository.Log ...@@ -31,6 +31,10 @@ namespace REBORN.Repository.Log
{ {
sb.AppendFormat(" And Type={0}", where.Type); sb.AppendFormat(" And Type={0}", where.Type);
} }
if (where.Rb_Group_Id > 0)
{
sb.AppendFormat(" And Rb_Group_Id={0}", where.Rb_Group_Id);
}
return Get<RB_Finance_UpdateRecord>(sb.ToString() + " Order By ID DESC LIMIT 1 ").ToList(); return Get<RB_Finance_UpdateRecord>(sb.ToString() + " Order By ID DESC LIMIT 1 ").ToList();
} }
} }
......
...@@ -5192,6 +5192,7 @@ namespace REBORN.Services.DMCService ...@@ -5192,6 +5192,7 @@ namespace REBORN.Services.DMCService
UpdateTime = nowDate, UpdateTime = nowDate,
VisaManagementId = 0, VisaManagementId = 0,
SalePlat = "3", SalePlat = "3",
SendVisaDate = DateTime.Now
}; };
if (!model.ClientType.HasValue || model.ClientType <= 0) if (!model.ClientType.HasValue || model.ClientType <= 0)
......
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