diff --git a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/jbgl/JbglController.java b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/jbgl/JbglController.java index 397f4c5..85ea80f 100644 --- a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/jbgl/JbglController.java +++ b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/controller/admin/jbgl/JbglController.java @@ -93,5 +93,18 @@ public class JbglController { ExcelUtils.write(response, "加班管理.xls", "数据", JbglRespVO.class, BeanUtils.toBean(list, JbglRespVO.class)); } + @PostMapping("/saveDraft") + @Operation(summary = "创建请假为草稿") + @PreAuthorize("@ss.hasPermission('home:jbgl:create')") + public CommonResult saveDraft(@Valid @RequestBody JbglSaveReqVO createReqVO) { + return success(jbglService.saveDraft(getLoginUserId(),createReqVO)); + } + @GetMapping("/draft") + @Operation(summary = "获得请假草稿分页") + @PreAuthorize("@ss.hasPermission('home:jbgl:query')") + public CommonResult> getDraft(@Valid JbglPageReqVO pageReqVO) { + PageResult pageResult = jbglService.getDraft(pageReqVO); + return success(BeanUtils.toBean(pageResult, JbglRespVO.class)); + } } diff --git a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/dal/mysql/jbgl/JbglMapper.java b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/dal/mysql/jbgl/JbglMapper.java index ac7e739..7f7c5c3 100644 --- a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/dal/mysql/jbgl/JbglMapper.java +++ b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/dal/mysql/jbgl/JbglMapper.java @@ -34,6 +34,28 @@ public interface JbglMapper extends BaseMapperX { .eqIfPresent(JbglDO::getStatus, reqVO.getStatus()) .eqIfPresent(JbglDO::getProcessInstanceId, reqVO.getProcessInstanceId()) .betweenIfPresent(JbglDO::getCreateTime, reqVO.getCreateTime()) + .ne(JbglDO::getStatus, 100) // 排除 status = 100 + .orderByDesc(JbglDO::getId)); + } + + default PageResult selectPageDraft(JbglPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(JbglDO::getId, reqVO.getId()) + .eqIfPresent(JbglDO::getTitle, reqVO.getTitle()) + .likeIfPresent(JbglDO::getUserName, reqVO.getUserName()) + .eqIfPresent(JbglDO::getUserId, reqVO.getUserId()) + .likeIfPresent(JbglDO::getDeptName, reqVO.getDeptName()) + .eqIfPresent(JbglDO::getDeptId, reqVO.getDeptId()) + .betweenIfPresent(JbglDO::getUsageDate, reqVO.getUsageDate()) + .eqIfPresent(JbglDO::getType, reqVO.getType()) + .betweenIfPresent(JbglDO::getStartDate, reqVO.getStartDate()) + .betweenIfPresent(JbglDO::getEndDate, reqVO.getEndDate()) + .eqIfPresent(JbglDO::getDuration, reqVO.getDuration()) + .eqIfPresent(JbglDO::getReason, reqVO.getReason()) + .eqIfPresent(JbglDO::getStatus, reqVO.getStatus()) + .eqIfPresent(JbglDO::getProcessInstanceId, reqVO.getProcessInstanceId()) + .betweenIfPresent(JbglDO::getCreateTime, reqVO.getCreateTime()) + .eq(JbglDO::getStatus, 100) // 强制过滤 status = 100 .orderByDesc(JbglDO::getId)); } default PageResult selectPage(Long userId,JbglPageReqVO reqVO) { diff --git a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/service/jbgl/JbglService.java b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/service/jbgl/JbglService.java index 39066ac..dc76feb 100644 --- a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/service/jbgl/JbglService.java +++ b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/service/jbgl/JbglService.java @@ -61,5 +61,13 @@ public interface JbglService { */ void updateJbglStatus(Long id, Integer status); + /** + * 草稿 + * @param userId + * @param createReqVO + * @return + */ + Long saveDraft(Long userId, JbglSaveReqVO createReqVO); + PageResult getDraft(JbglPageReqVO pageReqVO); } diff --git a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/service/jbgl/JbglServiceImpl.java b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/service/jbgl/JbglServiceImpl.java index cbe96c7..f4d8333 100644 --- a/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/service/jbgl/JbglServiceImpl.java +++ b/yudao-module-home/yudao-module-home-biz/src/main/java/cn/iocoder/yudao/module/home/service/jbgl/JbglServiceImpl.java @@ -56,7 +56,12 @@ public class JbglServiceImpl implements JbglService { // 插入 JbglDO jbgl = BeanUtils.toBean(createReqVO, JbglDO.class) .setUserId(userId).setStatus(BpmTaskStatusEnum.RUNNING.getStatus()); - jbglMapper.insert(jbgl); + if (createReqVO.getCurfullpath().contains("?") ) { + jbglMapper.updateById(jbgl); + createReqVO.setCurfullpath( createReqVO.getCurfullpath().replaceAll("\\?id=\\d+", "")); + } else { + jbglMapper.insert(jbgl); + } // 发起 BPM 流程 Map processInstanceVariables = new HashMap<>(); @@ -124,5 +129,15 @@ public class JbglServiceImpl implements JbglService { throw exception(KNOWLEDGE_NOT_EXISTS); } } + @Override + public Long saveDraft(Long userId, JbglSaveReqVO createReqVO) { + JbglDO jbgl = BeanUtils.toBean(createReqVO, JbglDO.class).setUserId(userId).setStatus(100); + jbglMapper.insert(jbgl); + return jbgl.getId(); + } + @Override + public PageResult getDraft(JbglPageReqVO pageReqVO) { + return jbglMapper.selectPageDraft(pageReqVO); + } } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/flowindexDraft.vue.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/flowindexDraft.vue.vm new file mode 100644 index 0000000..037d8c5 --- /dev/null +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/flowindexDraft.vue.vm @@ -0,0 +1,407 @@ + + + \ No newline at end of file