工单审批判断当前审批人权限

This commit is contained in:
bonus 2025-08-14 13:30:51 +08:00
parent 414fab945b
commit b8aeeeff3b
7 changed files with 227 additions and 77 deletions

View File

@ -104,6 +104,7 @@ public class MaterialLeaseInfoServiceImpl implements MaterialLeaseInfoService {
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()

View File

@ -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());
}
}
} }

View File

@ -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;
} }

View File

@ -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);
} }

View File

@ -7,4 +7,6 @@ public interface SysWorkflowRecordHistoryService {
int updateSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory); int updateSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory);
SysWorkflowRecordHistory getAuditStatus(SysWorkflowRecordHistory sysWorkflowRecordHistory);
} }

View File

@ -115,6 +115,12 @@ 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();
String flag = checkAuditUser(recordId,sysUser);
if("0".equals( flag)){
Integer taskId = sysWorkflowRecordHistory.getTaskId(); Integer taskId = sysWorkflowRecordHistory.getTaskId();
Integer leaseId = sysWorkflowRecordHistory.getLeaseId(); Integer leaseId = sysWorkflowRecordHistory.getLeaseId();
String recordCode = sysWorkflowRecordHistory.getTaskCode(); String recordCode = sysWorkflowRecordHistory.getTaskCode();
@ -136,10 +142,67 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
// 处理审核驳回 // 处理审核驳回
handleRejection(sysWorkflowNodeList, sysWorkflowRecordHistory); handleRejection(sysWorkflowNodeList, sysWorkflowRecordHistory);
} }
}else{
throw new ServiceException("当前账号没有审批权限!");
}
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();

View File

@ -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>