using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using HZQR.Common;
namespace ThirdPartyClient.Method
{
///
/// 业务日志帮助类
///
public class BusinessLogHelper
{
#region 方法 -> 记录业务操作日志
///
/// 记录业务操作日志
///
/// 业务操作日志表所在数据库链接
///
/// 日志类型
/// 压缩文件解压异常:0
/// 移动支付到账差异:1
/// 固化历史单品差异:2
/// 应收账款生成异常:3
/// 卡口流水生成差异:4
/// 优惠券统计表差异:5
/// 优惠券明细表差异:6
/// 日度营收生成差异:7
/// 月度营收生成差异:8
/// 移动支付分账差异:9
/// 移动支付分账比例:10
/// 营收拆分生成差异:11
/// 移动支付未传门店:12
/// 应收拆分生成差异:16
/// 日结单品销售:100000
/// 商品信息变更:102000
/// 进销存业务:200000
/// 入库业务[商超]:201000
/// 重复入库[商超]:201001
/// 调拨业务[商超]:202000
/// 退货业务[商超]:203000
/// 领用业务[商超]:204000
/// 单品销售[商超]:205000
/// 盘点结存[商超]:206000
/// 盘点损溢[商超]:206001
/// 统配业务:500000
/// 入库业务[统配]:501000
/// 调拨业务[统配]:502000
/// 退货业务[统配]:503000
/// 领用业务[统配]:504000
/// 损溢业务[统配]:505000
/// 盘点结存[统配]:506000
/// 盘点损溢[统配]:506001
/// 异常库存[统配]:507000
/// 配送业务[统配]:508000
/// 异常退货[统配]:509000
/// 成本管控:700000
/// 入库业务[餐饮]:701000
/// 调拨业务[餐饮]:702000
/// 领用业务[餐饮]:703000
/// 退货业务[餐饮]:704000
/// 单品销售[餐饮]:705000
/// 盘点结存[餐饮]:706000
/// 盘点损溢[餐饮]:706001
///
/// 业务内码
/// 数据表名称
/// 数据表用户名称
/// 日志内容
/// 数据一致性:0【不一致】,1【一致】
/// 处理状态:0【待处理】,1【无异常】
/// 服务区编码
/// 门店编码
/// 机器编码
///
/// 统计日期
/// 格式yyyy、yyyyMM、yyyyMMdd、yyyyMMddHH、yyyyMMddHHmm、yyyyMMddHHmmss
///
/// 自然日口径统计的金额
/// 移动支付渠道统计的金额
/// 返回结果:SQL语句执行成功的条数
public static int RecordBusinessLog(OracleHelper _OracleHelper, int BusinessLogType, int BusinessID,
string TableName, string OwnerName, string BusinessLogContent, int Data_Consistency, int Check_State,
string ServerpartCode = "", string ShopCode = "", string MachineCode = "", long? Statistics_Date = null,
decimal? Daily_Amount = null, decimal? Channel_Amount = null)
{
string SQLString = "";
try
{
SQLString = string.Format(@"INSERT INTO PLATFORM_FRAMEWORK.T_BUSINESSLOG (
BUSINESSLOG_ID,BUSINESSLOG_TYPE,BUSINESS_ID,TABLE_NAME,OWNER_NAME,
BUSINESSLOG_CONTENT,OPERATE_DATE,DATA_CONSISTENCY,CHECK_STATE,
SERVERPARTCODE,SHOPCODE,MACHINECODE,STATISTICS_DATE,DAILY_AMOUNT,CHANNEL_AMOUNT)
VALUES (PLATFORM_FRAMEWORK.SEQ_BUSINESSLOG.NEXTVAL,
{0},{1},'{2}','{3}','{4}',{5},{6},{7},'{8}','{9}','{10}',{11},{12},{13})",
BusinessLogType, BusinessID, TableName, OwnerName, BusinessLogContent,
DateTime.Now.ToString("yyyyMMddHHmmss"), Data_Consistency, Check_State,
ServerpartCode, ShopCode, MachineCode,
Statistics_Date == null ? "NULL" : Statistics_Date.ToString(),
Daily_Amount == null ? "NULL" : Daily_Amount.ToString(),
Channel_Amount == null ? "NULL" : Channel_Amount.ToString());
return _OracleHelper.ExcuteSql(SQLString);
}
catch (Exception ex)
{
LogUtil.WriteLog(ex, "记录业务办理日志失败!执行语句:" + SQLString,
DateTime.Now.ToString("yyyyMMdd") + "_DataTransmission_Error");
return -1;
}
}
#endregion
#region 方法 -> 更新日志表反查标识
///
/// 更新日志表反查标识
///
/// 事务管理器
/// 日志类型
/// 业务ID
/// 业务表名称
/// 业务表用户
/// 反查标识(0:后续需要干预处理的日志,1:纯记录,作为定时删除日志的标记)
public static int UpdateBusinessLogCheckState(OracleHelper _OracleHelper, int BusinessLogType,
int BusinessID, string TableName, string OwnerName, int Check_State, string BusinessLogTypeContent)
{
string SQLString = "";
try
{
SQLString = string.Format(@"UPDATE PLATFORM_FRAMEWORK.T_BUSINESSLOG
SET DATA_CONSISTENCY = 1,CHECK_STATE = {0},BUSINESSLOG_CONTENT = '{5}'
WHERE BUSINESSLOG_TYPE = {1} AND BUSINESS_ID = {2} AND
TABLE_NAME = '{3}' AND OWNER_NAME = '{4}'",
Check_State, BusinessLogType, BusinessID, TableName, OwnerName, BusinessLogTypeContent);
return _OracleHelper.ExcuteSql(SQLString);
}
catch (Exception ex)
{
LogUtil.WriteLog(ex, "更新业务办理日志失败!执行语句:" + SQLString,
DateTime.Now.ToString("yyyyMMdd") + "_DataTransmission_Error");
return -1;
}
}
public static int UpdateBusinessLogCheckState(OracleHelper _OracleHelper,
int BusinessLogID, int Check_State, string BusinessLogTypeContent)
{
string SQLString = "";
try
{
SQLString = string.Format(@"UPDATE PLATFORM_FRAMEWORK.T_BUSINESSLOG
SET DATA_CONSISTENCY = 1,CHECK_STATE = {0},BUSINESSLOG_CONTENT = '{1}'
WHERE BUSINESSLOG_ID = {2}",
Check_State, BusinessLogTypeContent, BusinessLogID);
return _OracleHelper.ExcuteSql(SQLString);
}
catch (Exception ex)
{
LogUtil.WriteLog(ex, "更新业务办理日志失败!执行语句:" + SQLString,
DateTime.Now.ToString("yyyyMMdd") + "_DataTransmission_Error");
return -1;
}
}
#endregion
}
}