代码注释
This commit is contained in:
parent
7c64608a60
commit
747a1c116e
@ -118,22 +118,30 @@ public class XjglServiceImpl implements XjglService {
|
||||
|
||||
@Override
|
||||
public Boolean backDay(Long id) {
|
||||
//通过id 获取销假数据
|
||||
XjglDO xjglDO = xjglMapper.selectById(id);
|
||||
|
||||
// 通过销假数据 设置年假 pagevo 来找到想要修改的年假数据
|
||||
NjglPageReqVO njglPageReqVO = buildXjglReqVo(xjglDO);
|
||||
|
||||
// 使用njglMapper获取年假do并返回 do
|
||||
NjglDO njglDO = getNjglPage(njglPageReqVO);
|
||||
// 判断do不为空
|
||||
if (njglDO == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// 把年假do转换为 njglRespVo类型
|
||||
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;
|
||||
// }
|
||||
// 更新
|
||||
// 更新数据 返回true
|
||||
NjglDO updateObj = BeanUtils.toBean(njglRespVO, NjglDO.class);
|
||||
njglMapper.updateById(updateObj);
|
||||
return true;
|
||||
@ -142,6 +150,7 @@ public class XjglServiceImpl implements XjglService {
|
||||
|
||||
private NjglPageReqVO buildXjglReqVo(XjglDO xjglDO) {
|
||||
NjglPageReqVO njglPageReqVO = new NjglPageReqVO();
|
||||
// 根据传递的XjglDo 设置 njglPagevo的值 来获取想要的年假数据
|
||||
njglPageReqVO.setUserId(xjglDO.getUserId());
|
||||
njglPageReqVO.setUserName(xjglDO.getUserName());
|
||||
njglPageReqVO.setDeptId(xjglDO.getDeptId());
|
||||
@ -151,6 +160,7 @@ public class XjglServiceImpl implements XjglService {
|
||||
}
|
||||
|
||||
private NjglDO getNjglPage(NjglPageReqVO njglPageReqVO) {
|
||||
// 通过的设置好的 njglvo 获取到对应的值 做下判断不为空 传递回去
|
||||
PageResult<NjglDO> pageResult = njglMapper.selectPage(njglPageReqVO);
|
||||
if (pageResult.getList().isEmpty()) {
|
||||
return null;
|
||||
@ -158,6 +168,7 @@ public class XjglServiceImpl implements XjglService {
|
||||
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()));
|
||||
@ -165,6 +176,9 @@ public class XjglServiceImpl implements XjglService {
|
||||
|
||||
@Override
|
||||
public Boolean XjglHistoryService(Long id, String processId) {
|
||||
// 流程监听器是一起运行的所以需要判断,
|
||||
// 判断id是否找得到数据,然后再判断这个节点的实例id和获取到的数据内出储存的实例id是否为同一个
|
||||
// 这样就可以判断想要处理,是不是对应的流程处理
|
||||
XjglDO xjglDO = xjglMapper.selectById(id);
|
||||
if (xjglDO == null) {
|
||||
return false;
|
||||
|
@ -11,21 +11,25 @@ import static cn.iocoder.yudao.module.home.enums.ErrorCodeConstants.NJGL_BACK_DA
|
||||
|
||||
@Component
|
||||
public class XjglEndListener implements ExecutionListener {
|
||||
//继承 ExecutionListener 类 可接受FlowAble 流程数据
|
||||
@Override
|
||||
public void notify(DelegateExecution delegateExecution) {
|
||||
|
||||
// 流程监听 判断是不是流程 结束节点
|
||||
if (delegateExecution.getEventName().equals("end")) {
|
||||
|
||||
// 通过 delegateExecution 类 获取想要的数据
|
||||
String key = delegateExecution.getProcessInstanceBusinessKey();
|
||||
Long XjId = Long.parseLong(key);
|
||||
String processId = delegateExecution.getProcessInstanceId();
|
||||
|
||||
// 通过 ApplicationContextHandler 注入XjglServiceBean对象
|
||||
XjglService xjglService = ApplicationContextHandler.getBean(XjglService.class);
|
||||
|
||||
// 判断流程是否是销假流程
|
||||
if (!xjglService.XjglHistoryService(XjId,processId)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 执行销假方法, 并判断是否正确执行
|
||||
Boolean err = xjglService.backDay(XjId);
|
||||
if (!err) {
|
||||
throw exception(NJGL_BACK_DAY);
|
||||
|
Loading…
Reference in New Issue
Block a user