工单审批判断当前审批人权限
This commit is contained in:
parent
414fab945b
commit
b8aeeeff3b
|
|
@ -103,7 +103,8 @@ public class MaterialLeaseInfoServiceImpl implements MaterialLeaseInfoService {
|
||||||
public List<MaterialLeaseApplyInfo> selectLeaseApplyInfoList(MaterialLeaseApplyInfo leaseApplyInfo) {
|
public List<MaterialLeaseApplyInfo> selectLeaseApplyInfoList(MaterialLeaseApplyInfo leaseApplyInfo) {
|
||||||
String username = SecurityUtils.getLoginUser().getUsername();
|
String username = SecurityUtils.getLoginUser().getUsername();
|
||||||
// 根据用户名判断用户是否为班组长
|
// 根据用户名判断用户是否为班组长
|
||||||
BmTeam teamData = materialMachineMapper.getTeamData(username);
|
BmTeam teamData = materialMachineMapper.getTeamData(username);
|
||||||
|
/*
|
||||||
if (teamData == null) {
|
if (teamData == null) {
|
||||||
// 根据用户名查询项目部信息
|
// 根据用户名查询项目部信息
|
||||||
String departId = mapper.getDepartId(username);
|
String departId = mapper.getDepartId(username);
|
||||||
|
|
@ -112,7 +113,7 @@ public class MaterialLeaseInfoServiceImpl implements MaterialLeaseInfoService {
|
||||||
if (!CollectionUtils.isEmpty(projectIdList)) {
|
if (!CollectionUtils.isEmpty(projectIdList)) {
|
||||||
leaseApplyInfo.setProjectIdList(projectIdList);
|
leaseApplyInfo.setProjectIdList(projectIdList);
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
List<MaterialLeaseApplyInfo> list = materialLeaseInfoMapper.selectLeaseApplyInfoList(leaseApplyInfo);
|
List<MaterialLeaseApplyInfo> list = materialLeaseInfoMapper.selectLeaseApplyInfoList(leaseApplyInfo);
|
||||||
// 利用Stream API进行降序排序
|
// 利用Stream API进行降序排序
|
||||||
List<MaterialLeaseApplyInfo> sortedList = list.stream()
|
List<MaterialLeaseApplyInfo> sortedList = list.stream()
|
||||||
|
|
|
||||||
|
|
@ -41,4 +41,21 @@ public class SysWorkflowRecordHisController extends BaseController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "审批")
|
||||||
|
@GetMapping("/getAuditStatus")
|
||||||
|
public AjaxResult getAuditStatus(@RequestBody SysWorkflowRecordHistory sysWorkflowRecordHistory)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
SysWorkflowRecordHistory audit =sysWorkflowRecordHistoryService.getAuditStatus(sysWorkflowRecordHistory);
|
||||||
|
return success(audit);
|
||||||
|
}catch (Exception e){
|
||||||
|
logger.error("修改失败{}", e.getMessage(), e);
|
||||||
|
System.err.println("修改失败" + e.getMessage());
|
||||||
|
return error(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -89,4 +89,18 @@ public class SysWorkflowRecordHistory {
|
||||||
* 领料工程
|
* 领料工程
|
||||||
*/
|
*/
|
||||||
private String projectName;
|
private String projectName;
|
||||||
|
/**
|
||||||
|
* 工单任务状态
|
||||||
|
*/
|
||||||
|
private String workflowStatus;
|
||||||
|
/**
|
||||||
|
* 审核状态0待审核1已审核
|
||||||
|
*/
|
||||||
|
private String auditStatus;
|
||||||
|
|
||||||
|
private String receiveUsername;
|
||||||
|
/**
|
||||||
|
* 工单审核状态0待审核1已审核
|
||||||
|
*/
|
||||||
|
private int isExamine;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,12 @@
|
||||||
package com.bonus.material.work.mapper;
|
package com.bonus.material.work.mapper;
|
||||||
|
|
||||||
import com.bonus.material.work.domain.SysWorkflowRecord;
|
import com.bonus.material.work.domain.SysWorkflowRecord;
|
||||||
|
import com.bonus.material.work.domain.SysWorkflowRecordHistory;
|
||||||
import com.bonus.material.work.domain.dto.SysWorkflowAuditDto;
|
import com.bonus.material.work.domain.dto.SysWorkflowAuditDto;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public interface SysWorkflowRecordMapper {
|
public interface SysWorkflowRecordMapper {
|
||||||
|
|
||||||
// 增加审批流任务信息
|
// 增加审批流任务信息
|
||||||
|
|
@ -19,4 +22,10 @@ public interface SysWorkflowRecordMapper {
|
||||||
|
|
||||||
// 根据任务id+审批流类型id , 查询审批流任务记录信息
|
// 根据任务id+审批流类型id , 查询审批流任务记录信息
|
||||||
SysWorkflowAuditDto getSysWorkflowRecodeByTaskIdAndType(@Param("taskId") Integer taskId, @Param("taskType") Integer taskType, @Param("workflowId") Integer workflowId);
|
SysWorkflowAuditDto getSysWorkflowRecodeByTaskIdAndType(@Param("taskId") Integer taskId, @Param("taskType") Integer taskType, @Param("workflowId") Integer workflowId);
|
||||||
|
|
||||||
|
SysWorkflowRecordHistory getAuditStatus(SysWorkflowRecordHistory sysWorkflowRecordHistory);
|
||||||
|
|
||||||
|
List<SysWorkflowRecordHistory> getAuditUserByTaskId(SysWorkflowRecordHistory sysWorkflowRecordHistory);
|
||||||
|
|
||||||
|
List<SysWorkflowRecordHistory> getAuditUserByRecordId(@Param("recordId") Integer recordId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,4 +7,6 @@ public interface SysWorkflowRecordHistoryService {
|
||||||
|
|
||||||
|
|
||||||
int updateSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory);
|
int updateSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory);
|
||||||
|
|
||||||
|
SysWorkflowRecordHistory getAuditStatus(SysWorkflowRecordHistory sysWorkflowRecordHistory);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -115,31 +115,94 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
|
||||||
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
|
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
|
||||||
Long userId = sysUser.getUserId();
|
Long userId = sysUser.getUserId();
|
||||||
Integer recordId = sysWorkflowRecordHistory.getRecordId();
|
Integer recordId = sysWorkflowRecordHistory.getRecordId();
|
||||||
Integer taskId = sysWorkflowRecordHistory.getTaskId();
|
|
||||||
Integer leaseId = sysWorkflowRecordHistory.getLeaseId();
|
|
||||||
String recordCode = sysWorkflowRecordHistory.getTaskCode();
|
|
||||||
String projectName = sysWorkflowRecordHistory.getProjectName();
|
|
||||||
Integer nextNodeId = sysWorkflowRecordHistory.getNextNodeId();
|
|
||||||
sysWorkflowRecordHistory.setCreateBy(userId.toString());
|
|
||||||
sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory);
|
|
||||||
|
|
||||||
if (sysWorkflowRecordHistory.getIsAccept() == null) {
|
|
||||||
throw new ServiceException("请选择是否接受审批");
|
|
||||||
|
String flag = checkAuditUser(recordId,sysUser);
|
||||||
|
|
||||||
|
if("0".equals( flag)){
|
||||||
|
Integer taskId = sysWorkflowRecordHistory.getTaskId();
|
||||||
|
Integer leaseId = sysWorkflowRecordHistory.getLeaseId();
|
||||||
|
String recordCode = sysWorkflowRecordHistory.getTaskCode();
|
||||||
|
String projectName = sysWorkflowRecordHistory.getProjectName();
|
||||||
|
Integer nextNodeId = sysWorkflowRecordHistory.getNextNodeId();
|
||||||
|
sysWorkflowRecordHistory.setCreateBy(userId.toString());
|
||||||
|
sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory);
|
||||||
|
|
||||||
|
if (sysWorkflowRecordHistory.getIsAccept() == null) {
|
||||||
|
throw new ServiceException("请选择是否接受审批");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询出【当前任务所属审批流】的所有节点
|
||||||
|
List<SysWorkflowNode> sysWorkflowNodeList = getWorkflowNodes(sysWorkflowRecordHistory);
|
||||||
|
if (sysWorkflowRecordHistory.getIsAccept() == 1) {
|
||||||
|
// 处理审批通过✅
|
||||||
|
handleApproval(sysWorkflowNodeList, sysWorkflowRecordHistory, sysUser, taskId, leaseId, recordCode, projectName, recordId,nextNodeId);
|
||||||
|
} else {
|
||||||
|
// 处理审核驳回❌
|
||||||
|
handleRejection(sysWorkflowNodeList, sysWorkflowRecordHistory);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
throw new ServiceException("当前账号没有审批权限!");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询出【当前任务所属审批流】的所有节点
|
|
||||||
List<SysWorkflowNode> sysWorkflowNodeList = getWorkflowNodes(sysWorkflowRecordHistory);
|
|
||||||
if (sysWorkflowRecordHistory.getIsAccept() == 1) {
|
|
||||||
// 处理审批通过✅
|
|
||||||
handleApproval(sysWorkflowNodeList, sysWorkflowRecordHistory, sysUser, taskId, leaseId, recordCode, projectName, recordId,nextNodeId);
|
|
||||||
} else {
|
|
||||||
// 处理审核驳回❌
|
|
||||||
handleRejection(sysWorkflowNodeList, sysWorkflowRecordHistory);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String checkAuditUser(Integer recordId, SysUser sysUser) {
|
||||||
|
|
||||||
|
String flag = "0";
|
||||||
|
List<SysWorkflowRecordHistory> receiveList = sysWorkflowRecordMapper.getAuditUserByRecordId(recordId);
|
||||||
|
|
||||||
|
if (receiveList != null && !receiveList.isEmpty()){
|
||||||
|
for (SysWorkflowRecordHistory receive : receiveList) {
|
||||||
|
|
||||||
|
if (receive.getReceiveUsername().equals(sysUser.getUserName())) {
|
||||||
|
flag = "0";
|
||||||
|
break;
|
||||||
|
}else{
|
||||||
|
flag = "1";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SysWorkflowRecordHistory getAuditStatus(SysWorkflowRecordHistory sysWorkflowRecordHistory) {
|
||||||
|
|
||||||
|
//1判断sys_workflow_record中 workflow_status是否等于2
|
||||||
|
|
||||||
|
SysWorkflowRecordHistory taskStatus = sysWorkflowRecordMapper.getAuditStatus(sysWorkflowRecordHistory);
|
||||||
|
|
||||||
|
if (taskStatus != null) {
|
||||||
|
String workflowStatus = taskStatus.getWorkflowStatus();
|
||||||
|
if("2".equals(workflowStatus)){
|
||||||
|
taskStatus.setAuditStatus("1");
|
||||||
|
}
|
||||||
|
return taskStatus;
|
||||||
|
}
|
||||||
|
//2查询皖送工单中的people receive_username,is_examine判断当前登录人账号是否存在其中,存在的审核状态是否审核
|
||||||
|
List<SysWorkflowRecordHistory> receiveList = sysWorkflowRecordMapper.getAuditUserByTaskId(sysWorkflowRecordHistory);
|
||||||
|
|
||||||
|
if (receiveList != null && !receiveList.isEmpty()){
|
||||||
|
for (SysWorkflowRecordHistory receive : receiveList) {
|
||||||
|
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
|
||||||
|
if (receive.getReceiveUsername().equals(sysUser.getUserName())) {
|
||||||
|
if (receive.getIsExamine() == 0) {
|
||||||
|
taskStatus.setAuditStatus("0");
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
taskStatus.setAuditStatus("1");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return taskStatus;
|
||||||
|
}
|
||||||
|
|
||||||
// 获取审批流程节点
|
// 获取审批流程节点
|
||||||
private List<SysWorkflowNode> getWorkflowNodes(SysWorkflowRecordHistory sysWorkflowRecordHistory) {
|
private List<SysWorkflowNode> getWorkflowNodes(SysWorkflowRecordHistory sysWorkflowRecordHistory) {
|
||||||
SysWorkflowNode sysWorkflowNode = new SysWorkflowNode();
|
SysWorkflowNode sysWorkflowNode = new SysWorkflowNode();
|
||||||
|
|
|
||||||
|
|
@ -65,4 +65,48 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getAuditStatus" resultType="com.bonus.material.work.domain.SysWorkflowRecordHistory">
|
||||||
|
select
|
||||||
|
a.id as id,
|
||||||
|
a.task_id as taskId,
|
||||||
|
a.task_type as taskType,
|
||||||
|
a.task_code as taskCode,
|
||||||
|
a.workflow_id as workflowId,
|
||||||
|
a.workflow_status as workflowStatus
|
||||||
|
from sys_workflow_record a
|
||||||
|
|
||||||
|
where task_id = #{taskId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getAuditUserByTaskId" resultType="com.bonus.material.work.domain.SysWorkflowRecordHistory">
|
||||||
|
select
|
||||||
|
swr.task_id,
|
||||||
|
swr.id,
|
||||||
|
sp.receiver_username AS receiveUsername,
|
||||||
|
sp.is_examine AS isExamine
|
||||||
|
from
|
||||||
|
uni_org.sys_information si
|
||||||
|
|
||||||
|
LEFT JOIN sys_workflow_record swr on swr.id = si.business_id
|
||||||
|
LEFT JOIN uni_org.sys_information_people sp on si.id = sp.information_id
|
||||||
|
WHERE swr.task_id=#{taskId} and si.web_app_id ="9fa73f046ef520b09e94bbffc3b07702"
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getAuditUserByRecordId" resultType="com.bonus.material.work.domain.SysWorkflowRecordHistory">
|
||||||
|
select
|
||||||
|
swr.task_id,
|
||||||
|
swr.id,
|
||||||
|
sp.receiver_username AS receiveUsername,
|
||||||
|
sp.is_examine AS isExamine
|
||||||
|
from
|
||||||
|
uni_org.sys_information si
|
||||||
|
|
||||||
|
LEFT JOIN sys_workflow_record swr on swr.id = si.business_id
|
||||||
|
LEFT JOIN uni_org.sys_information_people sp on si.id = sp.information_id
|
||||||
|
WHERE si.business_id=#{recordId} and si.web_app_id ="9fa73f046ef520b09e94bbffc3b07702"
|
||||||
|
and sp.is_examine = 0
|
||||||
|
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue