|
@@ -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();
|
|
|
}
|
|
|
|
|
|
|