2025-03-28 09:49:56 +08:00

118 lines
5.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}
}
}