diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/controller/SysWorkflowRecordHisController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/controller/SysWorkflowRecordHisController.java index 9e2fc866..1fbab489 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/controller/SysWorkflowRecordHisController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/controller/SysWorkflowRecordHisController.java @@ -23,9 +23,9 @@ public class SysWorkflowRecordHisController extends BaseController { private SysWorkflowRecordHistoryService sysWorkflowRecordHistoryService; /** - * 修改工作流详情 + * 审批 */ - @ApiOperation(value = "修改工作流详情") + @ApiOperation(value = "审批") @PostMapping("/update") public AjaxResult update(@RequestBody SysWorkflowRecordHistory sysWorkflowRecordHistory) { diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/SysWorkflowNode.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/SysWorkflowNode.java index b8af9372..213989ef 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/SysWorkflowNode.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/SysWorkflowNode.java @@ -81,4 +81,15 @@ public class SysWorkflowNode { * 审批结果,0拒绝 1通过 */ private int isAccept; + + /** + * + */ + private Integer recordId; + + /** + * + */ + private Integer nodeId; + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/SysWorkflowRecordHistory.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/SysWorkflowRecordHistory.java index e9ac4bd0..5ef6e7e3 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/SysWorkflowRecordHistory.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/SysWorkflowRecordHistory.java @@ -56,4 +56,9 @@ public class SysWorkflowRecordHistory { * 任务Id */ private Integer taskId; + + /** + * 所属流程类型ID + */ + private Integer typeId; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowRecordHistoryMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowRecordHistoryMapper.java index fc611384..d71caf8b 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowRecordHistoryMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowRecordHistoryMapper.java @@ -7,4 +7,6 @@ public interface SysWorkflowRecordHistoryMapper { int addSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory); + + SysWorkflowRecordHistory seleteSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowNodeServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowNodeServiceImpl.java index 259872e9..04ec931d 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowNodeServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowNodeServiceImpl.java @@ -2,11 +2,14 @@ package com.bonus.material.work.service.impl; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; +import com.bonus.common.core.utils.StringUtils; import com.bonus.common.security.utils.SecurityUtils; import com.bonus.material.work.domain.SysWorkflowConfig; 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.SysWorkflowNodeMapper; +import com.bonus.material.work.mapper.SysWorkflowRecordHistoryMapper; import com.bonus.material.work.service.SysWorkflowNodeService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -23,6 +26,9 @@ public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService { @Resource private SysWorkflowConfigMapper sysWorkflowConfigMapper; + @Resource + private SysWorkflowRecordHistoryMapper sysWorkflowRecordHistoryMapper; + /** * 工作流详情列表 */ @@ -96,7 +102,18 @@ public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService { @Override public List listByTaskId(SysWorkflowNode sysWorkflowNode) { + List 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; } } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java index 9eb80cd0..20b36d52 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java @@ -36,11 +36,37 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis @Override + @Transactional public int updateSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory) { sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory); //根据当前审批状态,修改流程状态 - if ("1".equals(sysWorkflowRecordHistory.getIsAccept())){ - + if (sysWorkflowRecordHistory.getIsAccept()==1){ + SysWorkflowNode sysWorkflowNode = new SysWorkflowNode(); + sysWorkflowNode.setTypeId(sysWorkflowRecordHistory.getTypeId()); + List 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 { SysWorkflowRecord sysWorkflowRecord = new SysWorkflowRecord(); sysWorkflowRecord.setTaskId(sysWorkflowRecordHistory.getTaskId()); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowNodeMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowNodeMapper.xml index dd731643..c20c3aaf 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowNodeMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowNodeMapper.xml @@ -69,10 +69,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + 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} +