Quellcode durchsuchen

feat: 增加配置

huangzqa vor 1 Jahr
Ursprung
Commit
1331e0d944

+ 3 - 3
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/business/external/IBuSyncBusiness.java

@@ -1,7 +1,7 @@
 package com.dragonsoft.dcuc.approve.business.external;
 
 import com.dragonsoft.dcuc.approve.model.ApproveRecordInfo;
-import com.dragonsoft.dcuc.approve.model.vo.ApprovalInfoMsgItemDTO;
+import com.dragonsoft.dcuc.approve.model.vo.ApproveMessageInfoDTO;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 
 /**
@@ -33,9 +33,9 @@ public interface IBuSyncBusiness {
     /**
      * 同步到BU
      *
-     * @param approvalInfoMsgItemDTO 请求同步请求
+     * @param approveMessageInfoDTO 请求同步请求
      * @return 状态
      */
-    ResponseStatus syncToBu(ApprovalInfoMsgItemDTO approvalInfoMsgItemDTO);
+    ResponseStatus syncToBu(ApproveMessageInfoDTO approveMessageInfoDTO);
 
 }

+ 1 - 0
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/business/external/IDcucAuthBusiness.java

@@ -40,6 +40,7 @@ public interface IDcucAuthBusiness {
     /**
      * 判断是否命中红名单
      *
+     * @param checkIdcard     检查身份证号
      * @param flowTypeEnum    流程类型
      * @param resourceInfoDTO 资源列表
      * @return 命中状态

+ 65 - 25
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/business/external/impl/BuSyncBusinessImpl.java

@@ -1,27 +1,30 @@
 package com.dragonsoft.dcuc.approve.business.external.impl;
 
-import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Assert;
 import cn.hutool.core.util.StrUtil;
 import com.dragoninfo.dcuc.common.annotation.CacheLock;
 import com.dragoninfo.dcuc.common.utils.ResponseUtil;
-import com.dragonsoft.dcuc.approve.business.external.IBuSyncBusiness;
 import com.dragonsoft.dcuc.approve.business.INoticeBusiness;
+import com.dragonsoft.dcuc.approve.business.external.IBuSyncBusiness;
 import com.dragonsoft.dcuc.approve.constants.ApproveConstants;
 import com.dragonsoft.dcuc.approve.enumresources.bu.ApproveModeEnum;
+import com.dragonsoft.dcuc.approve.model.ApprovalInfo;
 import com.dragonsoft.dcuc.approve.model.ApproveCirculationInfo;
 import com.dragonsoft.dcuc.approve.model.ApproveRecordInfo;
 import com.dragonsoft.dcuc.approve.model.resp.bu.BuApproveSyncBizApproveReqVO;
 import com.dragonsoft.dcuc.approve.model.resp.bu.BuApproveSyncBizDataReqVO;
 import com.dragonsoft.dcuc.approve.model.resp.bu.BuApproveSyncReqVO;
-import com.dragonsoft.dcuc.approve.model.vo.ApprovalInfoMsgItemDTO;
+import com.dragonsoft.dcuc.approve.model.vo.ApproveMessageInfoDTO;
 import com.dragonsoft.dcuc.approve.service.IApproveCirculationService;
 import com.dragonsoft.dcuc.approve.service.IApproveRecordService;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
+import com.dragonsoft.duceap.base.entity.security.SecurityUser;
 import com.dragonsoft.duceap.base.enums.BooleanEnum;
+import com.dragonsoft.duceap.core.persistent.transaction.TransactionSupport;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -62,24 +65,26 @@ public class BuSyncBusinessImpl implements IBuSyncBusiness {
     @CacheLock
     public ResponseStatus syncTuBu() {
         List<ApproveRecordInfo> unSyncList = approveRecordService.getUnSyncList();
-        for (ApproveRecordInfo approveRecordInfo : unSyncList) {
-            String id = approveRecordInfo.getId();
-            String approveNo = approveRecordInfo.getApproveNo();
-            //  检查任务编号是否正确?,还是初始化脚本就处理
-            if (isStanderTaskNo(approveNo)) {
-                ResponseStatus responseStatus = syncToBu(approveRecordInfo);
-                BooleanEnum booleanEnum = BooleanEnum.TRUE;
-                if (ResponseUtil.isFail(responseStatus)) {
-                    log.error("同步到BU出错:{}", responseStatus.getMessage());
-                    booleanEnum = BooleanEnum.FALSE;
+        TransactionSupport.execute(() -> {
+            for (ApproveRecordInfo approveRecordInfo : unSyncList) {
+                String id = approveRecordInfo.getId();
+                String approveNo = approveRecordInfo.getApproveNo();
+                //  检查任务编号是否正确?,还是初始化脚本就处理
+                if (isStanderTaskNo(approveNo)) {
+                    ResponseStatus responseStatus = syncToBu(approveRecordInfo);
+                    BooleanEnum booleanEnum = BooleanEnum.TRUE;
+                    if (ResponseUtil.isFail(responseStatus)) {
+                        log.error("同步到BU出错:{}", responseStatus.getMessage());
+                        booleanEnum = BooleanEnum.FALSE;
+                    }
+                    approveRecordService.updateSyncFlag(id, booleanEnum);
+
+                } else {
+                    // 非标准的任务ID默认设置为成功
+                    approveRecordService.updateSyncFlag(id, BooleanEnum.TRUE);
                 }
-                approveRecordService.updateSyncFlag(id, booleanEnum);
-
-            } else {
-                // 非标准的任务ID默认设置为成功
-                approveRecordService.updateSyncFlag(id, BooleanEnum.TRUE);
             }
-        }
+        });
         return ResponseStatus.success();
     }
 
@@ -96,7 +101,7 @@ public class BuSyncBusinessImpl implements IBuSyncBusiness {
         if (!taskNo.startsWith(ApproveConstants.TASK_ID_PREFIX)) {
             return false;
         }
-        return taskNo.length() == 38;
+        return taskNo.length() == ApproveConstants.TAK_ID_LENGTH;
     }
 
     /**
@@ -105,6 +110,7 @@ public class BuSyncBusinessImpl implements IBuSyncBusiness {
      * @param approveRecordInfo 请求同步请求
      * @return 状态
      */
+    @Transactional(rollbackFor = Throwable.class)
     @Override
     public ResponseStatus syncToBu(ApproveRecordInfo approveRecordInfo) {
         Assert.notNull(approveRecordInfo);
@@ -147,13 +153,47 @@ public class BuSyncBusinessImpl implements IBuSyncBusiness {
         return ResponseStatus.fail();
     }
 
+    @Transactional(rollbackFor = Throwable.class)
     @Override
-    public ResponseStatus syncToBu(ApprovalInfoMsgItemDTO approvalInfoMsgItemDTO) {
-        ApproveRecordInfo approveRecordInfo = new ApproveRecordInfo();
-        BeanUtil.copyProperties(approvalInfoMsgItemDTO, approveRecordInfo);
-        // todo 转换
+    public ResponseStatus syncToBu(ApproveMessageInfoDTO approveMessageInfoDTO) {
+        ApprovalInfo approvalInfo = approveMessageInfoDTO.getApprovalInfo();
+        String id = approvalInfo.getId();
+
+        BuApproveSyncReqVO buApproveSyncReqVO = new BuApproveSyncReqVO();
+        buApproveSyncReqVO.setAppId(approvalInfo.getAppCode());
+        buApproveSyncReqVO.setAppName(approvalInfo.getAppName());
+        buApproveSyncReqVO.setCreateTime(approvalInfo.getCreateTime());
+        buApproveSyncReqVO.setFinishTime(approvalInfo.getUpdateTime());
+        buApproveSyncReqVO.setPid(approvalInfo.getApplicantIdcard());
+
+        SecurityUser securityUser = approveMessageInfoDTO.getSecurityUser();
+
+        Assert.notNull(securityUser);
+        // 设置最终审批人信息
+        buApproveSyncReqVO.setLastReviewerIdCard(securityUser.getIdcard());
+        buApproveSyncReqVO.setLastReviewerName(securityUser.getName());
+        buApproveSyncReqVO.setLastReviewerUnitCode(securityUser.getSecurityOrg());
+        buApproveSyncReqVO.setLastReviewerUnit(securityUser.getSecurityOrgName());
+
+        BuApproveSyncBizApproveReqVO buApproveSyncBizApproveReqVO = new BuApproveSyncBizApproveReqVO();
+        buApproveSyncBizApproveReqVO.setBizId(approvalInfo.getApproveNo());
+        buApproveSyncBizApproveReqVO.setBizTitle(approvalInfo.getProcessTitle());
+        buApproveSyncBizApproveReqVO.setTaskClass(approvalInfo.getApproveTaskClass());
+        buApproveSyncBizApproveReqVO.setApproveMode(ApproveModeEnum.NORMAL.value);
+        buApproveSyncBizApproveReqVO.setBizTermStart(approvalInfo.getStartTime());
+        buApproveSyncBizApproveReqVO.setBizTermEnd(approvalInfo.getEndTime());
 
-        return syncToBu(approveRecordInfo);
+        BuApproveSyncBizDataReqVO buApproveSyncBizDataReqVO = new BuApproveSyncBizDataReqVO();
+        buApproveSyncBizDataReqVO.setBizApprove(buApproveSyncBizApproveReqVO);
+        buApproveSyncReqVO.setBizData(buApproveSyncBizDataReqVO);
+
+        ResponseStatus responseStatus = noticeBusiness.retryRequestSyncToBu(buApproveSyncReqVO);
+        if (ResponseUtil.isSuccess(responseStatus)) {
+            approveRecordService.updateSyncFlag(id, BooleanEnum.TRUE);
+            return ResponseStatus.success();
+        }
+        approveRecordService.updateSyncFlag(id, BooleanEnum.FALSE);
+        return ResponseStatus.fail();
     }
 
 

+ 1 - 7
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/business/impl/ApproveLogBusinessImpl.java

@@ -12,8 +12,8 @@ import com.dragoninfo.dcuc.duceap.enums.OperateDisposeTypeEnum;
 import com.dragoninfo.dcuc.duceap.enums.RequestDisposeTypeEnum;
 import com.dragoninfo.dcuc.duceap.enums.SchemeTypeEnum;
 import com.dragonsoft.dcuc.approve.business.IApproveLogBusiness;
-import com.dragonsoft.dcuc.approve.business.external.IDcucBusiness;
 import com.dragonsoft.dcuc.approve.business.IRiskBusiness;
+import com.dragonsoft.dcuc.approve.business.external.IDcucBusiness;
 import com.dragonsoft.dcuc.approve.constants.ApproveConstants;
 import com.dragonsoft.dcuc.approve.dto.ApproveLogDTO;
 import com.dragonsoft.dcuc.approve.enumresources.*;
@@ -73,8 +73,6 @@ public class ApproveLogBusinessImpl implements IApproveLogBusiness {
 
     private IRiskLogService riskLogService;
 
-    private IApproveCirculationService approveCirculationService;
-
     private ApproveEventPublish approveEventPublish;
 
     private IRiskSchemeService riskSchemeService;
@@ -118,10 +116,6 @@ public class ApproveLogBusinessImpl implements IApproveLogBusiness {
         this.riskLogService = riskLogService;
     }
 
-    @Autowired
-    public void setApproveCirculationService(IApproveCirculationService approveCirculationService) {
-        this.approveCirculationService = approveCirculationService;
-    }
 
     @Autowired
     public void setApproveEventPublish(ApproveEventPublish approveEventPublish) {

+ 1 - 1
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/event/listener/DcmsSendFinalResultListener.java

@@ -72,7 +72,7 @@ public class DcmsSendFinalResultListener implements ApplicationListener<ApproveF
         String processInstanceId = approveMessageInfoDTO.getProcessInstanceId();
         String approveNo = approveMessageInfoDTO.getApproveNo();
         String sourceAppCode = approveMessageInfoDTO.getSourceAppCode();
-        ApprovalInfoMsgItemDTO approvalInfoMsgItemDTO = approveMessageInfoDTO.getApproveInfo();
+        ApprovalInfoMsgItemDTO approvalInfoMsgItemDTO = approveMessageInfoDTO.getApprovalInfoMsgItemDTO();
 
         if (StrUtil.isNotBlank(callbackUrl)) {
             log.info("审批单:{} 有设置回调地址,不发送审批结果回调消息", approveNo);

+ 1 - 1
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/event/listener/HttpCallbackSendFinalResultListener.java

@@ -39,7 +39,7 @@ public class HttpCallbackSendFinalResultListener implements ApplicationListener<
 
         ApproveMessageInfoDTO approveMessageInfoDTO = event.getApproveMessageInfoDTO();
         String processInstanceId = approveMessageInfoDTO.getProcessInstanceId();
-        ApprovalInfoMsgItemDTO approvalInfoMsgItemDTO = approveMessageInfoDTO.getApproveInfo();
+        ApprovalInfoMsgItemDTO approvalInfoMsgItemDTO = approveMessageInfoDTO.getApprovalInfoMsgItemDTO();
         ApproveWorkFlowOperationEnum approveResult = approveMessageInfoDTO.getApproveResult();
         String approveNo = approveMessageInfoDTO.getApproveNo();
 

+ 1 - 3
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/event/listener/SyncToBuSendFinalResultListener.java

@@ -4,7 +4,6 @@ import com.dragoninfo.dcuc.common.utils.ResponseUtil;
 import com.dragonsoft.dcuc.approve.business.external.IBuSyncBusiness;
 import com.dragonsoft.dcuc.approve.enumresources.ApproveWorkFlowOperationEnum;
 import com.dragonsoft.dcuc.approve.event.event.ApproveFinalResultEvent;
-import com.dragonsoft.dcuc.approve.model.vo.ApprovalInfoMsgItemDTO;
 import com.dragonsoft.dcuc.approve.model.vo.ApproveMessageInfoDTO;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import lombok.extern.slf4j.Slf4j;
@@ -36,9 +35,8 @@ public class SyncToBuSendFinalResultListener implements ApplicationListener<Appr
         ApproveMessageInfoDTO approveMessageInfoDTO = event.getApproveMessageInfoDTO();
         ApproveWorkFlowOperationEnum approveResult = approveMessageInfoDTO.getApproveResult();
 
-        ApprovalInfoMsgItemDTO approvalInfoMsgItemDTO = approveMessageInfoDTO.getApproveInfo();
         if (approveResult.equals(ApproveWorkFlowOperationEnum.COMPLETE_AGREE)) {
-            ResponseStatus responseStatus = buSyncBusiness.syncToBu(approvalInfoMsgItemDTO);
+            ResponseStatus responseStatus = buSyncBusiness.syncToBu(approveMessageInfoDTO);
             if (ResponseUtil.isFail(responseStatus)) {
                 log.error("sync to bu error: {}", responseStatus.getMessage());
             }

+ 5 - 0
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/model/ApprovalInfo.java

@@ -137,6 +137,11 @@ public class ApprovalInfo implements Serializable {
      */
     private String appCode;
 
+    /**
+     * 应用名称
+     */
+    private String appName;
+
     /**
      * 有效时间起始
      */

+ 17 - 2
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/model/vo/ApproveMessageInfoDTO.java

@@ -5,6 +5,8 @@ import cn.hutool.core.lang.Assert;
 import com.dragonsoft.dcuc.approve.dto.ResourceInfoDTO;
 import com.dragonsoft.dcuc.approve.enumresources.ApproveWorkFlowOperationEnum;
 import com.dragonsoft.dcuc.approve.model.ApprovalInfo;
+import com.dragonsoft.duceap.base.entity.security.SecurityUser;
+import com.dragonsoft.duceap.base.utils.UserContextUtils;
 import lombok.Data;
 
 /**
@@ -51,17 +53,28 @@ public class ApproveMessageInfoDTO {
     /**
      * 审批单信息
      */
-    private ApprovalInfoMsgItemDTO approveInfo;
+    private ApprovalInfoMsgItemDTO approvalInfoMsgItemDTO;
 
     /**
      * 审批状态
      */
     private ApproveWorkFlowOperationEnum approveResult;
 
+    /**
+     * 审批单信息
+     */
+    private ApprovalInfo approvalInfo;
+
+    /**
+     * 审批人信息
+     */
+    private SecurityUser securityUser;
+
 
     public static ApproveMessageInfoDTO newInstance(ApprovalInfo approvalInfo, ApproveWorkFlowOperationEnum approveResult, String approveMessage) {
         Assert.notNull(approvalInfo);
         Assert.notNull(approveResult);
+        SecurityUser currentUser = UserContextUtils.getCurrentUser();
 
         String approveNo = approvalInfo.getApproveNo();
         String appCode = approvalInfo.getAppCode();
@@ -79,10 +92,12 @@ public class ApproveMessageInfoDTO {
         approveMessageInfoDTO.setProcessInstanceId(processInstanceId);
         approveMessageInfoDTO.setMessageId(messageId);
         approveMessageInfoDTO.setSourceAppCode(appCode);
-        approveMessageInfoDTO.setApproveInfo(approvalInfoMsgItemDTO);
+        approveMessageInfoDTO.setApprovalInfoMsgItemDTO(approvalInfoMsgItemDTO);
         approveMessageInfoDTO.setApproveResult(approveResult);
         approveMessageInfoDTO.setApproveMessage(approveMessage);
         approveMessageInfoDTO.setCallbackUrl(callbackUrl);
+        approveMessageInfoDTO.setApprovalInfo(approvalInfo);
+        approveMessageInfoDTO.setSecurityUser(currentUser);
 
         return approveMessageInfoDTO;
     }