Merge remote-tracking branch 'origin/master'

This commit is contained in:
mashuai 2025-02-21 01:25:59 +08:00
commit bba09a7220
8 changed files with 77 additions and 10 deletions

View File

@ -23,9 +23,9 @@ public class SysWorkflowRecordHisController extends BaseController {
private SysWorkflowRecordHistoryService sysWorkflowRecordHistoryService; private SysWorkflowRecordHistoryService sysWorkflowRecordHistoryService;
/** /**
* 修改工作流详情 * 审批
*/ */
@ApiOperation(value = "修改工作流详情") @ApiOperation(value = "审批")
@PostMapping("/update") @PostMapping("/update")
public AjaxResult update(@RequestBody SysWorkflowRecordHistory sysWorkflowRecordHistory) public AjaxResult update(@RequestBody SysWorkflowRecordHistory sysWorkflowRecordHistory)
{ {

View File

@ -81,4 +81,15 @@ public class SysWorkflowNode {
* 审批结果0拒绝 1通过 * 审批结果0拒绝 1通过
*/ */
private int isAccept; private int isAccept;
/**
*
*/
private Integer recordId;
/**
*
*/
private Integer nodeId;
} }

View File

@ -56,4 +56,9 @@ public class SysWorkflowRecordHistory {
* 任务Id * 任务Id
*/ */
private Integer taskId; private Integer taskId;
/**
* 所属流程类型ID
*/
private Integer typeId;
} }

View File

@ -7,4 +7,6 @@ public interface SysWorkflowRecordHistoryMapper {
int addSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory); int addSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory);
SysWorkflowRecordHistory seleteSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory);
} }

View File

@ -2,11 +2,14 @@ package com.bonus.material.work.service.impl;
import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.security.utils.SecurityUtils; import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.material.work.domain.SysWorkflowConfig; import com.bonus.material.work.domain.SysWorkflowConfig;
import com.bonus.material.work.domain.SysWorkflowNode; import com.bonus.material.work.domain.SysWorkflowNode;
import com.bonus.material.work.domain.SysWorkflowRecordHistory;
import com.bonus.material.work.mapper.SysWorkflowConfigMapper; import com.bonus.material.work.mapper.SysWorkflowConfigMapper;
import com.bonus.material.work.mapper.SysWorkflowNodeMapper; import com.bonus.material.work.mapper.SysWorkflowNodeMapper;
import com.bonus.material.work.mapper.SysWorkflowRecordHistoryMapper;
import com.bonus.material.work.service.SysWorkflowNodeService; import com.bonus.material.work.service.SysWorkflowNodeService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -23,6 +26,9 @@ public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService {
@Resource @Resource
private SysWorkflowConfigMapper sysWorkflowConfigMapper; private SysWorkflowConfigMapper sysWorkflowConfigMapper;
@Resource
private SysWorkflowRecordHistoryMapper sysWorkflowRecordHistoryMapper;
/** /**
* 工作流详情列表 * 工作流详情列表
*/ */
@ -96,7 +102,18 @@ public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService {
@Override @Override
public List<SysWorkflowNode> listByTaskId(SysWorkflowNode sysWorkflowNode) { public List<SysWorkflowNode> listByTaskId(SysWorkflowNode sysWorkflowNode) {
List<SysWorkflowNode> sysWorkflowNodeList = sysWorkflowNodeMapper.listByTaskId(sysWorkflowNode);
for (SysWorkflowNode SysWorkflowNode: sysWorkflowNodeList) {
SysWorkflowRecordHistory sysWorkflowRecordHistory = new SysWorkflowRecordHistory();
sysWorkflowRecordHistory.setRecordId(SysWorkflowNode.getRecordId());
sysWorkflowRecordHistory.setNodeId(SysWorkflowNode.getNodeId());
SysWorkflowRecordHistory sysWorkflowRecordHistoryNew = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory);
if (StringUtils.isNotNull(sysWorkflowRecordHistoryNew)){
SysWorkflowNode.setIsAccept(sysWorkflowRecordHistoryNew.getIsAccept());
SysWorkflowNode.setCreateTime(sysWorkflowRecordHistoryNew.getCreateTime());
}
}
return sysWorkflowNodeMapper.listByTaskId(sysWorkflowNode); return sysWorkflowNodeList;
} }
} }

View File

@ -36,11 +36,37 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
@Override @Override
@Transactional
public int updateSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory) { public int updateSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory) {
sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory); sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory);
//根据当前审批状态修改流程状态 //根据当前审批状态修改流程状态
if ("1".equals(sysWorkflowRecordHistory.getIsAccept())){ if (sysWorkflowRecordHistory.getIsAccept()==1){
SysWorkflowNode sysWorkflowNode = new SysWorkflowNode();
sysWorkflowNode.setTypeId(sysWorkflowRecordHistory.getTypeId());
List<SysWorkflowNode> sysWorkflowNodeList = sysWorkflowNodeMapper.selectSysWorkflowNodeList(sysWorkflowNode);
int fly =0;
for (int i = 0; i < sysWorkflowNodeList.size(); i++) {
sysWorkflowNode = sysWorkflowNodeList.get(i);
if (sysWorkflowRecordHistory.getNodeId().equals(sysWorkflowNode.getId())){
//判断当前用户是否是这个节点审核人员
if (sysWorkflowNode.getConfigValues().contains(SecurityUtils.getLoginUser().getUserid().toString())){
SysWorkflowRecord sysWorkflowRecord = new SysWorkflowRecord();
sysWorkflowRecord.setTaskId(sysWorkflowRecordHistory.getTaskId());
sysWorkflowRecord.setWorkflowStatus(1);
sysWorkflowRecordMapper.updateSysWorkflowRecord(sysWorkflowRecord);
fly = i;
}else {
throw new ServiceException("当前节点不在审核中");
}
}
}
//判断是否是最后一级
if (sysWorkflowNodeList.get(sysWorkflowNodeList.size()-1).getId().equals(sysWorkflowRecordHistory.getNodeId())){
SysWorkflowRecord sysWorkflowRecord = new SysWorkflowRecord();
sysWorkflowRecord.setTaskId(sysWorkflowRecordHistory.getTaskId());
sysWorkflowRecord.setWorkflowStatus(2);
sysWorkflowRecordMapper.updateSysWorkflowRecord(sysWorkflowRecord);
}
}else { }else {
SysWorkflowRecord sysWorkflowRecord = new SysWorkflowRecord(); SysWorkflowRecord sysWorkflowRecord = new SysWorkflowRecord();
sysWorkflowRecord.setTaskId(sysWorkflowRecordHistory.getTaskId()); sysWorkflowRecord.setTaskId(sysWorkflowRecordHistory.getTaskId());

View File

@ -69,10 +69,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="listByTaskId" resultType="com.bonus.material.work.domain.SysWorkflowNode"> <select id="listByTaskId" resultType="com.bonus.material.work.domain.SysWorkflowNode">
select swn.id as id, swn.type_id typeId, swn.node_name as nodeName, swn.node_sort as nodeSort, select swn.id as id, swn.type_id typeId, swn.node_name as nodeName, swn.node_sort as nodeSort,
swn.node_sign_type as nodeSignType, swn.node_sign_config as nodeSignConfig, swn.node_sign_type as nodeSignType, swn.node_sign_config as nodeSignConfig,swn.id as nodeId,
swrh.create_by as createBy,swrh.create_time as createTime,swn.is_enable as isEnable, swrh.create_by as createBy,swn.is_enable as isEnable,
GROUP_CONCAT(sec.config_value SEPARATOR ',') AS configValues, GROUP_CONCAT(DISTINCT sec.config_value SEPARATOR ',') AS configValues,
swrh.remark as remark,swrh.is_accept as isAccept swrh.remark as remark,swr.id as recordId
from sys_workflow_node swn from sys_workflow_node swn
left join sys_workflow_config sec on swn.id= sec.node_id left join sys_workflow_config sec on swn.id= sec.node_id
left join sys_workflow_record swr on swr.workflow_id = swn.type_id left join sys_workflow_record swr on swr.workflow_id = swn.type_id

View File

@ -23,7 +23,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="isAccept != null">#{isAccept},</if> <if test="isAccept != null">#{isAccept},</if>
<if test="createBy != null">#{createBy},</if> <if test="createBy != null">#{createBy},</if>
now(), now(),
<if test="remark != null">remark,</if> <if test="remark != null">#{remark},</if>
</trim> </trim>
</insert> </insert>
<select id="seleteSysWorkflowRecordHistory"
resultType="com.bonus.material.work.domain.SysWorkflowRecordHistory">
select swrh.is_accept as isAccept,swrh.create_time as createTime
from sys_workflow_record_history swrh
where swrh.record_id=#{recordId} and swrh.node_id= #{nodeId}
</select>
</mapper> </mapper>