فهرست منبع

1、oa和会议预定列表-操作权限-更新、删除

dongpo 6 ماه پیش
والد
کامیت
886adb94b7
14فایلهای تغییر یافته به همراه263 افزوده شده و 49 حذف شده
  1. 3 0
      yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java
  2. 18 1
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/meeting/reserve/OaMeetingReserveServiceImpl.java
  3. 21 4
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/business/OaBusinessServiceImpl.java
  4. 21 4
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/conversion/OaConversionServiceImpl.java
  5. 20 4
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/entry/OaEntryServiceImpl.java
  6. 20 4
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/expense/OaExpenseServiceImpl.java
  7. 20 4
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/leave/OaLeaveServiceImpl.java
  8. 20 4
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/out/OaOutServiceImpl.java
  9. 20 4
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/purchase/OaPurchaseServiceImpl.java
  10. 20 4
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/receive/OaReceiveServiceImpl.java
  11. 20 4
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/renew/OaRenewServiceImpl.java
  12. 20 4
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/stamp/OaStampServiceImpl.java
  13. 20 4
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/turnover/OaTurnoverServiceImpl.java
  14. 20 4
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/universal/OaUniversalServiceImpl.java

+ 3 - 0
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java

@@ -146,4 +146,7 @@ public interface ErrorCodeConstants {
     ErrorCode OA_MEETING_RESERVE_STATUS_NOT_WAITING_CAN_NOT_START = new ErrorCode(1_009_018_016, "会议未开始的才能开始");
     ErrorCode OA_MEETING_RESERVE_STATUS_NOT_IN_PROGRESS_CAN_NOT_ENDED = new ErrorCode(1_009_018_017, "会议进行中的才能结束");
     ErrorCode OA_MEETING_RESERVE_TIME_OCCUPIED = new ErrorCode(1_009_018_018, "该时间段会议室已被占用");
+
+    // ================操作数据权限===============
+    ErrorCode OA_NOT_ALLOW_OPERATE_BY_OTHER = new ErrorCode(1_009_019_001, "只允许操作自己的数据");
 }

+ 18 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/meeting/reserve/OaMeetingReserveServiceImpl.java

@@ -29,6 +29,7 @@ import java.util.Calendar;
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -111,6 +112,8 @@ public class OaMeetingReserveServiceImpl implements OaMeetingReserveService {
 
         // 校验存在
         OaMeetingReserveDO oaMeetingReserveDOOld = validateOaMeetingReserveExists(updateReqVO.getId());
+        validateOperator(loginUserId, Long.valueOf(oaMeetingReserveDOOld.getCreator()));
+
         String startTimeOld = oaMeetingReserveDOOld.getStartTime();
 
         // 校验时间
@@ -168,10 +171,18 @@ public class OaMeetingReserveServiceImpl implements OaMeetingReserveService {
         oaMeetingReserveMapper.updateById(updateObj);
     }
 
+    private void validateOperator(Long loginUserId, Long creator) {
+        if (!Objects.equals(loginUserId, creator)) {
+            throw exception(OA_NOT_ALLOW_OPERATE_BY_OTHER);
+        }
+    }
+
     @Override
     public void deleteOaMeetingReserve(Long id) {
+        Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
         // 校验存在
-        validateOaMeetingReserveExists(id);
+        OaMeetingReserveDO oaMeetingReserveDO = validateOaMeetingReserveExists(id);
+        validateOperator(loginUserId, Long.valueOf(oaMeetingReserveDO.getCreator()));
         // 删除
         oaMeetingReserveMapper.deleteById(id);
     }
@@ -200,6 +211,8 @@ public class OaMeetingReserveServiceImpl implements OaMeetingReserveService {
     @Override
     public void cancelOaMeetingReserve(Long id) {
         OaMeetingReserveDO oaMeetingReserveDO = validateOaMeetingReserveExists(id);
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(oaMeetingReserveDO.getCreator()));
+
         String status = oaMeetingReserveDO.getStatus();
         if (!MeetingReserveStatusEnum.WAITING.getStatus().equals(status)) {
             throw exception(OA_MEETING_RESERVE_STATUS_NOT_WAITING_CAN_NOT_CANCEL);
@@ -210,6 +223,8 @@ public class OaMeetingReserveServiceImpl implements OaMeetingReserveService {
     @Override
     public void startOaMeetingReserve(Long id) {
         OaMeetingReserveDO oaMeetingReserveDO = validateOaMeetingReserveExists(id);
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(oaMeetingReserveDO.getCreator()));
+
         String status = oaMeetingReserveDO.getStatus();
         if (!MeetingReserveStatusEnum.WAITING.getStatus().equals(status)) {
             throw exception(OA_MEETING_RESERVE_STATUS_NOT_WAITING_CAN_NOT_START);
@@ -220,6 +235,8 @@ public class OaMeetingReserveServiceImpl implements OaMeetingReserveService {
     @Override
     public void endOaMeetingReserve(Long id) {
         OaMeetingReserveDO oaMeetingReserveDO = validateOaMeetingReserveExists(id);
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(oaMeetingReserveDO.getCreator()));
+
         String status = oaMeetingReserveDO.getStatus();
         if (!MeetingReserveStatusEnum.IN_PROGRESS.getStatus().equals(status)) {
             throw exception(OA_MEETING_RESERVE_STATUS_NOT_IN_PROGRESS_CAN_NOT_ENDED);

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

@@ -61,6 +61,7 @@ import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_BUSINESS_NOT_EXISTS;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_NOT_ALLOW_OPERATE_BY_OTHER;
 
 /**
  * 出差流程信息 Service 实现类
@@ -124,7 +125,10 @@ public class OaBusinessServiceImpl implements OaBusinessService {
         }
 
         OaBusinessDO oaBusiness = BeanUtils.toBean(stagingReqVO, OaBusinessDO.class);
-        if (StringUtils.isBlank(oaBusiness.getBusinessId())) {
+        if (oaBusiness.getId() != null) {
+            OaBusinessDO oaBusinessDO = validateOaBusinessExists(oaBusiness.getId());
+            validateOperator(loginUserId, Long.valueOf(oaBusinessDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaBusiness.setBusinessId(uuid);
@@ -190,7 +194,10 @@ public class OaBusinessServiceImpl implements OaBusinessService {
 
 
         OaBusinessDO oaBusiness = BeanUtils.toBean(commitReqVO, OaBusinessDO.class);
-        if (StringUtils.isBlank(oaBusiness.getBusinessId())) {
+        if (oaBusiness.getId() != null) {
+            OaBusinessDO oaBusinessDO = validateOaBusinessExists(oaBusiness.getId());
+            validateOperator(loginUserId, Long.valueOf(oaBusinessDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaBusiness.setBusinessId(uuid);
@@ -621,7 +628,8 @@ public class OaBusinessServiceImpl implements OaBusinessService {
     @Override
     public void deleteOaBusiness(Long id) {
         // 校验存在
-        validateOaBusinessDelete(id);
+        OaBusinessDO oaBusinessDO = validateOaBusinessDelete(id);
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(oaBusinessDO.getCreator()));
         // 删除
         oaBusinessMapper.deleteById(id);
     }
@@ -808,11 +816,12 @@ public class OaBusinessServiceImpl implements OaBusinessService {
         return getOaBusinessPage(pageReqVO);
     }
 
-    private void validateOaBusinessDelete(Long id) {
+    private OaBusinessDO validateOaBusinessDelete(Long id) {
         OaBusinessDO oaBusinessDO = validateOaBusinessExists(id);
         if (!DictDataConstants.OA_AUDIT_STATUS_STAGING.equals(oaBusinessDO.getAuditStatus())) {
             throw exception(ErrorCodeConstants.DELETE_FAIL_NOT_STAGING);
         }
+        return oaBusinessDO;
     }
 
     private OaBusinessDO validateOaBusinessExists(Long id) {
@@ -822,4 +831,12 @@ public class OaBusinessServiceImpl implements OaBusinessService {
         }
         return oaBusinessDO;
     }
+
+
+    private void validateOperator(Long loginUserId, Long creator) {
+        if (!Objects.equals(loginUserId, creator)) {
+            throw exception(OA_NOT_ALLOW_OPERATE_BY_OTHER);
+        }
+    }
+
 }

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

@@ -63,6 +63,7 @@ import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_CONVERSION_NOT_EXISTS;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_NOT_ALLOW_OPERATE_BY_OTHER;
 
 /**
  * 转正流程信息 Service 实现类
@@ -128,7 +129,10 @@ public class OaConversionServiceImpl implements OaConversionService {
         }
 
         OaConversionDO oaConversion = BeanUtils.toBean(stagingReqVO, OaConversionDO.class);
-        if (StringUtils.isBlank(oaConversion.getConversionId())) {
+        if (oaConversion.getId() != null) {
+            OaConversionDO oaConversionDO = validateOaConversionExists(oaConversion.getId());
+            validateOperator(loginUserId, Long.valueOf(oaConversionDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaConversion.setConversionId(uuid);
@@ -206,7 +210,10 @@ public class OaConversionServiceImpl implements OaConversionService {
         }
 
         OaConversionDO oaConversion = BeanUtils.toBean(commitReqVO, OaConversionDO.class);
-        if (StringUtils.isBlank(oaConversion.getConversionId())) {
+        if (oaConversion.getId() != null) {
+            OaConversionDO oaConversionDO = validateOaConversionExists(oaConversion.getId());
+            validateOperator(loginUserId, Long.valueOf(oaConversionDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaConversion.setConversionId(uuid);
@@ -656,7 +663,8 @@ public class OaConversionServiceImpl implements OaConversionService {
     @Override
     public void deleteOaConversion(Long id) {
         // 校验存在
-        validateOaConversionDelete(id);
+        OaConversionDO oaConversionDO = validateOaConversionDelete(id);
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(oaConversionDO.getCreator()));
         // 删除
         oaConversionMapper.deleteById(id);
     }
@@ -853,11 +861,12 @@ public class OaConversionServiceImpl implements OaConversionService {
         return getOaConversionPage(pageReqVO);
     }
 
-    private void validateOaConversionDelete(Long id) {
+    private OaConversionDO validateOaConversionDelete(Long id) {
         OaConversionDO oaConversionDO = validateOaConversionExists(id);
         if (!DictDataConstants.OA_AUDIT_STATUS_STAGING.equals(oaConversionDO.getAuditStatus())) {
             throw exception(ErrorCodeConstants.DELETE_FAIL_NOT_STAGING);
         }
+        return oaConversionDO;
     }
     private OaConversionDO validateOaConversionExists(Long id) {
         OaConversionDO oaConversionDO = oaConversionMapper.selectById(id);
@@ -866,4 +875,12 @@ public class OaConversionServiceImpl implements OaConversionService {
         }
         return oaConversionDO;
     }
+
+
+    private void validateOperator(Long loginUserId, Long creator) {
+        if (!Objects.equals(loginUserId, creator)) {
+            throw exception(OA_NOT_ALLOW_OPERATE_BY_OTHER);
+        }
+    }
+
 }

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

@@ -64,6 +64,7 @@ import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_ENTRY_NOT_EXISTS;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_NOT_ALLOW_OPERATE_BY_OTHER;
 
 /**
  * 入职流程信息 Service 实现类
@@ -128,7 +129,10 @@ public class OaEntryServiceImpl implements OaEntryService {
         }
 
         OaEntryDO oaEntry = BeanUtils.toBean(stagingReqVO, OaEntryDO.class);
-        if (StringUtils.isBlank(oaEntry.getEntryId())) {
+        if (oaEntry.getId() != null) {
+            OaEntryDO oaEntryDO = validateOaEntryExists(oaEntry.getId());
+            validateOperator(loginUserId, Long.valueOf(oaEntryDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaEntry.setEntryId(uuid);
@@ -182,7 +186,10 @@ public class OaEntryServiceImpl implements OaEntryService {
         }
 
         OaEntryDO oaEntry = BeanUtils.toBean(commitReqVO, OaEntryDO.class);
-        if (StringUtils.isBlank(oaEntry.getEntryId())) {
+        if (oaEntry.getId() != null) {
+            OaEntryDO oaEntryDO = validateOaEntryExists(oaEntry.getId());
+            validateOperator(loginUserId, Long.valueOf(oaEntryDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaEntry.setEntryId(uuid);
@@ -560,7 +567,8 @@ public class OaEntryServiceImpl implements OaEntryService {
     @Override
     public void deleteOaEntry(Long id) {
         // 校验存在
-        validateOaEntryExists(id);
+        OaEntryDO oaEntryDO = validateOaEntryDelete(id);
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(oaEntryDO.getCreator()));
         // 删除
         oaEntryMapper.deleteById(id);
     }
@@ -774,11 +782,12 @@ public class OaEntryServiceImpl implements OaEntryService {
         return getOaEntryPage(pageReqVO);
     }
 
-    private void validateOaEntryDelete(Long id) {
+    private OaEntryDO validateOaEntryDelete(Long id) {
         OaEntryDO oaEntryDO = validateOaEntryExists(id);
         if (!DictDataConstants.OA_AUDIT_STATUS_STAGING.equals(oaEntryDO.getAuditStatus())) {
             throw exception(ErrorCodeConstants.DELETE_FAIL_NOT_STAGING);
         }
+        return oaEntryDO;
     }
     private OaEntryDO validateOaEntryExists(Long id) {
         OaEntryDO oaEntryDO = oaEntryMapper.selectById(id);
@@ -788,4 +797,11 @@ public class OaEntryServiceImpl implements OaEntryService {
         return oaEntryDO;
     }
 
+    private void validateOperator(Long loginUserId, Long creator) {
+        if (!Objects.equals(loginUserId, creator)) {
+            throw exception(OA_NOT_ALLOW_OPERATE_BY_OTHER);
+        }
+    }
+
+
 }

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

@@ -73,6 +73,7 @@ import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_EXPENSE_NO
 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_EXPENSE_OBJ_END_DATE_NULL;
 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_EXPENSE_OBJ_MONEY_ZERO;
 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_EXPENSE_OBJ_START_DATE_NULL;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_NOT_ALLOW_OPERATE_BY_OTHER;
 
 /**
  * 报销流程信息 Service 实现类
@@ -145,7 +146,10 @@ public class OaExpenseServiceImpl implements OaExpenseService {
         }
 
         OaExpenseDO oaExpense = BeanUtils.toBean(stagingReqVO, OaExpenseDO.class);
-        if (StringUtils.isBlank(oaExpense.getExpenseUuid())) {
+        if (oaExpense != null) {
+            OaExpenseDO oaExpenseDO = validateOaExpenseExists(oaExpense.getId());
+            validateOperator(loginUserId, Long.valueOf(oaExpenseDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaExpense.setExpenseUuid(uuid);
@@ -214,7 +218,10 @@ public class OaExpenseServiceImpl implements OaExpenseService {
 
 
         OaExpenseDO oaExpense = BeanUtils.toBean(commitReqVO, OaExpenseDO.class);
-        if (StringUtils.isBlank(oaExpense.getExpenseUuid())) {
+        if (oaExpense.getId() != null) {
+            OaExpenseDO oaExpenseDO = validateOaExpenseExists(oaExpense.getId());
+            validateOperator(loginUserId, Long.valueOf(oaExpenseDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaExpense.setExpenseUuid(uuid);
@@ -696,7 +703,8 @@ public class OaExpenseServiceImpl implements OaExpenseService {
     @Transactional(rollbackFor = Exception.class)
     public void deleteOaExpense(Long id) {
         // 校验存在
-        validateOaExpenseDelete(id);
+        OaExpenseDO oaExpenseDO = validateOaExpenseDelete(id);
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(oaExpenseDO.getCreator()));
         // 删除
         oaExpenseMapper.deleteById(id);
         // 删除子表数据
@@ -930,11 +938,12 @@ public class OaExpenseServiceImpl implements OaExpenseService {
         return getOaExpensePage(pageReqVO);
     }
 
-    private void validateOaExpenseDelete(Long id) {
+    private OaExpenseDO validateOaExpenseDelete(Long id) {
         OaExpenseDO oaExpenseDO = validateOaExpenseExists(id);
         if (!DictDataConstants.OA_AUDIT_STATUS_STAGING.equals(oaExpenseDO.getAuditStatus())) {
             throw exception(ErrorCodeConstants.DELETE_FAIL_NOT_STAGING);
         }
+        return oaExpenseDO;
     }
 
     private OaExpenseDO validateOaExpenseExists(Long id) {
@@ -945,6 +954,13 @@ public class OaExpenseServiceImpl implements OaExpenseService {
         return oaExpenseDO;
     }
 
+    private void validateOperator(Long loginUserId, Long creator) {
+        if (!Objects.equals(loginUserId, creator)) {
+            throw exception(OA_NOT_ALLOW_OPERATE_BY_OTHER);
+        }
+    }
+
+
     // @Resource
     // private OaExpenseMapper oaExpenseMapper;
     // @Resource

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

@@ -66,6 +66,7 @@ import java.util.stream.Collectors;
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.module.attendance.enums.ErrorCodeConstants.ATTENDANCE_EMAINING_ANNUAL_LEAVE_IS_INSUFFICIENT;
 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_LEAVE_NOT_EXISTS;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_NOT_ALLOW_OPERATE_BY_OTHER;
 
 /**
  * 请假流程信息 Service 实现类
@@ -131,7 +132,10 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         }
 
         OaLeaveDO oaLeave = BeanUtils.toBean(stagingReqVO, OaLeaveDO.class);
-        if (StringUtils.isBlank(oaLeave.getLeaveId())) {
+        if (oaLeave.getId() != null) {
+            OaLeaveDO oaLeaveDO = validateOaLeaveExists(oaLeave.getId());
+            validateOperator(loginUserId, Long.valueOf(oaLeaveDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaLeave.setLeaveId(uuid);
@@ -204,7 +208,10 @@ public class OaLeaveServiceImpl implements OaLeaveService {
 
 
         OaLeaveDO oaLeave = BeanUtils.toBean(commitReqVO, OaLeaveDO.class);
-        if (StringUtils.isBlank(oaLeave.getLeaveId())) {
+        if (oaLeave.getId() != null) {
+            OaLeaveDO oaLeaveDO = validateOaLeaveExists(oaLeave.getId());
+            validateOperator(loginUserId, Long.valueOf(oaLeaveDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaLeave.setLeaveId(uuid);
@@ -665,7 +672,8 @@ public class OaLeaveServiceImpl implements OaLeaveService {
     @Override
     public void deleteOaLeave(Long id) {
         // 校验存在
-        validateOaLeaveDelete(id);
+        OaLeaveDO oaLeaveDO = validateOaLeaveDelete(id);
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(oaLeaveDO.getCreator()));
         // 删除
         oaLeaveMapper.deleteById(id);
     }
@@ -893,11 +901,12 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         return getOaLeavePage(pageReqVO);
     }
 
-    private void validateOaLeaveDelete(Long id) {
+    private OaLeaveDO validateOaLeaveDelete(Long id) {
         OaLeaveDO oaLeaveDO = validateOaLeaveExists(id);
         if (!DictDataConstants.OA_AUDIT_STATUS_STAGING.equals(oaLeaveDO.getAuditStatus())) {
             throw exception(ErrorCodeConstants.DELETE_FAIL_NOT_STAGING);
         }
+        return oaLeaveDO;
     }
 
     private OaLeaveDO validateOaLeaveExists(Long id) {
@@ -908,4 +917,11 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         return oaLeaveDO;
     }
 
+    private void validateOperator(Long loginUserId, Long creator) {
+        if (!Objects.equals(loginUserId, creator)) {
+            throw exception(OA_NOT_ALLOW_OPERATE_BY_OTHER);
+        }
+    }
+
+
 }

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

@@ -60,6 +60,7 @@ import java.util.Objects;
 import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_NOT_ALLOW_OPERATE_BY_OTHER;
 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_OUT_NOT_EXISTS;
 
 /**
@@ -123,7 +124,10 @@ public class OaOutServiceImpl implements OaOutService {
         }
 
         OaOutDO oaOut = BeanUtils.toBean(stagingReqVO, OaOutDO.class);
-        if (StringUtils.isBlank(oaOut.getOutId())) {
+        if (oaOut.getId() != null) {
+            OaOutDO oaOutDO = validateOaOutExists(oaOut.getId());
+            validateOperator(loginUserId, Long.valueOf(oaOutDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaOut.setOutId(uuid);
@@ -185,7 +189,10 @@ public class OaOutServiceImpl implements OaOutService {
 
 
         OaOutDO oaOut = BeanUtils.toBean(commitReqVO, OaOutDO.class);
-        if (StringUtils.isBlank(oaOut.getOutId())) {
+        if (oaOut.getId() != null) {
+            OaOutDO oaOutDO = validateOaOutExists(oaOut.getId());
+            validateOperator(loginUserId, Long.valueOf(oaOutDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaOut.setOutId(uuid);
@@ -614,7 +621,8 @@ public class OaOutServiceImpl implements OaOutService {
     @Override
     public void deleteOaOut(Long id) {
         // 校验存在
-        validateOaOutDelete(id);
+        OaOutDO oaOutDO = validateOaOutDelete(id);
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(oaOutDO.getCreator()));
         // 删除
         oaOutMapper.deleteById(id);
     }
@@ -811,11 +819,12 @@ public class OaOutServiceImpl implements OaOutService {
         return getOaOutPage(pageReqVO);
     }
 
-    private void validateOaOutDelete(Long id) {
+    private OaOutDO validateOaOutDelete(Long id) {
         OaOutDO oaOutDO = validateOaOutExists(id);
         if (!DictDataConstants.OA_AUDIT_STATUS_STAGING.equals(oaOutDO.getAuditStatus())) {
             throw exception(ErrorCodeConstants.DELETE_FAIL_NOT_STAGING);
         }
+        return oaOutDO;
     }
 
     private OaOutDO validateOaOutExists(Long id) {
@@ -826,4 +835,11 @@ public class OaOutServiceImpl implements OaOutService {
         return oaOutDO;
     }
 
+    private void validateOperator(Long loginUserId, Long creator) {
+        if (!Objects.equals(loginUserId, creator)) {
+            throw exception(OA_NOT_ALLOW_OPERATE_BY_OTHER);
+        }
+    }
+
+
 }

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

@@ -59,6 +59,7 @@ import java.util.Objects;
 import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_NOT_ALLOW_OPERATE_BY_OTHER;
 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_PURCHASE_NOT_EXISTS;
 
 /**
@@ -122,7 +123,10 @@ public class OaPurchaseServiceImpl implements OaPurchaseService {
         }
 
         OaPurchaseDO oaPurchase = BeanUtils.toBean(stagingReqVO, OaPurchaseDO.class);
-        if (StringUtils.isBlank(oaPurchase.getPurchaseUuid())) {
+        if (oaPurchase.getId() == null) {
+            OaPurchaseDO oaPurchaseDO = validateOaPurchaseExists(oaPurchase.getId());
+            validateOperator(loginUserId, Long.valueOf(oaPurchaseDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaPurchase.setPurchaseUuid(uuid);
@@ -191,7 +195,10 @@ public class OaPurchaseServiceImpl implements OaPurchaseService {
 
 
         OaPurchaseDO oaPurchase = BeanUtils.toBean(commitReqVO, OaPurchaseDO.class);
-        if (StringUtils.isBlank(oaPurchase.getPurchaseUuid())) {
+        if (oaPurchase.getId() != null) {
+            OaPurchaseDO oaPurchaseDO = validateOaPurchaseExists(oaPurchase.getId());
+            validateOperator(loginUserId, Long.valueOf(oaPurchaseDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaPurchase.setPurchaseUuid(uuid);
@@ -642,7 +649,8 @@ public class OaPurchaseServiceImpl implements OaPurchaseService {
     @Transactional(rollbackFor = Exception.class)
     public void deleteOaPurchase(Long id) {
         // 校验存在
-        validateOaPurchaseDelete(id);
+        OaPurchaseDO oaPurchaseDO = validateOaPurchaseDelete(id);
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(oaPurchaseDO.getCreator()));
         // 删除
         oaPurchaseMapper.deleteById(id);
         // 删除子表数据
@@ -841,11 +849,12 @@ public class OaPurchaseServiceImpl implements OaPurchaseService {
         return getOaPurchasePage(pageReqVO);
     }
 
-    private void validateOaPurchaseDelete(Long id) {
+    private OaPurchaseDO validateOaPurchaseDelete(Long id) {
         OaPurchaseDO oaPurchaseDO = validateOaPurchaseExists(id);
         if (!DictDataConstants.OA_AUDIT_STATUS_STAGING.equals(oaPurchaseDO.getAuditStatus())) {
             throw exception(ErrorCodeConstants.DELETE_FAIL_NOT_STAGING);
         }
+        return oaPurchaseDO;
     }
 
     private OaPurchaseDO validateOaPurchaseExists(Long id) {
@@ -856,6 +865,13 @@ public class OaPurchaseServiceImpl implements OaPurchaseService {
         return oaPurchaseDO;
     }
 
+    private void validateOperator(Long loginUserId, Long creator) {
+        if (!Objects.equals(loginUserId, creator)) {
+            throw exception(OA_NOT_ALLOW_OPERATE_BY_OTHER);
+        }
+    }
+
+
 
     // @Resource
     // private OaPurchaseMapper oaPurchaseMapper;

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

@@ -59,6 +59,7 @@ import java.util.Objects;
 import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_NOT_ALLOW_OPERATE_BY_OTHER;
 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_RECEIVE_NOT_EXISTS;
 
 /**
@@ -123,7 +124,10 @@ public class OaReceiveServiceImpl implements OaReceiveService {
         }
 
         OaReceiveDO oaReceive = BeanUtils.toBean(stagingReqVO, OaReceiveDO.class);
-        if (StringUtils.isBlank(oaReceive.getReceiveUuid())) {
+        if (oaReceive.getId() != null) {
+            OaReceiveDO oaReceiveDO = validateOaReceiveExists(oaReceive.getId());
+            validateOperator(loginUserId, Long.valueOf(oaReceiveDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaReceive.setReceiveUuid(uuid);
@@ -197,7 +201,10 @@ public class OaReceiveServiceImpl implements OaReceiveService {
 
 
         OaReceiveDO oaReceive = BeanUtils.toBean(commitReqVO, OaReceiveDO.class);
-        if (StringUtils.isBlank(oaReceive.getReceiveUuid())) {
+        if (oaReceive.getId() != null) {
+            OaReceiveDO oaReceiveDO = validateOaReceiveExists(oaReceive.getId());
+            validateOperator(loginUserId, Long.valueOf(oaReceiveDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaReceive.setReceiveUuid(uuid);
@@ -644,7 +651,8 @@ public class OaReceiveServiceImpl implements OaReceiveService {
     @Transactional(rollbackFor = Exception.class)
     public void deleteOaReceive(Long id) {
         // 校验存在
-        validateOaReceiveDelete(id);
+        OaReceiveDO oaReceiveDO = validateOaReceiveDelete(id);
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(oaReceiveDO.getCreator()));
         // 删除
         oaReceiveMapper.deleteById(id);
         // 删除子表数据
@@ -844,11 +852,12 @@ public class OaReceiveServiceImpl implements OaReceiveService {
         return getOaReceivePage(pageReqVO);
     }
 
-    private void validateOaReceiveDelete(Long id) {
+    private OaReceiveDO validateOaReceiveDelete(Long id) {
         OaReceiveDO oaReceiveDO = validateOaReceiveExists(id);
         if (!DictDataConstants.OA_AUDIT_STATUS_STAGING.equals(oaReceiveDO.getAuditStatus())) {
             throw exception(ErrorCodeConstants.DELETE_FAIL_NOT_STAGING);
         }
+        return oaReceiveDO;
     }
 
     private OaReceiveDO validateOaReceiveExists(Long id) {
@@ -859,6 +868,13 @@ public class OaReceiveServiceImpl implements OaReceiveService {
         return oaReceiveDO;
     }
 
+    private void validateOperator(Long loginUserId, Long creator) {
+        if (!Objects.equals(loginUserId, creator)) {
+            throw exception(OA_NOT_ALLOW_OPERATE_BY_OTHER);
+        }
+    }
+
+
 
     // @Resource
     // private OaReceiveMapper oaReceiveMapper;

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

@@ -62,6 +62,7 @@ import java.util.Objects;
 import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_NOT_ALLOW_OPERATE_BY_OTHER;
 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_RENEW_NOT_EXISTS;
 
 /**
@@ -135,7 +136,10 @@ public class OaRenewServiceImpl implements OaRenewService {
         }
 
         OaRenewDO oaRenew = BeanUtils.toBean(stagingReqVO, OaRenewDO.class);
-        if (StringUtils.isBlank(oaRenew.getRenewId())) {
+        if (oaRenew.getId() != null) {
+            OaRenewDO oaRenewDO = validateOaRenewExists(oaRenew.getId());
+            validateOperator(loginUserId, Long.valueOf(oaRenewDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaRenew.setRenewId(uuid);
@@ -221,7 +225,10 @@ public class OaRenewServiceImpl implements OaRenewService {
 
 
         OaRenewDO oaRenew = BeanUtils.toBean(commitReqVO, OaRenewDO.class);
-        if (StringUtils.isBlank(oaRenew.getRenewId())) {
+        if (oaRenew.getId() != null) {
+            OaRenewDO oaRenewDO = validateOaRenewExists(oaRenew.getId());
+            validateOperator(loginUserId, Long.valueOf(oaRenewDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaRenew.setRenewId(uuid);
@@ -679,7 +686,8 @@ public class OaRenewServiceImpl implements OaRenewService {
     @Override
     public void deleteOaRenew(Long id) {
         // 校验存在
-        validateOaRenewDelete(id);
+        OaRenewDO oaRenewDO = validateOaRenewDelete(id);
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(oaRenewDO.getCreator()));
         // 删除
         oaRenewMapper.deleteById(id);
     }
@@ -874,11 +882,12 @@ public class OaRenewServiceImpl implements OaRenewService {
         return getOaRenewPage(pageReqVO);
     }
 
-    private void validateOaRenewDelete(Long id) {
+    private OaRenewDO validateOaRenewDelete(Long id) {
         OaRenewDO oaRenewDO = validateOaRenewExists(id);
         if (!DictDataConstants.OA_AUDIT_STATUS_STAGING.equals(oaRenewDO.getAuditStatus())) {
             throw exception(ErrorCodeConstants.DELETE_FAIL_NOT_STAGING);
         }
+        return oaRenewDO;
     }
 
     private OaRenewDO validateOaRenewExists(Long id) {
@@ -889,5 +898,12 @@ public class OaRenewServiceImpl implements OaRenewService {
         return oaRenewDO;
     }
 
+    private void validateOperator(Long loginUserId, Long creator) {
+        if (!Objects.equals(loginUserId, creator)) {
+            throw exception(OA_NOT_ALLOW_OPERATE_BY_OTHER);
+        }
+    }
+
+
 
 }

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

@@ -61,6 +61,7 @@ import java.util.Objects;
 import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_NOT_ALLOW_OPERATE_BY_OTHER;
 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_STAMP_NOT_EXISTS;
 
 /**
@@ -124,7 +125,10 @@ public class OaStampServiceImpl implements OaStampService {
         }
 
         OaStampDO oaStamp = BeanUtils.toBean(stagingReqVO, OaStampDO.class);
-        if (StringUtils.isBlank(oaStamp.getStampUuid())) {
+        if (oaStamp.getId() != null) {
+            OaStampDO oaStampDO = validateOaStampExists(oaStamp.getId());
+            validateOperator(loginUserId, Long.valueOf(oaStampDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaStamp.setStampUuid(uuid);
@@ -192,7 +196,10 @@ public class OaStampServiceImpl implements OaStampService {
 
 
         OaStampDO oaStamp = BeanUtils.toBean(commitReqVO, OaStampDO.class);
-        if (StringUtils.isBlank(oaStamp.getStampUuid())) {
+        if (oaStamp.getId() != null) {
+            OaStampDO oaStampDO = validateOaStampExists(oaStamp.getId());
+            validateOperator(loginUserId, Long.valueOf(oaStampDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaStamp.setStampUuid(uuid);
@@ -635,7 +642,8 @@ public class OaStampServiceImpl implements OaStampService {
     @Override
     public void deleteOaStamp(Long id) {
         // 校验存在
-        validateOaStampDelete(id);
+        OaStampDO oaStampDO = validateOaStampDelete(id);
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(oaStampDO.getCreator()));
         // 删除
         oaStampMapper.deleteById(id);
     }
@@ -848,11 +856,12 @@ public class OaStampServiceImpl implements OaStampService {
         return getOaStampPage(pageReqVO);
     }
 
-    private void validateOaStampDelete(Long id) {
+    private OaStampDO validateOaStampDelete(Long id) {
         OaStampDO oaStampDO = validateOaStampExists(id);
         if (!DictDataConstants.OA_AUDIT_STATUS_STAGING.equals(oaStampDO.getAuditStatus())) {
             throw exception(ErrorCodeConstants.DELETE_FAIL_NOT_STAGING);
         }
+        return oaStampDO;
     }
 
     private OaStampDO validateOaStampExists(Long id) {
@@ -863,5 +872,12 @@ public class OaStampServiceImpl implements OaStampService {
         return oaStampDO;
     }
 
+    private void validateOperator(Long loginUserId, Long creator) {
+        if (!Objects.equals(loginUserId, creator)) {
+            throw exception(OA_NOT_ALLOW_OPERATE_BY_OTHER);
+        }
+    }
+
+
 
 }

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

@@ -66,6 +66,7 @@ import java.util.Objects;
 import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_NOT_ALLOW_OPERATE_BY_OTHER;
 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_TURNOVER_NOT_EXISTS;
 
 /**
@@ -135,7 +136,10 @@ public class OaTurnoverServiceImpl implements OaTurnoverService {
         }
 
         OaTurnoverDO oaTurnover = BeanUtils.toBean(stagingReqVO, OaTurnoverDO.class);
-        if (StringUtils.isBlank(oaTurnover.getTurnoverId())) {
+        if (oaTurnover.getId() != null) {
+            OaTurnoverDO oaTurnoverDO = validateOaTurnoverExists(oaTurnover.getId());
+            validateOperator(loginUserId, Long.valueOf(oaTurnoverDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaTurnover.setTurnoverId(uuid);
@@ -206,7 +210,10 @@ public class OaTurnoverServiceImpl implements OaTurnoverService {
 
 
         OaTurnoverDO oaTurnover = BeanUtils.toBean(commitReqVO, OaTurnoverDO.class);
-        if (StringUtils.isBlank(oaTurnover.getTurnoverId())) {
+        if (oaTurnover.getId() != null) {
+            OaTurnoverDO oaTurnoverDO = validateOaTurnoverExists(oaTurnover.getId());
+            validateOperator(loginUserId, Long.valueOf(oaTurnoverDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaTurnover.setTurnoverId(uuid);
@@ -649,7 +656,8 @@ public class OaTurnoverServiceImpl implements OaTurnoverService {
     @Override
     public void deleteOaTurnover(Long id) {
         // 校验存在
-        validateOaTurnoverDelete(id);
+        OaTurnoverDO oaTurnoverDO = validateOaTurnoverDelete(id);
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(oaTurnoverDO.getCreator()));
         // 删除
         oaTurnoverMapper.deleteById(id);
     }
@@ -862,11 +870,12 @@ public class OaTurnoverServiceImpl implements OaTurnoverService {
         return getOaTurnoverPage(pageReqVO);
     }
 
-    private void validateOaTurnoverDelete(Long id) {
+    private OaTurnoverDO validateOaTurnoverDelete(Long id) {
         OaTurnoverDO oaTurnoverDO = validateOaTurnoverExists(id);
         if (!DictDataConstants.OA_AUDIT_STATUS_STAGING.equals(oaTurnoverDO.getAuditStatus())) {
             throw exception(ErrorCodeConstants.DELETE_FAIL_NOT_STAGING);
         }
+        return oaTurnoverDO;
     }
 
     private OaTurnoverDO validateOaTurnoverExists(Long id) {
@@ -877,5 +886,12 @@ public class OaTurnoverServiceImpl implements OaTurnoverService {
         return oaTurnoverDO;
     }
 
+    private void validateOperator(Long loginUserId, Long creator) {
+        if (!Objects.equals(loginUserId, creator)) {
+            throw exception(OA_NOT_ALLOW_OPERATE_BY_OTHER);
+        }
+    }
+
+
 
 }

+ 20 - 4
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/universal/OaUniversalServiceImpl.java

@@ -57,6 +57,7 @@ import java.util.Objects;
 import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_NOT_ALLOW_OPERATE_BY_OTHER;
 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_UNIVERSAL_NOT_EXISTS;
 
 /**
@@ -113,7 +114,10 @@ public class OaUniversalServiceImpl implements OaUniversalService {
         EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
 
         OaUniversalDO oaUniversal = BeanUtils.toBean(stagingReqVO, OaUniversalDO.class);
-        if (StringUtils.isBlank(oaUniversal.getUniversalId())) {
+        if (oaUniversal.getId() != null) {
+            OaUniversalDO oaUniversalDO = validateOaUniversalExists(oaUniversal.getId());
+            validateOperator(loginUserId, Long.valueOf(oaUniversalDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaUniversal.setUniversalId(uuid);
@@ -169,7 +173,10 @@ public class OaUniversalServiceImpl implements OaUniversalService {
         EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
 
         OaUniversalDO oaUniversal = BeanUtils.toBean(commitReqVO, OaUniversalDO.class);
-        if (StringUtils.isBlank(oaUniversal.getUniversalId())) {
+        if (oaUniversal.getId() != null) {
+            OaUniversalDO oaUniversalDO = validateOaUniversalExists(oaUniversal.getId());
+            validateOperator(loginUserId, Long.valueOf(oaUniversalDO.getCreator()));
+        } else {
             // 创建单据uuid
             String uuid = IdUtil.fastSimpleUUID();
             oaUniversal.setUniversalId(uuid);
@@ -538,7 +545,8 @@ public class OaUniversalServiceImpl implements OaUniversalService {
     @Override
     public void deleteOaUniversal(Long id) {
         // 校验存在
-        validateOaUniversalDelete(id);
+        OaUniversalDO oaUniversalDO = validateOaUniversalDelete(id);
+        validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(oaUniversalDO.getCreator()));
         // 删除
         oaUniversalMapper.deleteById(id);
     }
@@ -720,11 +728,12 @@ public class OaUniversalServiceImpl implements OaUniversalService {
         return getOaUniversalPage(pageReqVO);
     }
 
-    private void validateOaUniversalDelete(Long id) {
+    private OaUniversalDO validateOaUniversalDelete(Long id) {
         OaUniversalDO oaUniversalDO = validateOaUniversalExists(id);
         if (!DictDataConstants.OA_AUDIT_STATUS_STAGING.equals(oaUniversalDO.getAuditStatus())) {
             throw exception(ErrorCodeConstants.DELETE_FAIL_NOT_STAGING);
         }
+        return oaUniversalDO;
     }
 
     private OaUniversalDO validateOaUniversalExists(Long id) {
@@ -735,5 +744,12 @@ public class OaUniversalServiceImpl implements OaUniversalService {
         return oaUniversalDO;
     }
 
+    private void validateOperator(Long loginUserId, Long creator) {
+        if (!Objects.equals(loginUserId, creator)) {
+            throw exception(OA_NOT_ALLOW_OPERATE_BY_OTHER);
+        }
+    }
+
+
 
 }