|
@@ -1,11 +1,15 @@
|
|
|
package com.dragonsoft.dcuc.approve.business.external.impl;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.dragoninfo.dcuc.common.annotation.CacheLock;
|
|
|
import com.dragoninfo.dcuc.common.utils.ResponseUtil;
|
|
|
import com.dragonsoft.dcuc.approve.business.api.IApproveApiBusiness;
|
|
|
import com.dragonsoft.dcuc.approve.business.external.IBuSyncBusiness;
|
|
|
+import com.dragonsoft.dcuc.approve.business.external.IDcucBusiness;
|
|
|
import com.dragonsoft.dcuc.approve.business.external.INoticeBusiness;
|
|
|
import com.dragonsoft.dcuc.approve.constants.ApproveConstants;
|
|
|
import com.dragonsoft.dcuc.approve.enumresources.bu.TaskStatusEnum;
|
|
@@ -15,6 +19,10 @@ import com.dragonsoft.dcuc.approve.model.dto.ApprovalInfoDTO;
|
|
|
import com.dragonsoft.dcuc.approve.model.dto.ApproveMessageInfoDTO;
|
|
|
import com.dragonsoft.dcuc.approve.model.req.bu.BuApproveSyncBizApproveReqVO;
|
|
|
import com.dragonsoft.dcuc.approve.model.req.bu.BuApproveSyncReqVO;
|
|
|
+import com.dragonsoft.dcuc.approve.model.req.v3.report.ReportApproveSyncBizApproveReqVO;
|
|
|
+import com.dragonsoft.dcuc.approve.model.req.v3.report.ReportApproveSyncBizGridReqVO;
|
|
|
+import com.dragonsoft.dcuc.approve.model.req.v3.report.ReportApproveSyncReqVO;
|
|
|
+import com.dragonsoft.dcuc.approve.model.vo.dcuc.OauthUserVO;
|
|
|
import com.dragonsoft.dcuc.approve.service.IApproveCirculationService;
|
|
|
import com.dragonsoft.dcuc.approve.service.IApproveRecordService;
|
|
|
import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
|
|
@@ -26,9 +34,15 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.text.ParseException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Collections;
|
|
|
import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.LinkedHashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Locale;
|
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
@@ -50,6 +64,8 @@ public class BuSyncBusinessImpl implements IBuSyncBusiness {
|
|
|
private INoticeBusiness noticeBusiness;
|
|
|
|
|
|
private IApproveApiBusiness approveApiBusiness;
|
|
|
+
|
|
|
+ private IDcucBusiness dcucBusiness;
|
|
|
|
|
|
@Autowired
|
|
|
public void setApproveApiBusiness(IApproveApiBusiness approveApiBusiness) {
|
|
@@ -70,6 +86,11 @@ public class BuSyncBusinessImpl implements IBuSyncBusiness {
|
|
|
public void setApproveRecordService(IApproveRecordService approveRecordService) {
|
|
|
this.approveRecordService = approveRecordService;
|
|
|
}
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ public void setDcucBusiness(IDcucBusiness dcucBusiness) {
|
|
|
+ this.dcucBusiness = dcucBusiness;
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
@CacheLock
|
|
@@ -176,8 +197,15 @@ public class BuSyncBusinessImpl implements IBuSyncBusiness {
|
|
|
Map<String, Object> bizData = new LinkedHashMap<>(2);
|
|
|
bizData.put(ApproveConstants.TASK_INFO, buApproveSyncBizApproveReqVO);
|
|
|
buApproveSyncReqVO.setBizData(bizData);
|
|
|
-
|
|
|
- ResponseStatus responseStatus = noticeBusiness.retryRequestSyncToBu(buApproveSyncReqVO);
|
|
|
+
|
|
|
+
|
|
|
+ // 报送到 BU 废掉了
|
|
|
+// ResponseStatus responseStatus = noticeBusiness.retryRequestSyncToBu(buApproveSyncReqVO);
|
|
|
+
|
|
|
+ // 报送到 BU V2版本
|
|
|
+ com.dragonsoft.dcuc.approve.model.req.bu.v2.BuApproveSyncReqVO basrVO = createTestV2(buApproveSyncReqVO);
|
|
|
+ ResponseStatus responseStatus = noticeBusiness.retryRequestSyncToBuV2(basrVO);
|
|
|
+
|
|
|
if (ResponseUtil.isSuccess(responseStatus)) {
|
|
|
approveRecordService.updateSyncFlag(id, BooleanEnum.TRUE);
|
|
|
return ResponseStatus.success();
|
|
@@ -185,7 +213,120 @@ public class BuSyncBusinessImpl implements IBuSyncBusiness {
|
|
|
approveRecordService.updateSyncFlag(id, BooleanEnum.FALSE);
|
|
|
return ResponseStatus.fail();
|
|
|
}
|
|
|
+ // 20241106 add 本地审批调整成BU V2 方案 start
|
|
|
+ private com.dragonsoft.dcuc.approve.model.req.bu.v2.BuApproveSyncReqVO createTestV2(BuApproveSyncReqVO reportApproveSyncReqVO) {
|
|
|
+
|
|
|
+ SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
|
|
|
+ SimpleDateFormat formatterDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ com.dragonsoft.dcuc.approve.model.req.bu.v2.BuApproveSyncReqVO basrVO = new com.dragonsoft.dcuc.approve.model.req.bu.v2.BuApproveSyncReqVO();
|
|
|
+
|
|
|
+ String taskId = reportApproveSyncReqVO.getTaskId();
|
|
|
+ Map<String, Object> bizData = reportApproveSyncReqVO.getBizData();
|
|
|
+ ReportApproveSyncBizApproveReqVO bizApproveReqVO = parseToReportApproveSyncBizApproveReqVO(bizData);
|
|
|
+ List<ReportApproveSyncBizGridReqVO> bizGridReqList = parseToReportApproveSyncBizGridReqVO(bizData);
|
|
|
+
|
|
|
+ Map<String,Object> bizDataV2 = new HashMap<>();
|
|
|
+ Map<String,Object> taskInfo = new HashMap<>();
|
|
|
+ taskInfo.put("title", bizApproveReqVO.getTitle());//任务名称
|
|
|
+ taskInfo.put("taskClass", bizApproveReqVO.getTaskClass());//任务类型编码
|
|
|
+ try {
|
|
|
+ taskInfo.put("taskTermStart", formatterDate.format(formatter.parse(bizApproveReqVO.getTaskTermStart())));//任务有效期开始时间
|
|
|
+ taskInfo.put("taskTermEnd", formatterDate.format(formatter.parse(bizApproveReqVO.getTaskTermEnd())));//任务有效期结束时间
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ taskInfo.put("taskStatus", bizApproveReqVO.getTaskStatus());//任务状态
|
|
|
+ List<Object> approveGrid = new ArrayList<>();
|
|
|
+
|
|
|
+ for (ReportApproveSyncBizGridReqVO reportApproveSyncBizGridReqVO : bizGridReqList) {
|
|
|
+ Map<String,Object> g1 = new HashMap<>();
|
|
|
+ g1.put("id", reportApproveSyncBizGridReqVO.getId());//要素或承办人数据唯一标识
|
|
|
+ g1.put("dataType", reportApproveSyncBizGridReqVO.getDataType());//业务数据类型
|
|
|
+ g1.put("elementContent", reportApproveSyncBizGridReqVO.getElementContent());//要素内容
|
|
|
+ g1.put("elementType", reportApproveSyncBizGridReqVO.getElementType());//要输类型编码
|
|
|
+ g1.put("elementTypeName", reportApproveSyncBizGridReqVO.getElementType());//要输类型名称
|
|
|
+ g1.put("elementTermStart", reportApproveSyncBizGridReqVO.getElementTermStart());//要素有效期开始时间
|
|
|
+ g1.put("elementTermEnd", reportApproveSyncBizGridReqVO.getElementTermEnd());//要素有效期结束时间
|
|
|
+ g1.put("handleUnitCode", reportApproveSyncBizGridReqVO.getHandleUnitCode());//承办人所在组织机构编码
|
|
|
+ g1.put("handleUnitName", reportApproveSyncBizGridReqVO.getHandleUnitName());//承办人所在组织机构名称
|
|
|
+ g1.put("handleUserIdCard", reportApproveSyncBizGridReqVO.getHandleUserId());//承办人身份证号
|
|
|
+ g1.put("handleUserName", reportApproveSyncBizGridReqVO.getHandleUserName());//承办人姓名
|
|
|
+ approveGrid.add(g1);
|
|
|
+ }
|
|
|
+
|
|
|
+ bizDataV2.put("taskInfo", taskInfo);
|
|
|
+ bizDataV2.put("approveGrid",approveGrid);
|
|
|
+
|
|
|
+ String createrId = reportApproveSyncReqVO.getCreaterId();
|
|
|
+ OauthUserVO oauthUserVO = dcucBusiness.getOauthUserInfoByIdcard(createrId);
|
|
|
+
|
|
|
+ basrVO.setAppId(reportApproveSyncReqVO.getAppId());
|
|
|
+ basrVO.setSourceOrgCode(oauthUserVO.getOrgCode());
|
|
|
+ basrVO.setTaskId(taskId);
|
|
|
+ String customFormat = "yyyy-MM-dd HH:mm:ss";
|
|
|
+ basrVO.setCreateTime(DateUtil.format(reportApproveSyncReqVO.getCreateTime(), customFormat));
|
|
|
+ basrVO.setCreatorIdCard(oauthUserVO.getIdcard());
|
|
|
+ basrVO.setCreatorUserName(oauthUserVO.getName());
|
|
|
+ basrVO.setCreatorUnitCode(oauthUserVO.getOrgCode());
|
|
|
+ basrVO.setCreatorUnitName(oauthUserVO.getOrgName());
|
|
|
+ basrVO.setLastReviewerIdCard(reportApproveSyncReqVO.getLastReviewerIdCard());
|
|
|
+ basrVO.setLastReviewerName(reportApproveSyncReqVO.getLastReviewerName());
|
|
|
+ basrVO.setLastReviewerUnitCode(reportApproveSyncReqVO.getLastReviewerUnitCode());
|
|
|
+ basrVO.setLastReviewerUnitName(reportApproveSyncReqVO.getLastReviewerUnitName());
|
|
|
+ basrVO.setFinishTime(DateUtil.format(reportApproveSyncReqVO.getFinishTime(), customFormat));
|
|
|
+
|
|
|
+
|
|
|
+ basrVO.setBizData(bizDataV2);
|
|
|
+
|
|
|
+ return basrVO;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 转换任务信息
|
|
|
+ *
|
|
|
+ * @param bizData 业务数据
|
|
|
+ * @return 任务信息
|
|
|
+ */
|
|
|
+ protected ReportApproveSyncBizApproveReqVO parseToReportApproveSyncBizApproveReqVO(Map<String, Object> bizData) {
|
|
|
+ if (CollUtil.isNotEmpty(bizData)) {
|
|
|
+ Object taskInfoObject = bizData.get(ApproveConstants.TASK_INFO);
|
|
|
+ ReportApproveSyncBizApproveReqVO reportApproveSyncBizApproveReqVO = new ReportApproveSyncBizApproveReqVO();
|
|
|
+ BeanUtil.copyProperties(taskInfoObject, reportApproveSyncBizApproveReqVO);
|
|
|
+ return reportApproveSyncBizApproveReqVO;
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 转换要素信息
|
|
|
+ *
|
|
|
+ * @param bizData 业务数据
|
|
|
+ * @return 要素信息
|
|
|
+ */
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ protected List<ReportApproveSyncBizGridReqVO> parseToReportApproveSyncBizGridReqVO(Map<String, Object> bizData) {
|
|
|
+ List<ReportApproveSyncBizGridReqVO> respList = Collections.emptyList();
|
|
|
+ if (CollUtil.isNotEmpty(bizData)) {
|
|
|
+ Object approveGridObject = bizData.get(ApproveConstants.APPROVE_GRID);
|
|
|
+
|
|
|
+ if (approveGridObject instanceof List) {
|
|
|
+
|
|
|
+ List<Object> approveGridObjectList = (List<Object>) approveGridObject;
|
|
|
+ if (ObjectUtil.isNotNull(approveGridObjectList)) {
|
|
|
+ respList = new ArrayList<>(approveGridObjectList.size());
|
|
|
+ for (Object approveGridItemObject : approveGridObjectList) {
|
|
|
+ ReportApproveSyncBizGridReqVO approveSyncBizGridReqVO = new ReportApproveSyncBizGridReqVO();
|
|
|
+ BeanUtil.copyProperties(approveGridItemObject, approveSyncBizGridReqVO);
|
|
|
+
|
|
|
+ respList.add(approveSyncBizGridReqVO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return respList;
|
|
|
+ }
|
|
|
|
|
|
+ // 20241106 add 本地审批调整成BU V2 方案 end
|
|
|
/**
|
|
|
* 转换
|
|
|
*
|