rjuq whnt

This commit is contained in:
quyixiao 2020-10-27 15:35:39 +08:00
parent 8d7cb7dc39
commit 184cd5d8e6
5 changed files with 59 additions and 12 deletions

View File

@ -672,7 +672,8 @@ public class ResultRecordController extends AbstractController {
/**
* 删除
*/
// http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=1&loginUserId=825&comment=xxx&menuName=bbb
// 审批http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=1&loginUserId=825&comment=xxx&menuName=bbb
// 跳过http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=4&menuName=bbb&flowRecordId=360
@RequestMapping("/new/approval")
public R approval(ApprovalDto approvalDto) {
try {

View File

@ -10,5 +10,5 @@ public class ApprovalDto {
private String menuName; //按钮名称
private String comment;
private Long transferStaffId; // 转交员工 id
private Long currentStaffId; //当前用户 id
private Long flowRecordId;// 流程 id
}

View File

@ -1,7 +1,9 @@
package com.lz.modules.flow.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lz.modules.app.dto.ApprovalDto;
import com.lz.modules.flow.entity.FlowChange;
import com.lz.modules.flow.entity.FlowRecord;
/**
* <p>
@ -30,4 +32,5 @@ public interface FlowChangeService extends IService<FlowChange> {
int deleteFlowChangeById(Long id);
void saveChange(ApprovalDto approvalDto, FlowRecord flowRecord, int i);
}

View File

@ -1,9 +1,13 @@
package com.lz.modules.flow.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lz.modules.app.dto.ApprovalDto;
import com.lz.modules.flow.dao.FlowChangeMapper;
import com.lz.modules.flow.entity.FlowChange;
import com.lz.modules.flow.entity.FlowRecord;
import com.lz.modules.flow.service.FlowChangeService;
import com.lz.modules.sys.entity.app.ResultRecord;
import com.lz.modules.sys.service.app.ResultRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -24,6 +28,9 @@ public class FlowChangeServiceImpl extends ServiceImpl<FlowChangeMapper, FlowCha
private FlowChangeMapper flowChangeMapper;
@Autowired
private ResultRecordService resultRecordService;
@Override
public FlowChange selectFlowChangeById(Long id){
@ -58,6 +65,19 @@ public class FlowChangeServiceImpl extends ServiceImpl<FlowChangeMapper, FlowCha
return flowChangeMapper.deleteFlowChangeById(id);
}
@Override
public void saveChange(ApprovalDto approvalDto, FlowRecord flowRecord, int type) {
FlowChange flowChange = new FlowChange();
flowChange.setApprovalId(flowRecord.getApprovalStaffId());
flowChange.setToApprovalId(approvalDto.getTransferStaffId());
flowChange.setOptId(approvalDto.getLoginUserId());
flowChange.setFlowRecordId(approvalDto.getFlowRecordId());
flowChange.setFlowRecordId(flowRecord.getRecordId());
ResultRecord resultRecord = resultRecordService.selectResultRecordById(flowRecord.getRecordId());
flowChange.setStaffId(resultRecord.getStaffId());
flowChange.setType(type);
flowChangeMapper.insertFlowChange(flowChange);
}
}

View File

@ -130,6 +130,9 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
@Autowired
private FlowChartService flowChartService;
@Autowired
private FlowChangeService flowChangeService;
@Value("${dingtalk.appid}")
private String appid;
@ -844,7 +847,7 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
case 3: //3 催办
return urge(approvalDto);
case 4: //4 跳过
if(approvalDto.getCurrentStaffId() == null){
if(approvalDto.getFlowRecordId() == null){
throw new RRException("currentStaffId 不能为空");
}
return skip(approvalDto);
@ -856,7 +859,7 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
if (approvalDto.getTransferStaffId() == null) {
throw new RRException("transferStaffId 不能为空");
}
if(approvalDto.getCurrentStaffId() == null){
if(approvalDto.getFlowRecordId() == null){
throw new RRException("currentStaffId 不能为空");
}
return transfer(approvalDto);
@ -867,15 +870,33 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
}
private R skip(ApprovalDto approvalDto) {
approvalDto.setLoginUserId(approvalDto.getCurrentStaffId());
return newSubmit(approvalDto,FlowRecordStatusEnums.SKIP_STATUS.getStatus());
FlowRecord flowRecord = flowRecordService.selectFlowRecordById(approvalDto.getFlowRecordId());
if(flowRecord.getStatus().equals(FlowRecordStatusEnums.FINISHED_STATUS.getStatus())
|| flowRecord.getStatus().equals(FlowRecordStatusEnums.OTHER_APPROVAL.getStatus())){
return R.ok("流程己经走了,无法跳过 " );
}
if(flowRecord.getStatus().equals(FlowRecordStatusEnums.UN_TO_STATUS.getStatus())){ // 如果当前没有审批
flowRecord.setStatus(FlowRecordStatusEnums.SKIP_STATUS.getStatus());
flowRecordService.updateFlowRecordById(flowRecord);
}else if (flowRecord.getStatus().equals(FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus())){ //如果当前正在审批中
approvalDto.setLoginUserId(flowRecord.getApprovalStaffId());
newSubmit(approvalDto,FlowRecordStatusEnums.SKIP_STATUS.getStatus());
}
flowChangeService.saveChange(approvalDto, flowRecord, 0);
return R.ok("恭喜您,跳过成功。");
}
private R transfer(ApprovalDto approvalDto) {
return null;
FlowRecord flowRecord = flowRecordService.selectFlowRecordById(approvalDto.getFlowRecordId());
StaffEntity staffEntity = staffService.selectStaffById(approvalDto.getTransferStaffId());
flowRecord.setApprovalStaffId(staffEntity.getId());
flowRecord.setApprovalStaffName(staffEntity.getName());
flowChangeService.saveChange(approvalDto, flowRecord, 1);
return R.ok("跳过成功");
}
private R reSubmit(ApprovalDto approvalDto) {
List<FlowRecord> flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(approvalDto.getResultRecordId(), 1);
if(flowRecords!=null && flowRecords.size()>0){
@ -912,7 +933,7 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
}
FlowRecord preFlowRecord = flowRecords.get(0);
int stepType = preFlowRecord.getType();
if (flowRecords != null && flowRecords.size() > 0) {
if (flowRecords.size() > 1) {
if (stepType == 0 || stepType == 1) { //表示只要一个人通过就可以了
for (FlowRecord flowRecord : flowRecords) {
if (flowRecord.getApprovalStaffId().equals(approvalDto.getLoginUserId())) {
@ -945,9 +966,13 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
}
// 找到当前下一个节点为0的 flowIndex
FlowRecord nextFlowRecord = flowRecordService.selectFlowRecordByRecordIdMinIdStatus(approvalDto.getResultRecordId(),preFlowRecord.getId(), 0);
if(nextFlowRecord == null){
log.info("流程己经结束2");
return R.ok("流程己经结束");
}
List<FlowRecord> nextFlowRecords = flowRecordService.selectFlowRecordByRecordIdStatusFlowIndex(approvalDto.getResultRecordId(), 0, nextFlowRecord.getFlowIndex());
if (CollectionUtils.isEmpty(nextFlowRecords)) {
log.info("流程己经结束2");
log.info("流程己经结束3");
return R.ok("流程己经结束");
}
FlowRecord currentFlowRecord = nextFlowRecords.get(0);
@ -964,7 +989,6 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
return R.ok();
}
private R newReject(ApprovalDto approvalDto) {
List<FlowRecord> currentflowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(approvalDto.getResultRecordId(),FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus());
if(currentflowRecords !=null && currentflowRecords.size() > 0 ){
@ -1018,7 +1042,6 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
return R.ok();
}
@Override
public R newResultRecordList(RecordDetailDto recordDetailDto) {
List<FlowRecord> flowRecords = flowRecordService.selectFlowRecordByResultRecordId(recordDetailDto.getResultRecordId());