def run(): try: print('run,当前时间=>', get_now_time()) # 使用时 再次声明,表示在这里使用的是全局变量,而不是局部变量 global org_id global that_week_min global that_week_max print(org_id, that_week_min, that_week_max) # 开始lmt实际逻辑 # 引入罗美特逻辑服务类 from services import pony_orm_lmt_service as pols from db import db print('...机构号:', org_id, '进行罗美特业务逻辑-数据清洗') # 从通用配置里拿出以下三个配置 is_show_sql, is_mysql_create_tables, is_oracle_create_tables = ccfa[ 'is_show_sql'], ccfa['is_mysql_create_tables'], ccfa[ 'is_oracle_create_tables'] # pony db 数据库引擎初始化 db.init_db(is_show_sql, is_mysql_create_tables, is_oracle_create_tables) # 开始吧 # 首先根据周二日期that_week_min 去查询SCADA_REPORT_XN_MID【ScadaReportXNMid】表 srxm_list_that_week_min, srxm_qr = pols.deal_with_data_for_oracle_srxm_select_where_with_org_id( org_id, that_week_min) # Mysql数据处理 和 MySQLToOracle入库 if len(srxm_list_that_week_min) >= 1: # 查询出数据 去执行数据转移代码 print( '...机构号:', org_id, '...Oracle...srxm_list...len...查询ScadaReportXNMid总条数: ' + str(len(srxm_list_that_week_min)), ' 时间: ', that_week_min, '去执行数据清洗') # 打印一条直线 95个'-' util.print_a_line(95) pols.datas_from_mid_to_week_wash_data_oracle( org_id, srxm_list_that_week_min, srxm_qr, that_week_min, that_week_max) else: # 未查询出数据 输出提示即可 print( '...机构号:', org_id, '...Oracle...srxm_list...len...查询ScadaReportXNMid总条数: ' + str(len(srxm_list_that_week_min)), ' 时间: ', that_week_min, '无需执行数据清洗 跳出程序') return True except Exception as e: print("run Exception Error:%s" % e) return False finally: pass # 打印一条直线 95个'-' util.print_a_line(95) # 走到这里的话 那就代表run执行完毕 return True
def before_run(): try: # 使用时 再次声明全局变量 表示在这里使用的是全局变量,而不是局部变量 global org_id global that_day_min global that_day_max print('before_run,当前时间=>', get_now_time()) print('目前通用配置如下=>【', cc, '】') org_id = cc['org_id'] run_type = cc['run_type'] # 通过run_type判断 得出不同的that_day_min, that_day_max # 具体见方法 util.get_run_which_datetime_max_min_time() that_day_min, that_day_max = util.get_run_which_datetime_max_min_time() if run_type == 0: print('命令执行', '机构', org_id, '处理数据日期时间范围', that_day_min, ' to ', that_day_max) print('---开始命令执行操作---') return True elif run_type == 1: print('手动执行', '机构', org_id, '处理数据日期时间范围', that_day_min, ' to ', that_day_max) is_del_flag = input('确定要执行此手动执行吗?确定执行输入y,不执行输入n 请输入: ') if is_del_flag.lower() == 'y': print('---开始手动执行操作---') return True else: print('---你选择了不执行此操作,取消---') return False return True elif run_type == 2: print('手动执行-时间范围版', '机构', org_id, '处理数据日期时间范围', that_day_min, ' to ', that_day_max) is_del_flag = input('确定要执行此手动执行-时间范围版吗?确定执行输入y,不执行输入n 请输入: ') if is_del_flag.lower() == 'y': print('---开始手动执行-时间范围版操作---') return True else: print('---你选择了不执行此操作,取消---') return False return True else: print('...before_run...run_type 为', run_type, '不存在', '不执行此操作,取消---') return False except Exception as e: print("before_run Exception Error:%s" % e) return False finally: pass # 打印一条直线 95个'-' util.print_a_line(95) # 走到这里的话 那就代表公共参数不合法不对 跳出 before_run 返回 False return False
def run_lmt(): # 引入lmt逻辑服务类 # from services import pony_orm_lmt_service as pols print('进行罗美特业务逻辑-数据清洗') # 打印一条直线 95个'-' 如果传0 则counts使用默认值 95 util.print_a_line(0) if before_run(): if run(): after_run() else: print('run 跳出,当前时间=>', get_now_time()) else: print('before_run 跳出,当前时间=>', get_now_time()) pass
try: print('after_run,当前时间=>', get_now_time()) pass return True except Exception as e: print("after_run Exception Error:%s" % e) return False finally: pass # 走到这里的话 那就代表after_run执行完毕 return True if __name__ == '__main__': start_and_end(True, 1) # 是否开启日志 is_open_log = ccfa['is_open_log'] if is_open_log: print('...MySQLToOracle...log日志...app2...开启了...') sys.stdout = PrintLogger( 'MySQLToOracle.app2.log' ) # 监听所有的print到log日志 封装类 如不需要打印所有输出print的log日志,隐掉这段即可 else: print('...MySQLToOracle...log日志...未开启...') # 打印一条直线 95个'-' util.print_a_line(95) # ------------------------------------------ run_lmt() # ------------------------------------------ start_and_end(False, 1)
def run(): try: print('run,当前时间=>', get_now_time()) # 使用时 再次声明,表示在这里使用的是全局变量,而不是局部变量 global org_id global that_day_min global that_day_max print(org_id, that_day_min, that_day_max) # 开始lmt实际逻辑 # 引入罗美特逻辑服务类 from services import pony_orm_lmt_service as pols from db import db print('...机构号:', org_id, '进行罗美特业务逻辑') # 从通用配置里拿出以下三个配置 is_show_sql, is_mysql_create_tables, is_oracle_create_tables = cc[ 'is_show_sql'], cc['is_mysql_create_tables'], cc[ 'is_oracle_create_tables'] # pony db 数据库引擎初始化 db.init_db(is_show_sql, is_mysql_create_tables, is_oracle_create_tables) # 方法1 # # 首先 通过日期查询当前日期是否已经写入lmt Oracle数据库 # srxm_list, srxm_qr = pols.deal_with_data_for_oracle_srxm_select_where(that_day_min) # # 有的话 先删除 # if len(srxm_list) >= 1: # # 删除 # pols.deal_with_data_for_oracle_srxm_del_all(srxm_qr) # 方法2 直接查询和删除 一体化 按道理 第二种性能更好 一块提交事务 # 通过that_day_min和that_day_max 拿出所有的对应日 肯定不会跨年 跨月 所以不用理会 this_year, this_month, days_list = util.get_days_list_from_day_min_to_day_max( that_day_min, that_day_max) # pols.deal_with_data_for_oracle_srxm_del_all_with_where(org_id, that_day_min) # 使用更改版 - 循环日期进行删除 print('...机构号:', org_id, '...循环删除...共需删除天份数为:', str(len(days_list)), '天数对应日期范围:', that_day_min, that_day_max) for this_day in days_list: pols.deal_with_data_for_oracle_srxm_del_all_with_where2( org_id, this_year, this_month, this_day) # 删除之后 在从MySQL数据库查询出来当前日期数据 经过数据再次处理之后 写入lmt Oracle数据库 # 查询所有 不用这个 # pols.deal_with_data_for_mysql_mrm_select_all() # 条件查询 使用 mrm_list, mrm_qr = pols.deal_with_data_for_mysql_mrm_select_where( that_day_min, that_day_max) # Mysql数据处理 和 MySQLToOracle入库 if len(mrm_list) >= 1: # 查询出数据 去执行数据转移代码 print( '...机构号:', org_id, '...MySQL...mrm_list...len...查询MeterReportMonth总条数: ' + str(len(mrm_list)), ' 时间范围: ', that_day_min, ' to ', that_day_max, '去执行数据转移') pols.datas_from_mysql_to_oracle(org_id, mrm_list, mrm_qr) else: # 未查询出数据 输出提示即可 print( '...机构号:', org_id, '...MySQL...mrm_list...len...查询MeterReportMonth总条数: ' + str(len(mrm_list)), ' 时间范围: ', that_day_min, ' to ', that_day_max, '无需执行数据转移') return True except Exception as e: print("run Exception Error:%s" % e) return False finally: pass # 打印一条直线 95个'-' util.print_a_line(95) # 走到这里的话 那就代表run执行完毕 return True