yf_yzl 2 gadi atpakaļ
vecāks
revīzija
e33a707187

BIN
1_0830.xlsx


BIN
1_0831.xlsx


BIN
bigdata_django/zhijian/__pycache__/cbd_zhijian.cpython-36.pyc


+ 7 - 5
bigdata_django/zhijian/cbd_zhijian.py

@@ -839,13 +839,13 @@ class CBDThread(QtCore.QThread):
         # 经度
         lng_pass = [i for i in lng_lst if 113.76194444 >= i or i >= 113.77861111]
         if len(lng_pass):
-            lng_jg = [0,f"{str(min(lng_lst))}~{str(max(lng_lst))},不符合条件的数据有{str(len(lng_pass))}条"]
+            lng_jg = [4,f"{str(min(lng_lst))}~{str(max(lng_lst))},不符合条件的数据有{str(len(lng_pass))}条"]
         else:
             lng_jg = [1, f"{str(min(lng_lst))}~{str(max(lng_lst))}"]
         # 纬度 35.02083333,35.0375
         lat_pass = [i for i in lat_lst if 35.02083333 >=i or i >= 35.0375]
         if len(lat_pass):
-            lat_jg = [0,f"{str(min(lat_lst))}~{str(max(lat_lst))},不符合条件的数据有{str(len(lat_pass))}条"]
+            lat_jg = [4,f"{str(min(lat_lst))}~{str(max(lat_lst))},不符合条件的数据有{str(len(lat_pass))}条"]
         else:
             lat_jg = [1, f"{str(min(lat_lst))}~{str(max(lat_lst))}"]
         # 工作状态切换
@@ -859,7 +859,7 @@ class CBDThread(QtCore.QThread):
         else:
             work_jg = [0, f"无待机/工作转换"]
         # 电路板输入电压
-        v_vs_pass = [i for i in v_vs_lst if 22 >= i or i >= 30]
+        v_vs_pass = [i for i in v_vs_lst if 22 > i or i > 30]
         if len(v_vs_pass):
             v_vs = [0, f"{str(min(v_vs_lst))}~{str(max(v_vs_lst))},不合格数据3条"]
         else:
@@ -1383,8 +1383,10 @@ class CBDThread(QtCore.QThread):
                                 worksheet.write(index+4,clo_index+1,verify_[1],formal_style)
                             else:
                                 worksheet.write(index+4,clo_index+1,verify_[1],common_style)
-                        if 0 in danji_verify:
-                            worksheet.write(index+4,19,"不合格",error_style)
+                        if 4 in danji_verify and (0 not in danji_verify):
+                            worksheet.write(index+4,19,"可接受", formal_style)
+                        elif 0 in danji_verify:
+                            worksheet.write(index+4,19,"不合格", error_style)
                         else:
                             formal_counts += 1
                             worksheet.write(index+4,19,"合格",formal_style)

+ 56 - 30
bigdata_django/zhijian/qxz_zhijian_new.py

@@ -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:

BIN
requirements.txt


BIN
热通量增加测试.xlsx