118 lines
5.3 KiB
C#
118 lines
5.3 KiB
C#
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}");
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 检查数据上传情况,通知区服启动压缩文件生成上传
|
||
/// </summary>
|
||
/// <param name="serviceUri">区服压缩文件生成上传程序启动接口地址</param>
|
||
/// <param name="serverpartCode">服务区编码</param>
|
||
/// <param name="shopCode">门店编码</param>
|
||
/// <param name="machineCode">收银机号</param>
|
||
/// <param name="startDate">账期开始时间</param>
|
||
/// <param name="endDate">账期结束时间</param>
|
||
/// <returns></returns>
|
||
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;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 更新区服传输指令表状态标识
|
||
/// </summary>
|
||
/// <param name="transDataLogID">指令ID</param>
|
||
/// <returns></returns>
|
||
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;
|
||
}
|
||
}
|
||
}
|
||
}
|