|
@@ -1,10 +1,26 @@
|
|
|
package com.dragonsoft.dcuc.approve.business.impl;
|
|
|
|
|
|
-import cn.hutool.core.util.ObjectUtil;
|
|
|
-import cn.hutool.core.util.StrUtil;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.web.context.request.RequestContextHolder;
|
|
|
+import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
+
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.dragoninfo.dcuc.common.Constants;
|
|
|
+import com.dragoninfo.dcuc.common.enums.UserExtInfoEnum;
|
|
|
import com.dragoninfo.dcuc.common.utils.LangUtil;
|
|
|
import com.dragoninfo.dcuc.common.utils.ResponseUtil;
|
|
|
import com.dragoninfo.dcuc.duceap.enums.ManageDisposeTypeEnum;
|
|
@@ -15,22 +31,37 @@ import com.dragonsoft.dcuc.approve.business.IApproveLogBusiness;
|
|
|
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.enumresources.ApproveResultEnum;
|
|
|
+import com.dragonsoft.dcuc.approve.enumresources.ApproveWorkFlowOperationEnum;
|
|
|
+import com.dragonsoft.dcuc.approve.enumresources.CommitTypeEnum;
|
|
|
+import com.dragonsoft.dcuc.approve.enumresources.LogReceiverEnum;
|
|
|
+import com.dragonsoft.dcuc.approve.enumresources.LogTypeEnum;
|
|
|
+import com.dragonsoft.dcuc.approve.enumresources.QmApproveTypeEnum;
|
|
|
+import com.dragonsoft.dcuc.approve.enumresources.QmApproveTypeEnumV2;
|
|
|
+import com.dragonsoft.dcuc.approve.event.ApproveEventPublish;
|
|
|
+import com.dragonsoft.dcuc.approve.model.FlowManageLog;
|
|
|
+import com.dragonsoft.dcuc.approve.model.OperateLog;
|
|
|
+import com.dragonsoft.dcuc.approve.model.RequestLog;
|
|
|
+import com.dragonsoft.dcuc.approve.model.RiskLog;
|
|
|
+import com.dragonsoft.dcuc.approve.model.RiskScheme;
|
|
|
import com.dragonsoft.dcuc.approve.model.dto.ApprovalInfoDTO;
|
|
|
import com.dragonsoft.dcuc.approve.model.dto.ApproveLogDTO;
|
|
|
-import com.dragonsoft.dcuc.approve.enumresources.*;
|
|
|
-import com.dragonsoft.dcuc.approve.event.ApproveEventPublish;
|
|
|
-import com.dragonsoft.dcuc.approve.model.*;
|
|
|
-import com.dragonsoft.dcuc.approve.model.resp.OperateRespVO;
|
|
|
import com.dragonsoft.dcuc.approve.model.dto.LogDto;
|
|
|
import com.dragonsoft.dcuc.approve.model.dto.LogInfoMetaDTO;
|
|
|
import com.dragonsoft.dcuc.approve.model.dto.ProcessInstanceInfoDTO;
|
|
|
import com.dragonsoft.dcuc.approve.model.dto.QmOperateLogDTO;
|
|
|
+import com.dragonsoft.dcuc.approve.model.resp.OperateRespVO;
|
|
|
import com.dragonsoft.dcuc.approve.model.vo.dcuc.OauthUserVO;
|
|
|
import com.dragonsoft.dcuc.approve.properties.ApproveProperties;
|
|
|
-import com.dragonsoft.dcuc.approve.service.*;
|
|
|
+import com.dragonsoft.dcuc.approve.service.IFlowManageLogService;
|
|
|
+import com.dragonsoft.dcuc.approve.service.IOperateLogService;
|
|
|
+import com.dragonsoft.dcuc.approve.service.IRequestLogService;
|
|
|
+import com.dragonsoft.dcuc.approve.service.IRiskLogService;
|
|
|
+import com.dragonsoft.dcuc.approve.service.IRiskSchemeService;
|
|
|
import com.dragonsoft.dcuc.approve.utils.ProofsUtil;
|
|
|
import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
|
|
|
import com.dragonsoft.duceap.base.entity.security.BaseSecurityUser;
|
|
|
+import com.dragonsoft.duceap.base.entity.security.SecurityUser;
|
|
|
import com.dragonsoft.duceap.base.exception.ApplicationException;
|
|
|
import com.dragonsoft.duceap.base.utils.UserContextUtils;
|
|
|
import com.dragonsoft.duceap.commons.util.enums.EnumUtils;
|
|
@@ -41,17 +72,10 @@ import com.dragonsoft.duceap.duwf.api.model.ProcessInstanceVO;
|
|
|
import com.dragonsoft.duceap.duwf.api.model.TaskDefinitionVo;
|
|
|
import com.dragonsoft.duceap.duwf.api.model.TaskHistoryDetailVo;
|
|
|
import com.dragonsoft.duceap.workflow.client.WorkflowClientFactory;
|
|
|
-import org.slf4j.Logger;
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
-import org.springframework.beans.BeanUtils;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.web.context.request.RequestContextHolder;
|
|
|
-import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
-import java.util.*;
|
|
|
-import java.util.stream.Collectors;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
|
|
|
/**
|
|
|
* 代码千万行,注释第一行,编码不规范,同事两行泪
|
|
@@ -165,7 +189,7 @@ public class ApproveLogBusinessImpl implements IApproveLogBusiness {
|
|
|
break;
|
|
|
case RECALL:
|
|
|
//审批请求日志
|
|
|
- buildRequestLog(RequestDisposeTypeEnum.RECALL.getValue(), logDto, flowNodeCode, flowNodeName, taskKey, flowKey, processInstanceId, "22");
|
|
|
+ buildRequestLog(RequestDisposeTypeEnum.RECALL, logDto, flowNodeCode, flowNodeName, taskKey, flowKey, processInstanceId, "22");
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
@@ -182,7 +206,7 @@ public class ApproveLogBusinessImpl implements IApproveLogBusiness {
|
|
|
* @param taskKey 任务key
|
|
|
* @param flowKey 流程key
|
|
|
*/
|
|
|
- private void buildRequestLog(String disposeType, LogDto logDto, String flowNodeCode, String flowNodeName,
|
|
|
+ private void buildRequestLog(RequestDisposeTypeEnum disposeTypeEnum, LogDto logDto, String flowNodeCode, String flowNodeName,
|
|
|
String taskKey, String flowKey, String processInstanceId, String businessCode) {
|
|
|
|
|
|
ApprovalInfoDTO approvalInfoDTO = logDto.getApprovalInfoDTO();
|
|
@@ -192,7 +216,7 @@ public class ApproveLogBusinessImpl implements IApproveLogBusiness {
|
|
|
requestLog.setOrgCode(approvalInfoDTO.getApplicantOrgCode());
|
|
|
requestLog.setBusinessCode(approvalInfoDTO.getBusinessCode());
|
|
|
requestLog.setTitle(approvalInfoDTO.getProcessTitle());
|
|
|
- requestLog.setDisposeType(disposeType);
|
|
|
+ requestLog.setDisposeType(disposeTypeEnum.getValue());
|
|
|
requestLog.setResult(logDto.getResult());
|
|
|
requestLog.setFailMsg(logDto.getFailMsg());
|
|
|
requestLog.setCreateIp(logDto.getCreateIp());
|
|
@@ -200,7 +224,8 @@ public class ApproveLogBusinessImpl implements IApproveLogBusiness {
|
|
|
// requestLog.setOperateContent(JSON.toJSONString(logDto.getApprovalInfo()));
|
|
|
requestLog.setCreateUser(logDto.getCreateUser());
|
|
|
requestLog.setCreateUserName(logDto.getCreateUserName());
|
|
|
- requestLog.setCreateTime(new Date());
|
|
|
+ Date date = new Date();
|
|
|
+ requestLog.setCreateTime(date);
|
|
|
requestLog.setFlowNodeCode(flowNodeCode);
|
|
|
requestLog.setFlowNodeName(flowNodeName);
|
|
|
requestLog.setApproveRecordId(approvalInfoDTO.getId());
|
|
@@ -217,6 +242,24 @@ public class ApproveLogBusinessImpl implements IApproveLogBusiness {
|
|
|
// 请求发起
|
|
|
logInfoMetaDTO.setBusinessType(businessCode);
|
|
|
|
|
|
+
|
|
|
+ // 2024-8-21 对接BU新规范
|
|
|
+ logInfoMetaDTO.setTaskId(approvalInfoDTO.getTaskId());
|
|
|
+ logInfoMetaDTO.setTaskName(approvalInfoDTO.getTaskName());
|
|
|
+ logInfoMetaDTO.setAppName(approvalInfoDTO.getAppName());
|
|
|
+ logInfoMetaDTO.setOperatorCertNo(approvalInfoDTO.getApplicantIdcard());
|
|
|
+ logInfoMetaDTO.setOperatorName(approvalInfoDTO.getApplicantName());
|
|
|
+ logInfoMetaDTO.setOperatorOrgCode(approvalInfoDTO.getApplicantOrgCode());
|
|
|
+ logInfoMetaDTO.setOperatorOrgName(approvalInfoDTO.getApplicantOrgName());
|
|
|
+ logInfoMetaDTO.setOperateTime(DateUtil.format(date, "yyyy-MM-dd HH:mm:ss"));
|
|
|
+
|
|
|
+ if (RequestDisposeTypeEnum.START.equals(disposeTypeEnum)) {
|
|
|
+ logInfoMetaDTO.setOperateType(QmApproveTypeEnumV2.START.getValue());
|
|
|
+ }else if(RequestDisposeTypeEnum.RECALL.equals(disposeTypeEnum)) {
|
|
|
+ logInfoMetaDTO.setOperateType(QmApproveTypeEnumV2.RECALL.getValue());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
sendInfo(JSON.toJSONString(requestLog), "审批请求日志", logInfoMetaDTO);
|
|
|
}
|
|
|
|
|
@@ -267,6 +310,23 @@ public class ApproveLogBusinessImpl implements IApproveLogBusiness {
|
|
|
logInfoMetaDTO.setBusinessType(operateDisposeTypeEnum.businessTypeCode);
|
|
|
logInfoMetaDTO.setNeedSendRedListRisk(dto.getNeedSendRedListRisk());
|
|
|
logInfoMetaDTO.setRedListOperateRespVO(JsonUtils.toJSONString(dto.getRedListOperateRespVO()));
|
|
|
+ // 2024-8-21 对接BU新规范
|
|
|
+ logInfoMetaDTO.setTaskId(approvalInfoDTO.getTaskId());
|
|
|
+ logInfoMetaDTO.setTaskName(approvalInfoDTO.getTaskName());
|
|
|
+ logInfoMetaDTO.setAppName(approvalInfoDTO.getAppName());
|
|
|
+ logInfoMetaDTO.setOperatorCertNo(approvalInfoDTO.getApplicantIdcard());
|
|
|
+ logInfoMetaDTO.setOperatorName(approvalInfoDTO.getApplicantName());
|
|
|
+ logInfoMetaDTO.setOperatorOrgCode(approvalInfoDTO.getApplicantOrgCode());
|
|
|
+ logInfoMetaDTO.setOperatorOrgName(approvalInfoDTO.getApplicantOrgName());
|
|
|
+ logInfoMetaDTO.setOperateTime(DateUtil.format(dto.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
+
|
|
|
+ if (OperateDisposeTypeEnum.COMPLETE_DISAGREE.equals(operateDisposeTypeEnum)) {
|
|
|
+ logInfoMetaDTO.setOperateType(QmApproveTypeEnumV2.REBACK.getValue());
|
|
|
+ }else if(OperateDisposeTypeEnum.COMPLETE_AGREE.equals(operateDisposeTypeEnum)) {
|
|
|
+ logInfoMetaDTO.setOperateType(QmApproveTypeEnumV2.APPROVE.getValue());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
//发送审批操作日志消息
|
|
|
logger.info("=====发送审批操作日志消息,消息体为:{}====", JSON.toJSONString(operateLog));
|
|
|
sendInfo(JSON.toJSONString(operateLog), "审批操作日志", logInfoMetaDTO);
|
|
@@ -525,7 +585,7 @@ public class ApproveLogBusinessImpl implements IApproveLogBusiness {
|
|
|
.requestIdcard(requestIdcard)
|
|
|
.requestUsername(requestUsername)
|
|
|
.requestApproveIp(requestApproveIp)
|
|
|
- .flowFinish(flowFinish)
|
|
|
+ .flowFinish(flowFinish).logInfoMetaDTO(logInfoMetaDTO)
|
|
|
.build();
|
|
|
|
|
|
approveEventPublish.publishOperateEvent(qmOperateLogDTO);
|
|
@@ -571,7 +631,7 @@ public class ApproveLogBusinessImpl implements IApproveLogBusiness {
|
|
|
.requestApproveIp(createIp)
|
|
|
.approveIdcard(applicantIdcard)
|
|
|
.businessType(businessType)
|
|
|
- .approveTime(createTime)
|
|
|
+ .approveTime(createTime).logInfoMetaDTO(logInfoMetaDTO)
|
|
|
.build();
|
|
|
|
|
|
approveEventPublish.publishOperateEvent(qmOperateLogDTO);
|
|
@@ -626,7 +686,7 @@ public class ApproveLogBusinessImpl implements IApproveLogBusiness {
|
|
|
.approveTime(createTime)
|
|
|
.requestIdcard(requestIdcard)
|
|
|
.requestUsername(requestUsername)
|
|
|
- .requestApproveIp(requestApproveIp)
|
|
|
+ .requestApproveIp(requestApproveIp).logInfoMetaDTO(logInfoMetaDTO)
|
|
|
.build();
|
|
|
|
|
|
|
|
@@ -649,7 +709,7 @@ public class ApproveLogBusinessImpl implements IApproveLogBusiness {
|
|
|
String flowKey = processInstanceInfoDTO.getFlowKey();
|
|
|
String processInstanceId = processInstanceInfoDTO.getProcessInstanceId();
|
|
|
//如果是保存并提交,则需要构建(申请请求日志-发起)对象
|
|
|
- buildRequestLog(RequestDisposeTypeEnum.START.getValue(), logDto, "start", "开始", "start", flowKey, processInstanceId, "21");
|
|
|
+ buildRequestLog(RequestDisposeTypeEnum.START, logDto, "start", "开始", "start", flowKey, processInstanceId, "21");
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -719,6 +779,23 @@ public class ApproveLogBusinessImpl implements IApproveLogBusiness {
|
|
|
logInfoMetaDTO.setProcessInstanceId(processInstanceId);
|
|
|
logInfoMetaDTO.setTerminalIp(logDto.getCreateIp());
|
|
|
logInfoMetaDTO.setBusinessType(manageDisposeTypeEnum.auditCode);
|
|
|
+
|
|
|
+ // 2024-8-21 对接BU新规范
|
|
|
+ logInfoMetaDTO.setTaskId(approvalInfoDTO.getTaskId());
|
|
|
+ logInfoMetaDTO.setTaskName(approvalInfoDTO.getTaskName());
|
|
|
+ logInfoMetaDTO.setAppName(approvalInfoDTO.getAppName());
|
|
|
+ logInfoMetaDTO.setOperatorCertNo(approvalInfoDTO.getApplicantIdcard());
|
|
|
+ logInfoMetaDTO.setOperatorName(approvalInfoDTO.getApplicantName());
|
|
|
+ logInfoMetaDTO.setOperatorOrgCode(approvalInfoDTO.getApplicantOrgCode());
|
|
|
+ logInfoMetaDTO.setOperatorOrgName(approvalInfoDTO.getApplicantOrgName());
|
|
|
+ logInfoMetaDTO.setOperateTime(DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
+
|
|
|
+ if (ManageDisposeTypeEnum.UPDATE.equals(manageDisposeTypeEnum)) {
|
|
|
+ logInfoMetaDTO.setOperateType(QmApproveTypeEnumV2.START.getValue());
|
|
|
+ }else if (ManageDisposeTypeEnum.DELETED.equals(manageDisposeTypeEnum)) {
|
|
|
+ logInfoMetaDTO.setOperateType(QmApproveTypeEnumV2.RECALL.getValue());
|
|
|
+ }
|
|
|
+
|
|
|
sendInfo(flowManageLogJsonString, "审批流程管理日志", logInfoMetaDTO);
|
|
|
}
|
|
|
|
|
@@ -739,8 +816,21 @@ public class ApproveLogBusinessImpl implements IApproveLogBusiness {
|
|
|
String appTokenId = request.getHeader(Constants.RZZX_APPTOKEN);
|
|
|
logger.info("从请求头获取到应用令牌信息:{}", appTokenId);
|
|
|
logInfoMetaDTO.setAppToken(appTokenId);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ System.out.println("======================================20240909=========================");
|
|
|
+ appToken = logInfoMetaDTO.getAppToken();
|
|
|
+ if (StrUtil.isBlank(appToken)) {
|
|
|
+ SecurityUser securityUser = (SecurityUser)UserContextUtils.getCurrentUser();
|
|
|
+ String appTokenId = (String)securityUser.getExtendtions().get(UserExtInfoEnum.APP_TOKEN_ID.getValue());
|
|
|
+ logger.info("=================20240909==================" + appTokenId);
|
|
|
+ logInfoMetaDTO.setAppToken(appTokenId);
|
|
|
+ }
|
|
|
+ System.out.println("======================================20240909=========================");
|
|
|
|
|
|
ApproveLogDTO approveLogDTO = ApproveLogDTO.builder()
|
|
|
.content(content)
|