审批过请假处理
This commit is contained in:
parent
04ce1c9506
commit
29bb4817c3
@ -53,4 +53,18 @@ public interface QjglService {
|
||||
PageResult<QjglDO> getQjglPage(QjglPageReqVO pageReqVO);
|
||||
PageResult<QjglDO> getQjglPage(Long userid,QjglPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 改变请假管理数据状态
|
||||
* @param id
|
||||
*/
|
||||
Boolean dataStatus(Long id);
|
||||
|
||||
/**
|
||||
* 请假管理监听器判断
|
||||
* @param id
|
||||
* @param processId
|
||||
* @return
|
||||
*/
|
||||
Boolean QjglHistoryService(Long id, String processId);
|
||||
|
||||
}
|
||||
|
@ -5,8 +5,12 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.processinstancetodo.ProcessInstanceTodoDO;
|
||||
import cn.iocoder.yudao.module.bpm.dal.mysql.processinstancetodo.ProcessInstanceTodoMapper;
|
||||
import cn.iocoder.yudao.module.bpm.service.processinstancetodo.ProcessInstanceTodoService;
|
||||
import cn.iocoder.yudao.module.home.controller.admin.njgl.vo.NjglPageReqVO;
|
||||
import cn.iocoder.yudao.module.home.controller.admin.njgl.vo.NjglRespVO;
|
||||
import cn.iocoder.yudao.module.home.controller.admin.qjgl.vo.*;
|
||||
import cn.iocoder.yudao.module.home.dal.dataobject.njgl.NjglDO;
|
||||
import cn.iocoder.yudao.module.home.dal.dataobject.qjgl.QjglDO;
|
||||
import cn.iocoder.yudao.module.home.dal.mysql.njgl.NjglMapper;
|
||||
import cn.iocoder.yudao.module.home.dal.mysql.qjgl.QjglMapper;
|
||||
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
|
||||
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
|
||||
@ -15,6 +19,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@ -41,6 +46,9 @@ public class QjglServiceImpl implements QjglService {
|
||||
|
||||
@Resource
|
||||
private ProcessInstanceTodoService processInstanceTodoService;
|
||||
|
||||
@Resource
|
||||
private NjglMapper njglMapper;
|
||||
@Override
|
||||
public Long createQjgl(Long userId,QjglSaveReqVO createReqVO) {
|
||||
PROCESS_KEY = createReqVO.getProcessDefinitionKey();
|
||||
@ -136,4 +144,64 @@ public class QjglServiceImpl implements QjglService {
|
||||
return qjglMapper.selectPage(userId,pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean dataStatus(Long id) {
|
||||
|
||||
QjglDO qjgl = qjglMapper.selectById(id);
|
||||
|
||||
NjglPageReqVO njglPageReqVO = buildNjglReqVo(qjgl);
|
||||
NjglDO njglDO = getNjglPage(njglPageReqVO);
|
||||
if (njglDO == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
NjglRespVO njglRespVO = BeanUtils.toBean(njglDO, NjglRespVO.class);
|
||||
upDataRespVo(njglRespVO,qjgl);
|
||||
//这里在是不用判断是不是剩余天数不够 而是在前端实现
|
||||
// if ((njglRespVO.getUsedDays().compareTo(BigDecimal.valueOf(10)) > 0)&&(njglRespVO.getRemainingDays().compareTo(BigDecimal.ZERO) < 0)) {
|
||||
// return false;
|
||||
// }
|
||||
// 更新
|
||||
NjglDO updateObj = BeanUtils.toBean(njglRespVO, NjglDO.class);
|
||||
njglMapper.updateById(updateObj);
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
private NjglPageReqVO buildNjglReqVo(QjglDO qjgl) {
|
||||
NjglPageReqVO njglPageReqVO = new NjglPageReqVO();
|
||||
njglPageReqVO.setUserId(qjgl.getUserId());
|
||||
njglPageReqVO.setUserName(qjgl.getUserName());
|
||||
njglPageReqVO.setDeptId(qjgl.getDeptId());
|
||||
njglPageReqVO.setDeptName(qjgl.getDeptName());
|
||||
njglPageReqVO.setYear(String.valueOf(qjgl.getStartTime().getYear()));
|
||||
return njglPageReqVO;
|
||||
}
|
||||
|
||||
private NjglDO getNjglPage(NjglPageReqVO njglPageReqVO) {
|
||||
PageResult<NjglDO> pageResult = njglMapper.selectPage(njglPageReqVO);
|
||||
if (pageResult.getList().isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
return pageResult.getList().get(0);
|
||||
}
|
||||
|
||||
private void upDataRespVo(NjglRespVO njglRespVO, QjglDO qjgl) {
|
||||
njglRespVO.setStatus(1);
|
||||
njglRespVO.setRemainingDays(njglRespVO.getRemainingDays().subtract(qjgl.getDay()));
|
||||
njglRespVO.setUsedDays(njglRespVO.getUsedDays().add(qjgl.getDay()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean QjglHistoryService(Long id, String processId) {
|
||||
QjglDO qjglDO = qjglMapper.selectById(id);
|
||||
if (qjglDO == null) {
|
||||
return false;
|
||||
}
|
||||
if (!qjglDO.getProcessInstanceId().equals(processId)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,15 +1,38 @@
|
||||
package cn.iocoder.yudao.module.home.service.qjgl.listener;
|
||||
|
||||
import cn.iocoder.yudao.module.home.application.ApplicationContextHandler;
|
||||
import cn.iocoder.yudao.module.home.service.qjgl.QjglService;
|
||||
import org.flowable.engine.delegate.DelegateExecution;
|
||||
import org.flowable.engine.delegate.ExecutionListener;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.home.enums.ErrorCodeConstants.NJGL_DATA_STATUS;
|
||||
|
||||
@Component
|
||||
public class ProcessEndListener implements ExecutionListener {
|
||||
|
||||
@Override
|
||||
public void notify(DelegateExecution execution) {
|
||||
System.out.println("task name:"+execution.getEventName() );
|
||||
// if (execution.getEventName().equals("end")) {
|
||||
// // 流程结束时触发
|
||||
// System.out.println("Process instance " + execution.getProcessInstanceId() + " has ended.");
|
||||
// }
|
||||
if (execution.getEventName().equals("end")) {
|
||||
|
||||
String key = execution.getProcessInstanceBusinessKey();
|
||||
Long QjId = Long.parseLong(key);
|
||||
String processId = execution.getProcessInstanceId();
|
||||
|
||||
QjglService qjglService = ApplicationContextHandler.getBean(QjglService.class);
|
||||
|
||||
if (!qjglService.QjglHistoryService(QjId,processId)) {
|
||||
return;
|
||||
}
|
||||
Boolean err = qjglService.dataStatus(QjId);
|
||||
if (!err) {
|
||||
throw exception(NJGL_DATA_STATUS);
|
||||
}
|
||||
}
|
||||
}
|
||||
// System.out.println("task name11:"+execution.getEventName());
|
||||
// System.out.println("kdy11: " + QjId);
|
||||
// System.out.println("processId: " + processId);
|
||||
// System.out.println("delegateExecution2211: " + execution);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user