领用审批优化,加上会签的逻辑
This commit is contained in:
parent
97213e6e60
commit
c205a38005
|
|
@ -29,7 +29,7 @@ public class SysWorkflowConfig {
|
||||||
/**
|
/**
|
||||||
* 配置值
|
* 配置值
|
||||||
*/
|
*/
|
||||||
private Integer configValue;
|
private String configValue;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 0关闭 1启用
|
* 0关闭 1启用
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ public class SysWorkflowNode {
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审批结果,0拒绝 1通过
|
* 审批结果,0待审批 1通过 2已驳回
|
||||||
*/
|
*/
|
||||||
private int isAccept;
|
private int isAccept;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,4 +11,6 @@ public interface SysWorkflowConfigMapper {
|
||||||
int addSysWorkflowConfig(SysWorkflowConfig sysWorkflowConfig);
|
int addSysWorkflowConfig(SysWorkflowConfig sysWorkflowConfig);
|
||||||
|
|
||||||
int deleteSysWorkflowConfig(SysWorkflowConfig sysWorkflowConfig);
|
int deleteSysWorkflowConfig(SysWorkflowConfig sysWorkflowConfig);
|
||||||
|
|
||||||
|
String selectConfigValueByNodeId(Integer nodeId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,12 @@ 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.SysWorkflowRecordHistory;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public interface SysWorkflowRecordHistoryMapper {
|
public interface SysWorkflowRecordHistoryMapper {
|
||||||
|
|
||||||
|
|
||||||
int addSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory);
|
int addSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory);
|
||||||
|
|
||||||
SysWorkflowRecordHistory seleteSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory);
|
List<SysWorkflowRecordHistory> seleteSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ 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.dto.SysWorkflowAuditDto;
|
import com.bonus.material.work.domain.dto.SysWorkflowAuditDto;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
public interface SysWorkflowRecordMapper {
|
public interface SysWorkflowRecordMapper {
|
||||||
|
|
||||||
|
|
@ -11,6 +12,8 @@ public interface SysWorkflowRecordMapper {
|
||||||
// 修改审批流任务信息
|
// 修改审批流任务信息
|
||||||
int updateSysWorkflowRecord(SysWorkflowRecord sysWorkflowRecord);
|
int updateSysWorkflowRecord(SysWorkflowRecord sysWorkflowRecord);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 根据任务id,查询审批流任务信息
|
// 根据任务id,查询审批流任务信息
|
||||||
SysWorkflowAuditDto getSysWorkflowRecodeByTaskId(Integer taskId);
|
SysWorkflowAuditDto getSysWorkflowRecodeByTaskId(@Param("taskId") Integer taskId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -48,19 +48,17 @@ public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService {
|
||||||
sysWorkflowNode.setCreateBy(SecurityUtils.getLoginUser().getUserid().toString());
|
sysWorkflowNode.setCreateBy(SecurityUtils.getLoginUser().getUserid().toString());
|
||||||
//保存创建时间
|
//保存创建时间
|
||||||
sysWorkflowNode.setCreateTime(DateUtils.getNowDate());
|
sysWorkflowNode.setCreateTime(DateUtils.getNowDate());
|
||||||
String[] ConfigValue = sysWorkflowNode.getConfigValues().split(",");
|
|
||||||
if (sysWorkflowNode.getConfigValues().isEmpty()){
|
if (sysWorkflowNode.getConfigValues().isEmpty()){
|
||||||
throw new ServiceException("请选择审核人员");
|
throw new ServiceException("请选择审核人员");
|
||||||
}
|
}
|
||||||
int count = sysWorkflowNodeMapper.addSysWorkflowNode(sysWorkflowNode);
|
int count = sysWorkflowNodeMapper.addSysWorkflowNode(sysWorkflowNode);
|
||||||
for (int i = 0; i < ConfigValue.length; i++) {
|
SysWorkflowConfig sysWorkflowConfig = new SysWorkflowConfig();
|
||||||
SysWorkflowConfig sysWorkflowConfig = new SysWorkflowConfig();
|
sysWorkflowConfig.setNodeId(sysWorkflowNode.getId());
|
||||||
sysWorkflowConfig.setNodeId(sysWorkflowNode.getId());
|
sysWorkflowConfig.setConfigType(sysWorkflowNode.getNodeSignType());
|
||||||
sysWorkflowConfig.setConfigType(sysWorkflowNode.getNodeSignType());
|
sysWorkflowConfig.setConfigValue(sysWorkflowNode.getConfigValues());
|
||||||
sysWorkflowConfig.setConfigValue(Integer.valueOf(ConfigValue[i]));
|
//新增审核详情表信息
|
||||||
//新增审核详情表信息
|
sysWorkflowConfigMapper.addSysWorkflowConfig(sysWorkflowConfig);
|
||||||
sysWorkflowConfigMapper.addSysWorkflowConfig(sysWorkflowConfig);
|
|
||||||
}
|
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -85,39 +83,65 @@ public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService {
|
||||||
@Transactional
|
@Transactional
|
||||||
public int updateSysWorkflowNode(SysWorkflowNode sysWorkflowNode) {
|
public int updateSysWorkflowNode(SysWorkflowNode sysWorkflowNode) {
|
||||||
int count = sysWorkflowNodeMapper.updateSysWorkflowNode(sysWorkflowNode);
|
int count = sysWorkflowNodeMapper.updateSysWorkflowNode(sysWorkflowNode);
|
||||||
String[] ConfigValue = sysWorkflowNode.getConfigValues().split(",");
|
|
||||||
if (sysWorkflowNode.getConfigValues().isEmpty()){
|
if (sysWorkflowNode.getConfigValues().isEmpty()){
|
||||||
throw new ServiceException("请选择审核人员");
|
throw new ServiceException("请选择审核人员");
|
||||||
}
|
}
|
||||||
SysWorkflowConfig sysWorkflowConfig = new SysWorkflowConfig();
|
SysWorkflowConfig sysWorkflowConfig = new SysWorkflowConfig();
|
||||||
sysWorkflowConfig.setNodeId(sysWorkflowNode.getId());
|
sysWorkflowConfig.setNodeId(sysWorkflowNode.getId());
|
||||||
sysWorkflowConfigMapper.deleteSysWorkflowConfig(sysWorkflowConfig);
|
sysWorkflowConfigMapper.deleteSysWorkflowConfig(sysWorkflowConfig);
|
||||||
for (int i = 0; i < ConfigValue.length; i++) {
|
sysWorkflowConfig.setNodeId(sysWorkflowNode.getId());
|
||||||
sysWorkflowConfig.setNodeId(sysWorkflowNode.getId());
|
sysWorkflowConfig.setConfigType(sysWorkflowNode.getNodeSignType());
|
||||||
sysWorkflowConfig.setConfigType(sysWorkflowNode.getNodeSignType());
|
sysWorkflowConfig.setConfigValue(sysWorkflowNode.getConfigValues());
|
||||||
sysWorkflowConfig.setConfigValue(Integer.valueOf(ConfigValue[i]));
|
//新增审核详情表信息
|
||||||
//新增审核详情表信息
|
sysWorkflowConfigMapper.addSysWorkflowConfig(sysWorkflowConfig);
|
||||||
sysWorkflowConfigMapper.addSysWorkflowConfig(sysWorkflowConfig);
|
|
||||||
}
|
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SysWorkflowNode> listByTaskId(SysWorkflowNode sysWorkflowNode) {
|
public List<SysWorkflowNode> listByTaskId(SysWorkflowNode sysWorkflowNode) {
|
||||||
|
Long userId = SecurityUtils.getUserId();
|
||||||
List<SysWorkflowNode> sysWorkflowNodeList = sysWorkflowNodeMapper.listByTaskId(sysWorkflowNode);
|
List<SysWorkflowNode> sysWorkflowNodeList = sysWorkflowNodeMapper.listByTaskId(sysWorkflowNode);
|
||||||
for (SysWorkflowNode SysWorkflowNode: sysWorkflowNodeList) {
|
for (SysWorkflowNode SysWorkflowNode: sysWorkflowNodeList) {
|
||||||
SysWorkflowRecordHistory sysWorkflowRecordHistory = new SysWorkflowRecordHistory();
|
SysWorkflowRecordHistory sysWorkflowRecordHistory = new SysWorkflowRecordHistory();
|
||||||
sysWorkflowRecordHistory.setRecordId(SysWorkflowNode.getRecordId());
|
sysWorkflowRecordHistory.setRecordId(SysWorkflowNode.getRecordId());
|
||||||
sysWorkflowRecordHistory.setNodeId(SysWorkflowNode.getNodeId());
|
sysWorkflowRecordHistory.setNodeId(SysWorkflowNode.getNodeId());
|
||||||
System.out.println(sysWorkflowRecordHistory);
|
List<SysWorkflowRecordHistory> sysWorkflowRecordHistoryList = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory);
|
||||||
SysWorkflowRecordHistory sysWorkflowRecordHistoryNew = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory);
|
if (StringUtils.isNotNull(sysWorkflowRecordHistoryList)){
|
||||||
if (StringUtils.isNotNull(sysWorkflowRecordHistoryNew)){
|
//判断是或签还是会签0:或签 1:会签
|
||||||
SysWorkflowNode.setIsAccept(sysWorkflowRecordHistoryNew.getIsAccept());
|
if (0==SysWorkflowNode.getNodeSignType()){
|
||||||
SysWorkflowNode.setCreateTime(sysWorkflowRecordHistoryNew.getCreateTime());
|
SysWorkflowNode.setIsAccept(sysWorkflowRecordHistoryList.get(0).getIsAccept());
|
||||||
SysWorkflowNode.setRemark(sysWorkflowRecordHistoryNew.getRemark());
|
SysWorkflowNode.setCreateTime(sysWorkflowRecordHistoryList.get(0).getCreateTime());
|
||||||
|
SysWorkflowNode.setRemark(sysWorkflowRecordHistoryList.get(0).getRemark());
|
||||||
|
}else {
|
||||||
|
String[] ConfigValue =SysWorkflowNode.getConfigValues().split(",");
|
||||||
|
// 过滤数组元素
|
||||||
|
for (SysWorkflowRecordHistory sysWorkflowRecordHistoryNew : sysWorkflowRecordHistoryList) {
|
||||||
|
/*List<String> filteredList = Arrays.stream(ConfigValue)
|
||||||
|
.filter(value -> value.equals(sysWorkflowRecordHistoryNew.getCreateBy()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
//判断是不是所有人都审核完成
|
||||||
|
if(filteredList.size()==0){
|
||||||
|
|
||||||
|
}*/
|
||||||
|
//查看当前人是否审核
|
||||||
|
if(userId.toString().equals(sysWorkflowRecordHistoryNew.getCreateBy())){
|
||||||
|
SysWorkflowNode.setIsAccept(sysWorkflowRecordHistoryNew.getIsAccept());
|
||||||
|
SysWorkflowNode.setCreateTime(sysWorkflowRecordHistoryNew.getCreateTime());
|
||||||
|
SysWorkflowNode.setRemark(sysWorkflowRecordHistoryNew.getRemark());
|
||||||
|
}
|
||||||
|
//查看别人审核是否有驳回的
|
||||||
|
if (sysWorkflowRecordHistoryNew.getIsAccept().equals(2)){
|
||||||
|
SysWorkflowNode.setIsAccept(sysWorkflowRecordHistoryNew.getIsAccept());
|
||||||
|
SysWorkflowNode.setCreateTime(sysWorkflowRecordHistoryNew.getCreateTime());
|
||||||
|
SysWorkflowNode.setRemark(sysWorkflowRecordHistoryNew.getRemark());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return sysWorkflowNodeList;
|
return sysWorkflowNodeList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,12 +17,14 @@ import com.bonus.material.work.mapper.SysWorkflowRecordMapper;
|
||||||
import com.bonus.material.work.mapper.SysWorkflowTypeMapper;
|
import com.bonus.material.work.mapper.SysWorkflowTypeMapper;
|
||||||
import com.bonus.material.work.service.SysWorkflowRecordHistoryService;
|
import com.bonus.material.work.service.SysWorkflowRecordHistoryService;
|
||||||
import com.bonus.material.work.service.SysWorkflowRecordService;
|
import com.bonus.material.work.service.SysWorkflowRecordService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHistoryService {
|
public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHistoryService {
|
||||||
|
|
||||||
|
|
@ -50,6 +52,9 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public int updateSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory) {
|
public int updateSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory) {
|
||||||
|
//保存审核人信息
|
||||||
|
Long userId = SecurityUtils.getUserId();
|
||||||
|
sysWorkflowRecordHistory.setCreateBy(userId.toString());
|
||||||
sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory);
|
sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory);
|
||||||
//根据当前审批状态,修改流程状态
|
//根据当前审批状态,修改流程状态
|
||||||
if (sysWorkflowRecordHistory.getIsAccept()==1){
|
if (sysWorkflowRecordHistory.getIsAccept()==1){
|
||||||
|
|
@ -80,12 +85,10 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
|
||||||
sysWorkflowRecord.setWorkflowStatus(2);
|
sysWorkflowRecord.setWorkflowStatus(2);
|
||||||
sysWorkflowRecordMapper.updateSysWorkflowRecord(sysWorkflowRecord);
|
sysWorkflowRecordMapper.updateSysWorkflowRecord(sysWorkflowRecord);
|
||||||
System.out.println("-------------节点更新任务信息为完成-------------");
|
System.out.println("-------------节点更新任务信息为完成-------------");
|
||||||
|
|
||||||
SysWorkflowAuditDto sysWorkflowRecodeInfo = sysWorkflowRecordMapper.getSysWorkflowRecodeByTaskId(sysWorkflowRecordHistory.getTaskId());
|
SysWorkflowAuditDto sysWorkflowRecodeInfo = sysWorkflowRecordMapper.getSysWorkflowRecodeByTaskId(sysWorkflowRecordHistory.getTaskId());
|
||||||
if (sysWorkflowRecodeInfo == null) {
|
if (sysWorkflowRecodeInfo == null) {
|
||||||
throw new ServiceException("任务类型为空");
|
throw new ServiceException("任务类型为空");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 根据任务类型修改业务状态
|
// 根据任务类型修改业务状态
|
||||||
switch (sysWorkflowRecodeInfo.getTaskType()) {
|
switch (sysWorkflowRecodeInfo.getTaskType()) {
|
||||||
// 领料任务:2
|
// 领料任务:2
|
||||||
|
|
|
||||||
|
|
@ -24,4 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<delete id="deleteSysWorkflowConfig">
|
<delete id="deleteSysWorkflowConfig">
|
||||||
delete from sys_workflow_config where node_id=#{nodeId}
|
delete from sys_workflow_config where node_id=#{nodeId}
|
||||||
</delete>
|
</delete>
|
||||||
|
<select id="selectConfigValueByNodeId" resultType="java.lang.String">
|
||||||
|
select config_value from sys_workflow_config where node_id = #{nodeId}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<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.id as nodeId,
|
swn.node_sign_type as nodeSignType, swn.node_sign_config as nodeSignConfig,swn.id as nodeId,
|
||||||
swrh.create_by as createBy,swn.is_enable as isEnable,
|
swrh.create_by as createBy,swn.is_enable as isEnable,sec.config_value as configValues,
|
||||||
GROUP_CONCAT(DISTINCT sec.config_value SEPARATOR ',') AS configValues,
|
GROUP_CONCAT(DISTINCT sec.config_value SEPARATOR ',') AS configValues,
|
||||||
swr.id as recordId
|
swr.id as recordId
|
||||||
from sys_workflow_node swn
|
from sys_workflow_node swn
|
||||||
|
|
|
||||||
|
|
@ -29,20 +29,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</if>
|
</if>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<select id="getSysWorkflowRecodeByTaskId" resultType="com.bonus.material.work.domain.dto.SysWorkflowAuditDto">
|
|
||||||
select
|
<select id="getSysWorkflowRecodeByTaskId" parameterType="Integer" resultType="com.bonus.material.work.domain.dto.SysWorkflowAuditDto">
|
||||||
a.id,
|
select
|
||||||
a.task_id,
|
a.id as id,
|
||||||
a.task_type,
|
a.task_id as taskId,
|
||||||
a.task_code,
|
a.task_type as taskType,
|
||||||
a.workflow_id,
|
a.task_code as taskCode,
|
||||||
a.workflow_status
|
a.workflow_id as workflowId,
|
||||||
from sys_workflow_record a
|
a.workflow_status as workflowStatus
|
||||||
<where>
|
from sys_workflow_record a
|
||||||
<if test="taskId != null">
|
<where>
|
||||||
a.task_id = #{taskId}
|
<if test="taskId != null">
|
||||||
</if>
|
and a.task_id = #{taskId}
|
||||||
</where>
|
</if>
|
||||||
limit 1
|
</where>
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
<select id="seleteSysWorkflowRecordHistory" resultType="com.bonus.material.work.domain.SysWorkflowRecordHistory">
|
<select id="seleteSysWorkflowRecordHistory" resultType="com.bonus.material.work.domain.SysWorkflowRecordHistory">
|
||||||
select swrh.is_accept as isAccept,swrh.create_time as createTime,swrh.remark as remark
|
select swrh.is_accept as isAccept,swrh.create_time as createTime,swrh.remark as remark,swrh.next_node_id as nextNodeId,
|
||||||
from sys_workflow_record_history swrh
|
swrh.create_by as createBy
|
||||||
where swrh.record_id=#{recordId} and swrh.node_id= #{nodeId}
|
from sys_workflow_record_history swrh
|
||||||
limit 1
|
where swrh.record_id=#{recordId} and swrh.node_id= #{nodeId}
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue