# Conflicts:
#	renren-admin/src/main/resources/db/V8.4__tb_fuse_add_col.sql
This commit is contained in:
dinggang 2022-12-14 11:39:51 +08:00
commit fbeadb6ba3
23 changed files with 434 additions and 157 deletions

View File

@ -33,7 +33,11 @@ public class RejectController {
@Autowired @Autowired
private SysUserService sysUserService; private SysUserService sysUserService;
/**
* @param taskId 驳回到第一节点的当前task
* @param params 尝试更新表单
* @return
*/
@PostMapping("relaunch/{taskId}") @PostMapping("relaunch/{taskId}")
@ApiOperation("携带更新后的表单重新发起流程") @ApiOperation("携带更新后的表单重新发起流程")
@LogOperation("携带更新后的表单重新发起流程") @LogOperation("携带更新后的表单重新发起流程")
@ -54,7 +58,7 @@ public class RejectController {
taskService.removeVariable(task.getId(), "parameterContent"); taskService.removeVariable(task.getId(), "parameterContent");
taskService.removeVariable(task.getId(), "resourceDTO"); taskService.removeVariable(task.getId(), "resourceDTO");
taskService.setVariables(task.getId(), combineResultMap); // 更新 taskService.setVariables(task.getId(), combineResultMap); // 更新
logger.error("-----------{}", JSON.toJSONString(combineResultMap)); logger.info("携带更新后的表单重新发起流程:{}", JSON.toJSONString(combineResultMap));
taskService.setVariable(task.getId(), "backToFirst", Boolean.FALSE); // 标识驳回标签false taskService.setVariable(task.getId(), "backToFirst", Boolean.FALSE); // 标识驳回标签false
taskService.setVariable(task.getId(), "completeEntry", Boolean.FALSE); // 标志为非首次录入 taskService.setVariable(task.getId(), "completeEntry", Boolean.FALSE); // 标志为非首次录入
taskService.setVariable(task.getId(), "reject", Boolean.FALSE); // 标识流程中是否存在拒绝false taskService.setVariable(task.getId(), "reject", Boolean.FALSE); // 标识流程中是否存在拒绝false
@ -64,7 +68,7 @@ public class RejectController {
String name = userDTOOptional.isPresent() ? userDTOOptional.get().getRealName() : ""; String name = userDTOOptional.isPresent() ? userDTOOptional.get().getRealName() : "";
actTaskService.completeTask(task.getId(), name + "重新发起审核"); actTaskService.completeTask(task.getId(), name + "重新发起审核");
result.set(new Result().ok(name + "重新发起审核成功")); result.set(new Result().ok(name + "重新发起审核成功"));
logger.error("{}重新发起审核成功", name); logger.info("{} 重新发起审核成功", name);
}); });
return result.get(); return result.get();
} }

View File

@ -16,6 +16,7 @@ import io.renren.modules.audit_team.service.SysAuditTeamService;
import io.renren.modules.security.user.SecurityUser; import io.renren.modules.security.user.SecurityUser;
import io.renren.modules.security.user.UserDetail; import io.renren.modules.security.user.UserDetail;
import io.renren.modules.sys.dto.SysUserDTO; import io.renren.modules.sys.dto.SysUserDTO;
import io.renren.modules.sys.service.SysRoleUserService;
import io.renren.modules.sys.service.SysUserService; import io.renren.modules.sys.service.SysUserService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@ -29,8 +30,8 @@ import org.activiti.engine.task.TaskQuery;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -73,6 +74,12 @@ public class ActTaskController {
@Value("#{new Boolean(${auditteam.enable})}") @Value("#{new Boolean(${auditteam.enable})}")
private Boolean auditteam; // 是否进行审核组 private Boolean auditteam; // 是否进行审核组
@Value("${big_date.assignee_meet_role_id}")
private String defaultAssigneeRoleId; // 会客厅审核人角色
@Autowired
private SysRoleUserService sysRoleUserService;
private JdbcTemplate lcJdbcTemplate = JdbcTemplateFactory.getJdbcTemplate(); private JdbcTemplate lcJdbcTemplate = JdbcTemplateFactory.getJdbcTemplate();
/** /**
@ -132,34 +139,37 @@ public class ActTaskController {
* 当未指定流程类型时 补充一下会客厅的待办 * 当未指定流程类型时 补充一下会客厅的待办
*/ */
if (!(params.containsKey("processDefinitionKey") && org.apache.commons.lang3.StringUtils.isNotEmpty(params.get("processDefinitionKey").toString()))) { if (!(params.containsKey("processDefinitionKey") && org.apache.commons.lang3.StringUtils.isNotEmpty(params.get("processDefinitionKey").toString()))) {
int meetingroom_book = jdbcTemplate.queryForObject("SELECT COUNT(id) FROM t_meetingroom_book WHERE state = 1;", Integer.class); List<Long> useIds = sysRoleUserService.getUserIdListByRoleId(Long.parseLong(defaultAssigneeRoleId));
page.setTotal(page.getTotal() + meetingroom_book); if (useIds.stream().filter(index -> index == SecurityUser.getUserId()).findFirst().isPresent()) { // 拥有会客厅审核权限
Integer limit = 10; int meetingroom_book = jdbcTemplate.queryForObject("SELECT COUNT(id) FROM t_meetingroom_book WHERE state = 1;", Integer.class);
if (params.get(Constant.LIMIT) != null) { page.setTotal(page.getTotal() + meetingroom_book);
limit = Integer.parseInt((String) params.get(Constant.LIMIT)); Integer limit = 10;
} if (params.get(Constant.LIMIT) != null) {
if (page.getList().size() < limit) { limit = Integer.parseInt((String) params.get(Constant.LIMIT));
List<Map<String, Object>> meetingroom_bookTask = jdbcTemplate.queryForList("SELECT " + }
" t_meetingroom_book.id AS `taskId`, " + if (page.getList().size() < limit) {
" t_meetingroom_book.dept AS `userDeptName`, " + List<Map<String, Object>> meetingroom_bookTask = jdbcTemplate.queryForList("SELECT " +
" '会客厅' AS `resourceType`, " + " t_meetingroom_book.id AS `taskId`, " +
" '青岛市大数据发展管理局' AS `provideDept`, " + " t_meetingroom_book.dept AS `userDeptName`, " +
" t_meetingroom.`name` AS `userName`, " + " '会客厅' AS `resourceType`, " +
" '会客厅审核' AS `taskName `, " + " '青岛市大数据发展管理局' AS `provideDept`, " +
" t_meetingroom.create_date AS `createTime` " + " t_meetingroom.`name` AS `userName`, " +
"FROM " + " '会客厅审核' AS `taskName `, " +
" t_meetingroom_book " + " t_meetingroom.create_date AS `createTime` " +
" LEFT JOIN t_meetingroom ON t_meetingroom_book.room_id = t_meetingroom.id " + "FROM " +
"WHERE " + " t_meetingroom_book " +
" state = 1;"); " LEFT JOIN t_meetingroom ON t_meetingroom_book.room_id = t_meetingroom.id " +
List<TaskDTO> meetingroom_bookTaskDto = meetingroom_bookTask "WHERE " +
.stream().map(index -> { " state = 1;");
TaskDTO taskDTO = JSON.parseObject(JSON.toJSONString(index), TaskDTO.class); List<TaskDTO> meetingroom_bookTaskDto = meetingroom_bookTask
return taskDTO; .stream().map(index -> {
}).collect(Collectors.toList()); TaskDTO taskDTO = JSON.parseObject(JSON.toJSONString(index), TaskDTO.class);
List<TaskDTO> temp = page.getList(); return taskDTO;
temp.addAll(meetingroom_bookTaskDto); }).collect(Collectors.toList());
page.setList(temp); List<TaskDTO> temp = page.getList();
temp.addAll(meetingroom_bookTaskDto);
page.setList(temp);
}
} }
} }
return new Result<PageData<TaskDTO>>().ok(page); return new Result<PageData<TaskDTO>>().ok(page);
@ -185,7 +195,7 @@ public class ActTaskController {
taskQuery.taskAssignee(SecurityUser.getUserId().toString()); taskQuery.taskAssignee(SecurityUser.getUserId().toString());
taskQuery.active(); taskQuery.active();
if (auditteam) { // 允许流程审核协作时 if (auditteam) { // 允许流程审核协作时
List<SysAuditTeamDTO> sysAuditTeamDTOS = sysAuditTeamService.selectByMemberOne(userId); List<SysAuditTeamDTO> sysAuditTeamDTOS = sysAuditTeamService.selectByMemberOne(Long.parseLong(userId));
List<String> groupUserId = sysAuditTeamDTOS List<String> groupUserId = sysAuditTeamDTOS
.stream() .stream()
.map(index_ -> index_.getMember()) .map(index_ -> index_.getMember())

View File

@ -19,10 +19,12 @@ import io.renren.modules.resource.dto.ResourceDTO;
import io.renren.modules.resource.service.ResourceService; import io.renren.modules.resource.service.ResourceService;
import io.renren.modules.resourceMountApply.dto.TResourceMountApplyDTO; import io.renren.modules.resourceMountApply.dto.TResourceMountApplyDTO;
import io.renren.modules.resourceMountApply.service.TResourceMountApplyService; import io.renren.modules.resourceMountApply.service.TResourceMountApplyService;
import io.renren.modules.security.user.SecurityUser;
import io.renren.modules.sys.dao.SysUserDao; import io.renren.modules.sys.dao.SysUserDao;
import io.renren.modules.sys.dto.SysDeptDTO; import io.renren.modules.sys.dto.SysDeptDTO;
import io.renren.modules.sys.dto.SysUserDTO; import io.renren.modules.sys.dto.SysUserDTO;
import io.renren.modules.sys.service.SysDeptService; import io.renren.modules.sys.service.SysDeptService;
import io.renren.modules.sys.service.SysRoleUserService;
import io.renren.modules.sys.service.SysUserService; import io.renren.modules.sys.service.SysUserService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@ -37,6 +39,7 @@ import org.activiti.engine.history.HistoricProcessInstanceQuery;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -89,10 +92,15 @@ public class HistoryController {
private SysDeptService sysDeptService; private SysDeptService sysDeptService;
@Autowired @Autowired
private JdbcTemplate jdbcTemplate; private JdbcTemplate jdbcTemplate;
@Autowired
private SysRoleUserService sysRoleUserService;
@Autowired @Autowired
private SysUserDao sysUserDao; private SysUserDao sysUserDao;
@Value("${big_date.assignee_meet_role_id}")
private String defaultAssigneeRoleId; // 会客厅审核人角色
@GetMapping("getInstImage") @GetMapping("getInstImage")
@ApiOperation(value = "获取流程活动图", produces = "application/octet-stream") @ApiOperation(value = "获取流程活动图", produces = "application/octet-stream")
@LogOperation("获取流程活动图") @LogOperation("获取流程活动图")
@ -132,35 +140,38 @@ public class HistoryController {
params.replace("processDefinitionKey", params.get("processDefinitionKey").toString() + "%"); params.replace("processDefinitionKey", params.get("processDefinitionKey").toString() + "%");
} }
PageData<ProcessActivityDTO> page = activitiService.getMyProcessInstancePage(params); PageData<ProcessActivityDTO> page = activitiService.getMyProcessInstancePage(params);
List<Long> useIds = sysRoleUserService.getUserIdListByRoleId(Long.parseLong(defaultAssigneeRoleId));
if (!(params.containsKey("processDefinitionKey") && org.apache.commons.lang3.StringUtils.isNotEmpty(params.get("processDefinitionKey").toString()))) { if (!(params.containsKey("processDefinitionKey") && org.apache.commons.lang3.StringUtils.isNotEmpty(params.get("processDefinitionKey").toString()))) {
int meetingroom_book = jdbcTemplate.queryForObject("SELECT COUNT(id) FROM t_meetingroom_book WHERE state != 1;", Integer.class); if (useIds.stream().filter(index -> index == SecurityUser.getUserId()).findFirst().isPresent()) { // 拥有会客厅审核权限
page.setTotal(page.getTotal() + meetingroom_book); int meetingroom_book = jdbcTemplate.queryForObject("SELECT COUNT(id) FROM t_meetingroom_book WHERE state != 1;", Integer.class);
Integer limit = 10; page.setTotal(page.getTotal() + meetingroom_book);
if (params.get(Constant.LIMIT) != null) { Integer limit = 10;
limit = Integer.parseInt((String) params.get(Constant.LIMIT)); if (params.get(Constant.LIMIT) != null) {
} limit = Integer.parseInt((String) params.get(Constant.LIMIT));
if (page.getList().size() < limit) { }
List<Map<String, Object>> meetingroom_bookTask = jdbcTemplate.queryForList("SELECT " + if (page.getList().size() < limit) {
" t_meetingroom_book.id AS `businessKey`, " + List<Map<String, Object>> meetingroom_bookTask = jdbcTemplate.queryForList("SELECT " +
" t_meetingroom_book.dept AS `startUserDeptName`, " + " t_meetingroom_book.id AS `businessKey`, " +
" '会客厅' AS `resourceName`, " + " t_meetingroom_book.dept AS `startUserDeptName`, " +
" '青岛市大数据发展管理局' AS `provideDept`, " + " '会客厅' AS `resourceName`, " +
" t_meetingroom.`name` AS `userName`, " + " '青岛市大数据发展管理局' AS `provideDept`, " +
" '会客厅审核' AS `processDefinitionName `, " + " t_meetingroom.`name` AS `userName`, " +
" t_meetingroom.create_date AS `startTime` " + " '会客厅审核' AS `processDefinitionName `, " +
"FROM " + " t_meetingroom.create_date AS `startTime` " +
" t_meetingroom_book " + "FROM " +
" LEFT JOIN t_meetingroom ON t_meetingroom_book.room_id = t_meetingroom.id " + " t_meetingroom_book " +
"WHERE " + " LEFT JOIN t_meetingroom ON t_meetingroom_book.room_id = t_meetingroom.id " +
" state != 1 ;"); "WHERE " +
List<ProcessActivityDTO> meetingroom_bookTaskDto = meetingroom_bookTask " state != 1 ;");
.stream().map(index -> { List<ProcessActivityDTO> meetingroom_bookTaskDto = meetingroom_bookTask
ProcessActivityDTO taskDTO = JSON.parseObject(JSON.toJSONString(index), ProcessActivityDTO.class); .stream().map(index -> {
return taskDTO; ProcessActivityDTO taskDTO = JSON.parseObject(JSON.toJSONString(index), ProcessActivityDTO.class);
}).collect(Collectors.toList()); return taskDTO;
List<ProcessActivityDTO> temp = page.getList(); }).collect(Collectors.toList());
temp.addAll(meetingroom_bookTaskDto); List<ProcessActivityDTO> temp = page.getList();
page.setList(temp); temp.addAll(meetingroom_bookTaskDto);
page.setList(temp);
}
} }
} }
setExtraProcessProperties(Optional.ofNullable(page.getList()).orElse(new ArrayList<>())); setExtraProcessProperties(Optional.ofNullable(page.getList()).orElse(new ArrayList<>()));

View File

@ -146,11 +146,12 @@ public class ActTaskService extends BaseServiceImpl {
List<String> groupUserId = new ArrayList<>(); List<String> groupUserId = new ArrayList<>();
List<SysAuditTeamDTO> sysAuditTeamDTOS = new ArrayList<>(); List<SysAuditTeamDTO> sysAuditTeamDTOS = new ArrayList<>();
if (auditteam) { if (auditteam) {
sysAuditTeamDTOS = sysAuditTeamService.selectByMemberOne(userId); sysAuditTeamDTOS = sysAuditTeamService.selectByMemberOne(Long.parseLong(userId));
groupUserId = sysAuditTeamDTOS groupUserId = sysAuditTeamDTOS
.stream() .stream()
.map(index -> index.getMember()) .map(index -> index.getMember())
.filter(Objects::nonNull) .filter(Objects::nonNull)
.filter(index -> !index.isEmpty())
.flatMap(index -> index.stream()) .flatMap(index -> index.stream())
.map(index -> (String) index.get("id")) .map(index -> (String) index.get("id"))
.filter(index -> !userId.equals(index)) // 过滤非本人 .filter(index -> !userId.equals(index)) // 过滤非本人

View File

@ -52,7 +52,8 @@ public class SysAuditTeamController {
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码从1开始", paramType = "query", required = true, dataType = "int"), @ApiImplicitParam(name = Constant.PAGE, value = "当前页码从1开始", paramType = "query", required = true, dataType = "int"),
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query", required = true, dataType = "int"), @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query", required = true, dataType = "int"),
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType = "String"), @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType = "String") @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "name", value = "根据审核组名称模糊查", paramType = "query", dataType = "String")
}) })
// @RequiresPermissions("audit_team:sysauditteam:page") // @RequiresPermissions("audit_team:sysauditteam:page")
public Result<PageData<SysAuditTeamDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params) { public Result<PageData<SysAuditTeamDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params) {
@ -80,6 +81,7 @@ public class SysAuditTeamController {
dto.setIndex(CommonUtils.getPinYinHeadChar(dto.getName())); // 索引设置为名称拼音 dto.setIndex(CommonUtils.getPinYinHeadChar(dto.getName())); // 索引设置为名称拼音
dto.setMember(dto.getMember().stream().map(index -> { dto.setMember(dto.getMember().stream().map(index -> {
Optional<SysUserDTO> sysUserDTO = Optional.ofNullable(sysUserService.get(Long.parseLong((String) index.get("id")))); Optional<SysUserDTO> sysUserDTO = Optional.ofNullable(sysUserService.get(Long.parseLong((String) index.get("id"))));
index.put("id", Long.parseLong((String) index.get("id")));
if (sysUserDTO.isPresent()) { if (sysUserDTO.isPresent()) {
index.put("name", sysUserDTO.get().getRealName()); index.put("name", sysUserDTO.get().getRealName());
index.put("dept_name", sysUserDTO.get().getDeptName()); index.put("dept_name", sysUserDTO.get().getDeptName());
@ -99,7 +101,8 @@ public class SysAuditTeamController {
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
dto.setIndex(CommonUtils.getPinYinHeadChar(dto.getName())); // 索引设置为名称拼音 dto.setIndex(CommonUtils.getPinYinHeadChar(dto.getName())); // 索引设置为名称拼音
dto.setMember(dto.getMember().stream().map(index -> { dto.setMember(dto.getMember().stream().map(index -> {
Optional<SysUserDTO> sysUserDTO = Optional.ofNullable(sysUserService.get((long) index.get("id"))); Optional<SysUserDTO> sysUserDTO = Optional.ofNullable(sysUserService.get(Long.parseLong((String) index.get("id"))));
index.put("id", Long.parseLong((String) index.get("id")));
if (sysUserDTO.isPresent()) { if (sysUserDTO.isPresent()) {
index.put("name", sysUserDTO.get().getRealName()); index.put("name", sysUserDTO.get().getRealName());
index.put("dept_name", sysUserDTO.get().getDeptName()); index.put("dept_name", sysUserDTO.get().getDeptName());

View File

@ -23,5 +23,5 @@ public interface SysAuditTeamDao extends BaseDao<SysAuditTeamEntity> {
* @param member * @param member
* @return * @return
*/ */
List<SysAuditTeamDTO> selectByMemberOne(@Param("member") String member); List<SysAuditTeamDTO> selectByMemberOne(@Param("member") Long member);
} }

View File

@ -32,5 +32,7 @@ public class SysAuditTeamDTO implements Serializable {
private List<Map> member; private List<Map> member;
@ApiModelProperty(value = "审核组索引") @ApiModelProperty(value = "审核组索引")
private String index; private String index;
@ApiModelProperty(value = "审核组备注内容")
private String description;
} }

View File

@ -39,4 +39,9 @@ public class SysAuditTeamEntity extends BaseEntity implements Serializable {
*/ */
@TableField(value = "`index`") @TableField(value = "`index`")
private String index; private String index;
/**
* 审核组备注内容
*/
private String description;
} }

View File

@ -13,5 +13,5 @@ import java.util.List;
* @since 1.0 2022-12-12 * @since 1.0 2022-12-12
*/ */
public interface SysAuditTeamService extends CrudService<SysAuditTeamEntity, SysAuditTeamDTO> { public interface SysAuditTeamService extends CrudService<SysAuditTeamEntity, SysAuditTeamDTO> {
List<SysAuditTeamDTO> selectByMemberOne(String member); List<SysAuditTeamDTO> selectByMemberOne(Long member);
} }

View File

@ -1,6 +1,7 @@
package io.renren.modules.audit_team.service.impl; package io.renren.modules.audit_team.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import io.renren.common.service.impl.CrudServiceImpl; import io.renren.common.service.impl.CrudServiceImpl;
import io.renren.modules.audit_team.dao.SysAuditTeamDao; import io.renren.modules.audit_team.dao.SysAuditTeamDao;
import io.renren.modules.audit_team.dto.SysAuditTeamDTO; import io.renren.modules.audit_team.dto.SysAuditTeamDTO;
@ -23,14 +24,21 @@ public class SysAuditTeamServiceImpl extends CrudServiceImpl<SysAuditTeamDao, Sy
@Override @Override
public QueryWrapper<SysAuditTeamEntity> getWrapper(Map<String, Object> params) { public QueryWrapper<SysAuditTeamEntity> getWrapper(Map<String, Object> params) {
QueryWrapper<SysAuditTeamEntity> wrapper = new QueryWrapper<>(); QueryWrapper<SysAuditTeamEntity> wrapper = new QueryWrapper<>();
params.keySet().stream().filter(index -> null != params.get(index)).forEach(index -> {
switch (index) {
case "name":
wrapper.like(StringUtils.isNotBlank(params.get("name").toString()), "name", params.get("name").toString());
break;
default:
break;
}
});
return wrapper; return wrapper;
} }
@Override @Override
public List<SysAuditTeamDTO> selectByMemberOne(String member) { public List<SysAuditTeamDTO> selectByMemberOne(Long member) {
return baseDao.selectByMemberOne(member); return baseDao.selectByMemberOne(member);
} }
} }

View File

@ -95,7 +95,7 @@ public class TDemandDataController {
tDemandDataService.save(dto); tDemandDataService.save(dto);
return new Result(); return new Result().ok("保存成功");
} }
@PutMapping @PutMapping
@ -108,7 +108,7 @@ public class TDemandDataController {
tDemandDataService.update(dto); tDemandDataService.update(dto);
return new Result(); return new Result().ok("修改成功");
} }
@DeleteMapping @DeleteMapping

View File

@ -43,8 +43,10 @@ public class TDemandDataDTO extends AuditingBaseDTO implements Serializable {
private String detailsField; private String detailsField;
private Long creator; private Long creator;
private Date createDate; private Date createDate;
@ApiModelProperty(value = "附件") @ApiModelProperty(value = "附件名称")
private String enclosure; private String enclosure;
@ApiModelProperty(value = "附件")
private String enclosureName;
@ApiModelProperty(value = "业务标志0:初始化 1:审批中 2:审批拒绝 3:审批通过)") @ApiModelProperty(value = "业务标志0:初始化 1:审批中 2:审批拒绝 3:审批通过)")
private Integer flag; private Integer flag;
@ApiModelProperty(value = "业务标志提示0:初始化 1:审批中 2:审批拒绝 3:审批通过)") @ApiModelProperty(value = "业务标志提示0:初始化 1:审批中 2:审批拒绝 3:审批通过)")

View File

@ -57,6 +57,11 @@ public class TDemandDataEntity extends BaseEntity {
* 附件 * 附件
*/ */
private String enclosure; private String enclosure;
/**
* 附件名称
*/
private String enclosureName;
/** /**
* 业务标志0:初始化 1:审批中 2:审批拒绝 3:审批通过 * 业务标志0:初始化 1:审批中 2:审批拒绝 3:审批通过
*/ */

View File

@ -11,17 +11,17 @@ import io.renren.common.validator.ValidatorUtils;
import io.renren.common.validator.group.AddGroup; import io.renren.common.validator.group.AddGroup;
import io.renren.common.validator.group.DefaultGroup; import io.renren.common.validator.group.DefaultGroup;
import io.renren.common.validator.group.UpdateGroup; import io.renren.common.validator.group.UpdateGroup;
import io.renren.modules.audit_team.dto.SysAuditTeamDTO;
import io.renren.modules.audit_team.service.SysAuditTeamService;
import io.renren.modules.security.password.PasswordUtils; import io.renren.modules.security.password.PasswordUtils;
import io.renren.modules.security.user.SecurityUser; import io.renren.modules.security.user.SecurityUser;
import io.renren.modules.security.user.UserDetail; import io.renren.modules.security.user.UserDetail;
import io.renren.modules.sys.dto.PasswordDTO; import io.renren.modules.sys.dto.PasswordDTO;
import io.renren.modules.sys.dto.SysDeptDTO; import io.renren.modules.sys.dto.SysDeptDTO;
import io.renren.modules.sys.dto.SysRoleDTO;
import io.renren.modules.sys.dto.SysUserDTO; import io.renren.modules.sys.dto.SysUserDTO;
import io.renren.modules.sys.excel.SysUserExcel; import io.renren.modules.sys.excel.SysUserExcel;
import io.renren.modules.sys.service.SysDeptService; import io.renren.modules.sys.service.*;
import io.renren.modules.sys.service.SysRoleUserService;
import io.renren.modules.sys.service.SysUserPostService;
import io.renren.modules.sys.service.SysUserService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
@ -29,13 +29,16 @@ import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* 用户管理 * 用户管理
@ -54,6 +57,22 @@ public class SysUserController {
private SysRoleUserService sysRoleUserService; private SysRoleUserService sysRoleUserService;
@Autowired @Autowired
private SysDeptService sysDeptService; private SysDeptService sysDeptService;
@Autowired
private SysRoleService sysRoleService;
@Autowired
private SysAuditTeamService sysAuditTeamService;
@Value("${big_date.assignee_role_name}")
private String roleName0; // 具备审批的角色名称(普通)
@Value("${big_date.assignee_district_role_name}")
private String roleName1; // 具备审批的角色名称区县
@Value("${big_date.assignee_city_role_name}")
private String roleName2; // 具备审批的角色名称(市区)
@Value("${big_date.assignee_meet_role_id}")
private String defaultAssigneeRoleId; // 会客厅审核人角色
@GetMapping("page") @GetMapping("page")
@ApiOperation("分页") @ApiOperation("分页")
@ -223,4 +242,49 @@ public class SysUserController {
public Result getApproverUnconfiguredRegion(@ApiIgnore @RequestParam Map<String, Object> params) { public Result getApproverUnconfiguredRegion(@ApiIgnore @RequestParam Map<String, Object> params) {
return new Result().ok(sysUserService.getApproverUnconfiguredRegion(params)); return new Result().ok(sysUserService.getApproverUnconfiguredRegion(params));
} }
@GetMapping("auditingUserPage")
@ApiOperation("审核权限用户分页")
@ApiImplicitParams({
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码从1开始", paramType = "query", required = true, dataType = "int"),
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query", required = true, dataType = "int")
})
// @RequiresPermissions("sys:user:page")
public Result<PageData<Map>> auditingUserPage(@ApiIgnore @RequestParam Map<String, Object> params) {
//分页参数
long curPage = 1;
long limit = 10;
boolean filterAuditTeam = Boolean.parseBoolean(params.getOrDefault("filter", "false").toString());
if (params.get(Constant.PAGE) != null) {
curPage = Long.parseLong((String) params.get(Constant.PAGE));
}
if (params.get(Constant.LIMIT) != null) {
limit = Long.parseLong((String) params.get(Constant.LIMIT));
}
SysRoleDTO roleDTO0 = sysRoleService.getByName(roleName0);
SysRoleDTO roleDTO1 = sysRoleService.getByName(roleName1);
SysRoleDTO roleDTO2 = sysRoleService.getByName(roleName2);
List<Long> roleId = new ArrayList() {{
if (roleDTO0 != null) {
add(roleDTO0.getId());
}
if (roleDTO1 != null) {
add(roleDTO1.getId());
}
if (roleDTO2 != null) {
add(roleDTO2.getId());
}
add(Long.parseLong(defaultAssigneeRoleId));
}};
List<Map> temp = sysUserService.getUserByRoleList(roleId, (int) curPage, (int) limit, filterAuditTeam);
temp = temp.stream().map(index -> {
List<SysAuditTeamDTO> sysAuditTeamDTOList = sysAuditTeamService.selectByMemberOne(Long.parseLong(index.get("id").toString()));
index.put("inAuditTeam", !sysAuditTeamDTOList.isEmpty());
index.put("auditTeamName", sysAuditTeamDTOList.stream().findFirst().isPresent() ? sysAuditTeamDTOList.stream().findFirst().get().getName() : "");
return index;
}).collect(Collectors.toList());
return new Result<PageData<Map>>().ok(new PageData<>(temp, sysUserService.getUserByRoleListCount(roleId, filterAuditTeam)));
}
} }

View File

@ -5,7 +5,6 @@ import io.renren.modules.sys.entity.SysUserEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -57,4 +56,8 @@ public interface SysUserDao extends BaseDao<SysUserEntity> {
Integer getApproverUnconfiguredDepartmentCount(); Integer getApproverUnconfiguredDepartmentCount();
Integer getApproverUnconfiguredRegionCount(); Integer getApproverUnconfiguredRegionCount();
List<Map> getUserByRoleList(@Param("roleIds") List<Long> roleIds, @Param("pageNum") int pageNum, @Param("pageSize") int pageSize, @Param("filter") boolean filter);
Long getUserByRoleListCount(@Param("roleIds") List<Long> roleIds, @Param("filter") boolean filter);
} }

View File

@ -65,4 +65,14 @@ public interface SysUserService extends BaseService<SysUserEntity> {
Object getApproverUnconfiguredDepartment(Map<String, Object> params); Object getApproverUnconfiguredDepartment(Map<String, Object> params);
Object getApproverUnconfiguredRegion(Map<String, Object> params); Object getApproverUnconfiguredRegion(Map<String, Object> params);
/**
* 获取拥有
*
* @param roleIds
* @return
*/
List<Map> getUserByRoleList(List<Long> roleIds, int pageNum, int pageSize, boolean filter);
Long getUserByRoleListCount(List<Long> roleIds, boolean filter);
} }

View File

@ -555,4 +555,20 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserDao, SysUserEntit
resultList.addAll(sysUserDao.getApproverUnconfiguredRegion()); resultList.addAll(sysUserDao.getApproverUnconfiguredRegion());
return resultList; return resultList;
} }
/**
* 获取拥有
*
* @param roleIds
* @return
*/
@Override
public List<Map> getUserByRoleList(List<Long> roleIds, int pageNum, int pageSize, boolean filter) {
return baseDao.getUserByRoleList(roleIds, (pageNum - 1) * pageSize, pageSize, filter);
}
@Override
public Long getUserByRoleListCount(List<Long> roleIds, boolean filter) {
return baseDao.getUserByRoleListCount(roleIds, filter);
}
} }

View File

@ -0,0 +1 @@
ALTER TABLE `t_demand_data` ADD COLUMN `enclosure_name` longtext NULL COMMENT '附件名称' AFTER `apply_number`;

View File

@ -0,0 +1 @@
alter table `sys_audit_team` ADD COLUMN `description` longtext NULL comment '审核组备注信息';

View File

@ -29,12 +29,20 @@
</resultMap> </resultMap>
<select id="getMyProcessInstancePage" parameterType="map" resultMap="ProcessActivityEntity"> <select id="getMyProcessInstancePage" parameterType="map" resultMap="ProcessActivityEntity">
SELECT aht.*, arp.NAME_ as DEF_NAME, ahp.BUSINESS_KEY_, ahp.START_TIME_, ahp.END_TIME_, SELECT
ahp.START_USER_ID_, arp.VERSION_ as DEF_VERSION_ aht.*,
FROM (SELECT DISTINCT PROC_DEF_ID_, PROC_INST_ID_,ASSIGNEE_ FROM ACT_HI_TASKINST) aht arp.NAME_ AS DEF_NAME,
LEFT JOIN ACT_HI_PROCINST ahp on aht.PROC_INST_ID_ = ahp.PROC_INST_ID_ ahp.BUSINESS_KEY_,
LEFT JOIN ACT_RE_PROCDEF arp on aht.PROC_DEF_ID_ = arp.ID_ ahp.START_TIME_,
WHERE aht.ASSIGNEE_ = #{userId} ahp.END_TIME_,
ahp.START_USER_ID_,
arp.VERSION_ AS DEF_VERSION_
FROM
( SELECT DISTINCT PROC_DEF_ID_, PROC_INST_ID_, ASSIGNEE_ FROM ACT_HI_TASKINST ) aht
LEFT JOIN ACT_HI_PROCINST ahp ON aht.PROC_INST_ID_ = ahp.PROC_INST_ID_
LEFT JOIN ACT_RE_PROCDEF arp ON aht.PROC_DEF_ID_ = arp.ID_
WHERE
aht.ASSIGNEE_ = #{userId}
<if test="processInstanceId != null"> <if test="processInstanceId != null">
and aht.PROC_INST_ID_ = #{processInstanceId} and aht.PROC_INST_ID_ = #{processInstanceId}
</if> </if>
@ -59,7 +67,7 @@
<if test="ended != null"> <if test="ended != null">
and ahp.END_TIME_ IS NOT NULL and ahp.END_TIME_ IS NOT NULL
</if> </if>
ORDER BY ORDER BY
ahp.START_TIME_ DESC ahp.START_TIME_ DESC
</select> </select>

View File

@ -11,6 +11,7 @@
<result property="member" column="member" <result property="member" column="member"
typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/> typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
<result property="index" column="`index`"/> <result property="index" column="`index`"/>
<result property="description" column="description"/>
</resultMap> </resultMap>
<resultMap id="sysAuditTeamDTO" type="io.renren.modules.audit_team.dto.SysAuditTeamDTO"> <resultMap id="sysAuditTeamDTO" type="io.renren.modules.audit_team.dto.SysAuditTeamDTO">
@ -21,6 +22,7 @@
<result property="member" column="member" <result property="member" column="member"
typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/> typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
<result property="index" column="`index`"/> <result property="index" column="`index`"/>
<result property="description" column="description"/>
</resultMap> </resultMap>
<select id="selectByMemberOne" resultMap="sysAuditTeamDTO"> <select id="selectByMemberOne" resultMap="sysAuditTeamDTO">

View File

@ -23,6 +23,7 @@
<result property="approvalUserDeptName" column="approval_user_dept_name"/> <result property="approvalUserDeptName" column="approval_user_dept_name"/>
<result property="visits" column="visits"/> <result property="visits" column="visits"/>
<result property="applyNumber" column="apply_number"/> <result property="applyNumber" column="apply_number"/>
<result property="enclosureName" column="enclosure_name" />
</resultMap> </resultMap>
<update id="updateInstanceId"> <update id="updateInstanceId">

View File

@ -105,67 +105,67 @@
<select id="getApproverUnconfiguredDepartment" resultType="java.util.Map"> <select id="getApproverUnconfiguredDepartment" resultType="java.util.Map">
SELECT SELECT
id, id,
name, name,
(CASE type (CASE type
WHEN 1 THEN WHEN 1 THEN
'省' '省'
WHEN 2 THEN WHEN 2 THEN
'市' '市'
WHEN 3 THEN WHEN 3 THEN
'区' '区'
ELSE ELSE
' ' ' '
END) AS "type", END) AS "type",
sort sort
FROM FROM
sys_dept sd sys_dept sd
WHERE WHERE
id NOT IN ( id NOT IN (
SELECT SELECT
sd.id sd.id
FROM FROM
sys_user su, sys_user su,
sys_dept sd, sys_dept sd,
sys_role sr, sys_role sr,
sys_role_user sru sys_role_user sru
WHERE WHERE
su.dept_id = sd.id su.dept_id = sd.id
AND su.id = sru.user_id AND su.id = sru.user_id
AND sru.role_id = sr.id AND sru.role_id = sr.id
AND sru.del_flag = 0 AND sru.del_flag = 0
AND sr.`name` = '部门审批人' AND sr.`name` = '部门审批人'
) )
AND sd.type != 4 AND sd.type != 4
ORDER BY sd.type, sort ORDER BY sd.type, sort
LIMIT ${pageNum}, ${pageSize} LIMIT ${pageNum}, ${pageSize}
</select> </select>
<select id="getApproverUnconfiguredRegion" resultType="java.util.Map"> <select id="getApproverUnconfiguredRegion" resultType="java.util.Map">
SELECT SELECT
id, id,
NAME, NAME,
sort sort
FROM FROM
sys_region srg sys_region srg
WHERE WHERE
id NOT IN ( id NOT IN (
SELECT SELECT
srg.id srg.id
FROM FROM
sys_user su, sys_user su,
sys_dept sd, sys_dept sd,
sys_region srg, sys_region srg,
sys_role sr, sys_role sr,
sys_role_user sru sys_role_user sru
WHERE WHERE
su.dept_id = sd.id su.dept_id = sd.id
AND su.id = sru.user_id AND su.id = sru.user_id
AND sru.role_id = sr.id AND sru.role_id = sr.id
AND sd.district = srg.id AND sd.district = srg.id
AND sru.del_flag = 0 AND sru.del_flag = 0
AND sr.`name` = '区审批人' AND sr.`name` = '区审批人'
) )
AND srg.tree_level = 3 AND srg.tree_level = 3
AND 9 >= srg.sort AND 9 >= srg.sort
ORDER BY srg.sort ORDER BY srg.sort
@ -174,28 +174,148 @@
<select id="getApproverUnconfiguredDepartmentCount" resultType="java.lang.Integer"> <select id="getApproverUnconfiguredDepartmentCount" resultType="java.lang.Integer">
SELECT COUNT(1) SELECT COUNT(1)
FROM ( FROM (
SELECT SELECT
id id
FROM FROM
sys_dept sd sys_dept sd
WHERE WHERE
id NOT IN ( id NOT IN (
SELECT SELECT
sd.id sd.id
FROM FROM
sys_user su, sys_user su,
sys_dept sd, sys_dept sd,
sys_role sr, sys_role sr,
sys_role_user sru sys_role_user sru
WHERE WHERE
su.dept_id = sd.id su.dept_id = sd.id
AND su.id = sru.user_id AND su.id = sru.user_id
AND sru.role_id = sr.id AND sru.role_id = sr.id
AND sru.del_flag = 0 AND sru.del_flag = 0
AND sr.`name` = '部门审批人' AND sr.`name` = '部门审批人'
) )
AND sd.type != 4 AND sd.type != 4
) temp ) temp
</select>
<select id="getUserByRoleList" resultType="java.util.Map">
<!-- SELECT-->
<!-- DISTINCT-->
<!-- sys_user.id,-->
<!-- sys_user.username,-->
<!-- sys_user.real_name,-->
<!-- sys_dept.`name`-->
<!-- FROM-->
<!-- sys_role_user-->
<!-- LEFT JOIN sys_user ON sys_user.id = sys_role_user.user_id-->
<!-- LEFT JOIN sys_dept ON sys_dept.id = sys_user.dept_id-->
<!-- WHERE-->
<!-- 1 = 1-->
<!-- AND sys_role_user.del_flag = 0-->
<!-- AND sys_user.id IS NOT NULL-->
<!-- <if test="null != roleIds">-->
<!-- AND sys_role_user.role_id IN-->
<!-- <foreach item="roleId" collection="roleIds" open="(" separator="," close=")">-->
<!-- #{roleId}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- LIMIT ${pageNum}, ${pageSize} -->
SELECT
temp.*
FROM
(
SELECT DISTINCT
sys_user.id,
sys_user.username,
sys_user.real_name,
sys_dept.`name`
FROM
sys_role_user
LEFT JOIN sys_user ON sys_user.id = sys_role_user.user_id
LEFT JOIN sys_dept ON sys_dept.id = sys_user.dept_id
WHERE
1 = 1
AND sys_role_user.del_flag = 0
<if test="null != roleIds">
AND sys_role_user.role_id IN
<foreach item="roleId" collection="roleIds" open="(" separator="," close=")">
#{roleId}
</foreach>
</if>
AND sys_user.id IS NOT NULL
) temp
WHERE
1 = 1
<if test="filter">
AND NOT EXISTS (
SELECT
1
FROM
sys_audit_team
WHERE
JSON_CONTAINS(
sys_audit_team.member,
JSON_OBJECT( "id", temp.id ))
)
</if>
LIMIT ${pageNum}, ${pageSize}
</select>
<select id="getUserByRoleListCount" resultType="java.lang.Long">
<!-- SELECT-->
<!-- COUNT(DISTINCT sys_user.id )-->
<!-- FROM-->
<!-- sys_role_user-->
<!-- LEFT JOIN sys_user ON sys_user.id = sys_role_user.user_id-->
<!-- LEFT JOIN sys_dept ON sys_dept.id = sys_user.dept_id-->
<!-- WHERE-->
<!-- 1 = 1-->
<!-- AND sys_role_user.del_flag = 0-->
<!-- AND sys_user.id IS NOT NULL-->
<!-- <if test="null != roleIds">-->
<!-- AND sys_role_user.role_id IN-->
<!-- <foreach item="roleId" collection="roleIds" open="(" separator="," close=")">-->
<!-- #{roleId}-->
<!-- </foreach>-->
<!-- </if>-->
SELECT
COUNT(temp.id)
FROM
(
SELECT DISTINCT
sys_user.id,
sys_user.username,
sys_user.real_name,
sys_dept.`name`
FROM
sys_role_user
LEFT JOIN sys_user ON sys_user.id = sys_role_user.user_id
LEFT JOIN sys_dept ON sys_dept.id = sys_user.dept_id
WHERE
1 = 1
AND sys_role_user.del_flag = 0
<if test="null != roleIds">
AND sys_role_user.role_id IN
<foreach item="roleId" collection="roleIds" open="(" separator="," close=")">
#{roleId}
</foreach>
</if>
AND sys_user.id IS NOT NULL
) temp
WHERE
1 = 1
<if test="filter">
AND NOT EXISTS (
SELECT
1
FROM
sys_audit_team
WHERE
JSON_CONTAINS(
sys_audit_team.member,
JSON_OBJECT( "id", temp.id ))
)
</if>
</select> </select>