Browse Source

实时告警 生成工单

master
djz8236 2 years ago
parent
commit
b64ce372ec
  1. 2
      yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/biz/dispatchorderinfo/DispatchOrderinfoMapper.xml
  2. 20
      yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/biz/dispatchorderinfo/DispatchOrderinfoService.java
  3. 430
      yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-ui/src/views/yxtdispatchcenter/alarm/dispatchorderinfoAdd.vue
  4. 10
      yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-ui/src/views/yxtdispatchcenter/alarm/realalarm.vue
  5. 4
      yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-ui/src/views/yxtdispatchcenter/dispatchorderinfo/dispatchorderinfo.vue

2
yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/biz/dispatchorderinfo/DispatchOrderinfoMapper.xml

@ -4,7 +4,7 @@
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.supervise.dispatchcenter.api.dispatchorderinfo.DispatchOrderinfoVo">
SELECT * FROM dispatch_orderinfo <where> ${ew.sqlSegment} </where>
SELECT * FROM dispatch_orderinfo <where> ${ew.sqlSegment} </where> order by id desc
</select>
<select id="selectListAllVo" resultType="com.yxt.supervise.dispatchcenter.api.dispatchorderinfo.DispatchOrderinfoVo">

20
yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-biz/src/main/java/com/yxt/supervise/dispatchcenter/biz/dispatchorderinfo/DispatchOrderinfoService.java

@ -28,7 +28,12 @@ package com.yxt.supervise.dispatchcenter.biz.dispatchorderinfo;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.supervise.dispatchcenter.api.dispatchopmalarm.DispatchOpmAlarm;
import com.yxt.supervise.dispatchcenter.api.dispatchopmalarmhis.DispatchOpmAlarmHis;
import com.yxt.supervise.dispatchcenter.api.dispatchopmalarmhis.DispatchOpmAlarmHisDto;
import com.yxt.supervise.dispatchcenter.api.dispatchorderstandards.DispatchOrderStandardsDto;
import com.yxt.supervise.dispatchcenter.biz.dispatchopmalarm.DispatchOpmAlarmService;
import com.yxt.supervise.dispatchcenter.biz.dispatchopmalarmhis.DispatchOpmAlarmHisService;
import com.yxt.supervise.dispatchcenter.biz.dispatchorderstandards.DispatchOrderStandardsService;
import com.yxt.supervise.dispatchcenter.biz.dispatchworker.DispatchWorkerService;
import org.apache.commons.lang3.StringUtils;
@ -69,6 +74,10 @@ public class DispatchOrderinfoService extends MybatisBaseService<DispatchOrderin
private DispatchOrderStandardsService dispatchOrderStandardsService;
@Autowired
private DispatchWorkerService dispatchWorkerService;
@Autowired
private DispatchOpmAlarmService dispatchOpmAlarmService;
@Autowired
private DispatchOpmAlarmHisService dispatchOpmAlarmHisService;
private QueryWrapper<DispatchOrderinfo> createQueryWrapper(DispatchOrderinfoQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
@ -103,6 +112,7 @@ public class DispatchOrderinfoService extends MybatisBaseService<DispatchOrderin
if (StringUtils.isNotBlank(query.getPlanfinishtimeEnd())) {
qw.lt("planfinishtime", query.getPlanfinishtimeEnd());
}
return qw;
}
@ -135,6 +145,16 @@ public class DispatchOrderinfoService extends MybatisBaseService<DispatchOrderin
d.setTemplatesid(dto.getTemplatesid());
dispatchOrderStandardsService.insertByDto(d);
dispatchWorkerService.insertByDto(dto.getWorkers(),entity.getSid());
String alarmid = dto.getAlarmid();
if(StringUtils.isNotBlank(alarmid)){
DispatchOpmAlarm dispatchOpmAlarm = dispatchOpmAlarmService.fetchBySid(alarmid);
if(dispatchOpmAlarm!=null){
dispatchOpmAlarmService.deleteBySid(alarmid);
DispatchOpmAlarmHisDto dispatchOpmAlarmHisdto = new DispatchOpmAlarmHisDto();
BeanUtil.copyProperties(dispatchOpmAlarm,dispatchOpmAlarmHisdto);
dispatchOpmAlarmHisService.insertByDto(dispatchOpmAlarmHisdto);
}
}
}
@Transactional
public void updateByDto(DispatchOrderinfoDto dto){

430
yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-ui/src/views/yxtdispatchcenter/alarm/dispatchorderinfoAdd.vue

@ -0,0 +1,430 @@
<template>
<div>
<!-- 标题按钮部分开始 -->
<div class="tab-header webtop">
<!-- 标题 -->
<div>{{ viewTitle }}</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
<el-button type="info" size="small" @click="handleReturn()">返回</el-button>
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<!-- 标题按钮部分结束 -->
<!-- Start 新增修改部分 -->
<div class="main-content">
<div class="searchcon">
<el-form v-show="isSearchShow" ref="form_obj" :model="formobj" :rules="rules" label-position="right" class="demo-form-inline">
<div class="listtop">
<div class="tit">巡视工单信息</div>
</div>
<el-row>
<el-col :span="2" class="tleftb">
<span><span class="icon">*</span>客户名称</span>
</el-col>
<el-col :span="3" class="trightb">
<el-form-item prop="custname">
<!--<el-input size="small" v-model="formobj.custname" placeholder="客户名称" class="addinputw" clearable />-->
<el-select
v-model="formobj.custid"
class="addinputw"
placeholder="客户名称"
size="small"
@change="custnamechangeValue($event)"
>
<el-option
v-for="(item, i) in custList"
:key="i"
:label="item.enterpriseName"
:value="item.sid"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="2" class="tleftb">
<span><span class="icon">*</span>工单编号</span>
</el-col>
<el-col :span="3" class="trightb">
<el-form-item prop="orderno"><el-input size="small" v-model="formobj.orderno" placeholder="工单编号" class="addinputw" clearable /></el-form-item>
</el-col>
<el-col :span="2" class="tleftb">
<span><span class="icon">*</span>工单名称</span>
</el-col>
<el-col :span="2" class="trightb">
<el-form-item prop="ordername"><el-input size="small" v-model="formobj.ordername" placeholder="工单名称" class="addinputw" clearable /></el-form-item>
</el-col>
<el-col :span="2" class="tleftb">
<span><span class="icon">*</span>工单内容</span>
</el-col>
<el-col :span="3" class="trightb">
<el-form-item prop="ordercontent"><el-input size="small" v-model="formobj.ordercontent" placeholder="工单内容" class="addinputw" clearable /></el-form-item>
</el-col>
<el-col :span="2" class="tleftb">
<span><span class="icon">*</span>模板</span>
</el-col>
<el-col :span="3" class="trightb">
<el-select @change="changeValue($event)"
v-model="formobj.templatesid"
class="addinputw"
placeholder="模板"
size="small"
>
<el-option
v-for="(item, i) in dataList"
:key="i"
:label="item.templatename"
:value="item.sid"
/>
</el-select>
</el-col>
</el-row>
<el-row>
<el-col :span="2" class="tleftb">
<span><span class="icon">*</span>现场联系人</span>
</el-col>
<el-col :span="3" class="trightb">
<el-form-item prop="receiveperson"><el-input size="small" v-model="formobj.receiveperson" placeholder="现场联系人" class="addinputw" clearable /></el-form-item>
</el-col>
<el-col :span="3" class="tleftb">
<span><span class="icon">*</span>现场联系人电话</span>
</el-col>
<el-col :span="3" class="trightb">
<el-form-item prop="receivetel"><el-input size="small" v-model="formobj.receivetel" placeholder="现场联系人电话" class="addinputw" clearable /></el-form-item>
</el-col>
<el-col :span="2" class="tleftb">
<span><span class="icon">*</span>巡视类型</span>
</el-col>
<el-col :span="3" class="trightb">
<el-select
v-model="formobj.ordertype"
class="addinputw"
placeholder="类型"
size="small"
>
<el-option
v-for="(item, i) in arr"
:key="i"
:label="item.type"
:value="item.value"
/>
</el-select>
</el-col>
<el-col :span="2" class="tleftb">
<span><span class="icon">*</span>等级</span>
</el-col>
<el-col :span="3" class="trightb">
<el-select
v-model="formobj.orderdegree"
class="addinputw"
placeholder="等级"
size="small"
>
<el-option
v-for="(item, i) in arrList"
:key="i"
:label="item.type"
:value="item.type"
/>
</el-select>
</el-col>
</el-row>
</el-form>
</div>
<div class="listtop">
<div class="tit">巡视人员</div>
<el-button class="span" type="primary" @click.stop="add()">新增</el-button>
</div>
<div>
<el-table ref="table" tooltip-effect="dark" :data="TabList" border style="width: 100%" stripe >
>
<el-table-column fixed width="100" type="index" label="序号" align="center" />
<el-table-column label="操作" wid align="center" width="150">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="doCommoditylDel(scope.$index)">删除</el-button>
</template>
</el-table-column>
<el-table-column prop="principalname" label="巡视人名称" align="center" >
<template slot-scope="scope">
<el-input v-model="scope.row.principalname" placeholder="" clearable></el-input>
</template>
</el-table-column>
<el-table-column prop="principalcontact" label="联系方式" align="center" >
<template slot-scope="scope">
<el-input v-model="scope.row.principalcontact" placeholder="" clearable></el-input>
</template>
</el-table-column>
<el-table-column prop="workteam" label="班组组织" align="center" >
<template slot-scope="scope">
<el-input v-model="scope.row.workteam" placeholder="" clearable></el-input>
</template>
</el-table-column>
<el-table-column prop="executorname" label="是否负责人" width="150px" align="center" >
<template slot-scope="scope">
<el-radio v-model="scope.row.executorname" label="是"></el-radio>
<el-radio v-model="scope.row.executorname" label="否"></el-radio>
</template>
</el-table-column>
</el-table>
</div>
<div class="listtop">
<div class="tit">任务模板</div>
</div>
<div>
<el-table :data="list" border style="width: 100%;text-align: center;">
<el-table-column fixed width="100" type="index" label="序号" align="center" />
<el-table-column prop="taskname" label="任务名称" width="200" align="center" />
<el-table-column prop="taskdesc" label="巡视内容" align="center" />
</el-table>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/yxtdispatchcenter/dispatchorderinfo'
import req2 from '@/api/yxtdispatchcenter/dispatchmodletemplate'
export default {
name: 'DispatchOrderinfoAdd',
data() {
return {
submitdisabled: false,
isSearchShow: true,
viewTitle: '',
searchxianshitit: '显示添加条件',
formobj: {
id: '',
sid: '',
alarmid: "",
custid: '', // ID
custname: '', //
supervisesid: '', // id
orderno: '', //
ordername: '', //
templatesid: '', // sid
orderdegree: '', // 1-2- 3-4-
ordertype: '', // 1-
ordercontent: '', //
receiveperson: '', //
receivetel: '', //
workers:[]
},
custList:[],
arr:[{value:1,type:'计划巡视'},{value:2,type:'专项巡视'},{value:3,type:'告警巡视'}],
arrList:[{value:1,type:'一般'},{value:2,type:'重要'},{value:3,type:'紧急'},{value:4,type:'督办'}],
TabList:[],
dataList:[],
list:[],
rules: {
custid: [{ required: true, message: '客户ID不能为空', trigger: 'blur' }], // ID
custname: [{ required: true, message: '客户名称不能为空', trigger: 'blur' }], //
supervisesid: [{ required: true, message: '监管公司id不能为空', trigger: 'blur' }], // id
orderno: [{ required: true, message: '用法说明:工单编号规则。不能为空', trigger: 'blur' }], //
ordername: [{ required: true, message: '工单名称不能为空', trigger: 'blur' }], //
orderdegree: [{ required: true, message: '描述不能为空', trigger: 'blur' }], // 1-2- 3-4-
ordertype: [{ required: true, message: '描述不能为空', trigger: 'blur' }], // 1-
ordercontent: [{ required: true, message: '工单内容不能为空', trigger: 'blur' }], //
// arrivetime: [{ required: true, message: '', trigger: 'blur' }], //
// planfinishtime: [{ required: true, message: '', trigger: 'blur' }], //
operationcontent: [{ required: true, message: '处理情况不能为空', trigger: 'blur' }], //
receiveperson: [{ required: true, message: '现场联系人不能为空', trigger: 'blur' }], //
receivetel: [{ required: true, message: '现场联系人电话不能为空', trigger: 'blur' }] //
},
queryParams: {
current: 1,
size: 100,
total: 0,
params: {
sids: [],
templateid: '',
taskid: ''
}
},
queryParamsA: {
current: 1,
size: 10,
total: 0,
params: {
orderid:'',
templateid:''
}
}
}
},
mounted(){
req2.listPage(this.queryParams).then(resp => {
if (resp.success) {
const data = resp.data
this.dataList = data.records
}
})
req.entlistPage().then(resp => {
if (resp.success) {
const data = resp.data
this.custList = data
}
})
},
created() {},
methods: {
changeValue(value){
this.queryParamsA.params.templateid= value;
this.ShowList();
},
custnamechangeValue(value){
let enterpriseName = this.custList.find((item) => {
return item.sid == value;
}).enterpriseName;
this.formobj.custname=enterpriseName;
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj.id = ''
this.formobj.sid = '' // SID
this.formobj.custid = '' // ID
this.formobj.custname = '' //
this.formobj.supervisesid = '' // id
this.formobj.orderno = '' //
this.formobj.ordername = '' //
this.formobj.orderdegree = '' // 1-2- 3-4-
this.formobj.ordertype = '' // 1-
this.formobj.templatesid = '' //
this.formobj.ordercontent = '' //
this.formobj.arrivetime = '' //
this.formobj.planfinishtime = '' //
this.formobj.operationcontent = '' //
this.formobj.receiveperson = '' //
this.formobj.receivetel = '' //
this.queryParamsA.params.orderid=''
this.$refs['form_obj'].resetFields()
this.$emit('doback')
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏添加条件'
} else {
this.searchxianshitit = '显示添加条件'
}
},
showAdd(row) {
this.formobj.alarmid=row.sid;
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '【新增】工单数据'
this.ShowList()
},
showEdit(row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.searchxianshitit = '显示添加条件'
this.isSearchShow = true
this.viewTitle = '【修改】工单数据'
const _this = this
req
.fetchBySid(row.sid)
.then(resp => {
if (resp.code==200) {
const vdata = resp.data
_this.formobj.id = vdata.id
_this.formobj.sid = vdata.sid // SID
_this.formobj.custid = vdata.custid // ID
_this.formobj.custname = vdata.custname //
_this.formobj.supervisesid = vdata.supervisesid // id
_this.formobj.orderno = vdata.orderno //
_this.formobj.ordername = vdata.ordername //
_this.formobj.orderdegree = vdata.orderdegree // 1-2- 3-4-
_this.formobj.ordertype = vdata.ordertype // 1-
_this.formobj.ordercontent = vdata.ordercontent //
_this.formobj.receiveperson = vdata.receiveperson //
_this.formobj.receivetel = vdata.receivetel //
_this.formobj.templatesid = vdata.templatesid // sid
this.queryParamsA.params.templateid= vdata.templatesid // sid
// _this.formobj.workers = vdata.workers //
} else {
// resp.code
}
})
.catch(e => {
this.formobj = row
})
this.queryParamsA.params.orderid= row.sid
this.ShowList()
this.ShowYunwei()
},
saveOrUpdate() {
this.formobj.workers=this.$refs.table.data;
const _this = this
this.$refs['form_obj'].validate(valid => {
if (valid) {
this.submitdisabled = true
req
.saveOrUpdate(this.formobj)
.then(resp => {
this.submitdisabled = false
if (resp.success) {
_this.$message({ showClose: true, type: 'success', message: resp.msg })
_this.handleReturn('true')
_this.queryParamsA.params.orderid=''
} else {
// resp.code
}
})
.catch(() => {
this.submitdisabled = false
})
} else {
return false
}
})
},
handleSelectionChange(val) {
this.formobj.workers = val;
},
handleSelection(selection){
if (selection.length > 1){
let del_row = selection.shift();
this.$refs.table.toggleRowSelection(del_row, false)
}
},
add() {
this.TabList.push({
})
},
doCommoditylDel(index) {
const tip = '请确认是否删除所选记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.TabList.splice(index, 1);
})
},
//
ShowYunwei(){
req.listPageB(this.queryParamsA).then((res)=>{
this.TabList= res.data.records
})
},
//
ShowList(){
var templateid=this.queryParamsA.params.templateid;
if (templateid==''){
return;
}
req.listPageA(this.queryParamsA).then((res)=>{
this.list = res.data.records
})
}
}
}
</script>
<style scoped></style>

10
yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-ui/src/views/yxtdispatchcenter/alarm/realalarm.vue

@ -205,7 +205,7 @@ import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import divInfo from './alarmInfo'
import divAdd from '@/views/yxtdispatchcenter/dispatchorderinfo/dispatchorderinfoAdd'
import divAdd from '@/views/yxtdispatchcenter/alarm/dispatchorderinfoAdd'
export default {
name: 'DispatchOrderinfoIndex',
@ -433,10 +433,10 @@ export default {
}
},
purchase(row){
alert('功能开发中');
return;
this.viewState = 3
this.$refs['divadd'].showEdit(row)
// alert('');
// return;
this.viewState = 2
this.$refs['divadd'].showAdd(row)
}
}
}

4
yxt_supervise/supervise-dispatchcenter/supervise-dispatchcenter-ui/src/views/yxtdispatchcenter/dispatchorderinfo/dispatchorderinfo.vue

@ -298,8 +298,8 @@ export default {
purchase(row){
// this.drawer=true
this.viewState = 4
this.TableList= row
},
this.TableList = row
}
}
}
</script>

Loading…
Cancel
Save