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

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

parent 3b4880a4
......@@ -68,7 +68,7 @@ public class TDangerController extends BaseController
tDanger.setIsVisitor("1");
}
List<TDanger> list = tDangerService.selectTDangerList(tDanger);
setApprovalPermission(list);
//setApprovalPermission(list);
return getDataTable(list);
}
......@@ -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")
public TableDataInfo dangerInfoList(TDanger tDanger){
startPage();
......
......@@ -111,7 +111,7 @@ public class TRectifyGroupMemberInfoController extends BaseController
* @return
*/
@GetMapping("/selectMemberByUserPost")
public AjaxResult selectMemberByUserPost(){
return AjaxResult.success(tRectifyGroupMemberInfoService.selectMemberByUserPost());
public AjaxResult selectMemberByUserPost(String dealMethod){
return AjaxResult.success(tRectifyGroupMemberInfoService.selectMemberByUserPost(dealMethod));
}
}
......@@ -113,7 +113,7 @@ public class TDanger extends BaseEntity
private Date endTime;
/** 整改方式 */
@Excel(name = "整改方式",readConverterExp = "1=用户自行整改,2=用户出资公司整改,3=通知厂家上门维修检查,4=公司出资整改")
@Excel(name = "整改方式",readConverterExp = "1=用户自行整改,2=用户出资燃气公司整改,3=燃气公司整改")
private String dealMethod;
/** 隐患状态,0待处理,1待复核,2已处理 */
......
......@@ -82,4 +82,11 @@ public interface ITDangerService
* @return
*/
int dangerApproval(List<DangerApprovalVo> approvalVo);
/**
* 获取待审核隐患
* @param tDanger 隐患
* @return
*/
List<TDanger> dangerPendingApprovalList(TDanger tDanger);
}
......@@ -71,5 +71,5 @@ public interface ITRectifyGroupMemberInfoService
* 根据登录人职位获取可选成员
* @return
*/
List<TRectifyGroupMemberInfo> selectMemberByUserPost();
List<TRectifyGroupMemberInfo> selectMemberByUserPost(String dealMethod);
}
package com.zehong.system.service.impl;
import com.github.pagehelper.PageHelper;
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.utils.DateUtils;
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.vo.DangerApprovalVo;
import com.zehong.system.mapper.*;
import com.zehong.system.service.ISysUserService;
import com.zehong.system.service.ITDangerApprovalRecordService;
import com.zehong.system.service.ITDangerService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -15,8 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -52,6 +57,23 @@ public class TDangerServiceImpl implements ITDangerService
@Autowired
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
}
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
* @return
*/
@Override
public List<TRectifyGroupMemberInfo> selectMemberByUserPost(){
public List<TRectifyGroupMemberInfo> selectMemberByUserPost(String dealMethod){
//登录人信息
Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
//获取登录人职务
......@@ -135,7 +135,7 @@ public class TRectifyGroupMemberInfoServiceImpl implements ITRectifyGroupMemberI
*/
if("1".equals(memberInfo.getPost())){
//长登录
//长登录
if("2".equals(memberInfo.getType())){
//维修班班长登录
//维修班组员信息
......@@ -157,13 +157,22 @@ public class TRectifyGroupMemberInfoServiceImpl implements ITRectifyGroupMemberI
result.addAll(leaderInfo);
}else{
//其他班班长
//维修班组长信息
if("1".equals(dealMethod)){
//自行整改只能看到自己的组员
TRectifyGroupMemberInfo InspectTeam = new TRectifyGroupMemberInfo();
InspectTeam.setGroupId(memberInfo.getGroupId());
InspectTeam.setPost("2");
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{
//组员登录
......
......@@ -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="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="params != null and params.approvalCondition != null and params.approvalCondition != ''">${params.approvalCondition}</if>
</where>
ORDER BY create_time DESC
</select>
......
......@@ -69,3 +69,12 @@ export function dangerApproval(data) {
data: data
})
}
//查询当前登录人待审核隐患
export function dangerPendingApprovalList(query) {
return request({
url: '/checkTask/danger/dangerPendingApprovalList',
method: 'get',
params: query
})
}
......@@ -115,7 +115,7 @@
>导出</el-button>
</el-col>
<el-col :span="1.5">
<!--<el-col :span="1.5">
<el-button
type="primary"
plain
......@@ -123,7 +123,7 @@
@click="handleApproval"
v-hasPermi="['checkTask:danger:approval']"
>审核</el-button>
</el-col>
</el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
......@@ -192,13 +192,13 @@
@click="handleDelete(scope.row)"
v-hasPermi="['checkTask:danger:remove']"
>删除</el-button>
<el-button
<!--<el-button
size="mini"
type="text"
@click="handleApproval(scope.row)"
v-if="scope.row.hasApprovalPermission"
v-hasPermi="['checkTask:danger:approval']"
>审核</el-button>
>审核</el-button>-->
</template>
</el-table-column>
</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