Kaynağa Gözat

1、领用接口员工化

dongpo 1 yıl önce
ebeveyn
işleme
01ae074674
15 değiştirilmiş dosya ile 219 ekleme ve 200 silme
  1. 7 9
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/receive/vo/OaReceivePageReqVO.java
  2. 6 2
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/receive/vo/OaReceiveRespVO.java
  3. 9 5
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/receive/OaReceiveDO.java
  4. 1 2
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/oa/receive/OaReceiveMapper.java
  5. 7 7
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/business/OaBusinessServiceImpl.java
  6. 7 7
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/conversion/OaConversionServiceImpl.java
  7. 5 5
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/entry/OaEntryServiceImpl.java
  8. 11 11
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/expense/OaExpenseServiceImpl.java
  9. 7 7
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/leave/OaLeaveServiceImpl.java
  10. 7 7
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/out/OaOutServiceImpl.java
  11. 11 11
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/purchase/OaPurchaseServiceImpl.java
  12. 120 106
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/receive/OaReceiveServiceImpl.java
  13. 7 7
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/renew/OaRenewServiceImpl.java
  14. 7 7
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/stamp/OaStampServiceImpl.java
  15. 7 7
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/turnover/OaTurnoverServiceImpl.java

+ 7 - 9
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/receive/vo/OaReceivePageReqVO.java

@@ -1,11 +1,12 @@
 package cn.iocoder.yudao.module.bpm.controller.admin.oa.receive.vo;
 
-import com.alibaba.excel.annotation.ExcelProperty;
-import lombok.*;
-import java.util.*;
-import io.swagger.v3.oas.annotations.media.Schema;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
 import org.springframework.format.annotation.DateTimeFormat;
+
 import java.time.LocalDateTime;
 
 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
@@ -26,17 +27,14 @@ public class OaReceivePageReqVO extends PageParam {
     @Schema(description = "领用员工手机号")
     private String employeePhone;
 
-    @Schema(description = "用户账号id", example = "13756")
-    private Long userId;
-
     @Schema(description = "部门id", example = "17336")
     private Long deptId;
 
     @Schema(description = "部门名称")
     private String deptName;
 
-    @Schema(description = "员工职位")
-    private String position;
+    @Schema(description = "职位id")
+    private Long postId;
 
     @Schema(description = "领用日期")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)

+ 6 - 2
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/receive/vo/OaReceiveRespVO.java

@@ -2,8 +2,8 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa.receive.vo;
 
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO;
 import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.receive.OaReceiveObjDO;
+import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
 import cn.iocoder.yudao.module.infra.api.file.dto.FileDTO;
-import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -49,6 +49,10 @@ public class OaReceiveRespVO {
     @ExcelProperty("部门名称")
     private String deptName;
 
+    @Schema(description = "职位id", example = "1")
+    @ExcelProperty("职位id")
+    private Long postId;
+
     @Schema(description = "员工职位")
     @ExcelProperty("员工职位")
     private String position;
@@ -111,7 +115,7 @@ public class OaReceiveRespVO {
     private List<BpmTaskRespVO> auditRecordList;
 
     @Schema(description = "审批人员列表")
-    private List<AdminUserRespDTO> auditUserList;
+    private List<EmployeeRespDTO> auditUserList;
 
     @Schema(description = "当前用户待处理的任务id")
     private String taskId;

+ 9 - 5
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/receive/OaReceiveDO.java

@@ -1,12 +1,12 @@
 package cn.iocoder.yudao.module.bpm.dal.dataobject.oa.receive;
 
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
-import java.util.*;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
+
 import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.*;
-import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 
 /**
  * 领用流程信息 DO
@@ -64,6 +64,10 @@ public class OaReceiveDO extends BaseDO {
      * 部门uuid
      */
     private String deptUuid;
+    /**
+     * 职位id
+     */
+    private Long postId;
     /**
      * 员工职位
      */

+ 1 - 2
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/oa/receive/OaReceiveMapper.java

@@ -20,9 +20,8 @@ public interface OaReceiveMapper extends BaseMapperX<OaReceiveDO> {
                 .eqIfPresent(OaReceiveDO::getEmployeeId, reqVO.getEmployeeId())
                 .likeIfPresent(OaReceiveDO::getEmployeeName, reqVO.getEmployeeName())
                 .eqIfPresent(OaReceiveDO::getEmployeePhone, reqVO.getEmployeePhone())
-                .eqIfPresent(OaReceiveDO::getUserId, reqVO.getUserId())
                 .eqIfPresent(OaReceiveDO::getDeptId, reqVO.getDeptId())
-                .eqIfPresent(OaReceiveDO::getPosition, reqVO.getPosition())
+                .eqIfPresent(OaReceiveDO::getPostId, reqVO.getPostId())
                 .betweenIfPresent(OaReceiveDO::getReceiveDate, reqVO.getReceiveDate())
                 .eqIfPresent(OaReceiveDO::getProcInstId, reqVO.getProcInstId())
                 .eqIfPresent(OaReceiveDO::getAuditStatus, reqVO.getAuditStatus())

+ 7 - 7
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/business/OaBusinessServiceImpl.java

@@ -82,7 +82,7 @@ public class OaBusinessServiceImpl implements OaBusinessService {
     private DeptApi deptApi;
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long stagingOaBusiness(OaBusinessSaveReqVO stagingReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -128,7 +128,7 @@ public class OaBusinessServiceImpl implements OaBusinessService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long commitOaBusiness(OaBusinessSaveReqVO commitReqVO) {
         if (CollectionUtil.isEmpty(commitReqVO.getStartUserSelectAssignees())) {
             throw exception(ErrorCodeConstants.TASK_CREATE_FAIL_NO_START_SELECT_ASSIGNEE);
@@ -222,7 +222,7 @@ public class OaBusinessServiceImpl implements OaBusinessService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long agreeOaBusiness(BpmTaskApproveReqVO agreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -292,7 +292,7 @@ public class OaBusinessServiceImpl implements OaBusinessService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long disagreeOaBusiness(BpmTaskReturnReqVO disagreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -330,7 +330,7 @@ public class OaBusinessServiceImpl implements OaBusinessService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long revocationOaBusiness(BpmTaskApproveReqVO revocationReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -382,7 +382,7 @@ public class OaBusinessServiceImpl implements OaBusinessService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long reCommitOaBusiness(OaBusinessSaveReqVO reCommitReqVO) {
         if (reCommitReqVO.getId() == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);
@@ -447,7 +447,7 @@ public class OaBusinessServiceImpl implements OaBusinessService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long closeOaBusiness(Long id) {
         if (id == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);

+ 7 - 7
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/conversion/OaConversionServiceImpl.java

@@ -82,7 +82,7 @@ public class OaConversionServiceImpl implements OaConversionService {
     private DeptApi deptApi;
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long stagingOaConversion(OaConversionSaveReqVO stagingReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -130,7 +130,7 @@ public class OaConversionServiceImpl implements OaConversionService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long commitOaConversion(OaConversionSaveReqVO commitReqVO) {
         if (CollectionUtil.isEmpty(commitReqVO.getStartUserSelectAssignees())) {
             throw exception(ErrorCodeConstants.TASK_CREATE_FAIL_NO_START_SELECT_ASSIGNEE);
@@ -227,7 +227,7 @@ public class OaConversionServiceImpl implements OaConversionService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long agreeOaConversion(BpmTaskApproveReqVO agreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -297,7 +297,7 @@ public class OaConversionServiceImpl implements OaConversionService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long disagreeOaConversion(BpmTaskReturnReqVO disagreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -335,7 +335,7 @@ public class OaConversionServiceImpl implements OaConversionService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long revocationOaConversion(BpmTaskApproveReqVO revocationReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -387,7 +387,7 @@ public class OaConversionServiceImpl implements OaConversionService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long reCommitOaConversion(OaConversionSaveReqVO reCommitReqVO) {
         if (reCommitReqVO.getId() == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);
@@ -452,7 +452,7 @@ public class OaConversionServiceImpl implements OaConversionService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long closeOaConversion(Long id) {
         if (id == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);

+ 5 - 5
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/entry/OaEntryServiceImpl.java

@@ -199,7 +199,7 @@ public class OaEntryServiceImpl implements OaEntryService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long agreeOaEntry(BpmTaskApproveReqVO agreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -261,7 +261,7 @@ public class OaEntryServiceImpl implements OaEntryService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long disagreeOaEntry(BpmTaskReturnReqVO disagreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -293,7 +293,7 @@ public class OaEntryServiceImpl implements OaEntryService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long revocationOaEntry(BpmTaskApproveReqVO revocationReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -339,7 +339,7 @@ public class OaEntryServiceImpl implements OaEntryService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long reCommitOaEntry(OaEntrySaveReqVO reCommitReqVO) {
         if (reCommitReqVO.getId() == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);
@@ -386,7 +386,7 @@ public class OaEntryServiceImpl implements OaEntryService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long closeOaEntry(Long id) {
         if (id == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);

+ 11 - 11
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/expense/OaExpenseServiceImpl.java

@@ -100,7 +100,7 @@ public class OaExpenseServiceImpl implements OaExpenseService {
     private ExpenseItemApi expenseItemApi;
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long stagingOaExpense(OaExpenseSaveReqVO stagingReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -150,7 +150,7 @@ public class OaExpenseServiceImpl implements OaExpenseService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long commitOaExpense(OaExpenseSaveReqVO commitReqVO) {
         if (CollectionUtil.isEmpty(commitReqVO.getStartUserSelectAssignees())) {
             throw exception(ErrorCodeConstants.TASK_CREATE_FAIL_NO_START_SELECT_ASSIGNEE);
@@ -267,7 +267,7 @@ public class OaExpenseServiceImpl implements OaExpenseService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long agreeOaExpense(BpmTaskApproveReqVO agreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -333,7 +333,7 @@ public class OaExpenseServiceImpl implements OaExpenseService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long disagreeOaExpense(BpmTaskReturnReqVO disagreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -367,7 +367,7 @@ public class OaExpenseServiceImpl implements OaExpenseService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long revocationOaExpense(BpmTaskApproveReqVO revocationReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -415,7 +415,7 @@ public class OaExpenseServiceImpl implements OaExpenseService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long reCommitOaExpense(OaExpenseSaveReqVO reCommitReqVO) {
         if (reCommitReqVO.getId() == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);
@@ -503,7 +503,7 @@ public class OaExpenseServiceImpl implements OaExpenseService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long closeOaExpense(Long id) {
         if (id == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);
@@ -539,7 +539,7 @@ public class OaExpenseServiceImpl implements OaExpenseService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public void deleteOaExpense(Long id) {
         // 校验存在
         validateOaExpenseDelete(id);
@@ -761,7 +761,7 @@ public class OaExpenseServiceImpl implements OaExpenseService {
     // private OaExpenseObjMapper oaExpenseObjMapper;
     //
     // @Override
-    // @Transactional(rollbackFor = Exception.class)
+    // @Transactional(rollbackFor = Exception.class)(rollbackFor = Exception.class)
     // public Long createOaExpense(OaExpenseSaveReqVO createReqVO) {
     //     // 插入
     //     OaExpenseDO oaExpense = BeanUtils.toBean(createReqVO, OaExpenseDO.class);
@@ -774,7 +774,7 @@ public class OaExpenseServiceImpl implements OaExpenseService {
     // }
     //
     // @Override
-    // @Transactional(rollbackFor = Exception.class)
+    // @Transactional(rollbackFor = Exception.class)(rollbackFor = Exception.class)
     // public void updateOaExpense(OaExpenseSaveReqVO updateReqVO) {
     //     // 校验存在
     //     validateOaExpenseExists(updateReqVO.getId());
@@ -787,7 +787,7 @@ public class OaExpenseServiceImpl implements OaExpenseService {
     // }
     //
     // @Override
-    // @Transactional(rollbackFor = Exception.class)
+    // @Transactional(rollbackFor = Exception.class)(rollbackFor = Exception.class)
     // public void deleteOaExpense(Long id) {
     //     // 校验存在
     //     validateOaExpenseExists(id);

+ 7 - 7
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/leave/OaLeaveServiceImpl.java

@@ -84,7 +84,7 @@ public class OaLeaveServiceImpl implements OaLeaveService {
     private DeptApi deptApi;
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long stagingOaLeave(OaLeaveSaveReqVO stagingReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -128,7 +128,7 @@ public class OaLeaveServiceImpl implements OaLeaveService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long commitOaLeave(OaLeaveSaveReqVO commitReqVO) {
         if (CollectionUtil.isEmpty(commitReqVO.getStartUserSelectAssignees())) {
             throw exception(ErrorCodeConstants.TASK_CREATE_FAIL_NO_START_SELECT_ASSIGNEE);
@@ -220,7 +220,7 @@ public class OaLeaveServiceImpl implements OaLeaveService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long agreeOaLeave(BpmTaskApproveReqVO agreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -290,7 +290,7 @@ public class OaLeaveServiceImpl implements OaLeaveService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long disagreeOaLeave(BpmTaskReturnReqVO disagreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -328,7 +328,7 @@ public class OaLeaveServiceImpl implements OaLeaveService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long revocationOaLeave(BpmTaskApproveReqVO revocationReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -380,7 +380,7 @@ public class OaLeaveServiceImpl implements OaLeaveService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long reCommitOaLeave(OaLeaveSaveReqVO reCommitReqVO) {
         if (reCommitReqVO.getId() == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);
@@ -444,7 +444,7 @@ public class OaLeaveServiceImpl implements OaLeaveService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long closeOaLeave(Long id) {
         if (id == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);

+ 7 - 7
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/out/OaOutServiceImpl.java

@@ -83,7 +83,7 @@ public class OaOutServiceImpl implements OaOutService {
     private DeptApi deptApi;
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long stagingOaOut(OaOutSaveReqVO stagingReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -127,7 +127,7 @@ public class OaOutServiceImpl implements OaOutService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long commitOaOut(OaOutSaveReqVO commitReqVO) {
         if (CollectionUtil.isEmpty(commitReqVO.getStartUserSelectAssignees())) {
             throw exception(ErrorCodeConstants.TASK_CREATE_FAIL_NO_START_SELECT_ASSIGNEE);
@@ -219,7 +219,7 @@ public class OaOutServiceImpl implements OaOutService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long agreeOaOut(BpmTaskApproveReqVO agreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -289,7 +289,7 @@ public class OaOutServiceImpl implements OaOutService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long disagreeOaOut(BpmTaskReturnReqVO disagreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -327,7 +327,7 @@ public class OaOutServiceImpl implements OaOutService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long revocationOaOut(BpmTaskApproveReqVO revocationReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -379,7 +379,7 @@ public class OaOutServiceImpl implements OaOutService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long reCommitOaOut(OaOutSaveReqVO reCommitReqVO) {
         if (reCommitReqVO.getId() == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);
@@ -442,7 +442,7 @@ public class OaOutServiceImpl implements OaOutService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long closeOaOut(Long id) {
         if (id == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);

+ 11 - 11
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/purchase/OaPurchaseServiceImpl.java

@@ -87,7 +87,7 @@ public class OaPurchaseServiceImpl implements OaPurchaseService {
     private DeptApi deptApi;
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long stagingOaPurchase(OaPurchaseSaveReqVO stagingReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -137,7 +137,7 @@ public class OaPurchaseServiceImpl implements OaPurchaseService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long commitOaPurchase(OaPurchaseSaveReqVO commitReqVO) {
         if (CollectionUtil.isEmpty(commitReqVO.getStartUserSelectAssignees())) {
             throw exception(ErrorCodeConstants.TASK_CREATE_FAIL_NO_START_SELECT_ASSIGNEE);
@@ -251,7 +251,7 @@ public class OaPurchaseServiceImpl implements OaPurchaseService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long agreeOaPurchase(BpmTaskApproveReqVO agreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -317,7 +317,7 @@ public class OaPurchaseServiceImpl implements OaPurchaseService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long disagreeOaPurchase(BpmTaskReturnReqVO disagreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -351,7 +351,7 @@ public class OaPurchaseServiceImpl implements OaPurchaseService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long revocationOaPurchase(BpmTaskApproveReqVO revocationReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -399,7 +399,7 @@ public class OaPurchaseServiceImpl implements OaPurchaseService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long reCommitOaPurchase(OaPurchaseSaveReqVO reCommitReqVO) {
         if (reCommitReqVO.getId() == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);
@@ -481,7 +481,7 @@ public class OaPurchaseServiceImpl implements OaPurchaseService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long closeOaPurchase(Long id) {
         if (id == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);
@@ -517,7 +517,7 @@ public class OaPurchaseServiceImpl implements OaPurchaseService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public void deleteOaPurchase(Long id) {
         // 校验存在
         validateOaPurchaseDelete(id);
@@ -704,7 +704,7 @@ public class OaPurchaseServiceImpl implements OaPurchaseService {
     // private OaPurchaseObjMapper oaPurchaseObjMapper;
     //
     // @Override
-    // @Transactional(rollbackFor = Exception.class)
+    // @Transactional(rollbackFor = Exception.class)(rollbackFor = Exception.class)
     // public Long createOaPurchase(OaPurchaseSaveReqVO createReqVO) {
     //     // 插入
     //     OaPurchaseDO oaPurchase = BeanUtils.toBean(createReqVO, OaPurchaseDO.class);
@@ -717,7 +717,7 @@ public class OaPurchaseServiceImpl implements OaPurchaseService {
     // }
     //
     // @Override
-    // @Transactional(rollbackFor = Exception.class)
+    // @Transactional(rollbackFor = Exception.class)(rollbackFor = Exception.class)
     // public void updateOaPurchase(OaPurchaseSaveReqVO updateReqVO) {
     //     // 校验存在
     //     validateOaPurchaseExists(updateReqVO.getId());
@@ -730,7 +730,7 @@ public class OaPurchaseServiceImpl implements OaPurchaseService {
     // }
     //
     // @Override
-    // @Transactional(rollbackFor = Exception.class)
+    // @Transactional(rollbackFor = Exception.class)(rollbackFor = Exception.class)
     // public void deleteOaPurchase(Long id) {
     //     // 校验存在
     //     validateOaPurchaseExists(id);

+ 120 - 106
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/receive/OaReceiveServiceImpl.java

@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
@@ -24,12 +25,12 @@ import cn.iocoder.yudao.module.bpm.enums.DictDataConstants;
 import cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants;
 import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmConstants;
 import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
+import cn.iocoder.yudao.module.employee.api.EmployeeApi;
+import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
 import cn.iocoder.yudao.module.infra.api.file.FileApi;
 import cn.iocoder.yudao.module.infra.api.file.dto.FileDTO;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
-import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
-import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import org.apache.commons.lang3.StringUtils;
@@ -82,20 +83,21 @@ public class OaReceiveServiceImpl implements OaReceiveService {
     private FileApi fileApi;
 
     @Resource
-    private AdminUserApi adminUserApi;
+    private EmployeeApi employeeApi;
 
     @Resource
     private DeptApi deptApi;
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long stagingOaReceive(OaReceiveSaveReqVO stagingReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        AdminUserRespDTO loginUser = adminUserApi.getUser(loginUserId);
-        Objects.requireNonNull(loginUser, "登录用户不能为空");
-        // 人信息
-        AdminUserRespDTO employee = adminUserApi.getUser(loginUserId);
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
+            throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
+        }
 
         OaReceiveDO oaReceive = BeanUtils.toBean(stagingReqVO, OaReceiveDO.class);
         if (StringUtils.isBlank(oaReceive.getReceiveUuid())) {
@@ -103,18 +105,18 @@ public class OaReceiveServiceImpl implements OaReceiveService {
             String uuid = IdUtil.fastSimpleUUID();
             oaReceive.setReceiveUuid(uuid);
         }
-        if (employee != null) {
-            oaReceive.setEmployeeId(loginUser.getId());
-            oaReceive.setEmployeeName(loginUser.getNickname());
-            oaReceive.setEmployeePhone(loginUser.getMobile());
-            oaReceive.setDeptId(loginUser.getDeptId());
-            oaReceive.setPosition("员工职位");
-            oaReceive.setUserId(loginUser.getId());
-        }
+        oaReceive.setEmployeeId(loginEmployee.getId());
+        oaReceive.setEmployeeName(loginEmployee.getName());
+        oaReceive.setEmployeePhone(loginEmployee.getPhone());
+        oaReceive.setDeptId(loginEmployee.getDeptId());
+        oaReceive.setPostId(loginEmployee.getPostId());
+        oaReceive.setPosition(loginEmployee.getPosition());
+        oaReceive.setUserId(loginUserId);
         oaReceive.setAuditStatus(DictDataConstants.OA_AUDIT_STATUS_STAGING);
         oaReceive.setInfoSource("0");
-        oaReceive.setApplyEmployeeId(loginUser.getId());
-        oaReceive.setApplyEmployeeName(loginUser.getNickname());
+        oaReceive.setApplyEmployeeId(loginEmployee.getId());
+        oaReceive.setApplyEmployeeName(loginEmployee.getName());
+        oaReceive.setCreator(String.valueOf(loginEmployee.getId()));
         // 暂存不保存审批人信息
         oaReceive.setStartUserSelectAssignees(null);
 
@@ -138,20 +140,16 @@ public class OaReceiveServiceImpl implements OaReceiveService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long commitOaReceive(OaReceiveSaveReqVO commitReqVO) {
         if (CollectionUtil.isEmpty(commitReqVO.getStartUserSelectAssignees())) {
             throw exception(ErrorCodeConstants.TASK_CREATE_FAIL_NO_START_SELECT_ASSIGNEE);
         }
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        AdminUserRespDTO loginUser = adminUserApi.getUser(loginUserId);
-        if (loginUser == null) {
-            throw exception(ErrorCodeConstants.OA_LOGIN_USER_NOT_EXISTS);
-        }
-        // 人信息
-        AdminUserRespDTO employee = adminUserApi.getUser(loginUserId);
-        if (employee == null) {
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
             throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
         }
 
@@ -162,15 +160,17 @@ public class OaReceiveServiceImpl implements OaReceiveService {
             String uuid = IdUtil.fastSimpleUUID();
             oaReceive.setReceiveUuid(uuid);
         }
-        oaReceive.setEmployeeId(employee.getId());
-        oaReceive.setEmployeeName(employee.getNickname());
-        oaReceive.setEmployeePhone(employee.getMobile());
-        oaReceive.setDeptId(employee.getDeptId());
-        oaReceive.setPosition("员工职位");
-        oaReceive.setUserId(loginUser.getId());
+        oaReceive.setEmployeeId(loginEmployee.getId());
+        oaReceive.setEmployeeName(loginEmployee.getName());
+        oaReceive.setEmployeePhone(loginEmployee.getPhone());
+        oaReceive.setDeptId(loginEmployee.getDeptId());
+        oaReceive.setPostId(loginEmployee.getPostId());
+        oaReceive.setPosition(loginEmployee.getPosition());
+        oaReceive.setUserId(loginUserId);
         oaReceive.setInfoSource("0");
-        oaReceive.setApplyEmployeeId(loginUser.getId());
-        oaReceive.setApplyEmployeeName(loginUser.getNickname());
+        oaReceive.setApplyEmployeeId(loginEmployee.getId());
+        oaReceive.setApplyEmployeeName(loginEmployee.getName());
+        oaReceive.setCreator(String.valueOf(loginEmployee.getId()));
 
         // 子表信息
         List<OaReceiveObjDO> oaReceiveObjs = commitReqVO.getOaReceiveObjs();
@@ -206,7 +206,7 @@ public class OaReceiveServiceImpl implements OaReceiveService {
         List<Long> selectAssignees = commitReqVO.getStartUserSelectAssignees();
         startUserSelectAssignees.put("approver", selectAssignees);
         String processInstanceId = processInstanceApi
-                .createProcessInstance(loginUser.getId(),
+                .createProcessInstance(loginEmployee.getId(),
                         new BpmProcessInstanceCreateReqDTO()
                                 .setProcessDefinitionKey(PROCESS_KEY)
                                 .setVariables(processInstanceVariables)
@@ -223,14 +223,14 @@ public class OaReceiveServiceImpl implements OaReceiveService {
         agreeReqVO.setTaskStatus(Integer.valueOf(DictDataConstants.OA_AUDIT_STATUS_COMMITTED));
         taskService.setVariable(task.getId(), BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, DictDataConstants.OA_AUDIT_STATUS_COMMITTED);
         taskService.setVariable(task.getId(), "auditPass", "true");
-        bpmTaskService.approveTask(loginUserId, agreeReqVO);
+        bpmTaskService.approveTask(loginEmployee.getId(), agreeReqVO);
 
         Task nextTask = taskService.createTaskQuery().processInstanceId(processInstanceId).singleResult();
         if (nextTask == null) {
             throw exception(ErrorCodeConstants.TASK_CREATE_FAIL_NO_START_SELECT_ASSIGNEE);
         }
         Long currentAuditEmployeeId = Long.valueOf(nextTask.getAssignee());
-        AdminUserRespDTO currentAuditEmployee = adminUserApi.getUser(currentAuditEmployeeId);
+        EmployeeRespDTO currentAuditEmployee = employeeApi.getEmployeeById(currentAuditEmployeeId);
 
 
         // 将工作流的流程实例ID、单据状态、最后一次审批时间、当前审批人更新到单据信息中
@@ -240,7 +240,7 @@ public class OaReceiveServiceImpl implements OaReceiveService {
                 .setAuditStatus(DictDataConstants.OA_AUDIT_STATUS_COMMITTED)
                 .setFinalAuditDate(LocalDateTime.now())
                 .setCurrentAuditEmployeeId(currentAuditEmployeeId)
-                .setCurrentAuditEmployeeName(currentAuditEmployee.getNickname())
+                .setCurrentAuditEmployeeName(currentAuditEmployee.getName())
                 .setStartUserSelectAssignees(selectAssignees.stream().map(String::valueOf).collect(Collectors.joining(","))));
         // 保存业务uuid到附件中
         saveFileList(commitReqVO.getFileIdList(), oaReceive.getReceiveUuid());
@@ -249,11 +249,15 @@ public class OaReceiveServiceImpl implements OaReceiveService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long agreeOaReceive(BpmTaskApproveReqVO agreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        // TODO DP 根据登录人查询出对应的员工信息
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
+            throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
+        }
 
         Task currentTask = bpmTaskService.getTask(agreeReqVO.getId());
         if (currentTask == null) {
@@ -281,19 +285,19 @@ public class OaReceiveServiceImpl implements OaReceiveService {
         agreeReqVO.setReason(reason);
         agreeReqVO.setTaskStatus(Integer.valueOf(DictDataConstants.OA_AUDIT_STATUS_AUDITING));
         taskService.setVariable(agreeReqVO.getId(), "auditPass", "true");
-        bpmTaskService.approveTask(loginUserId, agreeReqVO);
+        bpmTaskService.approveTask(loginEmployee.getId(), agreeReqVO);
 
         Task nextTask = taskService.createTaskQuery().processInstanceId(currentTask.getProcessInstanceId()).singleResult();
         OaReceiveDO oaReceiveDO = new OaReceiveDO();
         if (nextTask != null) {
             Long currentAuditEmployeeId = Long.valueOf(nextTask.getAssignee());
-            AdminUserRespDTO currentAuditEmployee = adminUserApi.getUser(currentAuditEmployeeId);
+            EmployeeRespDTO currentAuditEmployee = employeeApi.getEmployeeById(currentAuditEmployeeId);
 
             // 如果审批人重复,实际未结束,再次更新为审核中
             taskService.setVariable(nextTask.getId(), BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, DictDataConstants.OA_AUDIT_STATUS_AUDITING);
             oaReceiveDO.setAuditStatus(DictDataConstants.OA_AUDIT_STATUS_AUDITING)
                     .setCurrentAuditEmployeeId(currentAuditEmployeeId)
-                    .setCurrentAuditEmployeeName(currentAuditEmployee.getNickname())
+                    .setCurrentAuditEmployeeName(currentAuditEmployee.getName())
                     .setFinalAuditDate(LocalDateTime.now())
                     .setId(oaReceive.getId());
 
@@ -315,11 +319,15 @@ public class OaReceiveServiceImpl implements OaReceiveService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long disagreeOaReceive(BpmTaskReturnReqVO disagreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        // TODO DP 根据登录人查询出对应的员工信息
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
+            throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
+        }
 
         Task currentTask = bpmTaskService.getTask(disagreeReqVO.getId());
 
@@ -328,16 +336,16 @@ public class OaReceiveServiceImpl implements OaReceiveService {
         disagreeReqVO.setTaskStatus(Integer.valueOf(DictDataConstants.OA_AUDIT_STATUS_RETURNED));
         taskService.setVariable(disagreeReqVO.getId(), "auditPass", "false");
         taskService.setVariable(disagreeReqVO.getId(),BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, DictDataConstants.OA_AUDIT_STATUS_RETURNED);
-        bpmTaskService.returnTask(loginUserId, disagreeReqVO);
+        bpmTaskService.returnTask(loginEmployee.getId(), disagreeReqVO);
 
         Task nextTask = taskService.createTaskQuery().processInstanceId(currentTask.getProcessInstanceId()).singleResult();
         Long currentAuditEmployeeId = Long.valueOf(nextTask.getAssignee());
-        AdminUserRespDTO currentAuditEmployee = adminUserApi.getUser(currentAuditEmployeeId);
+        EmployeeRespDTO currentAuditEmployee = employeeApi.getEmployeeById(currentAuditEmployeeId);
 
         // 更新单据状态,当前处理人,最后处理时间
         LambdaUpdateWrapper<OaReceiveDO> updateWrapper = new LambdaUpdateWrapper<>();
         updateWrapper.set(OaReceiveDO::getCurrentAuditEmployeeId, currentAuditEmployeeId)
-                .set(OaReceiveDO::getCurrentAuditEmployeeName, currentAuditEmployee.getNickname())
+                .set(OaReceiveDO::getCurrentAuditEmployeeName, currentAuditEmployee.getName())
                 .set(OaReceiveDO::getFinalAuditDate, LocalDateTime.now())
                 .set(OaReceiveDO::getAuditStatus, DictDataConstants.OA_AUDIT_STATUS_RETURNED)
                 .eq(OaReceiveDO::getProcInstId, currentTask.getProcessInstanceId());
@@ -349,11 +357,15 @@ public class OaReceiveServiceImpl implements OaReceiveService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long revocationOaReceive(BpmTaskApproveReqVO revocationReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        // TODO DP 根据登录人查询出对应的员工信息
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
+            throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
+        }
 
         Task currentTask = bpmTaskService.getTask(revocationReqVO.getId());
         if (currentTask == null) {
@@ -363,7 +375,7 @@ public class OaReceiveServiceImpl implements OaReceiveService {
                 .eq(OaReceiveDO::getProcInstId, currentTask.getProcessInstanceId());
         OaReceiveDO oaReceiveDO = oaReceiveMapper.selectOne(lambdaQueryWrapper);
         if (!DictDataConstants.OA_AUDIT_STATUS_COMMITTED.equals(oaReceiveDO.getAuditStatus())
-                || !Objects.equals(String.valueOf(loginUserId), oaReceiveDO.getCreator())) {
+                || !Objects.equals(String.valueOf(loginEmployee.getId()), oaReceiveDO.getCreator())) {
             throw ServiceExceptionUtil.exception(ErrorCodeConstants.TASK_REVOCATION_NOT_ALLOWED);
         }
 
@@ -376,16 +388,16 @@ public class OaReceiveServiceImpl implements OaReceiveService {
         returnReqVO.setReason(reason);
         returnReqVO.setTaskStatus(Integer.valueOf(DictDataConstants.OA_AUDIT_STATUS_RECALLED));
         taskService.setVariable(currentTask.getId(),BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, DictDataConstants.OA_AUDIT_STATUS_RECALLED);
-        bpmTaskService.revocationTask(loginUserId, returnReqVO);
+        bpmTaskService.revocationTask(loginEmployee.getId(), returnReqVO);
 
         Task nextTask = taskService.createTaskQuery().processInstanceId(currentTask.getProcessInstanceId()).singleResult();
         Long currentAuditEmployeeId = Long.valueOf(nextTask.getAssignee());
-        AdminUserRespDTO currentAuditEmployee = adminUserApi.getUser(currentAuditEmployeeId);
+        EmployeeRespDTO currentAuditEmployee = employeeApi.getEmployeeById(currentAuditEmployeeId);
 
         // 更新单据状态,当前处理人,最后处理时间
         LambdaUpdateWrapper<OaReceiveDO> updateWrapper = new LambdaUpdateWrapper<>();
         updateWrapper.set(OaReceiveDO::getCurrentAuditEmployeeId, currentAuditEmployeeId)
-                .set(OaReceiveDO::getCurrentAuditEmployeeName, currentAuditEmployee.getNickname())
+                .set(OaReceiveDO::getCurrentAuditEmployeeName, currentAuditEmployee.getName())
                 .set(OaReceiveDO::getFinalAuditDate, LocalDateTime.now())
                 .set(OaReceiveDO::getAuditStatus, DictDataConstants.OA_AUDIT_STATUS_RECALLED)
                 .eq(OaReceiveDO::getProcInstId, currentTask.getProcessInstanceId());
@@ -397,20 +409,16 @@ public class OaReceiveServiceImpl implements OaReceiveService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long reCommitOaReceive(OaReceiveSaveReqVO reCommitReqVO) {
         if (reCommitReqVO.getId() == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);
         }
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        AdminUserRespDTO loginUser = adminUserApi.getUser(loginUserId);
-        if (loginUser == null) {
-            throw exception(ErrorCodeConstants.OA_LOGIN_USER_NOT_EXISTS);
-        }
-        // 人信息
-        AdminUserRespDTO employee = adminUserApi.getUser(loginUserId);
-        if (employee == null) {
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
             throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
         }
 
@@ -419,14 +427,15 @@ public class OaReceiveServiceImpl implements OaReceiveService {
         oaReceiveNew.setReceiveUuid(oaReceiveOld.getReceiveUuid())
                 .setProcInstId(oaReceiveOld.getProcInstId());
 
-        oaReceiveNew.setEmployeeId(employee.getId());
-        oaReceiveNew.setEmployeeName(employee.getNickname());
-        oaReceiveNew.setEmployeePhone(employee.getMobile());
-        oaReceiveNew.setDeptId(employee.getDeptId());
-        oaReceiveNew.setPosition("员工职位");
-        oaReceiveNew.setUserId(loginUser.getId());
-        oaReceiveNew.setApplyEmployeeId(loginUser.getId());
-        oaReceiveNew.setApplyEmployeeName(loginUser.getNickname());
+        oaReceiveNew.setEmployeeId(loginEmployee.getId());
+        oaReceiveNew.setEmployeeName(loginEmployee.getName());
+        oaReceiveNew.setEmployeePhone(loginEmployee.getPhone());
+        oaReceiveNew.setDeptId(loginEmployee.getDeptId());
+        oaReceiveNew.setPostId(loginEmployee.getPostId());
+        oaReceiveNew.setPosition(loginEmployee.getPosition());
+        oaReceiveNew.setUserId(loginUserId);
+        oaReceiveNew.setApplyEmployeeId(loginEmployee.getId());
+        oaReceiveNew.setApplyEmployeeName(loginEmployee.getName());
 
         // 子表信息
         List<OaReceiveObjDO> oaReceiveObjs = reCommitReqVO.getOaReceiveObjs();
@@ -456,14 +465,14 @@ public class OaReceiveServiceImpl implements OaReceiveService {
         taskService.setVariable(currentTask.getId(), "auditPass", "true");
         taskService.setVariable(currentTask.getId(),BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, DictDataConstants.OA_AUDIT_STATUS_COMMITTED);
         // 再次提交,和审批通过逻辑相同
-        bpmTaskService.approveTask(loginUserId, approveReqVO);
+        bpmTaskService.approveTask(loginEmployee.getId(), approveReqVO);
 
         Task nextTask = taskService.createTaskQuery().processInstanceId(currentTask.getProcessInstanceId()).singleResult();
         Long currentAuditEmployeeId = Long.valueOf(nextTask.getAssignee());
-        AdminUserRespDTO currentAuditEmployee = adminUserApi.getUser(currentAuditEmployeeId);
+        EmployeeRespDTO currentAuditEmployee = employeeApi.getEmployeeById(currentAuditEmployeeId);
         oaReceiveNew.setAuditStatus(DictDataConstants.OA_AUDIT_STATUS_COMMITTED)
                 .setCurrentAuditEmployeeId(currentAuditEmployeeId)
-                .setCurrentAuditEmployeeName(currentAuditEmployee.getNickname())
+                .setCurrentAuditEmployeeName(currentAuditEmployee.getName())
                 .setFinalAuditDate(LocalDateTime.now());
         oaReceiveMapper.updateById(oaReceiveNew);
 
@@ -479,14 +488,18 @@ public class OaReceiveServiceImpl implements OaReceiveService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long closeOaReceive(Long id) {
         if (id == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);
         }
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        // TODO DP 根据登录人查询出对应的员工信息
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
+            throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
+        }
 
         OaReceiveDO oaReceiveDO = oaReceiveMapper.selectById(id);
         if (!DictDataConstants.OA_AUDIT_STATUS_RETURNED.equals(oaReceiveDO.getAuditStatus())
@@ -502,7 +515,7 @@ public class OaReceiveServiceImpl implements OaReceiveService {
         taskService.setVariable(currentTask.getId(), "auditPass", "false");
         taskService.setVariable(currentTask.getId(),BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, DictDataConstants.OA_AUDIT_STATUS_CLOSED);
         // 关闭,使用审批通过的方法实现
-        bpmTaskService.approveTask(loginUserId, approveReqVO);
+        bpmTaskService.approveTask(loginEmployee.getId(), approveReqVO);
 
         LambdaUpdateWrapper<OaReceiveDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
         lambdaUpdateWrapper.set(OaReceiveDO::getAuditStatus, DictDataConstants.OA_AUDIT_STATUS_CLOSED)
@@ -515,7 +528,7 @@ public class OaReceiveServiceImpl implements OaReceiveService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public void deleteOaReceive(Long id) {
         // 校验存在
         validateOaReceiveDelete(id);
@@ -529,7 +542,11 @@ public class OaReceiveServiceImpl implements OaReceiveService {
     public OaReceiveRespVO getOaReceive(Long id) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        // TODO DP 根据登录人查询出对应的员工信息
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
+            throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
+        }
 
         OaReceiveDO oaReceiveDO = validateOaReceiveExists(id);
         OaReceiveRespVO oaReceiveRespVO = BeanUtils.toBean(oaReceiveDO, OaReceiveRespVO.class);
@@ -547,7 +564,7 @@ public class OaReceiveServiceImpl implements OaReceiveService {
         if (StrUtil.isNotBlank(procInstId)) {
             Task task = taskService.createTaskQuery()
                     .processInstanceId(procInstId)
-                    .taskAssignee(String.valueOf(loginUserId))
+                    .taskAssignee(String.valueOf(loginEmployee.getId()))
                     .singleResult();
             if (DictDataConstants.OA_AUDIT_STATUS_COMMITTED.equals(oaReceiveDO.getAuditStatus())) {
                 // 如果是已提交,不限制任务处理人是当前登录人,用于直接撤回
@@ -573,16 +590,15 @@ public class OaReceiveServiceImpl implements OaReceiveService {
         // 审批人
         String startUserSelectAssignees = oaReceiveDO.getStartUserSelectAssignees();
         if (StrUtil.isNotEmpty(startUserSelectAssignees)) {
-            List<Long> userIdList = Arrays.stream(startUserSelectAssignees.split(","))
+            List<Long> employeeIdList = Arrays.stream(startUserSelectAssignees.split(","))
                     .map(Long::valueOf).collect(Collectors.toList());
-            List<AdminUserRespDTO> userList = adminUserApi.getUserList(userIdList);
-            List<AdminUserRespDTO> auditUserList = new ArrayList<>();
-            for (Long userId : userIdList) {
-                for (AdminUserRespDTO adminUserRespDTO : userList) {
-                    if (Objects.equals(userId, adminUserRespDTO.getId())) {
-                        auditUserList.add(adminUserRespDTO);
-                        break;
-                    }
+            List<EmployeeRespDTO> employeeRespDTOList = employeeApi.getEmployeeListByIds(employeeIdList);
+            Map<Long, EmployeeRespDTO> longEmployeeRespDTOMap = CollectionUtils.convertMap(employeeRespDTOList, EmployeeRespDTO::getId);
+            List<EmployeeRespDTO> auditUserList = new ArrayList<>();
+            for (Long employeeId : employeeIdList) {
+                EmployeeRespDTO employeeRespDTO = longEmployeeRespDTOMap.get(employeeId);
+                if (employeeRespDTO != null) {
+                    auditUserList.add(employeeRespDTO);
                 }
             }
             oaReceiveRespVO.setAuditUserList(auditUserList);
@@ -615,16 +631,15 @@ public class OaReceiveServiceImpl implements OaReceiveService {
         // 审批人
         String startUserSelectAssignees = oaReceiveDO.getStartUserSelectAssignees();
         if (StrUtil.isNotEmpty(startUserSelectAssignees)) {
-            List<Long> userIdList = Arrays.stream(startUserSelectAssignees.split(","))
+            List<Long> employeeIdList = Arrays.stream(startUserSelectAssignees.split(","))
                     .map(Long::valueOf).collect(Collectors.toList());
-            List<AdminUserRespDTO> userList = adminUserApi.getUserList(userIdList);
-            List<AdminUserRespDTO> auditUserList = new ArrayList<>();
-            for (Long userId : userIdList) {
-                for (AdminUserRespDTO adminUserRespDTO : userList) {
-                    if (Objects.equals(userId, adminUserRespDTO.getId())) {
-                        auditUserList.add(adminUserRespDTO);
-                        break;
-                    }
+            List<EmployeeRespDTO> employeeRespDTOList = employeeApi.getEmployeeListByIds(employeeIdList);
+            Map<Long, EmployeeRespDTO> longEmployeeRespDTOMap = CollectionUtils.convertMap(employeeRespDTOList, EmployeeRespDTO::getId);
+            List<EmployeeRespDTO> auditUserList = new ArrayList<>();
+            for (Long employeeId : employeeIdList) {
+                EmployeeRespDTO employeeRespDTO = longEmployeeRespDTOMap.get(employeeId);
+                if (employeeRespDTO != null) {
+                    auditUserList.add(employeeRespDTO);
                 }
             }
             oaReceiveRespVO.setAuditUserList(auditUserList);
@@ -641,13 +656,12 @@ public class OaReceiveServiceImpl implements OaReceiveService {
         List<OaReceiveRespVO> oaReceiveRespVOList = oaReceiveRespVOPageResult.getList();
         if (CollectionUtil.isNotEmpty(oaReceiveRespVOList)) {
             List<Long> employeeIdList = oaReceiveRespVOList.stream().map(OaReceiveRespVO::getCurrentAuditEmployeeId).collect(Collectors.toList());
-            List<AdminUserRespDTO> employeeList = adminUserApi.getUserList(employeeIdList);
+            List<EmployeeRespDTO> employeeRespDTOList = employeeApi.getEmployeeListByIds(employeeIdList);
+            Map<Long, EmployeeRespDTO> longEmployeeRespDTOMap = CollectionUtils.convertMap(employeeRespDTOList, EmployeeRespDTO::getId);
             for (OaReceiveRespVO respVO : oaReceiveRespVOList) {
-                for (AdminUserRespDTO employee : employeeList) {
-                    if (employee.getId() != null && employee.getId().equals(respVO.getCurrentAuditEmployeeId())) {
-                        respVO.setCurrentAuditEmployeeName(employee.getNickname());
-                        break;
-                    }
+                EmployeeRespDTO employeeRespDTO = longEmployeeRespDTOMap.get(respVO.getCurrentAuditEmployeeId());
+                if (employeeRespDTO != null) {
+                    respVO.setCurrentAuditEmployeeName(employeeRespDTO.getName());
                 }
             }
 
@@ -702,7 +716,7 @@ public class OaReceiveServiceImpl implements OaReceiveService {
     // private OaReceiveObjMapper oaReceiveObjMapper;
     //
     // @Override
-    // @Transactional(rollbackFor = Exception.class)
+    // @Transactional(rollbackFor = Exception.class)(rollbackFor = Exception.class)
     // public Long createOaReceive(OaReceiveSaveReqVO createReqVO) {
     //     // 插入
     //     OaReceiveDO oaReceive = BeanUtils.toBean(createReqVO, OaReceiveDO.class);
@@ -715,7 +729,7 @@ public class OaReceiveServiceImpl implements OaReceiveService {
     // }
     //
     // @Override
-    // @Transactional(rollbackFor = Exception.class)
+    // @Transactional(rollbackFor = Exception.class)(rollbackFor = Exception.class)
     // public void updateOaReceive(OaReceiveSaveReqVO updateReqVO) {
     //     // 校验存在
     //     validateOaReceiveExists(updateReqVO.getId());
@@ -728,7 +742,7 @@ public class OaReceiveServiceImpl implements OaReceiveService {
     // }
     //
     // @Override
-    // @Transactional(rollbackFor = Exception.class)
+    // @Transactional(rollbackFor = Exception.class)(rollbackFor = Exception.class)
     // public void deleteOaReceive(Long id) {
     //     // 校验存在
     //     validateOaReceiveExists(id);

+ 7 - 7
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/renew/OaRenewServiceImpl.java

@@ -85,7 +85,7 @@ public class OaRenewServiceImpl implements OaRenewService {
     private DeptApi deptApi;
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long stagingOaRenew(OaRenewSaveReqVO stagingReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -140,7 +140,7 @@ public class OaRenewServiceImpl implements OaRenewService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long commitOaRenew(OaRenewSaveReqVO commitReqVO) {
         if (CollectionUtil.isEmpty(commitReqVO.getStartUserSelectAssignees())) {
             throw exception(ErrorCodeConstants.TASK_CREATE_FAIL_NO_START_SELECT_ASSIGNEE);
@@ -246,7 +246,7 @@ public class OaRenewServiceImpl implements OaRenewService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long agreeOaRenew(BpmTaskApproveReqVO agreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -316,7 +316,7 @@ public class OaRenewServiceImpl implements OaRenewService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long disagreeOaRenew(BpmTaskReturnReqVO disagreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -354,7 +354,7 @@ public class OaRenewServiceImpl implements OaRenewService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long revocationOaRenew(BpmTaskApproveReqVO revocationReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -406,7 +406,7 @@ public class OaRenewServiceImpl implements OaRenewService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long reCommitOaRenew(OaRenewSaveReqVO reCommitReqVO) {
         if (reCommitReqVO.getId() == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);
@@ -480,7 +480,7 @@ public class OaRenewServiceImpl implements OaRenewService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long closeOaRenew(Long id) {
         if (id == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);

+ 7 - 7
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/stamp/OaStampServiceImpl.java

@@ -82,7 +82,7 @@ public class OaStampServiceImpl implements OaStampService {
     private DeptApi deptApi;
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long stagingOaStamp(OaStampSaveReqVO stagingReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -131,7 +131,7 @@ public class OaStampServiceImpl implements OaStampService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long commitOaStamp(OaStampSaveReqVO commitReqVO) {
         if (CollectionUtil.isEmpty(commitReqVO.getStartUserSelectAssignees())) {
             throw exception(ErrorCodeConstants.TASK_CREATE_FAIL_NO_START_SELECT_ASSIGNEE);
@@ -231,7 +231,7 @@ public class OaStampServiceImpl implements OaStampService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long agreeOaStamp(BpmTaskApproveReqVO agreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -297,7 +297,7 @@ public class OaStampServiceImpl implements OaStampService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long disagreeOaStamp(BpmTaskReturnReqVO disagreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -331,7 +331,7 @@ public class OaStampServiceImpl implements OaStampService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long revocationOaStamp(BpmTaskApproveReqVO revocationReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -379,7 +379,7 @@ public class OaStampServiceImpl implements OaStampService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long reCommitOaStamp(OaStampSaveReqVO reCommitReqVO) {
         if (reCommitReqVO.getId() == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);
@@ -451,7 +451,7 @@ public class OaStampServiceImpl implements OaStampService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long closeOaStamp(Long id) {
         if (id == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);

+ 7 - 7
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/turnover/OaTurnoverServiceImpl.java

@@ -86,7 +86,7 @@ public class OaTurnoverServiceImpl implements OaTurnoverService {
     private DeptApi deptApi;
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long stagingOaTurnover(OaTurnoverSaveReqVO stagingReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -137,7 +137,7 @@ public class OaTurnoverServiceImpl implements OaTurnoverService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long commitOaTurnover(OaTurnoverSaveReqVO commitReqVO) {
         if (CollectionUtil.isEmpty(commitReqVO.getStartUserSelectAssignees())) {
             throw exception(ErrorCodeConstants.TASK_CREATE_FAIL_NO_START_SELECT_ASSIGNEE);
@@ -237,7 +237,7 @@ public class OaTurnoverServiceImpl implements OaTurnoverService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long agreeOaTurnover(BpmTaskApproveReqVO agreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -307,7 +307,7 @@ public class OaTurnoverServiceImpl implements OaTurnoverService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long disagreeOaTurnover(BpmTaskReturnReqVO disagreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -345,7 +345,7 @@ public class OaTurnoverServiceImpl implements OaTurnoverService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long revocationOaTurnover(BpmTaskApproveReqVO revocationReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
@@ -397,7 +397,7 @@ public class OaTurnoverServiceImpl implements OaTurnoverService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long reCommitOaTurnover(OaTurnoverSaveReqVO reCommitReqVO) {
         if (reCommitReqVO.getId() == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);
@@ -468,7 +468,7 @@ public class OaTurnoverServiceImpl implements OaTurnoverService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public Long closeOaTurnover(Long id) {
         if (id == null) {
             throw exception(ErrorCodeConstants.SERVICE_ID_NOT_EXISTS);