Commit 12b0f9ab authored by Kerwin_Cui's avatar Kerwin_Cui

bug修复

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