155 lines
5.5 KiB
Python
155 lines
5.5 KiB
Python
# Author: Lee Wu Love Lele
|
||
# Datetime: 2024/12/6 19:53
|
||
|
||
"""
|
||
SELECT ff.reader_code FROM farm_field AS ff
|
||
WHERE ff.is_deleted = 1
|
||
AND ff.reader_code IS NOT NULL AND ff.reader_code != '' AND ff.rfid_reader_code IS NOT NULL AND ff.rfid_reader_code != ''
|
||
GROUP BY ff.reader_code
|
||
"""
|
||
QUERY_DEVICES = "SELECT ff.reader_code FROM farm_field AS ff WHERE ff.is_deleted = 1 AND ff.reader_code IS NOT NULL AND ff.reader_code != '' AND ff.rfid_reader_code IS NOT NULL AND ff.rfid_reader_code != '' GROUP BY ff.reader_code;"
|
||
|
||
QUERY_EAR_TAG_ID_BY_RFID = """
|
||
SELECT sb.shell_subject_code
|
||
FROM subject_base AS sb
|
||
WHERE is_deleted = 1
|
||
AND lot_subject_code = %s
|
||
AND shell_subject_code != ''
|
||
"""
|
||
|
||
"""
|
||
查询本地日志中是否分析过地磅或者分析到了什么时间
|
||
"""
|
||
QUERY_EXEC_LOG = "SELECT * FROM exec_log AS el WHERE el.time_std = %s;"
|
||
|
||
INSERT_WEIGHT_WAVE = """
|
||
INSERT INTO weight_wave (floor_scale_id, start_time, end_time, time_std , max_frq_rfid , max_frq, weight, create_time,last_update_time)
|
||
VALUES (%s,%s,%s,%s,%s,%s,%s,NOW(),NOW())
|
||
"""
|
||
|
||
INSERT_RIFD_FRQ = """
|
||
INSERT INTO rfid_value_frq(id_weight_wave,ear_tag,rfid,rfid_frq,time_std,create_time,last_update_time)
|
||
VALUES (%s,%s,%s,%s,%s,%s,%s)
|
||
"""
|
||
|
||
|
||
def sql_delete_weight_wave_all():
|
||
return "TRUNCATE TABLE weight_wave"
|
||
|
||
|
||
def sql_delete_weight_wave_by_time_std():
|
||
return "DELETE FROM weight_wave WHERE time_std = %s;"
|
||
|
||
|
||
DELETE_RFID_FRQ = "TRUNCATE TABLE rfid_value_frq"
|
||
|
||
|
||
def sql_query_buy_weight_by_rfid():
|
||
return "SELECT buy_weight FROM subject_base WHERE lot_subject_code = %s;"
|
||
|
||
|
||
def sql_query_logs_count_group_by_biz_data(reader_names=None):
|
||
"""
|
||
耳标RFID识别结果频次,biz_data返回的是RFID
|
||
:param reader_names: RFID Reader ID (tuple)
|
||
:return:
|
||
"""
|
||
placeholders = ', '.join(['%s'] * len(reader_names))
|
||
return f"SELECT biz_data, COUNT(*) AS repeat_count FROM notify_log WHERE notify_group = 'rfidCallback' AND reader_name IN ({placeholders}) AND biz_time BETWEEN %s AND %s GROUP BY biz_data ORDER BY repeat_count DESC;"
|
||
|
||
|
||
# def sql_query_logs_by_reader_name(reader_names=None):
|
||
# """
|
||
# 根据设备ID查询全时间周期
|
||
# :param reader_name: (tuple)
|
||
# :return:
|
||
# """
|
||
# placeholders = ', '.join(['%s'] * len(reader_names))
|
||
# return f"SELECT nl.biz_time, nl.biz_data, nl.create_time, nl.relation_reader_name FROM notify_log AS nl WHERE reader_name IN ({placeholders}) AND is_deleted = 1 ORDER BY biz_time ASC, create_time ASC;"
|
||
|
||
|
||
def sql_query_logs_by_reader_name_and_duartion(reader_names=None, time_std=1):
|
||
"""
|
||
根据设备ID查询特定时间段
|
||
:param reader_name: (tuple)
|
||
:return:
|
||
"""
|
||
placeholders = ', '.join(['%s'] * len(reader_names))
|
||
first_order = 'biz_data'
|
||
second_order = 'create_time'
|
||
time = 'biz_time'
|
||
if time_std == 1:
|
||
pass
|
||
elif time_std == 2:
|
||
first_order = 'create_time'
|
||
second_order = 'biz_data'
|
||
time = 'create_time'
|
||
pass
|
||
return f"SELECT nl.notify_id, nl.biz_data ,nl.biz_time, nl.create_time, nl.relation_reader_name FROM notify_log AS nl WHERE reader_name IN({placeholders}) AND is_deleted = 1 AND {time} BETWEEN %s AND %s ORDER BY {first_order} ASC, {second_order} ASC, notify_id ASC;"
|
||
|
||
|
||
def sql_query_logs_group_by_relation_reader_name(reader_names=None):
|
||
"""
|
||
根据地磅ID查询日志中对应的RFIDReaderID出现次数,识别一个时间段中地磅ID与RFIDReaderID对应关系的变化。
|
||
:param reader_name: (tuple)
|
||
:return:
|
||
"""
|
||
placeholders = ', '.join(['%s'] * len(reader_names))
|
||
return f"SELECT relation_reader_name, COUNT(*) AS repeat_count FROM notify_log WHERE reader_name IN ({placeholders}) AND biz_time BETWEEN %s AND %s GROUP BY relation_reader_name ORDER BY repeat_count DESC;"
|
||
|
||
|
||
def sql_insert_rfid_reader():
|
||
return "INSERT INTO relation_rfid_reader(id_weight_wave,reader_name,create_time,last_update_time) VALUES (%s,%s,NOW(),NOW());"
|
||
|
||
|
||
def sql_insert_exec_log():
|
||
return "INSERT INTO exec_log(floor_scale_id,start_time,end_time,time_std,create_time,last_update_time) VALUES(%s,%s,%s,%s,NOW(),NOW());"
|
||
|
||
|
||
def sql_delete_exec_log_all():
|
||
return "TRUNCATE TABLE exec_log;"
|
||
|
||
|
||
def sql_delete_exec_log_by_time_std():
|
||
return "DELETE FROM weight_wave WHERE time_std = %s;"
|
||
|
||
|
||
def sql_delete_relatioin_rfid_reader():
|
||
return "TRUNCATE TABLE relation_rfid_reader;"
|
||
|
||
|
||
def sql_update_exec_log():
|
||
return "UPDATE exec_log SET end_time = %s, last_update_time = NOW() WHERE floor_scale_id = %s;"
|
||
|
||
|
||
def sql_query_weight_wave_by_floor_scale_id():
|
||
"""
|
||
通过地磅ID查询全部体重波
|
||
:return:
|
||
"""
|
||
return "SELECT * FROM weight_wave where floor_scale_id = %s"
|
||
|
||
|
||
def sql_query_weight_wave_by_rfid():
|
||
"""
|
||
最高出现频率的RFID查询全部体重波
|
||
:return:
|
||
"""
|
||
return "SELECT * FROM weight_wave where max_frq_rfid = %s"
|
||
|
||
|
||
def sql_query_relation_reader_by_id_weight_wave():
|
||
return "SELECT * FROM relation_rfid_reader AS rrr WHERE rrr.id_weight_wave = %s"
|
||
|
||
|
||
def sql_query_weight_wave_group_by_rfid():
|
||
return "SELECT max_frq_rfid, COUNT(*) AS repeat_count FROM weight_wave WHERE time_std = %s GROUP BY max_frq_rfid;"
|
||
|
||
|
||
def sql_query_weight_wave_by_rfid():
|
||
return "SELECT * FROM weight_wave WHERE max_frq_rfid = %s AND time_std = %s ORDER BY start_time ASC;"
|
||
|
||
|
||
def sql_query_rfid_all_in_cattle():
|
||
return "SELECT subject_id AS id ,lot_subject_code AS rfid, shell_subject_code AS ear_tag FROM subject_base WHERE is_deleted = 1 AND buy_weight != 0 AND lot_subject_code != '' AND shell_subject_code != '';"
|