/// <summary> 格式化 /// </summary> private void dgvSyncData_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { try { if (e.Value == null || string.IsNullOrEmpty(e.Value.ToString())) { return; } string fieldNmae = dgvSyncData.Columns[e.ColumnIndex].DataPropertyName; if (fieldNmae.Equals("business_name")) { DataSources.EnumInterfaceType enumInterfaceType = (DataSources.EnumInterfaceType)Convert.ToInt16(e.Value.ToString()); e.Value = DataSources.GetDescription(enumInterfaceType, true); } if (fieldNmae.Equals("external_sys")) { DataSources.EnumExternalSys enumExternalSys = (DataSources.EnumExternalSys)Convert.ToInt16(e.Value.ToString()); e.Value = DataSources.GetDescription(enumExternalSys, true); } if (fieldNmae.Equals("last_sync_time")) { long ticks = (long)e.Value; e.Value = Common.UtcLongToLocalDateTime(ticks); } } catch (Exception ex) { GlobalStaticObj_Server.GlobalLogService.WriteLog("数据同步", ex); MessageBoxEx.ShowWarning("程序异常"); } }
void UCSyncData_SyncEvent(object sender, EventArgs e) { try { List <DataSources.EnumInterfaceType> list = new List <DataSources.EnumInterfaceType>(); foreach (DataGridViewRow dr in dgvSyncData.Rows) { object value = dr.Cells["colCheck"].EditedFormattedValue; if (value != null && (bool)value) { DataSources.EnumInterfaceType enumInterfaceType = (DataSources.EnumInterfaceType)Convert.ToInt32(dr.Cells["data_sync_id"].Value.ToString().Substring(2, 1)); list.Add(enumInterfaceType); } } if (list.Count == 0) { MessageBoxEx.ShowInformation("请选择同步项"); return; } if (MessageBoxEx.ShowQuestion("本操作数据量大,时间长,会占用服务器大量资源,请谨慎操作,是否继续?如果继续,同步数据会转入后台执行。")) { foreach (DataSources.EnumInterfaceType enumType in list) { SyncData(enumType); } } } catch (Exception ex) { GlobalStaticObj_Server.GlobalLogService.WriteLog("数据同步", ex); MessageBoxEx.ShowWarning("程序异常"); } }
/// <summary> 格式化 /// </summary> private void dgvSyncData_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (e.Value == null || string.IsNullOrEmpty(e.Value.ToString())) { return; } string fieldNmae = dgvSyncDataLog.Columns[e.ColumnIndex].DataPropertyName; if (fieldNmae.Equals("business_name")) { DataSources.EnumInterfaceType enumInterfaceType = (DataSources.EnumInterfaceType)Convert.ToInt16(e.Value.ToString()); e.Value = DataSources.GetDescription(enumInterfaceType, true); } if (fieldNmae.Equals("external_sys")) { DataSources.EnumExternalSys enumExternalSys = (DataSources.EnumExternalSys)Convert.ToInt16(e.Value.ToString()); e.Value = DataSources.GetDescription(enumExternalSys, true); } if (fieldNmae.Equals("sync_direction")) { DataSources.EnumSyncDirection enumSyncDirection = (DataSources.EnumSyncDirection)Convert.ToInt16(e.Value.ToString()); e.Value = DataSources.GetDescription(enumSyncDirection, true); } if (fieldNmae.Equals("sync_start_time") || fieldNmae.Equals("sync_end_time")) { long ticks = (long)e.Value; e.Value = Common.UtcLongToLocalDateTime(ticks); } }
/// <summary> 接口调用记录 /// </summary> /// <param name="enumInterfaceType">接口类型</param> /// <param name="enumExternalSys">外部系统</param> /// <param name="totalCount">同步后本地总条数</param> /// <param name="updateCount">更新条数</param /// <param name="dtLastSyncTime">同步时间</param> /// <returns>返回true or false</returns> public static bool WriteInterficeSync(DataSources.EnumInterfaceType enumInterfaceType, DataSources.EnumExternalSys enumExternalSys, int totalCount, int updateCount, DateTime dtLastSyncTime) { string enumName = DataSources.GetDescription(enumInterfaceType, true); string keyName = "data_sync_id"; string keyValue = Convert.ToInt32(enumExternalSys).ToString() + "-" + Convert.ToInt32(enumInterfaceType).ToString(); Dictionary <string, string> dicFields = new Dictionary <string, string>(); dicFields.Add("local_total_num", totalCount.ToString()); dicFields.Add("update_total_num", updateCount.ToString()); dicFields.Add("last_sync_time", Common.LocalDateTimeToUtcLong(dtLastSyncTime).ToString()); bool flag = DBHelper.Submit_AddOrEdit("接口调用记录-" + enumName, GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.CommAccCode, "sys_data_sync", keyName, keyValue, dicFields); return(flag); }
/// <summary> 同步信息 /// </summary> public void SyncData(DataSources.EnumInterfaceType enumInterfaceType) { switch (enumInterfaceType) { case DataSources.EnumInterfaceType.ServiceStation: new System.Threading.Thread(SysServiceStationData).Start(); break; case DataSources.EnumInterfaceType.Bus: new System.Threading.Thread(SysBusData).Start(); break; case DataSources.EnumInterfaceType.BusCustomer: new System.Threading.Thread(SysCustomerData).Start(); break; case DataSources.EnumInterfaceType.Contact: new System.Threading.Thread(SysContactData).Start(); break; case DataSources.EnumInterfaceType.RepairProject: new System.Threading.Thread(SysRepairProjectData).Start(); break; case DataSources.EnumInterfaceType.Part: new System.Threading.Thread(SysPartData).Start(); break; case DataSources.EnumInterfaceType.BusModel: new System.Threading.Thread(SysBusModelData).Start(); break; case DataSources.EnumInterfaceType.HitchMode: new System.Threading.Thread(SysHitchModeData).Start(); break; case DataSources.EnumInterfaceType.ProdImprovement: new System.Threading.Thread(SysProdImprovementData).Start(); break; default: MessageBoxEx.ShowInformation("无对应同步项"); break; } }
/// <summary> 接口调用日志 /// </summary> /// <param name="enumInterfaceType">接口类型</param> /// <param name="enumExternalSys">外部系统</param> /// <param name="enumSyncDirection">同步方向</param> /// <param name="tableName">更新表名</param> /// <param name="dtpStart">开始时间</param> /// <param name="dtpEnd">结束时间</param> /// <param name="updateCount">更新条数</param> /// <param name="errMsg">错误原因</param> /// <returns>返回true or false</returns> public static bool WriteInterficeSyncLog(DataSources.EnumInterfaceType enumInterfaceType, DataSources.EnumExternalSys enumExternalSys, DataSources.EnumSyncDirection enumSyncDirection, string tableName, DateTime dtpStart, DateTime dtpEnd, int updateCount, string errMsg) { Dictionary <string, string> dicFields = new Dictionary <string, string>(); dicFields.Add("data_sync_log_id", Guid.NewGuid().ToString()); dicFields.Add("external_sys", Convert.ToInt32(enumExternalSys).ToString()); string enumName = DataSources.GetDescription(enumInterfaceType, true); dicFields.Add("business_name", Convert.ToInt32(enumInterfaceType).ToString()); dicFields.Add("table_name", tableName); dicFields.Add("sync_start_time", Common.LocalDateTimeToUtcLong(dtpStart).ToString()); dicFields.Add("sync_end_time", Common.LocalDateTimeToUtcLong(dtpEnd).ToString()); dicFields.Add("sync_direction", Convert.ToInt32(enumSyncDirection).ToString()); dicFields.Add("changes_num", updateCount.ToString()); dicFields.Add("sync_result", errMsg); bool flag = DBHelper.Submit_AddOrEdit("接口调用日志-" + enumName, GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.CommAccCode, "sys_data_sync_log", "", "", dicFields); return(flag); }
/// <summary> 提示同步信息 /// </summary> public void ShowMsg(string msg, DataSources.EnumInterfaceType enumType) { if (parentCol == null) { return; } if (parentCol.IsDisposed || !parentCol.Parent.IsHandleCreated) { return; } string enumDesc = DataSources.GetDescription(enumType, true); if (!string.IsNullOrEmpty(msg)) { parentCol.Invoke(new Action(() => { MessageBoxEx.ShowWarning(enumDesc + "同步失败!失败原因:" + msg); })); } else { parentCol.Invoke(new Action(() => { MessageBoxEx.ShowInformation(enumDesc + "同步成功!请进入系统监控-数据同步查看"); BindData(); })); } }