审批过销假处理
This commit is contained in:
parent
29bb4817c3
commit
7c64608a60
@ -56,4 +56,17 @@ public interface XjglService {
|
|||||||
*/
|
*/
|
||||||
PageResult<XjglDO> getXjglPage(XjglPageReqVO pageReqVO);
|
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;
|
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 org.springframework.stereotype.Service;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import cn.iocoder.yudao.module.home.controller.admin.xjgl.vo.*;
|
import cn.iocoder.yudao.module.home.controller.admin.xjgl.vo.*;
|
||||||
import cn.iocoder.yudao.module.home.dal.dataobject.xjgl.XjglDO;
|
import cn.iocoder.yudao.module.home.dal.dataobject.xjgl.XjglDO;
|
||||||
@ -42,6 +47,9 @@ public class XjglServiceImpl implements XjglService {
|
|||||||
@Resource
|
@Resource
|
||||||
private XjglMapper xjglMapper;
|
private XjglMapper xjglMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
NjglMapper njglMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createXjgl(Long userId,XjglSaveReqVO createReqVO) {
|
public Long createXjgl(Long userId,XjglSaveReqVO createReqVO) {
|
||||||
PROCESS_KEY = createReqVO.getProcessDefinitionKey();
|
PROCESS_KEY = createReqVO.getProcessDefinitionKey();
|
||||||
@ -108,4 +116,62 @@ public class XjglServiceImpl implements XjglService {
|
|||||||
return xjglMapper.selectPage(pageReqVO);
|
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