Commit e6142b53088f9b7de60c1b6e1a72ffb4dca82c60
1 parent
54377751
实现 OA 请假的取消申请
Showing
18 changed files
with
74 additions
and
196 deletions
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/oa/BpmOALeaveController.java
| 1 | package cn.iocoder.yudao.adminserver.modules.bpm.controller.oa; | 1 | package cn.iocoder.yudao.adminserver.modules.bpm.controller.oa; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeaveCreateReqVO; | 3 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeaveCreateReqVO; |
| 4 | -import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.OALeavePageReqVO; | ||
| 5 | -import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.OALeaveRespVO; | ||
| 6 | -import cn.iocoder.yudao.adminserver.modules.bpm.convert.oa.OALeaveConvert; | ||
| 7 | -import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.OALeaveDO; | 4 | +import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeavePageReqVO; |
| 5 | +import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeaveRespVO; | ||
| 6 | +import cn.iocoder.yudao.adminserver.modules.bpm.convert.oa.BpmOALeaveConvert; | ||
| 7 | +import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.BpmOALeaveDO; | ||
| 8 | import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.BpmOALeaveService; | 8 | import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.BpmOALeaveService; |
| 9 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 9 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 10 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 10 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| @@ -43,27 +43,19 @@ public class BpmOALeaveController { | @@ -43,27 +43,19 @@ public class BpmOALeaveController { | ||
| 43 | return success(leaveService.createLeave(getLoginUserId(), createReqVO)); | 43 | return success(leaveService.createLeave(getLoginUserId(), createReqVO)); |
| 44 | } | 44 | } |
| 45 | 45 | ||
| 46 | - @DeleteMapping("/cancel") | ||
| 47 | - @ApiOperation("取消请假申请") | ||
| 48 | - @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) | ||
| 49 | - public CommonResult<Boolean> cancelLeave(@RequestParam("id") Long id) { | ||
| 50 | - leaveService.cancelLeave(id); | ||
| 51 | - return success(true); | ||
| 52 | - } | ||
| 53 | - | ||
| 54 | @GetMapping("/get") | 46 | @GetMapping("/get") |
| 55 | @ApiOperation("获得请假申请") | 47 | @ApiOperation("获得请假申请") |
| 56 | @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) | 48 | @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) |
| 57 | - public CommonResult<OALeaveRespVO> getLeave(@RequestParam("id") Long id) { | ||
| 58 | - OALeaveDO leave = leaveService.getLeave(id); | ||
| 59 | - return success(OALeaveConvert.INSTANCE.convert(leave)); | 49 | + public CommonResult<BpmOALeaveRespVO> getLeave(@RequestParam("id") Long id) { |
| 50 | + BpmOALeaveDO leave = leaveService.getLeave(id); | ||
| 51 | + return success(BpmOALeaveConvert.INSTANCE.convert(leave)); | ||
| 60 | } | 52 | } |
| 61 | 53 | ||
| 62 | @GetMapping("/page") | 54 | @GetMapping("/page") |
| 63 | @ApiOperation("获得请假申请分页") | 55 | @ApiOperation("获得请假申请分页") |
| 64 | - public CommonResult<PageResult<OALeaveRespVO>> getLeavePage(@Valid OALeavePageReqVO pageVO) { | ||
| 65 | - PageResult<OALeaveDO> pageResult = leaveService.getLeavePage(getLoginUserId(), pageVO); | ||
| 66 | - return success(OALeaveConvert.INSTANCE.convertPage(pageResult)); | 56 | + public CommonResult<PageResult<BpmOALeaveRespVO>> getLeavePage(@Valid BpmOALeavePageReqVO pageVO) { |
| 57 | + PageResult<BpmOALeaveDO> pageResult = leaveService.getLeavePage(getLoginUserId(), pageVO); | ||
| 58 | + return success(BpmOALeaveConvert.INSTANCE.convertPage(pageResult)); | ||
| 67 | } | 59 | } |
| 68 | 60 | ||
| 69 | } | 61 | } |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/oa/vo/OALeavePageReqVO.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/oa/vo/BpmOALeavePageReqVO.java
| @@ -12,7 +12,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ | @@ -12,7 +12,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ | ||
| 12 | @Data | 12 | @Data |
| 13 | @EqualsAndHashCode(callSuper = true) | 13 | @EqualsAndHashCode(callSuper = true) |
| 14 | @ToString(callSuper = true) | 14 | @ToString(callSuper = true) |
| 15 | -public class OALeavePageReqVO extends PageParam { | 15 | +public class BpmOALeavePageReqVO extends PageParam { |
| 16 | 16 | ||
| 17 | @ApiModelProperty(value = "状态", example = "1", notes = "参见 bpm_process_instance_result 枚举") | 17 | @ApiModelProperty(value = "状态", example = "1", notes = "参见 bpm_process_instance_result 枚举") |
| 18 | private Integer result; | 18 | private Integer result; |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/oa/vo/OALeaveRespVO.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/oa/vo/BpmOALeaveRespVO.java
| @@ -13,7 +13,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ | @@ -13,7 +13,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ | ||
| 13 | @Data | 13 | @Data |
| 14 | @EqualsAndHashCode(callSuper = true) | 14 | @EqualsAndHashCode(callSuper = true) |
| 15 | @ToString(callSuper = true) | 15 | @ToString(callSuper = true) |
| 16 | -public class OALeaveRespVO extends BpmOALeaveBaseVO { | 16 | +public class BpmOALeaveRespVO extends BpmOALeaveBaseVO { |
| 17 | 17 | ||
| 18 | @ApiModelProperty(value = "请假表单主键", required = true, example = "1024") | 18 | @ApiModelProperty(value = "请假表单主键", required = true, example = "1024") |
| 19 | private Long id; | 19 | private Long id; |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/oa/OALeaveConvert.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/oa/BpmOALeaveConvert.java
| 1 | package cn.iocoder.yudao.adminserver.modules.bpm.convert.oa; | 1 | package cn.iocoder.yudao.adminserver.modules.bpm.convert.oa; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeaveCreateReqVO; | 3 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeaveCreateReqVO; |
| 4 | -import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.OALeaveRespVO; | ||
| 5 | -import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.OALeaveDO; | 4 | +import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeaveRespVO; |
| 5 | +import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.BpmOALeaveDO; | ||
| 6 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 6 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 7 | import org.mapstruct.Mapper; | 7 | import org.mapstruct.Mapper; |
| 8 | import org.mapstruct.factory.Mappers; | 8 | import org.mapstruct.factory.Mappers; |
| @@ -15,16 +15,16 @@ import java.util.List; | @@ -15,16 +15,16 @@ import java.util.List; | ||
| 15 | * @author 芋艿 | 15 | * @author 芋艿 |
| 16 | */ | 16 | */ |
| 17 | @Mapper | 17 | @Mapper |
| 18 | -public interface OALeaveConvert { | 18 | +public interface BpmOALeaveConvert { |
| 19 | 19 | ||
| 20 | - OALeaveConvert INSTANCE = Mappers.getMapper(OALeaveConvert.class); | 20 | + BpmOALeaveConvert INSTANCE = Mappers.getMapper(BpmOALeaveConvert.class); |
| 21 | 21 | ||
| 22 | - OALeaveDO convert(BpmOALeaveCreateReqVO bean); | 22 | + BpmOALeaveDO convert(BpmOALeaveCreateReqVO bean); |
| 23 | 23 | ||
| 24 | - OALeaveRespVO convert(OALeaveDO bean); | 24 | + BpmOALeaveRespVO convert(BpmOALeaveDO bean); |
| 25 | 25 | ||
| 26 | - List<OALeaveRespVO> convertList(List<OALeaveDO> list); | 26 | + List<BpmOALeaveRespVO> convertList(List<BpmOALeaveDO> list); |
| 27 | 27 | ||
| 28 | - PageResult<OALeaveRespVO> convertPage(PageResult<OALeaveDO> page); | 28 | + PageResult<BpmOALeaveRespVO> convertPage(PageResult<BpmOALeaveDO> page); |
| 29 | 29 | ||
| 30 | } | 30 | } |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/leave/OALeaveDO.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/leave/BpmOALeaveDO.java
| @@ -22,7 +22,7 @@ import org.activiti.engine.runtime.ProcessInstance; | @@ -22,7 +22,7 @@ import org.activiti.engine.runtime.ProcessInstance; | ||
| 22 | @Builder | 22 | @Builder |
| 23 | @NoArgsConstructor | 23 | @NoArgsConstructor |
| 24 | @AllArgsConstructor | 24 | @AllArgsConstructor |
| 25 | -public class OALeaveDO extends BaseDO { | 25 | +public class BpmOALeaveDO extends BaseDO { |
| 26 | 26 | ||
| 27 | /** | 27 | /** |
| 28 | * 请假表单主键 | 28 | * 请假表单主键 |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/leave/package-info.java deleted
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/oa/BpmOALeaveMapper.java
| 1 | package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.oa; | 1 | package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.oa; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.OALeavePageReqVO; | ||
| 4 | -import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.OALeaveDO; | 3 | +import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.BpmOALeavePageReqVO; |
| 4 | +import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.BpmOALeaveDO; | ||
| 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | 6 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| 7 | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | 7 | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| @@ -14,16 +14,16 @@ import org.apache.ibatis.annotations.Mapper; | @@ -14,16 +14,16 @@ import org.apache.ibatis.annotations.Mapper; | ||
| 14 | * @author 芋道源码 | 14 | * @author 芋道源码 |
| 15 | */ | 15 | */ |
| 16 | @Mapper | 16 | @Mapper |
| 17 | -public interface BpmOALeaveMapper extends BaseMapperX<OALeaveDO> { | 17 | +public interface BpmOALeaveMapper extends BaseMapperX<BpmOALeaveDO> { |
| 18 | 18 | ||
| 19 | - default PageResult<OALeaveDO> selectPage(Long userId, OALeavePageReqVO reqVO) { | ||
| 20 | - return selectPage(reqVO, new LambdaQueryWrapperX<OALeaveDO>() | ||
| 21 | - .eqIfPresent(OALeaveDO::getUserId, userId) | ||
| 22 | - .eqIfPresent(OALeaveDO::getResult, reqVO.getResult()) | ||
| 23 | - .eqIfPresent(OALeaveDO::getType, reqVO.getType()) | ||
| 24 | - .likeIfPresent(OALeaveDO::getReason, reqVO.getReason()) | ||
| 25 | - .betweenIfPresent(OALeaveDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) | ||
| 26 | - .orderByDesc(OALeaveDO::getId)); | 19 | + default PageResult<BpmOALeaveDO> selectPage(Long userId, BpmOALeavePageReqVO reqVO) { |
| 20 | + return selectPage(reqVO, new LambdaQueryWrapperX<BpmOALeaveDO>() | ||
| 21 | + .eqIfPresent(BpmOALeaveDO::getUserId, userId) | ||
| 22 | + .eqIfPresent(BpmOALeaveDO::getResult, reqVO.getResult()) | ||
| 23 | + .eqIfPresent(BpmOALeaveDO::getType, reqVO.getType()) | ||
| 24 | + .likeIfPresent(BpmOALeaveDO::getReason, reqVO.getReason()) | ||
| 25 | + .betweenIfPresent(BpmOALeaveDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) | ||
| 26 | + .orderByDesc(BpmOALeaveDO::getId)); | ||
| 27 | } | 27 | } |
| 28 | 28 | ||
| 29 | } | 29 | } |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/oa/BpmOALeaveService.java
| @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.service.oa; | @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.service.oa; | ||
| 2 | 2 | ||
| 3 | 3 | ||
| 4 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.*; | 4 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.*; |
| 5 | -import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.OALeaveDO; | 5 | +import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.BpmOALeaveDO; |
| 6 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 6 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 7 | 7 | ||
| 8 | import javax.validation.Valid; | 8 | import javax.validation.Valid; |
| @@ -33,19 +33,12 @@ public interface BpmOALeaveService { | @@ -33,19 +33,12 @@ public interface BpmOALeaveService { | ||
| 33 | void updateLeaveResult(Long id, Integer result); | 33 | void updateLeaveResult(Long id, Integer result); |
| 34 | 34 | ||
| 35 | /** | 35 | /** |
| 36 | - * 删除请假申请 | ||
| 37 | - * | ||
| 38 | - * @param id 编号 | ||
| 39 | - */ | ||
| 40 | - void cancelLeave(Long id); | ||
| 41 | - | ||
| 42 | - /** | ||
| 43 | * 获得请假申请 | 36 | * 获得请假申请 |
| 44 | * | 37 | * |
| 45 | * @param id 编号 | 38 | * @param id 编号 |
| 46 | * @return 请假申请 | 39 | * @return 请假申请 |
| 47 | */ | 40 | */ |
| 48 | - OALeaveDO getLeave(Long id); | 41 | + BpmOALeaveDO getLeave(Long id); |
| 49 | 42 | ||
| 50 | /** | 43 | /** |
| 51 | * 获得请假申请分页 | 44 | * 获得请假申请分页 |
| @@ -54,6 +47,6 @@ public interface BpmOALeaveService { | @@ -54,6 +47,6 @@ public interface BpmOALeaveService { | ||
| 54 | * @param pageReqVO 分页查询 | 47 | * @param pageReqVO 分页查询 |
| 55 | * @return 请假申请分页 | 48 | * @return 请假申请分页 |
| 56 | */ | 49 | */ |
| 57 | - PageResult<OALeaveDO> getLeavePage(Long userId, OALeavePageReqVO pageReqVO); | 50 | + PageResult<BpmOALeaveDO> getLeavePage(Long userId, BpmOALeavePageReqVO pageReqVO); |
| 58 | 51 | ||
| 59 | } | 52 | } |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/oa/impl/OALeaveServiceImpl.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/oa/impl/BpmOALeaveServiceImpl.java
| @@ -2,14 +2,13 @@ package cn.iocoder.yudao.adminserver.modules.bpm.service.oa.impl; | @@ -2,14 +2,13 @@ package cn.iocoder.yudao.adminserver.modules.bpm.service.oa.impl; | ||
| 2 | 2 | ||
| 3 | import cn.hutool.core.date.DateUtil; | 3 | import cn.hutool.core.date.DateUtil; |
| 4 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.*; | 4 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.oa.vo.*; |
| 5 | -import cn.iocoder.yudao.adminserver.modules.bpm.convert.oa.OALeaveConvert; | ||
| 6 | -import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.OALeaveDO; | 5 | +import cn.iocoder.yudao.adminserver.modules.bpm.convert.oa.BpmOALeaveConvert; |
| 6 | +import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave.BpmOALeaveDO; | ||
| 7 | import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.oa.BpmOALeaveMapper; | 7 | import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.oa.BpmOALeaveMapper; |
| 8 | import cn.iocoder.yudao.adminserver.modules.bpm.enums.task.BpmProcessInstanceResultEnum; | 8 | import cn.iocoder.yudao.adminserver.modules.bpm.enums.task.BpmProcessInstanceResultEnum; |
| 9 | import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.BpmOALeaveService; | 9 | import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.BpmOALeaveService; |
| 10 | import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService; | 10 | import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService; |
| 11 | import cn.iocoder.yudao.adminserver.modules.bpm.service.task.dto.BpmProcessInstanceCreateReqDTO; | 11 | import cn.iocoder.yudao.adminserver.modules.bpm.service.task.dto.BpmProcessInstanceCreateReqDTO; |
| 12 | -import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; | ||
| 13 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 12 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 14 | import org.springframework.stereotype.Service; | 13 | import org.springframework.stereotype.Service; |
| 15 | import org.springframework.transaction.annotation.Transactional; | 14 | import org.springframework.transaction.annotation.Transactional; |
| @@ -29,7 +28,7 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU | @@ -29,7 +28,7 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU | ||
| 29 | */ | 28 | */ |
| 30 | @Service | 29 | @Service |
| 31 | @Validated | 30 | @Validated |
| 32 | -public class OALeaveServiceImpl implements BpmOALeaveService { | 31 | +public class BpmOALeaveServiceImpl implements BpmOALeaveService { |
| 33 | 32 | ||
| 34 | /** | 33 | /** |
| 35 | * OA 请假对应的流程定义 KEY | 34 | * OA 请假对应的流程定义 KEY |
| @@ -47,7 +46,7 @@ public class OALeaveServiceImpl implements BpmOALeaveService { | @@ -47,7 +46,7 @@ public class OALeaveServiceImpl implements BpmOALeaveService { | ||
| 47 | public Long createLeave(Long userId, BpmOALeaveCreateReqVO createReqVO) { | 46 | public Long createLeave(Long userId, BpmOALeaveCreateReqVO createReqVO) { |
| 48 | // 插入 OA 请假单 | 47 | // 插入 OA 请假单 |
| 49 | long day = DateUtil.betweenDay(createReqVO.getStartTime(), createReqVO.getEndTime(), false); | 48 | long day = DateUtil.betweenDay(createReqVO.getStartTime(), createReqVO.getEndTime(), false); |
| 50 | - OALeaveDO leave = OALeaveConvert.INSTANCE.convert(createReqVO).setUserId(userId).setDay(day) | 49 | + BpmOALeaveDO leave = BpmOALeaveConvert.INSTANCE.convert(createReqVO).setUserId(userId).setDay(day) |
| 51 | .setResult(BpmProcessInstanceResultEnum.PROCESS.getResult()); | 50 | .setResult(BpmProcessInstanceResultEnum.PROCESS.getResult()); |
| 52 | leaveMapper.insert(leave); | 51 | leaveMapper.insert(leave); |
| 53 | 52 | ||
| @@ -59,22 +58,13 @@ public class OALeaveServiceImpl implements BpmOALeaveService { | @@ -59,22 +58,13 @@ public class OALeaveServiceImpl implements BpmOALeaveService { | ||
| 59 | .setVariables(processInstanceVariables).setBusinessKey(String.valueOf(leave.getId()))); | 58 | .setVariables(processInstanceVariables).setBusinessKey(String.valueOf(leave.getId()))); |
| 60 | 59 | ||
| 61 | // 将工作流的编号,更新到 OA 请假单中 | 60 | // 将工作流的编号,更新到 OA 请假单中 |
| 62 | - leaveMapper.updateById(new OALeaveDO().setId(leave.getId()).setProcessInstanceId(processInstanceId)); | 61 | + leaveMapper.updateById(new BpmOALeaveDO().setId(leave.getId()).setProcessInstanceId(processInstanceId)); |
| 63 | return leave.getId(); | 62 | return leave.getId(); |
| 64 | } | 63 | } |
| 65 | 64 | ||
| 66 | @Override | 65 | @Override |
| 67 | public void updateLeaveResult(Long id, Integer result) { | 66 | public void updateLeaveResult(Long id, Integer result) { |
| 68 | - leaveMapper.updateById(new OALeaveDO().setId(id).setResult(result)); | ||
| 69 | - } | ||
| 70 | - | ||
| 71 | - @Override | ||
| 72 | - public void cancelLeave(Long id) { | ||
| 73 | - // TODO 需要重新实现 | ||
| 74 | - // 校验存在 | ||
| 75 | - this.validateLeaveExists(id); | ||
| 76 | - // 删除 | ||
| 77 | - leaveMapper.deleteById(id); | 67 | + leaveMapper.updateById(new BpmOALeaveDO().setId(id).setResult(result)); |
| 78 | } | 68 | } |
| 79 | 69 | ||
| 80 | private void validateLeaveExists(Long id) { | 70 | private void validateLeaveExists(Long id) { |
| @@ -84,12 +74,12 @@ public class OALeaveServiceImpl implements BpmOALeaveService { | @@ -84,12 +74,12 @@ public class OALeaveServiceImpl implements BpmOALeaveService { | ||
| 84 | } | 74 | } |
| 85 | 75 | ||
| 86 | @Override | 76 | @Override |
| 87 | - public OALeaveDO getLeave(Long id) { | 77 | + public BpmOALeaveDO getLeave(Long id) { |
| 88 | return leaveMapper.selectById(id); | 78 | return leaveMapper.selectById(id); |
| 89 | } | 79 | } |
| 90 | 80 | ||
| 91 | @Override | 81 | @Override |
| 92 | - public PageResult<OALeaveDO> getLeavePage(Long userId, OALeavePageReqVO pageReqVO) { | 82 | + public PageResult<BpmOALeaveDO> getLeavePage(Long userId, BpmOALeavePageReqVO pageReqVO) { |
| 93 | return leaveMapper.selectPage(userId, pageReqVO); | 83 | return leaveMapper.selectPage(userId, pageReqVO); |
| 94 | } | 84 | } |
| 95 | 85 |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/oa/listener/BpmOALeaveResultListener.java
| @@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.service.oa.listener; | @@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.service.oa.listener; | ||
| 3 | import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.BpmProcessInstanceResultEvent; | 3 | import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.BpmProcessInstanceResultEvent; |
| 4 | import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.BpmProcessInstanceResultEventListener; | 4 | import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.BpmProcessInstanceResultEventListener; |
| 5 | import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.BpmOALeaveService; | 5 | import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.BpmOALeaveService; |
| 6 | -import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.impl.OALeaveServiceImpl; | 6 | +import cn.iocoder.yudao.adminserver.modules.bpm.service.oa.impl.BpmOALeaveServiceImpl; |
| 7 | import org.springframework.stereotype.Component; | 7 | import org.springframework.stereotype.Component; |
| 8 | 8 | ||
| 9 | import javax.annotation.Resource; | 9 | import javax.annotation.Resource; |
| @@ -21,7 +21,7 @@ public class BpmOALeaveResultListener extends BpmProcessInstanceResultEventListe | @@ -21,7 +21,7 @@ public class BpmOALeaveResultListener extends BpmProcessInstanceResultEventListe | ||
| 21 | 21 | ||
| 22 | @Override | 22 | @Override |
| 23 | protected String getProcessDefinitionKey() { | 23 | protected String getProcessDefinitionKey() { |
| 24 | - return OALeaveServiceImpl.PROCESS_KEY; | 24 | + return BpmOALeaveServiceImpl.PROCESS_KEY; |
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | @Override | 27 | @Override |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/impl/BpmProcessInstanceServiceImpl.java
| @@ -255,7 +255,8 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService | @@ -255,7 +255,8 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService | ||
| 255 | } | 255 | } |
| 256 | 256 | ||
| 257 | // 需要主动查询,因为 instance 只有 id 属性 | 257 | // 需要主动查询,因为 instance 只有 id 属性 |
| 258 | - ProcessInstance processInstance = getProcessInstance(instance.getId()); | 258 | + // 另外,此时如果去查询 ProcessInstance 的话,字段是不全的,所以去查询了 HistoricProcessInstance |
| 259 | + HistoricProcessInstance processInstance = getHistoricProcessInstance(instance.getId()); | ||
| 259 | // 更新拓展表 | 260 | // 更新拓展表 |
| 260 | BpmProcessInstanceExtDO instanceExtDO = BpmProcessInstanceConvert.INSTANCE.convert(instance) | 261 | BpmProcessInstanceExtDO instanceExtDO = BpmProcessInstanceConvert.INSTANCE.convert(instance) |
| 261 | .setEndTime(new Date()) // 由于 ProcessInstance 里没有办法拿到 endTime,所以这里设置 | 262 | .setEndTime(new Date()) // 由于 ProcessInstance 里没有办法拿到 endTime,所以这里设置 |
yudao-admin-ui/src/api/oa/leave.js renamed to yudao-admin-ui/src/api/bpm/leave.js
| @@ -9,14 +9,6 @@ export function createLeave(data) { | @@ -9,14 +9,6 @@ export function createLeave(data) { | ||
| 9 | }) | 9 | }) |
| 10 | } | 10 | } |
| 11 | 11 | ||
| 12 | -// 删除请假申请 | ||
| 13 | -export function deleteLeave(id) { | ||
| 14 | - return request({ | ||
| 15 | - url: '/oa/leave/delete?id=' + id, | ||
| 16 | - method: 'delete' | ||
| 17 | - }) | ||
| 18 | -} | ||
| 19 | - | ||
| 20 | // 获得请假申请 | 12 | // 获得请假申请 |
| 21 | export function getLeave(id) { | 13 | export function getLeave(id) { |
| 22 | return request({ | 14 | return request({ |
yudao-admin-ui/src/api/oa/flow.js deleted
yudao-admin-ui/src/api/oa/todo.js deleted
| 1 | -import request from '@/utils/request' | ||
| 2 | - | ||
| 3 | -// 创建请假申请 | ||
| 4 | -export function createLeave(data) { | ||
| 5 | - return request({ | ||
| 6 | - url: '/oa/leave/create', | ||
| 7 | - method: 'post', | ||
| 8 | - data: data | ||
| 9 | - }) | ||
| 10 | -} | ||
| 11 | - | ||
| 12 | -// 更新请假申请 | ||
| 13 | -export function updateLeave(data) { | ||
| 14 | - return request({ | ||
| 15 | - url: '/oa/leave/update', | ||
| 16 | - method: 'put', | ||
| 17 | - data: data | ||
| 18 | - }) | ||
| 19 | -} | ||
| 20 | - | ||
| 21 | -// 删除请假申请 | ||
| 22 | -export function deleteLeave(id) { | ||
| 23 | - return request({ | ||
| 24 | - url: '/oa/leave/delete?id=' + id, | ||
| 25 | - method: 'delete' | ||
| 26 | - }) | ||
| 27 | -} | ||
| 28 | - | ||
| 29 | -// 获得请假申请 | ||
| 30 | -export function getLeave(id) { | ||
| 31 | - return request({ | ||
| 32 | - url: '/oa/leave/get?id=' + id, | ||
| 33 | - method: 'get' | ||
| 34 | - }) | ||
| 35 | -} | ||
| 36 | - | ||
| 37 | -// 获得待办任务分页 | ||
| 38 | -export function getTodoTaskPage(query) { | ||
| 39 | - return request({ | ||
| 40 | - url: '/workflow/task/todo/page', | ||
| 41 | - method: 'get', | ||
| 42 | - params: query | ||
| 43 | - }) | ||
| 44 | -} | ||
| 45 | - | ||
| 46 | -// 签收任务 | ||
| 47 | -export function claimTask(id) { | ||
| 48 | - return request({ | ||
| 49 | - url: '/workflow/task/claim?id=' + id, | ||
| 50 | - method: 'get' | ||
| 51 | - }) | ||
| 52 | -} | ||
| 53 | - | ||
| 54 | -export function completeTask(data) { | ||
| 55 | - return request({ | ||
| 56 | - url: '/workflow/task/complete', | ||
| 57 | - method: 'post', | ||
| 58 | - data: data | ||
| 59 | - }) | ||
| 60 | -} | ||
| 61 | - | ||
| 62 | -export function taskSteps(data) { | ||
| 63 | - return request({ | ||
| 64 | - url: '/workflow/task/task-steps', | ||
| 65 | - method: 'post', | ||
| 66 | - data: data | ||
| 67 | - }) | ||
| 68 | -} | ||
| 69 | - | ||
| 70 | -export function getTaskFormKey(data) { | ||
| 71 | - return request({ | ||
| 72 | - url: '/workflow/task/formKey', | ||
| 73 | - method: 'post', | ||
| 74 | - data: data | ||
| 75 | - }) | ||
| 76 | -} | ||
| 77 | - | ||
| 78 | -export function processHistorySteps(id) { | ||
| 79 | - return request({ | ||
| 80 | - url: '/workflow/task/process/history-steps?id='+id, | ||
| 81 | - method: 'get' | ||
| 82 | - }) | ||
| 83 | -} | ||
| 84 | - | ||
| 85 | - | ||
| 86 | -export function getHighlightImg(id) { | ||
| 87 | - return request({ | ||
| 88 | - url: '/workflow/task/process/highlight-img?processInstanceId='+id, | ||
| 89 | - method: 'get' | ||
| 90 | - }) | ||
| 91 | -} |
yudao-admin-ui/src/views/bpm/oa/leave/create.vue
| @@ -26,8 +26,9 @@ | @@ -26,8 +26,9 @@ | ||
| 26 | </template> | 26 | </template> |
| 27 | 27 | ||
| 28 | <script> | 28 | <script> |
| 29 | -import { createLeave} from "@/api/oa/leave" | 29 | +import { createLeave} from "@/api/bpm/leave" |
| 30 | import { getDictDatas, DICT_TYPE } from '@/utils/dict' | 30 | import { getDictDatas, DICT_TYPE } from '@/utils/dict' |
| 31 | + | ||
| 31 | export default { | 32 | export default { |
| 32 | name: "LeaveCreate", | 33 | name: "LeaveCreate", |
| 33 | components: { | 34 | components: { |
yudao-admin-ui/src/views/bpm/oa/leave/detail.vue
| @@ -11,7 +11,7 @@ | @@ -11,7 +11,7 @@ | ||
| 11 | </template> | 11 | </template> |
| 12 | 12 | ||
| 13 | <script> | 13 | <script> |
| 14 | -import { getLeave} from "@/api/oa/leave" | 14 | +import { getLeave} from "@/api/bpm/leave" |
| 15 | import {getDictDatas, DICT_TYPE, getDictDataLabel} from '@/utils/dict' | 15 | import {getDictDatas, DICT_TYPE, getDictDataLabel} from '@/utils/dict' |
| 16 | export default { | 16 | export default { |
| 17 | name: "LeaveDetail", | 17 | name: "LeaveDetail", |
yudao-admin-ui/src/views/bpm/oa/leave/index.vue
| @@ -56,8 +56,10 @@ | @@ -56,8 +56,10 @@ | ||
| 56 | <span>{{ parseTime(scope.row.createTime) }}</span> | 56 | <span>{{ parseTime(scope.row.createTime) }}</span> |
| 57 | </template> | 57 | </template> |
| 58 | </el-table-column> | 58 | </el-table-column> |
| 59 | - <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | 59 | + <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200"> |
| 60 | <template slot-scope="scope"> | 60 | <template slot-scope="scope"> |
| 61 | + <el-button size="mini" type="text" icon="el-icon-delete" @click="handleCancel(scope.row)" | ||
| 62 | + v-if="scope.row.result === 1">取消请假</el-button> | ||
| 61 | <el-button size="mini" type="text" icon="el-icon-view" @click="handleDetail(scope.row)">详情</el-button> | 63 | <el-button size="mini" type="text" icon="el-icon-view" @click="handleDetail(scope.row)">详情</el-button> |
| 62 | <el-button size="mini" type="text" icon="el-icon-edit" @click="handleProcessDetail(scope.row)">审批进度</el-button> | 64 | <el-button size="mini" type="text" icon="el-icon-edit" @click="handleProcessDetail(scope.row)">审批进度</el-button> |
| 63 | </template> | 65 | </template> |
| @@ -71,8 +73,9 @@ | @@ -71,8 +73,9 @@ | ||
| 71 | </template> | 73 | </template> |
| 72 | 74 | ||
| 73 | <script> | 75 | <script> |
| 74 | -import { createLeave, getLeaveApplyMembers, getLeave, getLeavePage} from "@/api/oa/leave" | 76 | +import { getLeavePage } from "@/api/bpm/leave" |
| 75 | import { getDictDataLabel, getDictDatas, DICT_TYPE } from '@/utils/dict' | 77 | import { getDictDataLabel, getDictDatas, DICT_TYPE } from '@/utils/dict' |
| 78 | +import {cancelProcessInstance} from "@/api/bpm/processInstance"; | ||
| 76 | 79 | ||
| 77 | export default { | 80 | export default { |
| 78 | name: "Leave", | 81 | name: "Leave", |
| @@ -88,20 +91,14 @@ export default { | @@ -88,20 +91,14 @@ export default { | ||
| 88 | total: 0, | 91 | total: 0, |
| 89 | // 请假申请列表 | 92 | // 请假申请列表 |
| 90 | list: [], | 93 | list: [], |
| 91 | - // 弹出层标题 | ||
| 92 | - title: "", | ||
| 93 | - // 是否显示弹出层 | ||
| 94 | - open: false, | ||
| 95 | //审批进度弹出层 | 94 | //审批进度弹出层 |
| 96 | dateRangeCreateTime: [], | 95 | dateRangeCreateTime: [], |
| 97 | // 查询参数 | 96 | // 查询参数 |
| 98 | queryParams: { | 97 | queryParams: { |
| 99 | pageNo: 1, | 98 | pageNo: 1, |
| 100 | pageSize: 10, | 99 | pageSize: 10, |
| 101 | - processInstanceId: null, | ||
| 102 | - status: null, | ||
| 103 | - userId: null, | ||
| 104 | - leaveType: null, | 100 | + result: null, |
| 101 | + type: null, | ||
| 105 | reason: null, | 102 | reason: null, |
| 106 | }, | 103 | }, |
| 107 | 104 | ||
| @@ -149,6 +146,22 @@ export default { | @@ -149,6 +146,22 @@ export default { | ||
| 149 | handleProcessDetail(row) { | 146 | handleProcessDetail(row) { |
| 150 | this.$router.push({ path: "/bpm/process-instance/detail", query: { id: row.processInstanceId}}); | 147 | this.$router.push({ path: "/bpm/process-instance/detail", query: { id: row.processInstanceId}}); |
| 151 | }, | 148 | }, |
| 149 | + /** 取消请假 */ | ||
| 150 | + handleCancel(row) { | ||
| 151 | + const id = row.processInstanceId; | ||
| 152 | + this.$prompt('请输入取消原因?', "取消流程", { | ||
| 153 | + type: 'warning', | ||
| 154 | + confirmButtonText: "确定", | ||
| 155 | + cancelButtonText: "取消", | ||
| 156 | + inputPattern: /^[\s\S]*.*[^\s][\s\S]*$/, // 判断非空,且非空格 | ||
| 157 | + inputErrorMessage: "取消原因不能为空", | ||
| 158 | + }).then(({ value }) => { | ||
| 159 | + return cancelProcessInstance(id, value); | ||
| 160 | + }).then(() => { | ||
| 161 | + this.getList(); | ||
| 162 | + this.msgSuccess("取消成功"); | ||
| 163 | + }) | ||
| 164 | + }, | ||
| 152 | resultFormat(row, column) { | 165 | resultFormat(row, column) { |
| 153 | return getDictDataLabel(DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT, row.result) | 166 | return getDictDataLabel(DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT, row.result) |
| 154 | }, | 167 | }, |
yudao-admin-ui/src/views/bpm/processInstance/index.vue
| @@ -192,7 +192,7 @@ export default { | @@ -192,7 +192,7 @@ export default { | ||
| 192 | /** 取消按钮操作 */ | 192 | /** 取消按钮操作 */ |
| 193 | handleCancel(row) { | 193 | handleCancel(row) { |
| 194 | const id = row.id; | 194 | const id = row.id; |
| 195 | - this.$prompt('请输出取消原因?', "取消流程", { | 195 | + this.$prompt('请输入取消原因?', "取消流程", { |
| 196 | type: 'warning', | 196 | type: 'warning', |
| 197 | confirmButtonText: "确定", | 197 | confirmButtonText: "确定", |
| 198 | cancelButtonText: "取消", | 198 | cancelButtonText: "取消", |