审批过销假处理
This commit is contained in:
parent
29bb4817c3
commit
7c64608a60
@ -56,4 +56,17 @@ public interface XjglService {
|
||||
*/
|
||||
PageResult<XjglDO> getXjglPage(XjglPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 销假
|
||||
* @param id
|
||||
*/
|
||||
Boolean backDay(Long id);
|
||||
|
||||
/**
|
||||
* 销假管理判断
|
||||
* @param id
|
||||
* @param processId
|
||||
* @return
|
||||
*/
|
||||
Boolean XjglHistoryService(Long id, String processId);
|
||||
}
|
@ -1,10 +1,15 @@
|
||||
package cn.iocoder.yudao.module.home.service.xjgl;
|
||||
|
||||
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.dal.dataobject.njgl.NjglDO;
|
||||
import cn.iocoder.yudao.module.home.dal.mysql.njgl.NjglMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import cn.iocoder.yudao.module.home.controller.admin.xjgl.vo.*;
|
||||
import cn.iocoder.yudao.module.home.dal.dataobject.xjgl.XjglDO;
|
||||
@ -42,6 +47,9 @@ public class XjglServiceImpl implements XjglService {
|
||||
@Resource
|
||||
private XjglMapper xjglMapper;
|
||||
|
||||
@Resource
|
||||
NjglMapper njglMapper;
|
||||
|
||||
@Override
|
||||
public Long createXjgl(Long userId,XjglSaveReqVO createReqVO) {
|
||||
PROCESS_KEY = createReqVO.getProcessDefinitionKey();
|
||||
@ -108,4 +116,62 @@ public class XjglServiceImpl implements XjglService {
|
||||
return xjglMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean backDay(Long id) {
|
||||
XjglDO xjglDO = xjglMapper.selectById(id);
|
||||
|
||||
NjglPageReqVO njglPageReqVO = buildXjglReqVo(xjglDO);
|
||||
|
||||
NjglDO njglDO = getNjglPage(njglPageReqVO);
|
||||
if (njglDO == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
NjglRespVO njglRespVO = BeanUtils.toBean(njglDO, NjglRespVO.class);
|
||||
//这里后面判断一下是不是年假 是年假在更改数据
|
||||
upDataRespVo2(njglRespVO,xjglDO);
|
||||
// if ((njglRespVO.getUsedDays().compareTo(BigDecimal.ZERO) < 0)&&(njglRespVO.getRemainingDays().compareTo(BigDecimal.valueOf(10)) > 0)) {
|
||||
// return false;
|
||||
// }
|
||||
// 更新
|
||||
NjglDO updateObj = BeanUtils.toBean(njglRespVO, NjglDO.class);
|
||||
njglMapper.updateById(updateObj);
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
private NjglPageReqVO buildXjglReqVo(XjglDO xjglDO) {
|
||||
NjglPageReqVO njglPageReqVO = new NjglPageReqVO();
|
||||
njglPageReqVO.setUserId(xjglDO.getUserId());
|
||||
njglPageReqVO.setUserName(xjglDO.getUserName());
|
||||
njglPageReqVO.setDeptId(xjglDO.getDeptId());
|
||||
njglPageReqVO.setDeptName(xjglDO.getDeptName());
|
||||
njglPageReqVO.setYear(String.valueOf(xjglDO.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 upDataRespVo2(NjglRespVO njglRespVO, XjglDO xjglDO) {
|
||||
njglRespVO.setRemainingDays(njglRespVO.getRemainingDays().add(xjglDO.getDay()));
|
||||
njglRespVO.setUsedDays(njglRespVO.getUsedDays().subtract(xjglDO.getDay()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean XjglHistoryService(Long id, String processId) {
|
||||
XjglDO xjglDO = xjglMapper.selectById(id);
|
||||
if (xjglDO == null) {
|
||||
return false;
|
||||
}
|
||||
if (!xjglDO.getProcessInstanceId().equals(processId)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package cn.iocoder.yudao.module.home.service.xjgl.listenter;
|
||||
|
||||
import cn.iocoder.yudao.module.home.application.ApplicationContextHandler;
|
||||
import cn.iocoder.yudao.module.home.service.xjgl.XjglService;
|
||||
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_BACK_DAY;
|
||||
|
||||
@Component
|
||||
public class XjglEndListener implements ExecutionListener {
|
||||
@Override
|
||||
public void notify(DelegateExecution delegateExecution) {
|
||||
|
||||
if (delegateExecution.getEventName().equals("end")) {
|
||||
|
||||
String key = delegateExecution.getProcessInstanceBusinessKey();
|
||||
Long XjId = Long.parseLong(key);
|
||||
String processId = delegateExecution.getProcessInstanceId();
|
||||
|
||||
XjglService xjglService = ApplicationContextHandler.getBean(XjglService.class);
|
||||
|
||||
if (!xjglService.XjglHistoryService(XjId,processId)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Boolean err = xjglService.backDay(XjId);
|
||||
if (!err) {
|
||||
throw exception(NJGL_BACK_DAY);
|
||||
}
|
||||
}
|
||||
}
|
||||
// System.out.println("task name22:"+delegateExecution.getEventName());
|
||||
// System.out.println("kdy22: " + XjId);
|
||||
// System.out.println("processId: " + processId);
|
||||
// System.out.println("delegateExecution22: " + delegateExecution);
|
||||
}
|
Loading…
Reference in New Issue
Block a user