Browse Source

fix: 修复保存修改异常

Closes B0061602
huangzqa 4 năm trước cách đây
mục cha
commit
0345eb8c95

+ 11 - 2
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/service/impl/ApproveServiceImpl.java

@@ -90,7 +90,6 @@ import java.util.stream.Collectors;
  * @date 2021/2/3 19:43
  */
 @Service
-@Transactional
 @EnableAsync
 public class ApproveServiceImpl implements IApproveService {
 
@@ -147,6 +146,9 @@ public class ApproveServiceImpl implements IApproveService {
     @Autowired
     private IApproveActRunIdentityLinkService approveActRunIdentityLinkService;
 
+    @Autowired
+    private ApproveServiceImpl approveService;
+
     /**
      * 工作流审批流程类型编码
      */
@@ -223,6 +225,7 @@ public class ApproveServiceImpl implements IApproveService {
      * @param approvalInfoDTO
      * @param oldCreateTime
      */
+    @Transactional
     public ApproveRecordInfo saveBase(ApprovalInfoDTO approvalInfoDTO, String disposeType, Date oldCreateTime) {
         ApproveRecordInfo result = null;
         ApprovalInfo approvalInfo = null;
@@ -341,6 +344,8 @@ public class ApproveServiceImpl implements IApproveService {
         } catch (Exception e) {
             resultStr = ApproveResultEnum.FAIL.getValue();
             failMsg = e.getMessage();
+            logger.error("e", e);
+            throw e;
         } finally {
             approveLogHelperService.buildFlowManageLogInsert(buildLogDto(approvalInfo, vo, resultStr, failMsg), approvalInfoDTO.getOperateType(), disposeType);
         }
@@ -354,6 +359,7 @@ public class ApproveServiceImpl implements IApproveService {
      * @param approvalInfoUpdateDTO
      * @return
      */
+    @Transactional
     @Override
     public ResponseStatus update(ApprovalInfoUpdateDTO approvalInfoUpdateDTO) {
         logger.info("=======" + JSONObject.toJSONString(approvalInfoUpdateDTO) + "========");
@@ -383,7 +389,7 @@ public class ApproveServiceImpl implements IApproveService {
                 }
                 needSaveUpdateLog = false;
                 //调用保存接口
-                ApproveRecordInfo result = saveBase(approvalInfoDTO, ManageDisposeTypeEnum.UPDATE.getValue(), approvalInfo.getCreateTime());
+                ApproveRecordInfo result = approveService.saveBase(approvalInfoDTO, ManageDisposeTypeEnum.UPDATE.getValue(), approvalInfo.getCreateTime());
                 return ResponseDTO.newInstance(result.getProcessInstanceId());
             } else {
                 approvalInfo.setApplyReason(approvalInfoDTO.getApplyReason());
@@ -459,6 +465,7 @@ public class ApproveServiceImpl implements IApproveService {
         } catch (Exception e) {
             resultStr = ApproveResultEnum.FAIL.getValue();
             failMsg = e.getMessage();
+            throw e;
         } finally {
             if (needSaveUpdateLog) {
                 approveLogHelperService.buildFlowManageLogUpdate(buildLogDto(approvalInfo, vo, resultStr, failMsg), needSaveOperateLog);
@@ -560,6 +567,7 @@ public class ApproveServiceImpl implements IApproveService {
      * @param appCode
      * @return
      */
+    @Transactional
     @Override
     public ResponseStatus approveOperate(String taskId, String processInstanceId, ApproveWorkFlowOprationEnum
             approveWorkFlowOprationEnum, TaskRequest taskRequest, String idcard, Map<String, String> userData, List<ActivitiHolder> activitiHolderList, String appCode) {
@@ -954,6 +962,7 @@ public class ApproveServiceImpl implements IApproveService {
      * @param id 申请单ID
      * @return
      */
+    @Transactional
     @Override
     public ResponseStatus deleteProcessInstance(String id) {
         ApprovalInfo approvalInfo = null;