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.domain.R;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
|
import com.ruoyi.hrm.domain.HrmLeaveReq;
|
||||||
import com.ruoyi.hrm.domain.bo.HrmLeaveReqBo;
|
import com.ruoyi.hrm.domain.bo.HrmLeaveReqBo;
|
||||||
import com.ruoyi.hrm.domain.vo.HrmLeaveReqVo;
|
import com.ruoyi.hrm.domain.vo.HrmLeaveReqVo;
|
||||||
import com.ruoyi.hrm.service.IHrmLeaveReqService;
|
import com.ruoyi.hrm.service.IHrmLeaveReqService;
|
||||||
@@ -38,8 +39,8 @@ public class HrmLeaveReqController extends BaseController {
|
|||||||
|
|
||||||
@Log(title = "请假单", businessType = BusinessType.INSERT)
|
@Log(title = "请假单", businessType = BusinessType.INSERT)
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public R<Void> add(@Validated @RequestBody HrmLeaveReqBo bo) {
|
public R<HrmLeaveReqVo> add(@Validated @RequestBody HrmLeaveReqBo bo) {
|
||||||
return toAjax(service.insertByBo(bo));
|
return R.ok(service.insertByBo(bo));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Log(title = "请假单", businessType = BusinessType.UPDATE)
|
@Log(title = "请假单", businessType = BusinessType.UPDATE)
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ public class HrmReimburseReqController extends BaseController {
|
|||||||
|
|
||||||
@Log(title = "日常报销单", businessType = BusinessType.INSERT)
|
@Log(title = "日常报销单", businessType = BusinessType.INSERT)
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public R<Void> add(@Validated @RequestBody HrmReimburseReqBo bo) {
|
public R<HrmReimburseReqVo> add(@Validated @RequestBody HrmReimburseReqBo bo) {
|
||||||
return toAjax(service.insertByBo(bo));
|
return R.ok(service.insertByBo(bo));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Log(title = "日常报销单", businessType = BusinessType.UPDATE)
|
@Log(title = "日常报销单", businessType = BusinessType.UPDATE)
|
||||||
|
|||||||
@@ -42,8 +42,8 @@ public class HrmSealReqController extends BaseController {
|
|||||||
|
|
||||||
@Log(title = "用印申请", businessType = BusinessType.INSERT)
|
@Log(title = "用印申请", businessType = BusinessType.INSERT)
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public R<Void> add(@Validated @RequestBody HrmSealReqBo bo) {
|
public R<HrmSealReqVo> add(@Validated @RequestBody HrmSealReqBo bo) {
|
||||||
return toAjax(service.insertByBo(bo));
|
return R.ok(service.insertByBo(bo));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Log(title = "用印申请", businessType = BusinessType.UPDATE)
|
@Log(title = "用印申请", businessType = BusinessType.UPDATE)
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ public class HrmTravelReqController extends BaseController {
|
|||||||
|
|
||||||
@Log(title = "出差单", businessType = BusinessType.INSERT)
|
@Log(title = "出差单", businessType = BusinessType.INSERT)
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public R<Void> add(@Validated @RequestBody HrmTravelReqBo bo) {
|
public R<HrmTravelReqVo> add(@Validated @RequestBody HrmTravelReqBo bo) {
|
||||||
return toAjax(service.insertByBo(bo));
|
return R.ok(service.insertByBo(bo));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Log(title = "出差单", businessType = BusinessType.UPDATE)
|
@Log(title = "出差单", businessType = BusinessType.UPDATE)
|
||||||
|
|||||||
@@ -71,4 +71,6 @@ public class HrmLeaveReqVo implements Serializable {
|
|||||||
private Date createTime;
|
private Date createTime;
|
||||||
private String updateBy;
|
private String updateBy;
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
|
|
||||||
|
private Long instId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,5 +93,7 @@ public class HrmReimburseReqVo implements Serializable {
|
|||||||
private Date createTime;
|
private Date createTime;
|
||||||
private String updateBy;
|
private String updateBy;
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
|
|
||||||
|
private Long instId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -98,4 +98,7 @@ public class HrmSealReqVo implements Serializable {
|
|||||||
private Date createTime;
|
private Date createTime;
|
||||||
private String updateBy;
|
private String updateBy;
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
private Long instId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,4 +78,6 @@ public class HrmTravelReqVo implements Serializable {
|
|||||||
private Date createTime;
|
private Date createTime;
|
||||||
private String updateBy;
|
private String updateBy;
|
||||||
private Date updateTime;
|
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.domain.PageQuery;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
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.bo.HrmLeaveReqBo;
|
||||||
import com.ruoyi.hrm.domain.vo.HrmLeaveReqVo;
|
import com.ruoyi.hrm.domain.vo.HrmLeaveReqVo;
|
||||||
|
|
||||||
@@ -18,7 +19,7 @@ public interface IHrmLeaveReqService {
|
|||||||
|
|
||||||
List<HrmLeaveReqVo> queryListWithProject(HrmLeaveReqBo bo);
|
List<HrmLeaveReqVo> queryListWithProject(HrmLeaveReqBo bo);
|
||||||
|
|
||||||
Boolean insertByBo(HrmLeaveReqBo bo);
|
HrmLeaveReqVo insertByBo(HrmLeaveReqBo bo);
|
||||||
|
|
||||||
Boolean updateByBo(HrmLeaveReqBo bo);
|
Boolean updateByBo(HrmLeaveReqBo bo);
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ public interface IHrmReimburseReqService {
|
|||||||
|
|
||||||
List<HrmReimburseReqVo> queryListWithProject(HrmReimburseReqBo bo);
|
List<HrmReimburseReqVo> queryListWithProject(HrmReimburseReqBo bo);
|
||||||
|
|
||||||
Boolean insertByBo(HrmReimburseReqBo bo);
|
HrmReimburseReqVo insertByBo(HrmReimburseReqBo bo);
|
||||||
|
|
||||||
Boolean updateByBo(HrmReimburseReqBo bo);
|
Boolean updateByBo(HrmReimburseReqBo bo);
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ public interface IHrmSealReqService {
|
|||||||
|
|
||||||
List<HrmSealReqVo> queryListWithProject(HrmSealReqBo bo);
|
List<HrmSealReqVo> queryListWithProject(HrmSealReqBo bo);
|
||||||
|
|
||||||
Boolean insertByBo(HrmSealReqBo bo);
|
HrmSealReqVo insertByBo(HrmSealReqBo bo);
|
||||||
|
|
||||||
Boolean updateByBo(HrmSealReqBo bo);
|
Boolean updateByBo(HrmSealReqBo bo);
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ public interface IHrmTravelReqService {
|
|||||||
|
|
||||||
List<HrmTravelReqVo> queryListWithProject(HrmTravelReqBo bo);
|
List<HrmTravelReqVo> queryListWithProject(HrmTravelReqBo bo);
|
||||||
|
|
||||||
Boolean insertByBo(HrmTravelReqBo bo);
|
HrmTravelReqVo insertByBo(HrmTravelReqBo bo);
|
||||||
|
|
||||||
Boolean updateByBo(HrmTravelReqBo bo);
|
Boolean updateByBo(HrmTravelReqBo bo);
|
||||||
|
|
||||||
|
|||||||
@@ -56,11 +56,12 @@ public class HrmLeaveReqServiceImpl implements IHrmLeaveReqService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean insertByBo(HrmLeaveReqBo bo) {
|
public HrmLeaveReqVo insertByBo(HrmLeaveReqBo bo) {
|
||||||
HrmLeaveReq add = BeanUtil.toBean(bo, HrmLeaveReq.class);
|
HrmLeaveReq add = BeanUtil.toBean(bo, HrmLeaveReq.class);
|
||||||
add.setStatus(defaultStatus(add.getStatus()));
|
add.setStatus(defaultStatus(add.getStatus()));
|
||||||
boolean ok = baseMapper.insert(add) > 0;
|
boolean ok = baseMapper.insert(add) > 0;
|
||||||
|
|
||||||
|
HrmLeaveReqVo bean = BeanUtil.toBean(add, HrmLeaveReqVo.class);
|
||||||
// 当提交为 pending 时,自动启动流程实例(hrm_flow_instance/hrm_flow_task)
|
// 当提交为 pending 时,自动启动流程实例(hrm_flow_instance/hrm_flow_task)
|
||||||
if (ok && "pending".equalsIgnoreCase(add.getStatus())) {
|
if (ok && "pending".equalsIgnoreCase(add.getStatus())) {
|
||||||
|
|
||||||
@@ -97,10 +98,11 @@ public class HrmLeaveReqServiceImpl implements IHrmLeaveReqService {
|
|||||||
start.setBizId(add.getBizId());
|
start.setBizId(add.getBizId());
|
||||||
start.setStartUserId(startUserId);
|
start.setStartUserId(startUserId);
|
||||||
|
|
||||||
flowInstanceService.startInstance(start);
|
Long instId = flowInstanceService.startInstance(start);
|
||||||
|
bean.setInstId(instId);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ok;
|
return bean;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -55,11 +55,12 @@ public class HrmReimburseReqServiceImpl implements IHrmReimburseReqService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean insertByBo(HrmReimburseReqBo bo) {
|
public HrmReimburseReqVo insertByBo(HrmReimburseReqBo bo) {
|
||||||
HrmReimburseReq add = BeanUtil.toBean(bo, HrmReimburseReq.class);
|
HrmReimburseReq add = BeanUtil.toBean(bo, HrmReimburseReq.class);
|
||||||
add.setStatus(defaultStatus(add.getStatus()));
|
add.setStatus(defaultStatus(add.getStatus()));
|
||||||
boolean ok = baseMapper.insert(add) > 0;
|
boolean ok = baseMapper.insert(add) > 0;
|
||||||
|
|
||||||
|
HrmReimburseReqVo bean = BeanUtil.toBean(add, HrmReimburseReqVo.class);
|
||||||
if (ok && "pending".equalsIgnoreCase(add.getStatus())) {
|
if (ok && "pending".equalsIgnoreCase(add.getStatus())) {
|
||||||
// 选择启用的最高版本模板(允许无模板:走自选审批人一次性审批)
|
// 选择启用的最高版本模板(允许无模板:走自选审批人一次性审批)
|
||||||
HrmFlowTemplate tpl = flowTemplateMapper.selectOne(Wrappers.<HrmFlowTemplate>lambdaQuery()
|
HrmFlowTemplate tpl = flowTemplateMapper.selectOne(Wrappers.<HrmFlowTemplate>lambdaQuery()
|
||||||
@@ -77,10 +78,11 @@ public class HrmReimburseReqServiceImpl implements IHrmReimburseReqService {
|
|||||||
start.setBizType("reimburse");
|
start.setBizType("reimburse");
|
||||||
start.setBizId(add.getBizId());
|
start.setBizId(add.getBizId());
|
||||||
start.setStartUserId(startUserId);
|
start.setStartUserId(startUserId);
|
||||||
flowInstanceService.startInstance(start);
|
Long instId = flowInstanceService.startInstance(start);
|
||||||
|
bean.setInstId(instId);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ok;
|
return bean;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import org.apache.pdfbox.pdmodel.PDPage;
|
|||||||
import org.apache.pdfbox.pdmodel.PDPageContentStream;
|
import org.apache.pdfbox.pdmodel.PDPageContentStream;
|
||||||
import org.apache.pdfbox.pdmodel.common.PDRectangle;
|
import org.apache.pdfbox.pdmodel.common.PDRectangle;
|
||||||
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
|
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@@ -72,7 +73,7 @@ public class HrmSealReqServiceImpl implements IHrmSealReqService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean insertByBo(HrmSealReqBo bo) {
|
public HrmSealReqVo insertByBo(HrmSealReqBo bo) {
|
||||||
HrmSealReq add = BeanUtil.toBean(bo, HrmSealReq.class);
|
HrmSealReq add = BeanUtil.toBean(bo, HrmSealReq.class);
|
||||||
add.setStatus(defaultStatus(add.getStatus()));
|
add.setStatus(defaultStatus(add.getStatus()));
|
||||||
validEntityBeforeSave(add);
|
validEntityBeforeSave(add);
|
||||||
@@ -82,6 +83,7 @@ public class HrmSealReqServiceImpl implements IHrmSealReqService {
|
|||||||
Long tplId = bo.getTplId() != null ? bo.getTplId() : bo.getFlowTplId();
|
Long tplId = bo.getTplId() != null ? bo.getTplId() : bo.getFlowTplId();
|
||||||
boolean shouldStartFlow = tplId != null || bo.getManualAssigneeUserId() != null;
|
boolean shouldStartFlow = tplId != null || bo.getManualAssigneeUserId() != null;
|
||||||
|
|
||||||
|
HrmSealReqVo bean = BeanUtil.toBean(add, HrmSealReqVo.class);
|
||||||
if (ok && shouldStartFlow) {
|
if (ok && shouldStartFlow) {
|
||||||
HrmFlowStartBo start = new HrmFlowStartBo();
|
HrmFlowStartBo start = new HrmFlowStartBo();
|
||||||
start.setTplId(tplId);
|
start.setTplId(tplId);
|
||||||
@@ -91,11 +93,12 @@ public class HrmSealReqServiceImpl implements IHrmSealReqService {
|
|||||||
start.setStartUserId(LoginHelper.getUserId());
|
start.setStartUserId(LoginHelper.getUserId());
|
||||||
start.setContentJson(bo.getContentJson());
|
start.setContentJson(bo.getContentJson());
|
||||||
|
|
||||||
flowInstanceService.startInstance(start);
|
Long instId = flowInstanceService.startInstance(start);
|
||||||
// 更新状态为流转中
|
// 更新状态为流转中
|
||||||
updateStatus(add.getBizId(), "running");
|
updateStatus(add.getBizId(), "running");
|
||||||
|
bean.setInstId(instId);
|
||||||
}
|
}
|
||||||
return ok;
|
return bean;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -55,11 +55,12 @@ public class HrmTravelReqServiceImpl implements IHrmTravelReqService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean insertByBo(HrmTravelReqBo bo) {
|
public HrmTravelReqVo insertByBo(HrmTravelReqBo bo) {
|
||||||
HrmTravelReq add = BeanUtil.toBean(bo, HrmTravelReq.class);
|
HrmTravelReq add = BeanUtil.toBean(bo, HrmTravelReq.class);
|
||||||
add.setStatus(defaultStatus(add.getStatus()));
|
add.setStatus(defaultStatus(add.getStatus()));
|
||||||
boolean ok = baseMapper.insert(add) > 0;
|
boolean ok = baseMapper.insert(add) > 0;
|
||||||
|
|
||||||
|
HrmTravelReqVo bean = BeanUtil.toBean(add, HrmTravelReqVo.class);
|
||||||
// 业务表状态规范:pending/approved/rejected
|
// 业务表状态规范:pending/approved/rejected
|
||||||
// 当提交为 pending 时,自动启动流程实例(hrm_flow_instance/hrm_flow_task)
|
// 当提交为 pending 时,自动启动流程实例(hrm_flow_instance/hrm_flow_task)
|
||||||
if (ok && "pending".equalsIgnoreCase(add.getStatus())) {
|
if (ok && "pending".equalsIgnoreCase(add.getStatus())) {
|
||||||
@@ -81,10 +82,11 @@ public class HrmTravelReqServiceImpl implements IHrmTravelReqService {
|
|||||||
start.setBizId(add.getBizId());
|
start.setBizId(add.getBizId());
|
||||||
start.setStartUserId(startUserId);
|
start.setStartUserId(startUserId);
|
||||||
// 暂不保存 contentJson
|
// 暂不保存 contentJson
|
||||||
flowInstanceService.startInstance(start);
|
Long instId = flowInstanceService.startInstance(start);
|
||||||
|
bean.setInstId(instId);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ok;
|
return bean;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user