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