def data_processing(data_for_processing): rm_repeat_sfd_data_list = [] # 用于临时存放已删除重复的字典数据 flmeter_no_set = set( ) # set是一个无序且不重复的元素集合-注意在创建空集合的时候只能使用s=set(),因为s={}创建的是空字典 for x in data_for_processing: flmeter_no_set.add(x['FLMETER_NO']) print('不同的表计号共有个数:', len(flmeter_no_set)) # 19 print('根据表计号,进行数据的再次筛选,处理,写入数据库') print( '----------------------------------------------------------------------------------------' ) # 根据表计号,进行数据的再次筛选,处理,写入数据库 flmeter_no_set_copy = flmeter_no_set.copy() for fno in flmeter_no_set: print(fno) # 以下为处理逻辑 # 首先根据表计号,在原字典数据【data_for_processing】中筛选出所有此表计的数据 for xx in data_for_processing: if xx['FLMETER_NO'] == fno: rm_repeat_sfd_data_list.append(xx) # print(rm_repeat_sfd_data_list) # print(len(rm_repeat_sfd_data_list)) # 此表计数据字典列表 排序 按照采集时间INSTANT_TIME排序 默认升序 如果要降序排序,可以指定reverse=True sorted_rm_repeat_sfd_data_list = sorted( rm_repeat_sfd_data_list, key=operator.itemgetter('INSTANT_TIME'), reverse=False) # 排序完成之后,具体字段补充 # 新建一个日报表类,用于接收收据 rdm = ReportDailyModel() # 机构号 rdm.srd_org_id = sorted_rm_repeat_sfd_data_list[0]['SFD_ORG_ID'] # 记录ID-取自动递增流水号 # rdm.srd_id = get_sys_serial_no_func() # RTU编号 rdm.rtu_no = sorted_rm_repeat_sfd_data_list[0]['RTU_NO'] # 流量计编号 rdm.flmeter_no = sorted_rm_repeat_sfd_data_list[0]['FLMETER_NO'] # 客户编号 rdm.customer_no = sorted_rm_repeat_sfd_data_list[0]['CUSTOMER_NO'] # 得到当前时间datetime now_datetime = datetime.datetime.today() # print(now_datetime.year, now_datetime.month, now_datetime.day, now_datetime.hour, now_datetime.minute,now_datetime.second) # 2019 3 8 12 52 10 # 报表时间 年 月 日 时 rdm.report_time = now_datetime rdm.year = now_datetime.year rdm.month = now_datetime.month rdm.day = now_datetime.day rdm.hour = now_datetime.hour # 标况总量(期末数) rdm.std_sum = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['STD_SUM'] # 默认升序,列表最后一个元素,值最大 # 工况总量(期末数) rdm.work_sum = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['WORK_SUM'] # 默认升序,列表最后一个元素,值最大 # 标况流量(周期内平均值) rdm.std_flow = get_average_period(sorted_rm_repeat_sfd_data_list, "STD_FLOW") # 使用周期内平均值计算方法 计算平均值 # 工况流量(周期内平均值) rdm.work_flow = get_average_period(sorted_rm_repeat_sfd_data_list, "WORK_FLOW") # 温度(周期内平均值) rdm.temperature = get_average_period(sorted_rm_repeat_sfd_data_list, "TEMPERATURE") # 压力(周期内平均值) rdm.pressure = get_average_period(sorted_rm_repeat_sfd_data_list, "PRESSURE") # 单价(期末数) rdm.price = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['PRICE'] # 周期内工况使用量(周期内期末数-期初数) max_work_sum = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['WORK_SUM'] min_work_sum = sorted_rm_repeat_sfd_data_list[0]['WORK_SUM'] rdm.use_volume_work = int(max_work_sum) - int(min_work_sum) # 周期内标况使用量(周期内期末数 - 期初数) max_std_sum = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['STD_SUM'] # 默认升序,列表最后一个元素,值最大 min_std_sum = sorted_rm_repeat_sfd_data_list[0][ 'STD_SUM'] # 默认升序,列表第一个元素,值最小 rdm.use_volume_std = int(max_std_sum) - int( min_std_sum) # 周期内标况使用量(周期内期末数-期初数) # 周期内使用额(单价(期末数)* 周期内标况使用量)结果四舍五入 rdm.use_money = round((float(rdm.use_volume_std) * float(rdm.price)), 2) # 总累积使用量(期末数) rdm.sum_total_volume = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['SUM_TOTAL'] # 累购气量(期末数) rdm.total_buy_volume = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['TOTAL_BUY_VOLUME'] # 累购金额(期末数) rdm.total_buy_money = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['TOTAL_BUY_MONEY'] # 剩余金额(期末数) rdm.remain_money = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['REMAIN_MONEY'] # 总累计使用金额(期末累购金额-期末剩余金额) if rdm.total_buy_money is None: # total_buy_money为None的话 置为0查询计算 rdm.total_buy_money = 0 rdm.sum_total_money = float(rdm.total_buy_money) - float( rdm.remain_money) if rdm.sum_total_money < 0: # 如果sum_total_money计算出来小于0,则直接置为0 rdm.sum_total_money = 0 # 剩余数量(期末数) rdm.remain_volume = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['REMAIN_VOLUME'] # 流量计状态(期末数) rdm.fm_state = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['FM_STATE'] # RTU状态(期末数) rdm.rtu_state = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['RTU_STATE'] # 阀门控制器状态(期末数) rdm.valve_state = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['VALVE_STATE'] # 供电电压(周期内平均值) rdm.power_voltage = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['POWER_VOLTAGE'] # 电池电压(期末数) rdm.battery_voltage = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['BATTERY_VOLTAGE'] # 电池电量(期末数) rdm.battery_level = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['BATTERY_LEVEL'] # 入口压力(周期内平均值) rdm.press_in = get_average_period(sorted_rm_repeat_sfd_data_list, "PRESSURE") # 出口压力(周期内平均值) rdm.press_out = get_average_period(sorted_rm_repeat_sfd_data_list, "PRESSURE") # 入口温度(周期内平均值) rdm.temp_in = get_average_period(sorted_rm_repeat_sfd_data_list, "TEMPERATURE") # 出口温度(周期内平均值) rdm.temp_out = get_average_period(sorted_rm_repeat_sfd_data_list, "TEMPERATURE") # 信号强度(平均值) rdm.rssi = get_average_period(sorted_rm_repeat_sfd_data_list, "RSSI") # 删除标识符 1正常,9不正常已删除 默认置为1 rdm.srd_status = "1" # print(sorted_rm_repeat_sfd_data_list) # print(len(sorted_rm_repeat_sfd_data_list), sorted_rm_repeat_sfd_data_list[0]['FLMETER_NO'], max_std_sum,min_std_sum, ok_std_sum) # print('----------------------------------------------------------------------------------------') # 写入数据库 is_success = ok_processing_data_insert_into_oracle( rdm) # 将完善好数据的日报表对象rdm传入 print( '----------------------------------------------------------------------------------------' ) # 处理数据完毕 清除临时使用数据 flmeter_no_set_copy.remove(fno) rm_repeat_sfd_data_list.clear() pass return True
def data_processing(data_for_processing, last_data_for_processing, org_id, **kwargs): rm_repeat_sfd_data_list = [] # 用于临时存放已删除重复的字典数据 last_rm_repeat_sfd_data_list = [] # 用于临时存放已删除重复的字典数据 上一天的 上一次的 flmeter_no_set = set( ) # set是一个无序且不重复的元素集合-注意在创建空集合的时候只能使用s=set(),因为s={}创建的是空字典 for x in data_for_processing: flmeter_no_set.add(x['FLMETER_NO']) print('不同的表计号共有个数:', len(flmeter_no_set)) # 19 print('根据表计号,进行数据的再次筛选,处理,写入数据库') print( '----------------------------------------------------------------------------------------' ) # 根据表计号,进行数据的再次筛选,处理,写入数据库 flmeter_no_set_copy = flmeter_no_set.copy() for fno in flmeter_no_set: print(fno) # 以下为处理逻辑 # 首先根据表计号,在原字典数据【data_for_processing】中筛选出所有此表计的数据 for xx in data_for_processing: if xx['FLMETER_NO'] == fno: rm_repeat_sfd_data_list.append(xx) # print(rm_repeat_sfd_data_list) # 在查询当天的上一天数据中 for循环 for xx in last_data_for_processing: if xx['FLMETER_NO'] == fno: last_rm_repeat_sfd_data_list.append(xx) # print(rm_repeat_sfd_data_list) print("此查询区间,当前编号下总共抄表记录:", len(rm_repeat_sfd_data_list)) print("此查询区间,上一天当前编号下总共抄表记录:", len(last_rm_repeat_sfd_data_list)) # 此表计数据字典列表 排序 按照采集时间INSTANT_TIME排序 默认升序 如果要降序排序,可以指定reverse=True sorted_rm_repeat_sfd_data_list = sorted( rm_repeat_sfd_data_list, key=operator.itemgetter('INSTANT_TIME'), reverse=False) # 上一天总抄表记录 排序 按照采集时间INSTANT_TIME排序 默认升序 如果要降序排序,可以指定reverse=True last_sorted_rm_repeat_sfd_data_list = [] if len(last_rm_repeat_sfd_data_list) > 0: last_sorted_rm_repeat_sfd_data_list = sorted( last_rm_repeat_sfd_data_list, key=operator.itemgetter('INSTANT_TIME'), reverse=False) # 排序完成之后,具体字段补充 # 新建一个日报表类,用于接收收据 rdm = ReportDailyModel() # 机构号 rdm.srd_org_id = sorted_rm_repeat_sfd_data_list[0]['SFD_ORG_ID'] # 记录id srd_id 移到line385 # RTU编号 rdm.rtu_no = sorted_rm_repeat_sfd_data_list[0]['RTU_NO'] # 流量计编号 rdm.flmeter_no = sorted_rm_repeat_sfd_data_list[0]['FLMETER_NO'] # 客户编号 rdm.customer_no = sorted_rm_repeat_sfd_data_list[0]['CUSTOMER_NO'] # 得到当前时间datetime now_datetime = datetime.datetime.today() # print(now_datetime.year, now_datetime.month, now_datetime.day, now_datetime.hour, now_datetime.minute,now_datetime.second) # 2019 3 8 12 52 10 # 报表时间 年 月 日 时 rdm.report_time = now_datetime # 将查询时间的年月日 分别赋值到对应字段 # 处理年 rdm.year = str(kwargs['query_datetime'].year) # 处理月 # print(len(str(rdm.month))) # 如果月份小于10 补零 让9变为09月 if len(str(kwargs['query_datetime'].month)) < 2: rdm.month = "0" + str(kwargs['query_datetime'].month) else: rdm.month = str(kwargs['query_datetime'].month) # 处理日 # print(len(str(rdm.day))) # 如果日小于10 补零 让9变为09日 if len(str(kwargs['query_datetime'].day)) < 2: rdm.day = "0" + str(kwargs['query_datetime'].day) else: rdm.day = str(kwargs['query_datetime'].day) # 处理小时 不处理了 togo # print(len(str(rdm.hour))) # 如果小时小于10 补零 让9变为09小时 # if len(str(now_datetime.hour)) < 2: # rdm.hour = "0" + str(now_datetime.hour) # else: # rdm.hour = str(now_datetime.hour) # 记录ID-取自动递增流水号 ssn_org_id = org_id # 传入过来的org_id ssn_key_name = "SCADA_REPORT_DAILY" # 如需修改为其他表的递增流水,请自行修改 ok_srd_id = get_sys_serial_no(db, ssn_org_id, ssn_key_name, rdm.year, rdm.month) # 导入获取流水号方法 print(ok_srd_id) rdm.srd_id = ssn_org_id + rdm.year + rdm.month + ok_srd_id # 标况总量(期末数) rdm.std_sum = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['STD_SUM'] # 默认升序,列表最后一个元素,值最大 # 工况总量(期末数) rdm.work_sum = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['WORK_SUM'] # 默认升序,列表最后一个元素,值最大 # 标况流量(周期内平均值) rdm.std_flow = get_average_period(sorted_rm_repeat_sfd_data_list, "STD_FLOW") # 使用周期内平均值计算方法 计算平均值 # 工况流量(周期内平均值) rdm.work_flow = get_average_period(sorted_rm_repeat_sfd_data_list, "WORK_FLOW") # 温度(周期内平均值) rdm.temperature = get_average_period(sorted_rm_repeat_sfd_data_list, "TEMPERATURE") # 压力(周期内平均值) rdm.pressure = get_average_period(sorted_rm_repeat_sfd_data_list, "PRESSURE") # 单价(期末数) rdm.price = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['PRICE'] # 周期内工况使用量(周期内期末数-期初数) max_work_sum = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['WORK_SUM'] min_work_sum = sorted_rm_repeat_sfd_data_list[0]['WORK_SUM'] if max_work_sum is None: max_work_sum = str(0) if min_work_sum is None: min_work_sum = str(0) if len(last_rm_repeat_sfd_data_list) > 0: # (本期期末数-上期期末数) last_max_work_sum = last_sorted_rm_repeat_sfd_data_list[ len(last_rm_repeat_sfd_data_list) - 1]['WORK_SUM'] if last_max_work_sum is None: last_max_work_sum = str(0) rdm.use_volume_work = str( round(float(max_work_sum) - float(last_max_work_sum), 2)) else: # (本周期内期末数-本周期内期初数) rdm.use_volume_work = str( round(float(max_work_sum) - float(min_work_sum), 2)) if float(rdm.use_volume_work) < 0: # 如果use_volume_work计算出来小于0,则直接置为0 rdm.use_volume_work = str(0) print(rdm.flmeter_no, "☆ use_volume_work <0 置为0") # 周期内标况使用量(周期内期末数 - 期初数) max_std_sum = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['SUM_TOTAL'] # 默认升序,列表最后一个元素,值最大 min_std_sum = sorted_rm_repeat_sfd_data_list[0][ 'SUM_TOTAL'] # 默认升序,列表第一个元素,值最小 if max_std_sum is None: max_std_sum = str(0) if min_std_sum is None: min_std_sum = str(0) if len(last_rm_repeat_sfd_data_list) > 0: # (本期期末数-上期期末数) if last_sorted_rm_repeat_sfd_data_list[ len(last_rm_repeat_sfd_data_list) - 1]['SUM_TOTAL'] is None: last_sorted_rm_repeat_sfd_data_list[ len(last_rm_repeat_sfd_data_list) - 1]['SUM_TOTAL'] = str(0) rdm.use_volume_std = str( round( float(max_std_sum) - float(last_sorted_rm_repeat_sfd_data_list[ len(last_rm_repeat_sfd_data_list) - 1]['SUM_TOTAL']), 2)) else: # 周期内标况使用量(周期内期末数-期初数) rdm.use_volume_std = str( round(float(max_std_sum) - float(min_std_sum), 2)) if float(rdm.use_volume_std) < 0: # 如果use_volume_std计算出来小于0,则直接置为0 rdm.use_volume_std = str(0) print(rdm.flmeter_no, "☆ use_volume_std <0 置为0") # 周期内使用额(单价(期末数)* 周期内标况使用量)结果四舍五入 # print(rdm.use_volume_std,rdm.price) if rdm.price is None: rdm.price = str(0) rdm.use_money = str( round((float(rdm.use_volume_std) * float(rdm.price)), 2)) # 总累积使用量(期末数) rdm.sum_total_volume = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['SUM_TOTAL'] if rdm.sum_total_volume is None: rdm.sum_total_volume = str(0) print(rdm.flmeter_no, "☆ sum_total_volume is None 置为0") # 累购气量(期末数) rdm.total_buy_volume = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['TOTAL_BUY_VOLUME'] # 累购金额(期末数) rdm.total_buy_money = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['TOTAL_BUY_MONEY'] # 剩余金额(期末数) rdm.remain_money = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['REMAIN_MONEY'] # 总累计使用金额(期末累购金额-期末剩余金额) if rdm.total_buy_money is None: # total_buy_money为None的话 置为0查询计算 rdm.total_buy_money = str(0) if rdm.remain_money is None: # remain_money为None的话 置为0查询计算 rdm.remain_money = str(0) rdm.sum_total_money = float(rdm.total_buy_money) - float( rdm.remain_money) if rdm.sum_total_money < 0: # 如果sum_total_money计算出来小于0,则直接置为0 rdm.sum_total_money = str(0) print(rdm.flmeter_no, "☆ sum_total_money <0 置为0") # 剩余数量(期末数) rdm.remain_volume = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['REMAIN_VOLUME'] # 流量计(表)状态(期末数) rdm.fm_state = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['FM_STATE'] # 表状态解析(按位解析)(期末数) rdm.fm_state_msg = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['FM_STATE_MSG'] # RTU状态(期末数) rdm.rtu_state = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['RTU_STATE'] # RTU状态解析(按字节解析)(期末数) rdm.rtu_state_msg = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['RTU_STATE_MSG'] # 阀门控制器状态(期末数) rdm.valve_state = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['VALVE_STATE'] # 阀门控制器状态解析(期末数) rdm.valve_state_msg = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['VALVE_STATE_MSG'] # 供电电压(周期内平均值) rdm.power_voltage = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['POWER_VOLTAGE'] # 电池电压(期末数) rdm.battery_voltage = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['BATTERY_VOLTAGE'] # 电池电量(期末数) rdm.battery_level = sorted_rm_repeat_sfd_data_list[ len(sorted_rm_repeat_sfd_data_list) - 1]['BATTERY_LEVEL'] # 入口压力(周期内平均值) rdm.press_in = get_average_period(sorted_rm_repeat_sfd_data_list, "PRESSURE") # 出口压力(周期内平均值) rdm.press_out = get_average_period(sorted_rm_repeat_sfd_data_list, "PRESSURE") # 入口温度(周期内平均值) rdm.temp_in = get_average_period(sorted_rm_repeat_sfd_data_list, "TEMPERATURE") # 出口温度(周期内平均值) rdm.temp_out = get_average_period(sorted_rm_repeat_sfd_data_list, "TEMPERATURE") # 信号强度(平均值) rdm.rssi = get_average_period(sorted_rm_repeat_sfd_data_list, "RSSI") # 删除标识符 1正常,9不正常已删除 默认置为1 rdm.srd_status = "1" # print(sorted_rm_repeat_sfd_data_list) # print(len(sorted_rm_repeat_sfd_data_list), sorted_rm_repeat_sfd_data_list[0]['FLMETER_NO'], max_std_sum,min_std_sum, ok_std_sum) # print('----------------------------------------------------------------------------------------') # 写入数据库 is_success = ok_processing_data_insert_into_oracle( rdm) # 将完善好数据的日报表对象rdm传入 print( '----------------------------------------------------------------------------------------' ) # 处理数据完毕 清除临时使用数据 flmeter_no_set_copy.remove(fno) rm_repeat_sfd_data_list.clear() last_rm_repeat_sfd_data_list.clear() pass return True
def fake_data_processing(data_for_processing, last_data_for_processing, org_id, **kwargs): # 通过机构号查出此机构所有的流量计编号 从SCADA_FLMETER_DATA_CUR表拿 cur_list = get_all_flmeters_cur_by_orgid_for_run_py_command_script_from_select_db( org_id) # 搞个set用来存储所有的cur表号 flmeter_no_set_from_cur = set() for cl in cur_list: flmeter_no_set_from_cur.add(cl['FLMETER_NO']) print('flmeter_no_set_from_cur 不同的表计号共有个数:', len(flmeter_no_set_from_cur)) # 去除flmeter_no_set中有的流量计编号 这里不用去除 都是需要做假数据的表 # 剩下的流量计编号根据日期和机构号插入空数据行 行中只要有 机构号 流量计编号 年月日 删除标识符为1即可 print('需要假数据处理的 flmeter_no_set_from_cur 需要做假数据的 不同的表计号共有个数:', len(flmeter_no_set_from_cur)) print( '----------------------------------------------------------------------------------------' ) print('根据表计号,进行假数据的再次筛选,处理,写入数据库') print( '----------------------------------------------------------------------------------------' ) # 开始处理假数据入库 # 如果 flmeter_no_set_from_cur 长度0 则是代表无需做假数据的表 直接return True 终止程序向下执行 if len(flmeter_no_set_from_cur) == 0: print('无需做假数据的表 直接return True 终止程序向下执行') return True # 走到这步 代表 有需要 假数据入库的表 print('开始处理假数据入库') # 根据flmeter_no_set_from_cur表计号,进行数据的再次筛选,处理,写入数据库 flmeter_no_set_from_cur_copy = flmeter_no_set_from_cur.copy() for fno in flmeter_no_set_from_cur: print("☆ fake_data_processing 处理假数据 流量计编号 ", fno) # 新建一个日报表类,用于接收收据 作假日报表数据 rdm = ReportDailyModel() # 机构号 rdm.srd_org_id = org_id # 记录id srd_id 移到line426 # RTU编号 # rdm.rtu_no = "" # 流量计编号 rdm.flmeter_no = fno # 客户编号 # rdm.customer_no = "" # 得到当前时间datetime now_datetime = datetime.datetime.today() # print(now_datetime.year, now_datetime.month, now_datetime.day, now_datetime.hour, now_datetime.minute,now_datetime.second) # 2019 3 8 12 52 10 # 报表时间 年 月 日 时 rdm.report_time = now_datetime # 将查询时间的年月日 分别赋值到对应字段 # 处理年 rdm.year = str(kwargs['query_datetime'].year) # 处理月 # print(len(str(rdm.month))) # 如果月份小于10 补零 让9变为09月 if len(str(kwargs['query_datetime'].month)) < 2: rdm.month = "0" + str(kwargs['query_datetime'].month) else: rdm.month = str(kwargs['query_datetime'].month) # 处理日 # print(len(str(rdm.day))) # 如果日小于10 补零 让9变为09日 if len(str(kwargs['query_datetime'].day)) < 2: rdm.day = "0" + str(kwargs['query_datetime'].day) else: rdm.day = str(kwargs['query_datetime'].day) # 处理小时 不处理了 togo # print(len(str(rdm.hour))) # 如果小时小于10 补零 让9变为09小时 # if len(str(now_datetime.hour)) < 2: # rdm.hour = "0" + str(now_datetime.hour) # else: # rdm.hour = str(now_datetime.hour) # 记录ID-取自动递增流水号 ssn_org_id = org_id # 传入过来的org_id ssn_key_name = "SCADA_REPORT_DAILY" # 如需修改为其他表的递增流水,请自行修改 ok_srd_id = get_sys_serial_no(db, ssn_org_id, ssn_key_name, rdm.year, rdm.month) # 导入获取流水号方法 print(ok_srd_id) rdm.srd_id = ssn_org_id + rdm.year + rdm.month + ok_srd_id # 删除标识符 1正常,9不正常已删除 默认置为1 rdm.srd_status = "1" # 写入数据库 is_success = ok_processing_data_insert_into_oracle( rdm) # 将完善好数据的日报表对象rdm传入 print( '----------------------------------------------------------------------------------------' ) # 处理数据完毕 清除临时使用数据 flmeter_no_set_from_cur_copy.remove(fno) pass # 什么都处理完成了 return True