|
|
@@ -560,7 +560,7 @@ class Ui_MainWindow(object):
|
|
|
self.startTimeEdit = QtWidgets.QDateTimeEdit(self.centralwidget)
|
|
|
self.startTimeEdit.setGeometry(QtCore.QRect(310, 210, 151, 21))
|
|
|
self.startTimeEdit.setMaximumDateTime(QtCore.QDateTime(QtCore.QDate(2025, 12, 31), QtCore.QTime(23, 59, 59)))
|
|
|
- self.startTimeEdit.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(2023, 4, 24), QtCore.QTime(0, 0, 0)))
|
|
|
+ self.startTimeEdit.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(2023, 8, 29), QtCore.QTime(20, 0, 0)))
|
|
|
self.startTimeEdit.setObjectName("startTimeEdit")
|
|
|
self.endTimeLabel = QtWidgets.QLabel(self.centralwidget)
|
|
|
self.endTimeLabel.setGeometry(QtCore.QRect(180, 250, 121, 21))
|
|
|
@@ -568,7 +568,7 @@ class Ui_MainWindow(object):
|
|
|
self.endTimeEdit = QtWidgets.QDateTimeEdit(self.centralwidget)
|
|
|
self.endTimeEdit.setGeometry(QtCore.QRect(310, 250, 151, 21))
|
|
|
self.endTimeEdit.setMaximumDateTime(QtCore.QDateTime(QtCore.QDate(2025, 12, 31), QtCore.QTime(23, 59, 59)))
|
|
|
- self.endTimeEdit.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(2023, 4, 25), QtCore.QTime(0, 0, 0)))
|
|
|
+ self.endTimeEdit.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(2023, 8, 30), QtCore.QTime(10, 0, 0)))
|
|
|
self.endTimeEdit.setObjectName("endTimeEdit")
|
|
|
self.platLabel = QtWidgets.QLabel(self.centralwidget)
|
|
|
self.platLabel.setGeometry(QtCore.QRect(180, 290, 121, 21))
|
|
|
@@ -667,7 +667,6 @@ class Ui_MainWindow(object):
|
|
|
for row in range(2, row_num + 1):
|
|
|
cell = sheet.cell(row, 1)
|
|
|
try:
|
|
|
- print(cell.value, "----")
|
|
|
cell_value = str(cell.value).strip()
|
|
|
if cell_value:
|
|
|
d_list.append(cell.value)
|
|
|
@@ -681,7 +680,6 @@ class Ui_MainWindow(object):
|
|
|
ncols = sheet_object.ncols
|
|
|
d_list = []
|
|
|
col_value = sheet_object.col_values(0)
|
|
|
- print(col_value, "--------")
|
|
|
for d_i in col_value[1:]:
|
|
|
try:
|
|
|
d_i_v = str(d_i).strip()
|
|
|
@@ -906,10 +904,6 @@ class SCDThread(QtCore.QThread):
|
|
|
title_name_set.update(n_list)
|
|
|
qxz_conf_dict[device_id] = config_dict
|
|
|
title_name_list = sorted(list(title_name_set))
|
|
|
- for i in title_name_list:
|
|
|
- print(i)
|
|
|
- for k, v in qxz_conf_dict.items():
|
|
|
- print(k, v)
|
|
|
return title_name_list, qxz_conf_dict
|
|
|
|
|
|
def get_qxz_element_data(self, device_id, conf_dict):
|
|
|
@@ -928,24 +922,24 @@ class SCDThread(QtCore.QThread):
|
|
|
"args": ["$uptime_list"],
|
|
|
"lang": "js",
|
|
|
"body": """
|
|
|
-function(uptime_list){
|
|
|
- let old_uptime = uptime_list[0];
|
|
|
- let uptime_20 = 0;
|
|
|
- let uptime_40 = 0;
|
|
|
- for (let i = 1; i < uptime_list.length; i++) {
|
|
|
- let uptime = uptime_list[i];
|
|
|
- let diff_time = uptime - old_uptime;
|
|
|
-
|
|
|
- if (diff_time < 1200){
|
|
|
- uptime_20 += 1;
|
|
|
- } else if (diff_time > 2400){
|
|
|
- uptime_40 += 1;
|
|
|
- }
|
|
|
- old_uptime = uptime;
|
|
|
- }
|
|
|
- return {"uptime_20": uptime_20, "uptime_40": uptime_40}
|
|
|
-}
|
|
|
-"""
|
|
|
+ function(uptime_list){
|
|
|
+ let old_uptime = uptime_list[0];
|
|
|
+ let uptime_20 = 0;
|
|
|
+ let uptime_40 = 0;
|
|
|
+ for (let i = 1; i < uptime_list.length; i++) {
|
|
|
+ let uptime = uptime_list[i];
|
|
|
+ let diff_time = uptime - old_uptime;
|
|
|
+
|
|
|
+ if (diff_time < 1200){
|
|
|
+ uptime_20 += 1;
|
|
|
+ } else if (diff_time > 2400){
|
|
|
+ uptime_40 += 1;
|
|
|
+ }
|
|
|
+ old_uptime = uptime;
|
|
|
+ }
|
|
|
+ return {"uptime_20": uptime_20, "uptime_40": uptime_40}
|
|
|
+ }
|
|
|
+ """
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1012,7 +1006,15 @@ function(uptime_list){
|
|
|
"k": "$$item.k",
|
|
|
"v": {
|
|
|
"$toInt": {
|
|
|
- "$toDouble": {"$arrayElemAt": [{"$split": ["$$item.v", "#"]}, 0]}
|
|
|
+ "$convert": {
|
|
|
+ "input": {"$arrayElemAt": [{"$split": ["$$item.v", "#"]}, 0]},
|
|
|
+ "to": "int",
|
|
|
+ "onError": 0,
|
|
|
+ "onNull": 0
|
|
|
+ }
|
|
|
+ # "$toDouble": {
|
|
|
+ # "$arrayElemAt": [{"$split": ["$$item.v", "#"]}, 0]
|
|
|
+ # }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1035,7 +1037,7 @@ function(uptime_list){
|
|
|
"$project": project_dict
|
|
|
}
|
|
|
]
|
|
|
-
|
|
|
+ print("执行之前...")
|
|
|
cursor = self.db.sa_qxz_data.aggregate(pipeline, allowDiskUse=True)
|
|
|
result = {k: v for item in cursor for k, v in item.items()}
|
|
|
return result
|
|
|
@@ -1117,7 +1119,6 @@ function(uptime_list){
|
|
|
]
|
|
|
cursor = self.qxz_info_record_collection.aggregate(pipeline, allowDiskUse=True)
|
|
|
result = {item['device_id']: item for item in cursor}
|
|
|
- # print("***********", result)
|
|
|
return result
|
|
|
|
|
|
def get_qxz_device_data(self):
|
|
|
@@ -1303,6 +1304,8 @@ function(uptime_list){
|
|
|
title_name_list.append(n)
|
|
|
|
|
|
title_name_list.append("位置信息#")
|
|
|
+ # title_name_list.append("热通量#")
|
|
|
+
|
|
|
title_name_list.append("单台合格数#")
|
|
|
|
|
|
device_data_dict = self.get_qxz_device_data()
|
|
|
@@ -1344,7 +1347,6 @@ function(uptime_list){
|
|
|
except KeyError as e:
|
|
|
value = "无判定条件"
|
|
|
worksheet.write(3, index, value, default_style)
|
|
|
-
|
|
|
row_index = 4
|
|
|
qualified = 0
|
|
|
for device_id in self.device_list:
|
|
|
@@ -1352,6 +1354,7 @@ function(uptime_list){
|
|
|
element_dict = self.parse_data(device_id, qxz_conf_dict, vr_dict, device_data_dict, sim_data)
|
|
|
device_config = self.db.sa_qxz_conf.find_one({"device_id": device_id}, {'_id':0,'id':0})
|
|
|
device_data = self.db.sa_qxz_data.find({"device_id": device_id, "uptime": {"$gte": self.start_time, "$lte": self.end_time}})
|
|
|
+
|
|
|
# device_machine = self.db.sa_device.find_one({"device_id": device_id})
|
|
|
not_qualified = 0
|
|
|
lng = 0
|
|
|
@@ -1398,6 +1401,26 @@ function(uptime_list){
|
|
|
rt = {'status': 1, 'msg': f'最大值:{str(max(idevice_data))},最小值:{str(min(idevice_data))}'}
|
|
|
else:
|
|
|
rt = {'status': 0, 'msg': f'最大值:{str(max(idevice_data))},最小值:{str(min(idevice_data))}'}
|
|
|
+ # elif k == "热通量#":
|
|
|
+ # # 从数据中解析
|
|
|
+ # idevice_key_rain = ""
|
|
|
+ # device_config = dict(device_config)
|
|
|
+ # for iname, ivalue in device_config.items():
|
|
|
+ # if ivalue and isinstance(ivalue, str):
|
|
|
+ # if "热通量" in ivalue:
|
|
|
+ # idevice_key_rain = iname
|
|
|
+ # print(idevice_key_rain)
|
|
|
+ # idevice_data = []
|
|
|
+ # for d in device_data:
|
|
|
+ # idevice_data.append(float((d.get(idevice_key_rain)).split("#")[0]))
|
|
|
+ # if idevice_data:
|
|
|
+ # if (0 not in idevice_data) and max(idevice_data) < 500 and min(idevice_data) > -500:
|
|
|
+ # rt = {'status': 1, 'msg': f'最大值:{str(max(idevice_data))},最小值:{str(min(idevice_data))}'}
|
|
|
+ # else:
|
|
|
+ # rt = {'status': 0, 'msg': f'最大值:{str(max(idevice_data))},最小值:{str(min(idevice_data))}'}
|
|
|
+ # status, msg = rt['status'], rt['msg']
|
|
|
+ # else:
|
|
|
+ # status, msg = 0, "不合格"
|
|
|
else:
|
|
|
rt = self.cond.cond_msg_dict[key](value)
|
|
|
status, msg = rt['status'], rt['msg']
|
|
|
@@ -1421,6 +1444,9 @@ function(uptime_list){
|
|
|
else:
|
|
|
status = 0
|
|
|
msg = result
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
if k == "单台合格数#":
|
|
|
status, msg = 0, f"不合格: {not_qualified}"
|
|
|
if not_qualified == 0:
|