Commit 0429003f authored by 耿迪迪's avatar 耿迪迪

隐患待审核页面及隐患审核

parent 3b4880a4
...@@ -68,7 +68,7 @@ public class TDangerController extends BaseController ...@@ -68,7 +68,7 @@ public class TDangerController extends BaseController
tDanger.setIsVisitor("1"); tDanger.setIsVisitor("1");
} }
List<TDanger> list = tDangerService.selectTDangerList(tDanger); List<TDanger> list = tDangerService.selectTDangerList(tDanger);
setApprovalPermission(list); //setApprovalPermission(list);
return getDataTable(list); return getDataTable(list);
} }
...@@ -119,6 +119,18 @@ public class TDangerController extends BaseController ...@@ -119,6 +119,18 @@ public class TDangerController extends BaseController
} }
} }
/**
* 获取待审核隐患
* @param tDanger 隐患
* @return
*/
@GetMapping("/dangerPendingApprovalList")
public TableDataInfo dangerPendingApprovalList(TDanger tDanger){
List<TDanger> list = tDangerService.dangerPendingApprovalList(tDanger);
return getDataTable(list);
}
@GetMapping("/dangerInfoList") @GetMapping("/dangerInfoList")
public TableDataInfo dangerInfoList(TDanger tDanger){ public TableDataInfo dangerInfoList(TDanger tDanger){
startPage(); startPage();
......
...@@ -111,7 +111,7 @@ public class TRectifyGroupMemberInfoController extends BaseController ...@@ -111,7 +111,7 @@ public class TRectifyGroupMemberInfoController extends BaseController
* @return * @return
*/ */
@GetMapping("/selectMemberByUserPost") @GetMapping("/selectMemberByUserPost")
public AjaxResult selectMemberByUserPost(){ public AjaxResult selectMemberByUserPost(String dealMethod){
return AjaxResult.success(tRectifyGroupMemberInfoService.selectMemberByUserPost()); return AjaxResult.success(tRectifyGroupMemberInfoService.selectMemberByUserPost(dealMethod));
} }
} }
...@@ -113,7 +113,7 @@ public class TDanger extends BaseEntity ...@@ -113,7 +113,7 @@ public class TDanger extends BaseEntity
private Date endTime; private Date endTime;
/** 整改方式 */ /** 整改方式 */
@Excel(name = "整改方式",readConverterExp = "1=用户自行整改,2=用户出资公司整改,3=通知厂家上门维修检查,4=公司出资整改") @Excel(name = "整改方式",readConverterExp = "1=用户自行整改,2=用户出资燃气公司整改,3=燃气公司整改")
private String dealMethod; private String dealMethod;
/** 隐患状态,0待处理,1待复核,2已处理 */ /** 隐患状态,0待处理,1待复核,2已处理 */
......
...@@ -82,4 +82,11 @@ public interface ITDangerService ...@@ -82,4 +82,11 @@ public interface ITDangerService
* @return * @return
*/ */
int dangerApproval(List<DangerApprovalVo> approvalVo); int dangerApproval(List<DangerApprovalVo> approvalVo);
/**
* 获取待审核隐患
* @param tDanger 隐患
* @return
*/
List<TDanger> dangerPendingApprovalList(TDanger tDanger);
} }
...@@ -71,5 +71,5 @@ public interface ITRectifyGroupMemberInfoService ...@@ -71,5 +71,5 @@ public interface ITRectifyGroupMemberInfoService
* 根据登录人职位获取可选成员 * 根据登录人职位获取可选成员
* @return * @return
*/ */
List<TRectifyGroupMemberInfo> selectMemberByUserPost(); List<TRectifyGroupMemberInfo> selectMemberByUserPost(String dealMethod);
} }
package com.zehong.system.service.impl; package com.zehong.system.service.impl;
import com.github.pagehelper.PageHelper;
import com.zehong.common.core.domain.entity.SysUser; import com.zehong.common.core.domain.entity.SysUser;
import com.zehong.common.core.page.PageDomain;
import com.zehong.common.core.page.TableSupport;
import com.zehong.common.exception.CustomException; import com.zehong.common.exception.CustomException;
import com.zehong.common.utils.DateUtils; import com.zehong.common.utils.DateUtils;
import com.zehong.common.utils.SecurityUtils; import com.zehong.common.utils.SecurityUtils;
import com.zehong.common.utils.StringUtils;
import com.zehong.common.utils.sql.SqlUtil;
import com.zehong.system.domain.*; import com.zehong.system.domain.*;
import com.zehong.system.domain.vo.DangerApprovalVo; import com.zehong.system.domain.vo.DangerApprovalVo;
import com.zehong.system.mapper.*; import com.zehong.system.mapper.*;
import com.zehong.system.service.ISysUserService;
import com.zehong.system.service.ITDangerApprovalRecordService; import com.zehong.system.service.ITDangerApprovalRecordService;
import com.zehong.system.service.ITDangerService; import com.zehong.system.service.ITDangerService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -15,8 +21,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -15,8 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Date; import java.util.*;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -52,6 +57,23 @@ public class TDangerServiceImpl implements ITDangerService ...@@ -52,6 +57,23 @@ public class TDangerServiceImpl implements ITDangerService
@Autowired @Autowired
private ITDangerApprovalRecordService tDangerApprovalRecordService; private ITDangerApprovalRecordService tDangerApprovalRecordService;
@Resource
private TRectifyGroupMemberInfoMapper tRectifyGroupMemberInfoMapper;
@Autowired
private ISysUserService sysUserService;
/**
* 审核权限映射关系
* 1.班长审核 2.部门经理审核 3.安全部审核 4.安全总监审核 5.常务副总审核 6.总经理审核结束
*/
private final Map<String,String> approvalPermission = new HashMap<String,String>(){{
put("minister","2");
put("se","4");
put("fuzong","5");
put("manager","6");
}};
/** /**
* 查询安检隐患整改 * 查询安检隐患整改
...@@ -264,4 +286,98 @@ public class TDangerServiceImpl implements ITDangerService ...@@ -264,4 +286,98 @@ public class TDangerServiceImpl implements ITDangerService
} }
return 1; return 1;
} }
/**
* 获取待审核隐患
* @param tDanger 隐患
* @return
*/
public List<TDanger> dangerPendingApprovalList(TDanger tDanger){
/**
* 隐患是待审核状态的
* 1.审核状态是1 登录人是班长只查并且上报人在该组
* 2.审核状态是3 判断登录人是否为安全管理部
* 3.审核状态是2 4 5 6 判断登录人岗位
*/
//查询权限
String sqlCondition = buildSqlCondition();
if(StringUtils.isEmpty(sqlCondition)){
return new ArrayList<>();
}
//设置审核状态为待审核
tDanger.setStatus(3);
tDanger.getParams().put("approvalCondition",sqlCondition);
//构建分页参数
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize))
{
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
PageHelper.startPage(pageNum, pageSize, orderBy);
}
return tDangerMapper.selectTDangerList(tDanger);
}
private String buildSqlCondition() {
SysUser userInfo = SecurityUtils.getLoginUser().getUser();
List<String> conditions = new ArrayList<>();
// 1. 管理员条件
TRectifyGroupMemberInfo queryParam = new TRectifyGroupMemberInfo();
queryParam.setUserId(Long.valueOf(userInfo.getUserId()));
List<TRectifyGroupMemberInfo> memberInfoList = tRectifyGroupMemberInfoMapper.selectTRectifyGroupMemberInfoList(queryParam);
if (!CollectionUtils.isEmpty(memberInfoList)) {
boolean isAdmin = memberInfoList.stream().anyMatch(item -> "1".equals(item.getPost()));
if (isAdmin) {
List<Long> userIdList = memberInfoList.stream()
.map(TRectifyGroupMemberInfo::getUserId)
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
if (!CollectionUtils.isEmpty(userIdList)) {
String userIds = userIdList.stream()
.map(String::valueOf)
.collect(Collectors.joining(","));
conditions.add("(danger.admin_id IN (" + userIds + ") AND danger.approval_status = '1')");
}
}
}
// 2. 部门条件
if (userInfo != null && userInfo.getDept() != null && "安全管理部".equals(userInfo.getDept().getDeptName())) {
conditions.add("danger.approval_status = '3'");
}
// 3. 岗位条件
if (userInfo != null && StringUtils.isNotBlank(userInfo.getUserName())) {
List<SysPost> userPostList = sysUserService.selectPostsByUserName(userInfo.getUserName());
if (!CollectionUtils.isEmpty(userPostList)) {
Set<String> statusSet = userPostList.stream()
.map(SysPost::getPostCode)
.map(approvalPermission::get)
.filter(StringUtils::isNotBlank)
.collect(Collectors.toSet());
if (!CollectionUtils.isEmpty(statusSet)) {
String statuses = statusSet.stream()
.map(status -> "'" + status + "'")
.collect(Collectors.joining(","));
conditions.add("danger.approval_status IN (" + statuses + ")");
}
}
}
// 4. 组合所有条件
if (conditions.isEmpty()) {
return "";
}
return " AND (" + String.join(" OR ", conditions) + ")";
}
} }
...@@ -117,7 +117,7 @@ public class TRectifyGroupMemberInfoServiceImpl implements ITRectifyGroupMemberI ...@@ -117,7 +117,7 @@ public class TRectifyGroupMemberInfoServiceImpl implements ITRectifyGroupMemberI
* @return * @return
*/ */
@Override @Override
public List<TRectifyGroupMemberInfo> selectMemberByUserPost(){ public List<TRectifyGroupMemberInfo> selectMemberByUserPost(String dealMethod){
//登录人信息 //登录人信息
Long userId = SecurityUtils.getLoginUser().getUser().getUserId(); Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
//获取登录人职务 //获取登录人职务
...@@ -135,7 +135,7 @@ public class TRectifyGroupMemberInfoServiceImpl implements ITRectifyGroupMemberI ...@@ -135,7 +135,7 @@ public class TRectifyGroupMemberInfoServiceImpl implements ITRectifyGroupMemberI
*/ */
if("1".equals(memberInfo.getPost())){ if("1".equals(memberInfo.getPost())){
//长登录 //长登录
if("2".equals(memberInfo.getType())){ if("2".equals(memberInfo.getType())){
//维修班班长登录 //维修班班长登录
//维修班组员信息 //维修班组员信息
...@@ -157,12 +157,21 @@ public class TRectifyGroupMemberInfoServiceImpl implements ITRectifyGroupMemberI ...@@ -157,12 +157,21 @@ public class TRectifyGroupMemberInfoServiceImpl implements ITRectifyGroupMemberI
result.addAll(leaderInfo); result.addAll(leaderInfo);
}else{ }else{
//其他班班长 //其他班班长
//维修班组长信息 if("1".equals(dealMethod)){
TRectifyGroupMemberInfo leader = new TRectifyGroupMemberInfo(); //自行整改只能看到自己的组员
leader.setPost("1"); TRectifyGroupMemberInfo InspectTeam = new TRectifyGroupMemberInfo();
leader.setType("2"); InspectTeam.setGroupId(memberInfo.getGroupId());
List<TRectifyGroupMemberInfo> leaderInfo = tRectifyGroupMemberInfoMapper.selectTRectifyGroupMemberInfoList(leader); InspectTeam.setPost("2");
result.addAll(leaderInfo); List<TRectifyGroupMemberInfo> teamInfo = tRectifyGroupMemberInfoMapper.selectTRectifyGroupMemberInfoList(InspectTeam);
result.addAll(teamInfo);
}else{
//非自行整改只能看到维修班组长信息
TRectifyGroupMemberInfo leader = new TRectifyGroupMemberInfo();
leader.setPost("1");
leader.setType("2");
List<TRectifyGroupMemberInfo> leaderInfo = tRectifyGroupMemberInfoMapper.selectTRectifyGroupMemberInfoList(leader);
result.addAll(leaderInfo);
}
} }
}else{ }else{
......
...@@ -150,6 +150,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -150,6 +150,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="reportName != null and reportName != ''"> and us.nick_name like concat('%',#{reportName},'%')</if> <if test="reportName != null and reportName != ''"> and us.nick_name like concat('%',#{reportName},'%')</if>
<if test="beginDate != null and endDate != null"> and danger.create_time BETWEEN #{beginDate} and #{endDate}</if> <if test="beginDate != null and endDate != null"> and danger.create_time BETWEEN #{beginDate} and #{endDate}</if>
<if test="branch != null "> and danger.branch = #{branch}</if> <if test="branch != null "> and danger.branch = #{branch}</if>
<if test="params != null and params.approvalCondition != null and params.approvalCondition != ''">${params.approvalCondition}</if>
</where> </where>
ORDER BY create_time DESC ORDER BY create_time DESC
</select> </select>
......
...@@ -69,3 +69,12 @@ export function dangerApproval(data) { ...@@ -69,3 +69,12 @@ export function dangerApproval(data) {
data: data data: data
}) })
} }
//查询当前登录人待审核隐患
export function dangerPendingApprovalList(query) {
return request({
url: '/checkTask/danger/dangerPendingApprovalList',
method: 'get',
params: query
})
}
...@@ -115,7 +115,7 @@ ...@@ -115,7 +115,7 @@
>导出</el-button> >导出</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <!--<el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
plain plain
...@@ -123,7 +123,7 @@ ...@@ -123,7 +123,7 @@
@click="handleApproval" @click="handleApproval"
v-hasPermi="['checkTask:danger:approval']" v-hasPermi="['checkTask:danger:approval']"
>审核</el-button> >审核</el-button>
</el-col> </el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
...@@ -192,13 +192,13 @@ ...@@ -192,13 +192,13 @@
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['checkTask:danger:remove']" v-hasPermi="['checkTask:danger:remove']"
>删除</el-button> >删除</el-button>
<el-button <!--<el-button
size="mini" size="mini"
type="text" type="text"
@click="handleApproval(scope.row)" @click="handleApproval(scope.row)"
v-if="scope.row.hasApprovalPermission" v-if="scope.row.hasApprovalPermission"
v-hasPermi="['checkTask:danger:approval']" v-hasPermi="['checkTask:danger:approval']"
>审核</el-button> >审核</el-button>-->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
<template>
<el-dialog :title="title" :visible.sync="approvalOpen" width="800px" append-to-body destroy-on-close :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="24">
<el-form-item label="审核状态" prop="state">
<el-radio-group v-model="form.state">
<el-radio :label="0">通过</el-radio>
<el-radio :label="1">不通过</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="审核意见" prop="suggestion">
<el-input type="textarea" v-model="form.suggestion" placeholder="请输入审核意见"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { dangerApproval } from "@/api/checktask/danger";
export default {
name: "approval",
data(){
return{
title: "审核",
approvalOpen: false,
ids: [],
form: {},
rules: {
state: [
{ required: true, message: "请选择审核状态", trigger: "change" }
],
}
}
},
methods:{
open(ids){
this.reset();
this.ids = ids;
this.approvalOpen = true;
},
submitForm(){
this.$refs["form"].validate(valid => {
if (valid) {
let data = [];
this.ids.forEach(item =>{
data.push({
id: item,
...this.form
})
})
dangerApproval(data).then(res =>{
this.$message.success("审核成功");
this.approvalOpen = false;
this.$parent.getList();
})
}
})
},
cancel(){
this.approvalOpen = false;
},
reset(){
this.form = {
state: null,
suggestion: null
}
this.resetForm("form");
}
}
}
</script>
<style scoped>
</style>
This diff is collapsed.
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