using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Collections;
namespace TransDataByPB
{
class Program
{
static void Main(string[] args)
{
try
{
//读取PB传输指令日志表中未处理的指令
DataTable table_TransDataLog = ESSupport.Lib.SyBaseHelper.QueryOdbc(
@"SELECT TRANSDATALOG_ID,SERVERPARTCODE,SHOPCODE,
MACHINECODE,STARTDATE,ENDDATE,TRANSDATALOG_STATE
FROM T_TRANSDATALOG
WHERE ISNULL(TRANSDATALOG_STATE,0) <> 1").Tables[0];
if (table_TransDataLog.Rows.Count > 0)
{
//区服IP地址
string str_ServerIP = ESSupport.Pos.PosConfigInit.ConfigurationValues("server_ip", "");
//区服压缩文件上传程序通知端口
string str_DataServicePort = ESSupport.Pos.PosConfigInit.ConfigurationValues("DataServicePort", "7080");
//逐条检查账期相关数据上传情况,通知区服启动压缩文件生成上传
foreach (DataRow row_TransDataLog in table_TransDataLog.Rows)
{
//检查数据上传情况,通知区服启动压缩文件生成上传
if (TransDataLogCheck($"http://{str_ServerIP}:{str_DataServicePort}/DataTransferService/Service.asmx",
row_TransDataLog["SERVERPARTCODE"].ToString(), row_TransDataLog["SHOPCODE"].ToString(),
row_TransDataLog["MACHINECODE"].ToString(), (DateTime)row_TransDataLog["STARTDATE"],
(DateTime)row_TransDataLog["ENDDATE"]))
{
//更新PB传输指令状态标识为已完成(标识号:1)
TransDataLogState((decimal)row_TransDataLog["TRANSDATALOG_ID"]);
}
}
}
}
catch (Exception ex)
{
ESSupport.Lib.LogHelper.WriteServiceLog($"区服压缩文件传输指令通知程序异常。原因:{ex.Message}");
}
}
///
/// 检查数据上传情况,通知区服启动压缩文件生成上传
///
/// 区服压缩文件生成上传程序启动接口地址
/// 服务区编码
/// 门店编码
/// 收银机号
/// 账期开始时间
/// 账期结束时间
///
public static bool TransDataLogCheck(string serviceUri, string serverpartCode, string shopCode, string machineCode, DateTime startDate, DateTime endDate)
{
try
{
//检查
if (ESSupport.Lib.SyBaseHelper.QueryOdbc(
$@"SELECT 1 FROM T_EXCEPTION
WHERE ISNULL(EXCEPTION_STATE,0) = 0 AND ISNULL(FLAG,0) IN (0,1) AND
EXCEPTION_DATE BETWEEN DATETIME('{startDate.ToString()}') AND
DATETIME('{endDate.ToString()}')").Tables[0].Rows.Count > 0)
{
return false;
}
if (ESSupport.Lib.SyBaseHelper.QueryOdbc(
$@"SELECT 1 FROM T_COMMODITYSALE
WHERE ISNULL(COMMODITYSALE_STATE,0) = 0 AND
STARTDATE = DATETIME('{startDate.ToString()}') AND
ENDDATE = DATETIME('{endDate.ToString()}')").Tables[0].Rows.Count > 0)
{
return false;
}
Hashtable hst_Hashtable = new Hashtable
{
{ "serverpartCode", serverpartCode },
{ "shopCode", shopCode },
{ "machineCode", machineCode },
{ "startDate", startDate.ToString("yyyyMMddHHmmss") },
{ "endDate", endDate.ToString("yyyyMMddHHmmss") }
};
string str_Ret = ESSupport.Lib.SoapWSHelper.QuerySoapWebServiceString(serviceUri, "PBDataZipUpload", hst_Hashtable);
return true;
}
catch(Exception ex)
{
ESSupport.Lib.LogHelper.WriteServiceLog($"区服压缩文件传输指令通知失败。原因:{ex.Message}");
return false;
}
}
///
/// 更新区服传输指令表状态标识
///
/// 指令ID
///
public static bool TransDataLogState(decimal transDataLogID)
{
try
{
ESSupport.Lib.SyBaseHelper.ExecuteSqlTran(
$@"UPDATE T_TRANSDATALOG
SET TRANSDATALOG_STATE = 1
WHERE TRANSDATALOG_ID = {transDataLogID}");
return true;
}
catch
{
return false;
}
}
}
}