Report_Generate_Server/tools/defines.py

246 lines
8.1 KiB
Python
Raw Normal View History

DEFAULT_BASE_INFO = { #项目基本信息
"turbine_id" : None,
}
DEFAULT_BAOGAO_INFO = {
#目录
'shengcheng_dir': "", #报告生成的路径
"dianxing_enum" : "TYPICAL",
"quexian_enum" : "DEFECT",
2025-07-09 17:19:59 +08:00
"other_enum" : "OTHER",
"waibu_enum" : "out_work",
"neibu_enum" : "in_work",
"fanglei_enum" : "lightning-protection-work",
"if_waibu" : True,
"if_neibu" : True,
"if_fanglei" : True,
"userName" : "admin",
"baogaoCheck" : "未审核",
'key_words': '缺,损,裂,脱,污', #关键字,用于汇总图的名字包含缺陷时标红,匹配逻辑为正则匹配单个字则为红 后续可优化
"shigong_fangan" : None,
'jiancha_renyuan': '张三',
"check_date" : None,
}
class SHIGONG_FANGAN_ENUM :
class WAIBU:
GONGZUO_NEIRONG = "无人机叶片外观巡检"
RENYUAN_PEIZHI = "1人主检飞手1人"
SHEBEI_PEIZHI = "1、大疆无人机1台M350rtkM300rtkM30TM30精灵4PRO2、大疆精灵4PRO+索尼A7R2机身+索尼200-600mm镜头/适马150-600mm镜头"
SHIGONG_FANGAN = ""
class NEIBU:
GONGZUO_NEIRONG = "叶片内部检查"
RENYUAN_PEIZHI = "2人轮毂作业检查2人"
SHEBEI_PEIZHI = "1、人工检查照明设备2套视频记录手机2台含氧量监测仪1台电动扳手2套卷尺1个。2、爬壁机器人检查无人作业校车+视频图传1套照明设备2套含氧量监测仪1台电动扳手2套卷尺1个。"
SHIGONG_FANGAN = ""
class FANGLEI:
class YEPIAN:
GONGZUO_NEIRONG = "无人机叶片防雷导通测试"
RENYUAN_PEIZHI = "2人主检飞手1人副检抄表1人"
SHEBEI_PEIZHI = "1四轴电阻无人机1套电子微欧计1台视频记录手机1台"
SHIGONG_FANGAN = ""
class DIAOLAN:
GONGZUO_NEIRONG = "无人吊篮叶片导通测试(含机舱设备、)"
RENYUAN_PEIZHI = "3人轮毂机舱作业1人揽风绳作业1人无人设备操作员及抄表1人"
SHEBEI_PEIZHI = "无人吊篮系统1套爬绳器+接触平台、电子微欧计1套视频记录手机1台对讲机2台"
SHIGONG_FANGAN = ""
class SHESHI:
GONGZUO_NEIRONG = "风机基础、办公楼、变电站防雷接地检测及浪涌保护器测试"
RENYUAN_PEIZHI = "1人抄表人员1人检测人员1人监护1人。"
SHEBEI_PEIZHI = "接地电阻测试仪1套、SPD测试仪1套、对讲机2个、"
SHIGONG_FANGAN = ""
FEISHOURENYUAN_PEIZHI = "1人主检飞手1人"
LUNGUZUOYERENYUAN_PEIZHI = "2人轮毂作业检查2人"
from docx.oxml.ns import qn
from docx.shared import Pt
class TEMPLATE_HEADER:
class JINFENG_HEADER:
ENUM = 'JF'
PIC_DIR = './muban/jf_header.png'
PARA =' Q/GW 3LC-FJFW21-2022-BY14'
QN = qn('w:eastAsia')
FONT = 'Arial'
PT = Pt(9)
class FANGLEI:
TYPICAL_LIST = [
"防雷导通测试\n叶尖至塔基测试阻值({Resistance}",
"防雷导通测试\n叶尖与无人吊篮平台接触良好",
"防雷导通测试\n叶尖至塔基检测导线线组值"
]
class WAIBU:
TYPICAL_LIST = [
"外观检查(迎、背风面是否有漆面脱落、裂纹等)",
"外观检查(前、后缘;如前缘漆面脱落、合模缝开裂等)",
"叶片防雨环检查",
"叶尖接闪器、排水孔检查,如接闪器损伤、雷击熔融;流水孔堵塞",
]
class NEIBU:
TYPICAL_LIST = [
"叶片铭牌",
"根部检查(挡板、盖板检查是否损坏、金属件是否丢失等)",
"避雷系统检查(避雷线是否断裂、雷电记录卡是否缺失等)",
"前后缘检查(前缘粘接及补强是否有开裂、裂纹)",
"上下蒙皮检查(蒙皮是否有褶皱、发白、折痕、分层、裂纹等)",
"腹板检查(腹板是否变形、偏移,腹板粘接是否开裂、裂纹等)",
]
class DT_HEADER:
ENUM = 'DT'
PIC_DIR = './muban/dt_header.png'
PARA = ''
QN = qn('w:eastAsia')
FONT = '宋体(中文正文)'
PT = Pt(9)
MUBAN_DIR = 'muban'
JF_HEIGHT = 297
JF_WIDTH = 210
JF_L_MARGIN = 20
JF_R_MARGIN = 20
JF_T_MARGIN = 10
JF_B_MARGIN = 10
JINFENG_COMPANY = "金风科技股份有限公司"
#json表格样式宏定义
STYLE_CONFIG = {
"alignment": "center",
"font": {
"name": "宋体",
"size": 8,
"bold": False,
},
"border": {
"top": {"style": "single", "size": "4", "color": "000000"},
"bottom": {"style": "single", "size": "4", "color": "000000"},
"left": {"style": "single", "size": "4", "color": "000000"},
"right": {"style": "single", "size": "4", "color": "000000"}
},
"shading": {
"color": "FFFFFF"
}
}
TITLE_STYLE_CONFIG = {
"alignment": "center",
"font": {
"name": "宋体",
"size": 9,
"bold": False,
},
"border": {
"top": {"style": "single", "size": "4", "color": "000000"},
"bottom": {"style": "single", "size": "4", "color": "000000"},
"left": {"style": "single", "size": "4", "color": "000000"},
"right": {"style": "single", "size": "4", "color": "000000"}
},
"shading": {
"color": "FFFFFF"
}
}
DEFECT_TABLE_TITLE = '叶片故障信息表'
DEFECT_TABLE = ['机组号', '叶片编号', '损伤名称', '损坏描述', '面积/S', '备注']
USE_TOOL_TABLE_TITLE = '使用工器具记录'
USE_TOOL_TABLE = ['序号', '工器具名称', '型号规格', '数量', '用途', '备注']
class USE_TOOL_ENUM:
class OUT:
LIST = [
["无人机", "大疆 M30", "1", "叶片外观检查观测"]
]
class LIGHT:
LIST = [
["智能无人悬吊系统", "DT01", "1", "叶片导通测试"],
["检测导线", "/", "3", "叶片导通测试"],
["电阻仪", "S1950", "1", "叶片导通测试"]
]
class IN:
LIST = [
["头灯", "/", "2", "轮毂叶片内照明"],
["含氧量检测仪", "/", "1", "叶片内部环境检测"],
["活动扳手", "17-19", "2", "拆卸·禁锢盖板螺栓"],
["手机", "/", "2", "拍照记录"],
["叶片内部爬壁机器人", "DT02", "1", "拍照记录"]
]
from enum import Enum
from docx.shared import RGBColor
class DocxColors(Enum):
"""常用颜色枚举"""
BLACK = RGBColor(0, 0, 0)
WHITE = RGBColor(255, 255, 255)
RED = RGBColor(255, 0, 0)
GREEN = RGBColor(0, 255, 0)
BLUE = RGBColor(0, 0, 255)
YELLOW = RGBColor(255, 255, 0)
PURPLE = RGBColor(128, 0, 128)
ORANGE = RGBColor(255, 165, 0)
GRAY = RGBColor(128, 128, 128)
DARK_RED = RGBColor(139, 0, 0)
DARK_GREEN = RGBColor(0, 100, 0)
DARK_BLUE = RGBColor(0, 0, 139)
LIGHT_BLUE = RGBColor(173, 216, 230)
PINK = RGBColor(255, 192, 203)
BROWN = RGBColor(165, 42, 42)
# 微软Office常用颜色
MS_BLUE = RGBColor(46, 116, 181)
MS_ORANGE = RGBColor(247, 150, 70)
MS_GREEN = RGBColor(80, 175, 74)
MS_RED = RGBColor(217, 83, 79)
MS_GRAY = RGBColor(166, 166, 166)
# 获取颜色值
@property
def rgb(self):
return self.value
DT_EADING_1_CONFIG = {
"alignment": "left",
"font" : {
"name" : "宋体",
"size" : Pt(14),
"bold" : True,
"color" : DocxColors.BLACK.rgb
},
}
HEADING_1_CONFIG = {
"alignment": "left",
"font" : {
"name" : "宋体",
"size" : Pt(11),
"bold" : True,
"color" : DocxColors.BLACK.rgb
},
}
HEADING_2_CONFIG = {
"alignment": "left",
"font" : {
"name" : "宋体",
"size" : Pt(10),
"bold" : True,
"color" : DocxColors.BLACK.rgb
},
}
HEADING_3_CONFIG = {
"alignment": "left",
"font" : {
"name" : "宋体",
"size" : Pt(9),
"bold" : True,
"color" : DocxColors.BLACK.rgb
},
}