Commit 12b0f9ab authored by Kerwin_Cui's avatar Kerwin_Cui

bug修复

parent 3d090d5d
......@@ -133,7 +133,7 @@ class RelevanceAnalysis(BaseModel):
class FailureAnalysis(BaseModel):
failure_representation = models.TextField(null=True, verbose_name="故障表象")
failure_sub_phenomenon = models.TextField(null=True, verbose_name="故障实质现象")
solve_detail_info = models.TextField(null=True, verbose_name="解决的具体信息")
solve_detail_info = models.TextField(null=True, verbose_name="是否解决")
event_number = models.CharField(null=True, max_length=64, verbose_name="事件编号")
related_alarm_info = models.TextField(null=True, verbose_name="相关告警信息")
monitor_src = models.TextField(null=True, verbose_name="告警实例列表")
......@@ -289,6 +289,7 @@ class Error_alarm(models.Model):
if_icube = models.CharField(null=True, max_length=100, verbose_name="是否来自一体化平台")
user = models.CharField(null=True, max_length=100, verbose_name="处理人")
cant_auto_info = models.TextField(null=True, verbose_name="不可自动化信息")
not_auto_yet = models.TextField(null=True, verbose_name="未自动化信息")
def toDic(self):
return dict([(attr, getattr(self, attr)) for attr in [f.name for f in self._meta.fields]])
......
......@@ -275,6 +275,8 @@ def new_create(request):
hapTime = hapTime.replace(' ', '')
hapTime = hapTime.replace(':', '')
event_number = request.user.username + hapTime
if_exit = EventInfo.objects.filter(event_number__contains=event_number)
event_number = event_number + '_' + str(len(if_exit))
accept_time = req.get("event_accept_time")
accept_time = str(accept_time)
accept_time = accept_time.replace('T', ' ')
......@@ -312,18 +314,18 @@ def new_create(request):
# 判断必填字段和四个时间点的先后顺序
if not all([event_summary, priority, event_happened_time]):
return render_json({"result": False, "code": 1, "message": u"有必填字段未填写", "data": {}})
if failure_recovery_time and event_happened_time > failure_recovery_time:
return render_json({"result": False, "code": 1, "message": u"事件发生时间不能大于恢复时间", "data": {}})
if user_reporting_time and event_happened_time > user_reporting_time:
return render_json({"result": False, "code": 1, "message": u"事件发生时间不能大于报障时间", "data": {}})
if accept_time and event_happened_time > accept_time:
return render_json({"result": False, "code": 1, "message": u"事件发生时间不能大于受理时间", "data": {}})
if failure_recovery_time and user_reporting_time and user_reporting_time > failure_recovery_time:
return render_json({"result": False, "code": 1, "message": u"报障时间不能大于恢复时间", "data": {}})
if failure_recovery_time and accept_time and accept_time > failure_recovery_time:
return render_json({"result": False, "code": 1, "message": u"受理时间不能大于恢复时间", "data": {}})
if user_reporting_time and accept_time and user_reporting_time > accept_time:
return render_json({"result": False, "code": 1, "message": u"报障时间不能大于受理时间", "data": {}})
if failure_recovery_time and event_happened_time >= failure_recovery_time:
return render_json({"result": False, "code": 1, "message": u"事件发生时间不能大于或者等于恢复时间", "data": {}})
if user_reporting_time and event_happened_time >= user_reporting_time:
return render_json({"result": False, "code": 1, "message": u"事件发生时间不能大于或者等于报障时间", "data": {}})
if accept_time and event_happened_time >= accept_time:
return render_json({"result": False, "code": 1, "message": u"事件发生时间不能大于或者等于受理时间", "data": {}})
if failure_recovery_time and user_reporting_time and user_reporting_time >= failure_recovery_time:
return render_json({"result": False, "code": 1, "message": u"报障时间不能大于或者等于恢复时间", "data": {}})
if failure_recovery_time and accept_time and accept_time >= failure_recovery_time:
return render_json({"result": False, "code": 1, "message": u"受理时间不能大于或者等于恢复时间", "data": {}})
if user_reporting_time and accept_time and user_reporting_time >= accept_time:
return render_json({"result": False, "code": 1, "message": u"报障时间不能大于或者等于受理时间", "data": {}})
# 判断事件分析状态
if not all([deal_case, root_analysis, solve_measure, failure_surface,
......@@ -1481,6 +1483,14 @@ def event_out(request):
new_list.append(monitor_info['notmonitorinfo'])
else:
new_list.append('')
solve_detail = event2.solve_detail_info
if solve_detail:
if u'是' in solve_detail or solve_detail == '10':
new_list.append('是')
else:
new_list.append('否')
else:
new_list.append('')
else:
new_list.append('')
new_list.append('')
......@@ -1549,7 +1559,7 @@ def event_out(request):
'受理时间', '故障恢复时间', '故障系统名', '受影响系统名', '事件类型', '现象',
'一级分类', '二级分类', '三级分类', '故障原因初步分析', '影响度', '优先级',
'紧急度', '报告来源', '处理过程', '根因分析', '解决方案措施', '故障表象',
'故障实质现象', '相关告警','告警实例', '其他监控信息', '应急方案', '应急方案自动化',
'故障实质现象', '相关告警','告警实例', '其他监控信息', '是否解决','应急方案', '应急方案自动化',
'自动化所属系统', '自动化方案', '其他自动化信息']
for i in range(len(row0)):
data_sheet.write(0, i, row0[i], set_style(u'宋体', 220, True))
......@@ -2037,6 +2047,15 @@ def get_biz_module_tree(child_dict, tree, count):
def create_label(request):
try:
labelName = request.body
if ' ' in labelName or labelName == '':
return render_json(
{
"result": False,
"code": 1,
"message": u"标签中不能为空或包含空格字符!",
"data": ''
}
)
name = Label.objects.filter(label_name=labelName)
if name:
return render_json(
......@@ -2047,6 +2066,7 @@ def create_label(request):
"data": ''
}
)
label = Label.objects.create(label_name=labelName)
label.save()
return render_json(
......@@ -2203,6 +2223,19 @@ def create_alarm(request):
other_autoname = data['other_autoname']
monitor_name = data['monitor_name']
if_icube = data['if_icube']
not_auto_yet = data['notautoyetinfo']
if alarm_time and recover_time and alarm_summary and alarm_type and alarm_system:
pass
else:
return render_json(
{
"result": False,
"code": 1,
"message": u"有必填字段未填写!",
"data": {}
}
)
# time = alarm_time.replace('T', ' ')
# time = time[0:-5]
# time = datetime.datetime.strptime(time, "%Y-%m-%d %H:%M:%S")
......@@ -2213,13 +2246,27 @@ def create_alarm(request):
alarm_number = 'alarm_' + time
# alarm_time = alarm_time.replace('T', ' ')
# alarm_time = alarm_time[0:-5]
alarm_time = datetime.datetime.strptime(alarm_time, "%Y-%m-%d %H:%M:%S")
alarm_time = (alarm_time + datetime.timedelta(hours=8))
# recover_time = recover_time.replace('T', ' ')
# recover_time = recover_time[0:-5]
recover_time = datetime.datetime.strptime(recover_time, "%Y-%m-%d %H:%M:%S")
recover_time = (recover_time + datetime.timedelta(hours=8))
if alarm_time >= recover_time:
return render_json(
{
"result": False,
"code": 1,
"message": u"预警时间不能大于或等于恢复时间!",
"data": {}
}
)
client = get_client_by_request(request)
bk_token = request.COOKIES.get('bk_token')
client.set_bk_api_ver('v2')
......@@ -2248,7 +2295,8 @@ def create_alarm(request):
monitor_name = monitor_name,
if_icube = if_icube,
cant_auto_info = cant_auto_info,
user = login_person
user = login_person,
not_auto_yet = not_auto_yet
)
error_alarm.save()
return render_json(
......@@ -2283,9 +2331,9 @@ def edit_alarm_display(request):
result = client.bk_login.get_user(parse)
login_person = result['data']['chname']
if login_person == alarm.user:
show_src = 0
else:
show_src = 1
else:
show_src = 0
data = {
'alarm_type':alarm.alarm_level if alarm.alarm_level else '',
......@@ -2303,7 +2351,8 @@ def edit_alarm_display(request):
'monitor_name': alarm.monitor_name if alarm.monitor_name else '',
'if_icube': int(alarm.if_icube) if alarm.if_icube else '',
'show_src': show_src,
'cantautoinfo': alarm.cant_auto_info if alarm.cant_auto_info else ''
'cantautoinfo': alarm.cant_auto_info if alarm.cant_auto_info else '',
'notautoyetinfo': alarm.not_auto_yet if alarm.not_auto_yet else ''
}
return render_json(
{
......@@ -2344,6 +2393,7 @@ def edit_alarm(request):
other_autoname = data['other_autoname']
monitor_name = data['monitor_name']
cant_auto_info = data['cantautoinfo']
not_auto_yet = data['notautoyetinfo']
if_icube = data['if_icube']
alarm_time = alarm_time.replace('T', ' ')
# alarm_time = alarm_time[0:-5]
......@@ -2370,7 +2420,8 @@ def edit_alarm(request):
alarm.other_autoname = other_autoname
alarm.monitor_name = monitor_name
alarm.if_icube = if_icube
cant_auto_info = cant_auto_info
alarm.cant_auto_info = cant_auto_info
alarm.not_auto_yet = not_auto_yet
alarm.save()
return render_json(
{"result": True,
......@@ -2568,6 +2619,7 @@ def alarm_count_info(request):
for alarm in alarm_list:
sys_list = eval(alarm.alarm_system)
for sys in sys_list:
sys = sys.decode('utf-8')
if result.has_key(sys):
pass
else:
......
......@@ -32,10 +32,10 @@
<div id="alarmEdit">
<div class="alarmEdit" v-cloak>
<div style=" padding: 20px;">
<el-form label-width="90px" :model="formLine" ::disabled="showStatus">
<el-form label-width="90px" :model="formLine" :disabled="showStatus">
<div class="bk-panel">
<div>
<el-form-item label="故障预警级别:" label-width="200px" class="normal"
<el-form-item label="故障预警级别:" label-width="200px" class="important"
style="display:inline-block;">
<el-select v-model="formLine.alarm_type" clearable style="width:200px;"
:disabled="editStatus">
......@@ -45,7 +45,7 @@
:value="item.label"></el-option>
</el-select>
</el-form-item>
<el-form-item label="预警系统:" label-width="200px" class="normal"
<el-form-item label="预警系统:" label-width="200px" class="important"
style="display:inline-block;">
<el-select v-model="formLine.alarm_system" clearable multiple filterable style="width:200px;"
:disabled="editStatus">
......@@ -59,14 +59,14 @@
</div>
</div>
<div class="bk-panel" style="padding-bottom: 10px; padding-top: 25px">
<el-form-item label="预警时间:" label-width="200px" class="normal"
<el-form-item label="预警时间:" label-width="200px" class="important"
style="display:inline-block; ">
<el-date-picker v-model="formLine.alarm_time" type="datetime"
placeholder="必填" style="width:200px;" value-format="yyyy-MM-dd HH:mm:ss" :disabled="editStatus">
</el-date-picker>
</el-form-item>
<el-form-item label="恢复时间:" label-width="200px" class="normal" style="display:inline-block; ">
<el-form-item label="恢复时间:" label-width="200px" class="important" style="display:inline-block; ">
<el-date-picker
v-model="formLine.recover_time"
type="datetime" style="width:200px;" value-format="yyyy-MM-dd HH:mm:ss" :disabled="editStatus">
......@@ -77,7 +77,7 @@
</el-form-item>
</div>
<el-form-item label="故障预警摘要:" label-width="200px" class="normal"
<el-form-item label="故障预警摘要:" label-width="200px" class="important"
style="display:inline-block;">
<el-input v-model="formLine.alarm_summary" type="textarea" :rows="2" placeholder="必填"
style="width:605px"
......@@ -85,15 +85,14 @@
</el-form-item>
<el-form-item label="是否需要干预:" class="normal" label-width="200px">
<el-radio-group style="margin-left: 5px;" @change="changeAuto"
v-model="formLine.if_interpose">
<el-radio-group style="margin-left: 5px;" v-model="formLine.if_interpose">
<el-radio :label="1"></el-radio>
<el-radio :label="2"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="处置过程:" label-width="200px" class="normal"
style="display:inline-block;">
<el-input v-model="formLine.solve_process" type="textarea" :rows="5" placeholder="必填"
<el-input v-model="formLine.solve_process" type="textarea" :rows="5"
style="width:605px"
:disabled="editStatus"></el-input>
</el-form-item>
......@@ -170,7 +169,7 @@
<el-button size="small" type="primary" @click="returnn" style="margin-left: 800px">返回
</el-button>
<el-button size="small" type="primary" @click="submit"
v-if="formLine.dealer==user || !formLine.dealer">提交
:disabled="showStatus">提交
</el-button>
</el-col>
</el-row>
......@@ -318,9 +317,9 @@
if (!!data) {
this.type = "edit"
if (data.show_src == 1) {
this.showStatus = true
} else {
this.showStatus = false
} else {
this.showStatus = true
}
//data.urgency_degree = formatToId(data.urgency_degree, keyArray.influenceLevel)
//data.priority = formatToId(data.priority, keyArray.priority)
......@@ -329,7 +328,7 @@
} else {
this.type = "new";
//this.editStatus = false;
//this.showStatus = false;
this.showStatus = false;
//this.activeClass = "activeClass"
}
this.getuser();
......@@ -455,13 +454,13 @@
} else if (value == '7') {
this.autochange = false
this.notbkauto = false
this.cantauto = true
this.notautoyet = false
this.cantauto = false
this.notautoyet = true
} else if (value == '10') {
this.autochange = false
this.notbkauto = false
this.cantauto = false
this.notautoyet = true
this.cantauto = true
this.notautoyet = false
}
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment