147 lines
7.1 KiB
C#
147 lines
7.1 KiB
C#
using HZQR.Common;
|
||
using Quartz;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Configuration;
|
||
using System.Data;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace JobApplication
|
||
{
|
||
/// <summary>
|
||
/// 按自然日固化移动支付流水,每日上午10点执行固化昨天的营收数据
|
||
/// </summary>
|
||
public class FixedRevenueByDay : IJob
|
||
{
|
||
SuperMap.RealEstate.ServiceModel.Transaction Transaction = new SuperMap.RealEstate.ServiceModel.Transaction();
|
||
static string OracleConnCM = ConfigurationManager.ConnectionStrings["Coop_Merchant"].ConnectionString;
|
||
static OracleHelper oracleHelperCm = new OracleHelper(OracleConnCM);
|
||
string logStr = "";
|
||
void IJob.Execute(IJobExecutionContext context)
|
||
{
|
||
try
|
||
{
|
||
//按自然日固化移动支付流水 JOB 开始
|
||
FixedRevenueData();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
SuperMap.RealEstate.Utility.ErrorLogHelper.Write(ex, "FixedRevenueByNaturalDay", "按自然日固化移动支付流水");
|
||
}
|
||
}
|
||
|
||
#region 方法 -> 按自然日固化营收
|
||
/// <summary>
|
||
/// 获取移动支付每日汇总数据
|
||
/// </summary>
|
||
/// <param name="beginDate"></param>
|
||
/// <param name="endDate"></param>
|
||
/// <returns></returns>
|
||
public DataTable GetMobilePaymentData()
|
||
{
|
||
//string beginDate = "2020/08/14";
|
||
string beginDate = DateTime.Now.AddDays(-1).ToShortDateString();
|
||
string endDate = DateTime.Now.ToString();
|
||
logStr = "按自然日固化beginDate=" + beginDate + ",endDate=" + endDate;
|
||
LogUtil.WriteLog(logStr);
|
||
string sql = string.Format(@"
|
||
SELECT
|
||
C.PROVINCE_CODE,C.SERVERPART_ID,A.SERVERPART_CODE,C.SERVERPART_NAME,B.SERVERPARTSHOP_ID,A.SERVERPARTSHOP_CODE,B.SHOPNAME,
|
||
A.MACHINECODE,TRUNC(A.TRADE_DATE) AS ORDER_DATE,SUM(A.TICKET_AMOUNT) AS TICKET_AMOUNT,SUM(A.TAXFEE_AMOUNT) AS TAXFEE_AMOUNT
|
||
FROM
|
||
HIGHWAY_SELLDATA.T_MOBILEPAYMENT_RECORDS A,
|
||
MOBILESERVICE_PLATFORM.T_SERVERPARTSHOP@MSPB B,
|
||
MOBILESERVICE_PLATFORM.T_SERVERPART@MSPB C
|
||
WHERE
|
||
A.SERVERPARTSHOP_CODE = B.SHOPCODE AND A.SERVERPART_CODE = C.SERVERPART_CODE AND
|
||
B.SERVERPART_ID = C.SERVERPART_ID AND B.PROVINCE_CODE = C.PROVINCE_CODE AND
|
||
A.TRADE_DATE >= TO_DATE('{0}','YYYY-MM-DD HH24:MI:SS') AND
|
||
A.TRADE_DATE < TO_DATE('{1}','YYYY-MM-DD HH24:MI:SS')
|
||
GROUP BY
|
||
C.PROVINCE_CODE,C.SERVERPART_ID,A.SERVERPART_CODE,C.SERVERPART_NAME,
|
||
B.SERVERPARTSHOP_ID,A.SERVERPARTSHOP_CODE,B.SHOPNAME,
|
||
A.MACHINECODE,TRUNC(A.TRADE_DATE)
|
||
ORDER BY TRUNC(A.TRADE_DATE)", beginDate, endDate);
|
||
DataSet ds = oracleHelperCm.ExcuteSqlGetDataSet(sql);//在移动业务查询通道传输流水
|
||
DataTable dt = ds.Tables[0];
|
||
return dt;
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 按自然日固化营收
|
||
/// <summary>
|
||
/// 按自然日固化移动支付流水
|
||
/// </summary>
|
||
public void FixedRevenueData()
|
||
{
|
||
DataTable dt = GetMobilePaymentData();
|
||
LogUtil.WriteLog(logStr + dt.Rows.Count);
|
||
List<string> sqlInsertList = new List<string>();//插入的语句
|
||
List<string> sqlUpdateList = new List<string>();//修改的语句
|
||
string Create_Date = DateTime.Now.ToString();
|
||
|
||
foreach (DataRow dr in dt.Rows)
|
||
{
|
||
string sqlIsExists = string.Format(@"
|
||
SELECT REVENUE_NATURALDAY_ID FROM HIGHWAY_SELLDATA.T_REVENUE_NATURALDAY
|
||
WHERE
|
||
PROVINCE_CODE={0} AND SERVERPART_ID={1} AND SERVERPARTSHOP_ID={2} AND
|
||
ORDER_DATE = TO_DATE('{3}','YYYY-MM-DD HH24:MI:SS')",
|
||
dr["PROVINCE_CODE"].TryParseToInt(), dr["SERVERPART_ID"].TryParseToInt(),
|
||
dr["SERVERPARTSHOP_ID"].TryParseToInt(), Convert.ToDateTime(dr["ORDER_DATE"]).ToShortDateString());
|
||
Object obj = oracleHelperCm.ExcuteSqlBackData(sqlIsExists);
|
||
if (obj == null)
|
||
{
|
||
string addSql = string.Format(@"
|
||
INSERT INTO HIGHWAY_SELLDATA.T_REVENUE_NATURALDAY
|
||
(
|
||
REVENUE_NATURALDAY_ID,PROVINCE_CODE,SERVERPART_ID,SERVERPART_CODE,SERVERPART_NAME,SERVERPARTSHOP_ID,
|
||
SERVERPARTSHOP_CODE,SERVERPARTSHOP_NAME,MACHINECODE,ORDER_DATE,TICKET_AMOUNT,TAXFEE_AMOUNT,CREATE_DATE
|
||
)
|
||
VALUES
|
||
(
|
||
HIGHWAY_SELLDATA.SEQ_REVENUE_NATURALDAY.NEXTVAL,{0},{1},'{2}','{3}',{4},'{5}',
|
||
'{6}','{7}',TO_DATE('{8}','YYYY-MM-DD'),{9},{10},TO_DATE('{11}','YYYY-MM-DD HH24:MI:SS')
|
||
)",
|
||
dr["PROVINCE_CODE"].TryParseToInt(), dr["SERVERPART_ID"].TryParseToInt(),
|
||
dr["SERVERPART_CODE"].TryParseToString(), dr["SERVERPART_NAME"].TryParseToString(), dr["SERVERPARTSHOP_ID"].TryParseToInt(),
|
||
dr["SERVERPARTSHOP_CODE"].TryParseToString(), dr["SHOPNAME"].TryParseToString(), dr["MACHINECODE"].TryParseToString(),
|
||
Convert.ToDateTime(dr["ORDER_DATE"]).ToShortDateString(), dr["TICKET_AMOUNT"].TryParseToDouble(),
|
||
dr["TAXFEE_AMOUNT"].TryParseToDouble(), Create_Date);
|
||
sqlInsertList.Add(addSql);
|
||
}
|
||
else
|
||
{
|
||
int Revenue_Naturalday_Id = obj.TryParseToInt();
|
||
string updateSql = string.Format(@"
|
||
UPDATE HIGHWAY_SELLDATA.T_REVENUE_NATURALDAY
|
||
SET TICKET_AMOUNT = {1},TAXFEE_AMOUNT={2},CREATE_DATE = TO_DATE('{3}','YYYY-MM-DD HH24:MI:SS')
|
||
WHERE REVENUE_NATURALDAY_ID={0}",
|
||
Revenue_Naturalday_Id, dr["TICKET_AMOUNT"].TryParseToDouble(), dr["TAXFEE_AMOUNT"].TryParseToDouble(), Create_Date);
|
||
sqlUpdateList.Add(updateSql);
|
||
}
|
||
}
|
||
LogUtil.WriteLog(logStr + "插入" + sqlInsertList.Count + ",修改" + sqlUpdateList.Count);
|
||
try
|
||
{
|
||
if (sqlInsertList.Count > 0)
|
||
{
|
||
oracleHelperCm.ExecuteSqlTran(sqlInsertList.ToArray()); //固化数据到日营收汇总表
|
||
}
|
||
if (sqlUpdateList.Count > 0)
|
||
{
|
||
oracleHelperCm.ExecuteSqlTran(sqlUpdateList.ToArray()); //固化数据到日营收汇总表
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogUtil.WriteLog(logStr + ex.ToString());
|
||
}
|
||
LogUtil.WriteLog(logStr + "End");
|
||
}
|
||
#endregion
|
||
}
|
||
}
|