Commit 375fa540 authored by zhangjianqian's avatar zhangjianqian

隐患修改,教育培训修改

parent 90c14366
......@@ -20,6 +20,9 @@ public class THiddenTroubleAssessment extends BaseEntity
/** $column.columnComment */
private Long assessmentId;
private Long libraryId;
private Integer isXun;
/** 排查任务id */
@Excel(name = "排查任务id")
private Long workId;
......@@ -94,6 +97,59 @@ public class THiddenTroubleAssessment extends BaseEntity
private Integer updateType = 0;
private String riskPoint;
private String inspectTerm;
private String inspectBasis;
private String libraryContent;
public Long getLibraryId() {
return libraryId;
}
public void setLibraryId(Long libraryId) {
this.libraryId = libraryId;
}
public Integer getIsXun() {
return isXun;
}
public void setIsXun(Integer isXun) {
this.isXun = isXun;
}
public String getRiskPoint() {
return riskPoint;
}
public void setRiskPoint(String riskPoint) {
this.riskPoint = riskPoint;
}
public String getInspectTerm() {
return inspectTerm;
}
public void setInspectTerm(String inspectTerm) {
this.inspectTerm = inspectTerm;
}
public String getInspectBasis() {
return inspectBasis;
}
public void setInspectBasis(String inspectBasis) {
this.inspectBasis = inspectBasis;
}
public String getLibraryContent() {
return libraryContent;
}
public void setLibraryContent(String libraryContent) {
this.libraryContent = libraryContent;
}
public Integer getUpdateType() {
return updateType;
}
......
......@@ -84,10 +84,10 @@ public class THiddenTroubleWorkServiceImpl implements ITHiddenTroubleWorkService
{
tHiddenTroubleWork.setCreateTime(DateUtils.getNowDate());
int a = tHiddenTroubleWorkMapper.insertTHiddenTroubleWork(tHiddenTroubleWork);
// if(tHiddenTroubleWork.getWorkCycle()==1||tHiddenTroubleWork.getParentId()!=0L){
// String[] ids = tHiddenTroubleWork.getContent().split(",");
// tHiddenTroubleAssessmentMapper.inserts(tHiddenTroubleWork.getWorkId(),ids);
// }
if(tHiddenTroubleWork.getWorkCycle()==1){
String[] ids = tHiddenTroubleWork.getContent().split(",");
tHiddenTroubleAssessmentMapper.inserts(tHiddenTroubleWork.getWorkId(),ids);
}
return a;
}
......@@ -205,26 +205,28 @@ public class THiddenTroubleWorkServiceImpl implements ITHiddenTroubleWorkService
work.setWorkStep(0);
work.setCreateTime(d);
if(work.getBookId()!=null){
TStaningBook b = tStaningBookMapper.selectTStaningBookById(work.getBookId());
//如果隐患存在,并绑定的任务已完成则生成新新任务,否则不生成
if(b!=null&&b.getWorkId()!=null){
THiddenTroubleWork w = tHiddenTroubleWorkMapper.selectTHiddenTroubleWorkById(b.getWorkId());
if(w.getWorkStep()==4){
int a = tHiddenTroubleWorkMapper.insertTHiddenTroubleWork(work);
b.setWorkId(work.getWorkId());
tStaningBookMapper.updateTStaningBook(b);
}else{
logger.info("===================任务进行中生成新排查任务失败");
}
}else {
int a = tHiddenTroubleWorkMapper.insertTHiddenTroubleWork(work);
if(b!=null){
b.setWorkId(work.getWorkId());
tStaningBookMapper.updateTStaningBook(b);
}
}
// TStaningBook b = tStaningBookMapper.selectTStaningBookById(work.getBookId());
// //如果隐患存在,并绑定的任务已完成则生成新新任务,否则不生成
// if(b!=null&&b.getWorkId()!=null){
// THiddenTroubleWork w = tHiddenTroubleWorkMapper.selectTHiddenTroubleWorkById(b.getWorkId());
// if(w.getWorkStep()==4){
// int a = tHiddenTroubleWorkMapper.insertTHiddenTroubleWork(work);
// b.setWorkId(work.getWorkId());
// tStaningBookMapper.updateTStaningBook(b);
// }else{
// logger.info("===================任务进行中生成新排查任务失败");
// }
// }else {
// int a = tHiddenTroubleWorkMapper.insertTHiddenTroubleWork(work);
// if(b!=null){
// b.setWorkId(work.getWorkId());
// tStaningBookMapper.updateTStaningBook(b);
// }
// }
}else {
tHiddenTroubleWorkMapper.insertTHiddenTroubleWork(work);
String[] ids = work.getContent().split(",");
tHiddenTroubleAssessmentMapper.inserts(work.getWorkId(),ids);
}
}
}
......@@ -6,6 +6,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="THiddenTroubleAssessment" id="THiddenTroubleAssessmentResult">
<result property="assessmentId" column="assessment_id" />
<result property="libraryId" column="library_id" />
<result property="isXun" column="is_xun" />
<result property="workId" column="work_id" />
<result property="checkFeedback" column="check_feedback" />
<result property="checkUrl" column="check_url" />
......@@ -23,6 +25,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="modifyBegin" column="modify_begin" />
<result property="modifyEnd" column="modify_end" />
<result property="modifyComplete" column="modify_complete" />
<result property="riskPoint" column="risk_point" />
<result property="inspectTerm" column="inspect_term" />
<result property="inspectBasis" column="inspect_basis" />
<result property="libraryContent" column="library_content" />
</resultMap>
<sql id="selectTHiddenTroubleAssessmentVo">
......@@ -30,9 +36,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql>
<select id="selectTHiddenTroubleAssessmentList" parameterType="THiddenTroubleAssessment" resultMap="THiddenTroubleAssessmentResult">
<include refid="selectTHiddenTroubleAssessmentVo"/>
SELECT a.`assessment_id`,a.library_id,a.is_xun,a.check_url,a.check_time,a.check_user,a.check_feedback,
l.risk_point,l.inspect_term,l.inspect_basis,l.library_content
FROM t_hidden_trouble_assessment a LEFT JOIN t_hidden_library l ON l.`library_id` = a.library_id
<where>
<if test="assessmentLevel != null "> and assessment_level = #{assessmentLevel}</if>
<if test="workId != null "> and work_id = #{workId}</if>
</where>
</select>
......@@ -124,7 +133,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<insert id="inserts" >
insert into t_hidden_trouble_assessment (library_id,work_id) VALUES
<foreach collection="ids" item="item" index="index" separator=",">
(${item},workId)
(${item},#{workId})
</foreach>
</insert>
</mapper>
\ No newline at end of file
......@@ -79,6 +79,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="timeTerm != null">time_term,</if>
<if test="workRange != null">work_range,</if>
<if test="deptId != null">dept_id,</if>
<if test="staffId != null">staff_id,</if>
<if test="workStep != null">work_step,</if>
<if test="content != null">content,</if>
<if test="createTime != null">create_time,</if>
......@@ -98,6 +99,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="timeTerm != null">#{timeTerm},</if>
<if test="workRange != null">#{workRange},</if>
<if test="deptId != null">#{deptId},</if>
<if test="staffId != null">#{staffId},</if>
<if test="workStep != null">#{workStep},</if>
<if test="content != null">#{content},</if>
<if test="createTime != null">#{createTime},</if>
......
......@@ -84,8 +84,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN t_train_plan_post pp ON ( p.`post_id` = pp.`post_id` AND pp.`plan_id` = #{planId} )
</select>
<select id="selectAlluserByplanId" resultType="java.lang.String">
SELECT user_id FROM sys_user_post
WHERE post_id IN (SELECT post_id FROM t_train_plan_post WHERE plan_id =#{planId})
GROUP BY user_id
SELECT post_id FROM t_train_plan_post WHERE plan_id =#{planId}
</select>
</mapper>
\ No newline at end of file
......@@ -67,7 +67,7 @@
<el-table v-loading="loading" :data="workCheckList" row-key="workId"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}" @selection-change="handleSelectionChange">
<el-table-column label="任务名称" align="center" prop="workName" />
<el-table-column label="隐患名称" align="center" prop="troubleName" />
<!--<el-table-column label="隐患名称" align="center" prop="troubleName" />-->
<el-table-column label="任务周期" align="center" prop="workCycle" :formatter="workCycleFormat" width="80px"/>
<el-table-column label="排查类型" align="center" prop="workType" :formatter="workTypeFormat" width="80px"/>
<el-table-column label="排查形式" align="center" prop="workForm" :formatter="workFormFormat" width="80px"/>
......@@ -79,19 +79,19 @@
</el-table-column>
<!--<el-table-column label="任务期限" align="center" prop="timeTerm" />-->
<!--<el-table-column label="任务范围" align="center" prop="workRange" />-->
<el-table-column label="责任部门" align="center" prop="deptName" />
<el-table-column label="任务进展 " align="center" prop="workStep" width="80px" >
<template slot-scope="scope">
<div v-if="scope.row.workCycle==1 || scope.row.parentId!=0">
<span style="color: red" v-if="scope.row.workStep==0">未进行</span>
<span v-if="scope.row.workStep==1">待评估</span>
<span v-if="scope.row.workStep==2">已评估</span>
<span v-if="scope.row.workStep==3">待整改</span>
<span v-if="scope.row.workStep==4">已结束</span>
</div>
<span v-if="scope.row.workCycle!=1 && scope.row.parentId==0">--</span>
</template>
</el-table-column>
<el-table-column label="责任人" align="center" prop="staffName" />
<!--<el-table-column label="任务进展 " align="center" prop="workStep" width="80px" >-->
<!--<template slot-scope="scope">-->
<!--<div v-if="scope.row.workCycle==1 || scope.row.parentId!=0">-->
<!--<span style="color: red" v-if="scope.row.workStep==0">未进行</span>-->
<!--<span v-if="scope.row.workStep==1">待评估</span>-->
<!--<span v-if="scope.row.workStep==2">已评估</span>-->
<!--<span v-if="scope.row.workStep==3">待整改</span>-->
<!--<span v-if="scope.row.workStep==4">已结束</span>-->
<!--</div>-->
<!--<span v-if="scope.row.workCycle!=1 && scope.row.parentId==0">&#45;&#45;</span>-->
<!--</template>-->
<!--</el-table-column>-->
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
......@@ -210,7 +210,7 @@
<!--&gt;</el-option>-->
<!--</el-select>-->
<!--</el-form-item>-->
<el-form-item label="责任人" prop="deptId">
<el-form-item label="责任人" prop="staffId">
<el-select v-model="form.staffId" filterable placeholder="请选择责任人">
<el-option
v-for="item in userList"
......@@ -357,104 +357,151 @@
</el-row>
</el-dialog>
<el-dialog title="排查任务详情" :visible.sync="open3" width="1000px" append-to-body>
<el-form label-width="100px">
<!--<el-form-item label="结束时间" prop="workEndTime">-->
<!--{{workInfo.workEndTime}}-->
<el-dialog title="排查任务详情" :visible.sync="open3" width="1200px" append-to-body>
<el-table :data="assessmentList" >
<el-table-column label="风险点" align="center" prop="riskPoint" />
<el-table-column label="隐患名称" align="center" prop="inspectTerm" />
<!--<el-table-column label="检查依据" align="center" prop="inspectBasis" >-->
<!--</el-table-column>-->
<!--<el-table-column label="内容及标准" align="center" prop="libraryContent" >-->
<!--</el-table-column>-->
<!--<el-table-column label="任务期限" align="center" prop="timeTerm" />-->
<!--<el-table-column label="任务范围" align="center" prop="workRange" />-->
<el-table-column label="巡检状态" align="center" prop="isXun" width="80" >
<template slot-scope="scope">
<span style="color: red" v-if="scope.row.isXun==0">未巡检</span>
<span v-if="scope.row.isXun==1">已巡检</span>
</template>
</el-table-column>
<el-table-column label="巡检反馈内容" align="center" prop="checkFeedback" />
<el-table-column label="巡检图片" align="center" prop="checkUrl" >
<template slot-scope="scope">
<img :src="scope.row.checkUrl" style="width: 20%;vertical-align:middle;cursor:pointer;" @click="showPicture(scope.row)"/>
<el-image :zIndex="9999" :ref="'a'+scope.row.id" :src="scope.row.checkUrl" v-show="false" :preview-src-list="[scope.row.checkUrl]" v-if="scope.row.checkUrl != '' && scope.row.checkUrl != null"></el-image>
</template>
</el-table-column>
<el-table-column label="巡检人" align="center" prop="checkUser" >
</el-table-column>
<el-table-column label="巡检时间" align="center" prop="checkTime" width="180">
</el-table-column>
<!--<el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!--<template slot-scope="scope">-->
<!--<el-button-->
<!--size="mini"-->
<!--type="text"-->
<!--icon="el-icon-document-copy"-->
<!--@click="handleDetail1(scope.row)"-->
<!--&gt;巡检详情</el-button>-->
<!--</template>-->
<!--</el-table-column>-->
</el-table>
<pagination
style="margin-top: 5px;height: 40px;background: #f7f7f7;"
v-show="total3>0"
:total="total3"
:page.sync="queryParams3.pageNum"
:limit.sync="queryParams3.pageSize"
@pagination="handleDetail(null)"
/>
<!--<el-form label-width="100px">-->
<!--&lt;!&ndash;<el-form-item label="结束时间" prop="workEndTime">&ndash;&gt;-->
<!--&lt;!&ndash;{{workInfo.workEndTime}}&ndash;&gt;-->
<!--&lt;!&ndash;</el-form-item>&ndash;&gt;-->
<!--<div class="block">-->
<!--<el-timeline>-->
<!--<el-timeline-item :timestamp="assessment.checkTime+'(排查反馈)'" placement="top">-->
<!--<el-card>-->
<!--<el-form-item label="排查反馈:" >-->
<!--<dl v-html="assessment.checkFeedback">-->
<!--{{assessment.checkFeedback}}-->
<!--</dl>-->
<!--</el-form-item>-->
<div class="block">
<el-timeline>
<el-timeline-item :timestamp="assessment.checkTime+'(排查反馈)'" placement="top">
<el-card>
<el-form-item label="排查反馈:" >
<dl v-html="assessment.checkFeedback">
{{assessment.checkFeedback}}
</dl>
</el-form-item>
<el-form-item label="现场图片:" >
<img :src="assessment.checkUrl" style="height: 80px" @click="showPicture()"/>
<el-image :zIndex="9999" :ref="'a'+ 1" :src="assessment.checkUrl" v-show="false" :preview-src-list="[assessment.checkUrl]" v-if="assessment.checkUrl != '' && assessment.checkUrl != null"></el-image>
<!--<el-form-item label="现场图片:" >-->
<!--<img :src="assessment.checkUrl" style="height: 80px" @click="showPicture()"/>-->
<!--<el-image :zIndex="9999" :ref="'a'+ 1" :src="assessment.checkUrl" v-show="false" :preview-src-list="[assessment.checkUrl]" v-if="assessment.checkUrl != '' && assessment.checkUrl != null"></el-image>-->
</el-form-item>
<el-form-item label="排查人员:" >
{{assessment.checkUser}}
</el-form-item>
</el-card>
</el-timeline-item>
<el-card v-if="pinggu">
<el-form ref="assessment" :model="assessment" :rules="rules2" label-width="80px">
<el-form-item label="评估内容" prop="assessmentContent">
<editor v-model="assessment.assessmentContent" :min-height="192"/>
</el-form-item>
<!--</el-form-item>-->
<!--<el-form-item label="排查人员:" >-->
<!--{{assessment.checkUser}}-->
<!--</el-form-item>-->
<!--</el-card>-->
<!--</el-timeline-item>-->
<!--<el-card v-if="pinggu">-->
<!--<el-form ref="assessment" :model="assessment" :rules="rules2" label-width="80px">-->
<!--<el-form-item label="评估内容" prop="assessmentContent">-->
<!--<editor v-model="assessment.assessmentContent" :min-height="192"/>-->
<!--</el-form-item>-->
<el-form-item label="风险等级" prop="assessmentLevel">
<el-select v-model="assessment.assessmentLevel" placeholder="请选择评估风险等级">
<el-option
v-for="dict in assessmentLevelOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="parseInt(dict.dictValue)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="评估人" prop="assessmentUser">
<el-input v-model="assessment.assessmentUser" placeholder="请输入评估人" />
</el-form-item>
</el-form>
<el-button type="primary" style="margin-left:42%" @click="submitping">确定</el-button>
</el-card>
<el-button v-if="!pinggu && assessment.assessmentTime==null" type="primary" style="margin-left:42%" @click="beginping">任务评估</el-button>
<!--<el-form-item label="风险等级" prop="assessmentLevel">-->
<!--<el-select v-model="assessment.assessmentLevel" placeholder="请选择评估风险等级">-->
<!--<el-option-->
<!--v-for="dict in assessmentLevelOptions"-->
<!--:key="dict.dictValue"-->
<!--:label="dict.dictLabel"-->
<!--:value="parseInt(dict.dictValue)"-->
<!--&gt;</el-option>-->
<!--</el-select>-->
<!--</el-form-item>-->
<!--<el-form-item label="评估人" prop="assessmentUser">-->
<!--<el-input v-model="assessment.assessmentUser" placeholder="请输入评估人" />-->
<!--</el-form-item>-->
<!--</el-form>-->
<!--<el-button type="primary" style="margin-left:42%" @click="submitping">确定</el-button>-->
<!--</el-card>-->
<!--<el-button v-if="!pinggu && assessment.assessmentTime==null" type="primary" style="margin-left:42%" @click="beginping">任务评估</el-button>-->
<el-timeline-item v-if="assessment.assessmentTime!=null" :timestamp="assessment.assessmentTime+'(风险评估)'" placement="top">
<el-card>
<el-form-item label="风险等级:" >
{{assessment.assessmentLevel}}
</el-form-item>
<el-form-item label="评估内容:" >
<dl v-html="assessment.assessmentContent">
{{assessment.assessmentContent}}
</dl>
</el-form-item>
<el-form-item label="评估人:" >
{{assessment.assessmentUser}}
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item v-if="assessment.modifyBegin!=null" :timestamp="assessment.modifyBegin+'(隐患整改)'" placement="top">
<el-card>
<el-form-item label="是否整改:" >
<span v-if="assessment.isModify==1"></span>
<span v-if="assessment.isModify==0"></span>
</el-form-item>
<el-form-item label="整改意见:" >
<dl v-html="assessment.modifyOpinion">
{{assessment.modifyOpinion}}
</dl>
</el-form-item>
<el-form-item label="整改人:" >
{{assessment.modifyPeople}}
</el-form-item>
<el-form-item label="整改电话:" >
{{assessment.modifyPhone}}
</el-form-item>
<el-form-item label="整改期限:" >
{{assessment.modifyTerm}}天
</el-form-item>
<el-form-item label="结束时间:" >
{{assessment.modifyEnd}}
</el-form-item>
</el-card>
</el-timeline-item>
</el-timeline>
</div>
</el-form>
<!--<el-timeline-item v-if="assessment.assessmentTime!=null" :timestamp="assessment.assessmentTime+'(风险评估)'" placement="top">-->
<!--<el-card>-->
<!--<el-form-item label="风险等级:" >-->
<!--{{assessment.assessmentLevel}}-->
<!--</el-form-item>-->
<!--<el-form-item label="评估内容:" >-->
<!--<dl v-html="assessment.assessmentContent">-->
<!--{{assessment.assessmentContent}}-->
<!--</dl>-->
<!--</el-form-item>-->
<!--<el-form-item label="评估人:" >-->
<!--{{assessment.assessmentUser}}-->
<!--</el-form-item>-->
<!--</el-card>-->
<!--</el-timeline-item>-->
<!--<el-timeline-item v-if="assessment.modifyBegin!=null" :timestamp="assessment.modifyBegin+'(隐患整改)'" placement="top">-->
<!--<el-card>-->
<!--<el-form-item label="是否整改:" >-->
<!--<span v-if="assessment.isModify==1">是</span>-->
<!--<span v-if="assessment.isModify==0">否</span>-->
<!--</el-form-item>-->
<!--<el-form-item label="整改意见:" >-->
<!--<dl v-html="assessment.modifyOpinion">-->
<!--{{assessment.modifyOpinion}}-->
<!--</dl>-->
<!--</el-form-item>-->
<!--<el-form-item label="整改人:" >-->
<!--{{assessment.modifyPeople}}-->
<!--</el-form-item>-->
<!--<el-form-item label="整改电话:" >-->
<!--{{assessment.modifyPhone}}-->
<!--</el-form-item>-->
<!--<el-form-item label="整改期限:" >-->
<!--{{assessment.modifyTerm}}天-->
<!--</el-form-item>-->
<!--<el-form-item label="结束时间:" >-->
<!--{{assessment.modifyEnd}}-->
<!--</el-form-item>-->
<!--</el-card>-->
<!--</el-timeline-item>-->
<!--</el-timeline>-->
<!--</div>-->
<!--</el-form>-->
</el-dialog>
</div>
</template>
<script>
import { listWorkCheck, getWorkCheck, delWorkCheck, addWorkCheck, updateWorkCheck, exportWorkCheck } from "@/api/system/workCheck";
import { getAssessmentWorkId,updateAssessment } from "@/api/system/assessment";
import { getAssessmentWorkId,updateAssessment,listAssessment} from "@/api/system/assessment";
import { listLibrary} from "@/api/system/library";
import { listBook } from "@/api/system/book";
import Editor from '@/components/Editor';
......@@ -483,9 +530,11 @@ export default {
// 总条数
total: 0,
total2: 0,
total3: 0,
// 隐患排查任务表格数据
workCheckList: [],
childrenList:[],
assessmentList:[],
//部门列表
deptList:[],
//资料库
......@@ -528,6 +577,11 @@ export default {
workName: null,
workType: null,
},
queryParams3: {
pageNum: 1,
pageSize: 10,
workId: 0,
},
// 表单参数
form: {},
workInfo:{},
......@@ -552,8 +606,8 @@ export default {
workEndTime: [
{ required: true, message: "排查结束时间不能为空", trigger: "blur" }
],
deptId: [
{ required: true, message: "责任部门不能为空", trigger: "blur" }
staffId: [
{ required: true, message: "责任不能为空", trigger: "blur" }
],
// content: [
// { required: true, message: "排查内容不能为空", trigger: "blur" }
......@@ -727,16 +781,21 @@ export default {
this.open2 = true;
});
},
//任务详情
//任务详情listAssessment
handleDetail(row) {
getAssessmentWorkId(row.workId).then(response => {
console.log(response.data);
if(response.data==undefined){
this.msgError("任务未进行");
return;
if(row!=null){
this.queryParams3.workId = row.workId;
}
this.assessment = response.data;
this.assessment.assessmentLevel = this.selectDictLabel(this.assessmentLevelOptions, response.data.assessmentLevel)
listAssessment(this.queryParams3).then(response => {
console.log(response.rows);
this.assessmentList = response.rows;
this.total3 = response.total;
// if(response.data==undefined){
// this.msgError("任务未进行");
// return;
// }
// this.assessment = response.data;
// this.assessment.assessmentLevel = this.selectDictLabel(this.assessmentLevelOptions, response.data.assessmentLevel)
this.open3 = true;
});
},
......@@ -787,6 +846,10 @@ export default {
}
}
},
showPicture(row){
this.$refs['a'+row.id].showViewer = true;
console.log("===",row.id);
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
......@@ -824,6 +887,9 @@ export default {
::v-deep .el-form-item__content{
background: white;
}
::v-deep .el-table{
min-height: 500px;
}
.div-left{
min-height: 530px;
border-radius: 10px;
......
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