feat(hrm): 修改请假、报销、用印、出差申请的新增接口返回值类型
- 将 Controller 中的新增方法返回类型从 R<Void> 修改为 R<HrmLeaveReqVo> 等对应的 VO 类型 - 修改 Service 层 insertByBo 方法返回类型从 Boolean 为对应的 VO 对象,并在其中包含流程实例 ID - 在各个 VO 类中添加 instId 字段用于存储流程实例 ID - 完善流程实例启动后将实例 ID 设置到返回对象中的逻辑 - 统一各业务类型的新增接口返回值处理方式,提供更完整的数据回传功能
This commit is contained in:
@@ -6,6 +6,7 @@ import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.hrm.domain.HrmLeaveReq;
|
||||
import com.ruoyi.hrm.domain.bo.HrmLeaveReqBo;
|
||||
import com.ruoyi.hrm.domain.vo.HrmLeaveReqVo;
|
||||
import com.ruoyi.hrm.service.IHrmLeaveReqService;
|
||||
@@ -38,8 +39,8 @@ public class HrmLeaveReqController extends BaseController {
|
||||
|
||||
@Log(title = "请假单", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public R<Void> add(@Validated @RequestBody HrmLeaveReqBo bo) {
|
||||
return toAjax(service.insertByBo(bo));
|
||||
public R<HrmLeaveReqVo> add(@Validated @RequestBody HrmLeaveReqBo bo) {
|
||||
return R.ok(service.insertByBo(bo));
|
||||
}
|
||||
|
||||
@Log(title = "请假单", businessType = BusinessType.UPDATE)
|
||||
|
||||
@@ -41,8 +41,8 @@ public class HrmReimburseReqController extends BaseController {
|
||||
|
||||
@Log(title = "日常报销单", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public R<Void> add(@Validated @RequestBody HrmReimburseReqBo bo) {
|
||||
return toAjax(service.insertByBo(bo));
|
||||
public R<HrmReimburseReqVo> add(@Validated @RequestBody HrmReimburseReqBo bo) {
|
||||
return R.ok(service.insertByBo(bo));
|
||||
}
|
||||
|
||||
@Log(title = "日常报销单", businessType = BusinessType.UPDATE)
|
||||
|
||||
@@ -42,8 +42,8 @@ public class HrmSealReqController extends BaseController {
|
||||
|
||||
@Log(title = "用印申请", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public R<Void> add(@Validated @RequestBody HrmSealReqBo bo) {
|
||||
return toAjax(service.insertByBo(bo));
|
||||
public R<HrmSealReqVo> add(@Validated @RequestBody HrmSealReqBo bo) {
|
||||
return R.ok(service.insertByBo(bo));
|
||||
}
|
||||
|
||||
@Log(title = "用印申请", businessType = BusinessType.UPDATE)
|
||||
|
||||
@@ -41,8 +41,8 @@ public class HrmTravelReqController extends BaseController {
|
||||
|
||||
@Log(title = "出差单", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public R<Void> add(@Validated @RequestBody HrmTravelReqBo bo) {
|
||||
return toAjax(service.insertByBo(bo));
|
||||
public R<HrmTravelReqVo> add(@Validated @RequestBody HrmTravelReqBo bo) {
|
||||
return R.ok(service.insertByBo(bo));
|
||||
}
|
||||
|
||||
@Log(title = "出差单", businessType = BusinessType.UPDATE)
|
||||
|
||||
@@ -71,4 +71,6 @@ public class HrmLeaveReqVo implements Serializable {
|
||||
private Date createTime;
|
||||
private String updateBy;
|
||||
private Date updateTime;
|
||||
|
||||
private Long instId;
|
||||
}
|
||||
|
||||
@@ -93,5 +93,7 @@ public class HrmReimburseReqVo implements Serializable {
|
||||
private Date createTime;
|
||||
private String updateBy;
|
||||
private Date updateTime;
|
||||
|
||||
private Long instId;
|
||||
}
|
||||
|
||||
|
||||
@@ -98,4 +98,7 @@ public class HrmSealReqVo implements Serializable {
|
||||
private Date createTime;
|
||||
private String updateBy;
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
private Long instId;
|
||||
}
|
||||
|
||||
@@ -78,4 +78,6 @@ public class HrmTravelReqVo implements Serializable {
|
||||
private Date createTime;
|
||||
private String updateBy;
|
||||
private Date updateTime;
|
||||
|
||||
private Long instId;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.ruoyi.hrm.service;
|
||||
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.hrm.domain.HrmLeaveReq;
|
||||
import com.ruoyi.hrm.domain.bo.HrmLeaveReqBo;
|
||||
import com.ruoyi.hrm.domain.vo.HrmLeaveReqVo;
|
||||
|
||||
@@ -18,7 +19,7 @@ public interface IHrmLeaveReqService {
|
||||
|
||||
List<HrmLeaveReqVo> queryListWithProject(HrmLeaveReqBo bo);
|
||||
|
||||
Boolean insertByBo(HrmLeaveReqBo bo);
|
||||
HrmLeaveReqVo insertByBo(HrmLeaveReqBo bo);
|
||||
|
||||
Boolean updateByBo(HrmLeaveReqBo bo);
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ public interface IHrmReimburseReqService {
|
||||
|
||||
List<HrmReimburseReqVo> queryListWithProject(HrmReimburseReqBo bo);
|
||||
|
||||
Boolean insertByBo(HrmReimburseReqBo bo);
|
||||
HrmReimburseReqVo insertByBo(HrmReimburseReqBo bo);
|
||||
|
||||
Boolean updateByBo(HrmReimburseReqBo bo);
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ public interface IHrmSealReqService {
|
||||
|
||||
List<HrmSealReqVo> queryListWithProject(HrmSealReqBo bo);
|
||||
|
||||
Boolean insertByBo(HrmSealReqBo bo);
|
||||
HrmSealReqVo insertByBo(HrmSealReqBo bo);
|
||||
|
||||
Boolean updateByBo(HrmSealReqBo bo);
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ public interface IHrmTravelReqService {
|
||||
|
||||
List<HrmTravelReqVo> queryListWithProject(HrmTravelReqBo bo);
|
||||
|
||||
Boolean insertByBo(HrmTravelReqBo bo);
|
||||
HrmTravelReqVo insertByBo(HrmTravelReqBo bo);
|
||||
|
||||
Boolean updateByBo(HrmTravelReqBo bo);
|
||||
|
||||
|
||||
@@ -56,11 +56,12 @@ public class HrmLeaveReqServiceImpl implements IHrmLeaveReqService {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(HrmLeaveReqBo bo) {
|
||||
public HrmLeaveReqVo insertByBo(HrmLeaveReqBo bo) {
|
||||
HrmLeaveReq add = BeanUtil.toBean(bo, HrmLeaveReq.class);
|
||||
add.setStatus(defaultStatus(add.getStatus()));
|
||||
boolean ok = baseMapper.insert(add) > 0;
|
||||
|
||||
HrmLeaveReqVo bean = BeanUtil.toBean(add, HrmLeaveReqVo.class);
|
||||
// 当提交为 pending 时,自动启动流程实例(hrm_flow_instance/hrm_flow_task)
|
||||
if (ok && "pending".equalsIgnoreCase(add.getStatus())) {
|
||||
|
||||
@@ -97,10 +98,11 @@ public class HrmLeaveReqServiceImpl implements IHrmLeaveReqService {
|
||||
start.setBizId(add.getBizId());
|
||||
start.setStartUserId(startUserId);
|
||||
|
||||
flowInstanceService.startInstance(start);
|
||||
Long instId = flowInstanceService.startInstance(start);
|
||||
bean.setInstId(instId);
|
||||
}
|
||||
|
||||
return ok;
|
||||
return bean;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -55,11 +55,12 @@ public class HrmReimburseReqServiceImpl implements IHrmReimburseReqService {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(HrmReimburseReqBo bo) {
|
||||
public HrmReimburseReqVo insertByBo(HrmReimburseReqBo bo) {
|
||||
HrmReimburseReq add = BeanUtil.toBean(bo, HrmReimburseReq.class);
|
||||
add.setStatus(defaultStatus(add.getStatus()));
|
||||
boolean ok = baseMapper.insert(add) > 0;
|
||||
|
||||
HrmReimburseReqVo bean = BeanUtil.toBean(add, HrmReimburseReqVo.class);
|
||||
if (ok && "pending".equalsIgnoreCase(add.getStatus())) {
|
||||
// 选择启用的最高版本模板(允许无模板:走自选审批人一次性审批)
|
||||
HrmFlowTemplate tpl = flowTemplateMapper.selectOne(Wrappers.<HrmFlowTemplate>lambdaQuery()
|
||||
@@ -77,10 +78,11 @@ public class HrmReimburseReqServiceImpl implements IHrmReimburseReqService {
|
||||
start.setBizType("reimburse");
|
||||
start.setBizId(add.getBizId());
|
||||
start.setStartUserId(startUserId);
|
||||
flowInstanceService.startInstance(start);
|
||||
Long instId = flowInstanceService.startInstance(start);
|
||||
bean.setInstId(instId);
|
||||
}
|
||||
|
||||
return ok;
|
||||
return bean;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.apache.pdfbox.pdmodel.PDPage;
|
||||
import org.apache.pdfbox.pdmodel.PDPageContentStream;
|
||||
import org.apache.pdfbox.pdmodel.common.PDRectangle;
|
||||
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -72,7 +73,7 @@ public class HrmSealReqServiceImpl implements IHrmSealReqService {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(HrmSealReqBo bo) {
|
||||
public HrmSealReqVo insertByBo(HrmSealReqBo bo) {
|
||||
HrmSealReq add = BeanUtil.toBean(bo, HrmSealReq.class);
|
||||
add.setStatus(defaultStatus(add.getStatus()));
|
||||
validEntityBeforeSave(add);
|
||||
@@ -82,6 +83,7 @@ public class HrmSealReqServiceImpl implements IHrmSealReqService {
|
||||
Long tplId = bo.getTplId() != null ? bo.getTplId() : bo.getFlowTplId();
|
||||
boolean shouldStartFlow = tplId != null || bo.getManualAssigneeUserId() != null;
|
||||
|
||||
HrmSealReqVo bean = BeanUtil.toBean(add, HrmSealReqVo.class);
|
||||
if (ok && shouldStartFlow) {
|
||||
HrmFlowStartBo start = new HrmFlowStartBo();
|
||||
start.setTplId(tplId);
|
||||
@@ -91,11 +93,12 @@ public class HrmSealReqServiceImpl implements IHrmSealReqService {
|
||||
start.setStartUserId(LoginHelper.getUserId());
|
||||
start.setContentJson(bo.getContentJson());
|
||||
|
||||
flowInstanceService.startInstance(start);
|
||||
Long instId = flowInstanceService.startInstance(start);
|
||||
// 更新状态为流转中
|
||||
updateStatus(add.getBizId(), "running");
|
||||
bean.setInstId(instId);
|
||||
}
|
||||
return ok;
|
||||
return bean;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -55,11 +55,12 @@ public class HrmTravelReqServiceImpl implements IHrmTravelReqService {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(HrmTravelReqBo bo) {
|
||||
public HrmTravelReqVo insertByBo(HrmTravelReqBo bo) {
|
||||
HrmTravelReq add = BeanUtil.toBean(bo, HrmTravelReq.class);
|
||||
add.setStatus(defaultStatus(add.getStatus()));
|
||||
boolean ok = baseMapper.insert(add) > 0;
|
||||
|
||||
HrmTravelReqVo bean = BeanUtil.toBean(add, HrmTravelReqVo.class);
|
||||
// 业务表状态规范:pending/approved/rejected
|
||||
// 当提交为 pending 时,自动启动流程实例(hrm_flow_instance/hrm_flow_task)
|
||||
if (ok && "pending".equalsIgnoreCase(add.getStatus())) {
|
||||
@@ -81,10 +82,11 @@ public class HrmTravelReqServiceImpl implements IHrmTravelReqService {
|
||||
start.setBizId(add.getBizId());
|
||||
start.setStartUserId(startUserId);
|
||||
// 暂不保存 contentJson
|
||||
flowInstanceService.startInstance(start);
|
||||
Long instId = flowInstanceService.startInstance(start);
|
||||
bean.setInstId(instId);
|
||||
}
|
||||
|
||||
return ok;
|
||||
return bean;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user