|
@@ -9,16 +9,21 @@ import com.dragoninfo.dcuc.duceap.enums.ManageDisposeTypeEnum;
|
|
|
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.config.ApproveConfig;
|
|
|
-import com.dragonsoft.dcuc.approve.config.KafkaConfig;
|
|
|
import com.dragonsoft.dcuc.approve.constants.Constants;
|
|
|
import com.dragonsoft.dcuc.approve.enumresources.ApproveWorkFlowOprationEnum;
|
|
|
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.event.ApproveEventPublish;
|
|
|
import com.dragonsoft.dcuc.approve.mapper.ApproveCirculationMapper;
|
|
|
import com.dragonsoft.dcuc.approve.model.*;
|
|
|
import com.dragonsoft.dcuc.approve.model.req.ApprovalInfoDTO;
|
|
|
import com.dragonsoft.dcuc.approve.model.vo.LogDto;
|
|
|
+import com.dragonsoft.dcuc.approve.model.vo.LogInfoMetaDTO;
|
|
|
+import com.dragonsoft.dcuc.approve.model.vo.QmOperateLogDTO;
|
|
|
+import com.dragonsoft.dcuc.approve.model.vo.QmRiskLogDTO;
|
|
|
+import com.dragonsoft.dcuc.approve.properties.ApproveProperties;
|
|
|
+import com.dragonsoft.dcuc.approve.properties.KafkaProperties;
|
|
|
import com.dragonsoft.dcuc.approve.service.*;
|
|
|
import com.dragonsoft.duceap.base.exception.ApplicationException;
|
|
|
import com.dragonsoft.duceap.commons.util.UUIDUtils;
|
|
@@ -56,7 +61,7 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
@Autowired
|
|
|
private KafkaServer kafkaService;
|
|
|
@Autowired
|
|
|
- private KafkaConfig kafkaConfig;
|
|
|
+ private KafkaProperties kafkaProperties;
|
|
|
|
|
|
@Autowired
|
|
|
private IFlowManageLogService flowManageLogService;
|
|
@@ -69,15 +74,22 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
private WorkflowClientFactory workflowClientFactory;
|
|
|
|
|
|
@Autowired
|
|
|
- private ApproveConfig approveConfig;
|
|
|
+ private ApproveProperties approveProperties;
|
|
|
|
|
|
@Autowired
|
|
|
private IRiskLogService riskLogService;
|
|
|
@Autowired
|
|
|
private ApproveCirculationMapper approveCirculationMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ApproveEventPublish approveEventPublish;
|
|
|
+
|
|
|
@Autowired
|
|
|
private IRiskSchemeService riskSchemeService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IApproveRecordService approveRecordService;
|
|
|
+
|
|
|
/**
|
|
|
* 日志类型字符串
|
|
|
*/
|
|
@@ -154,7 +166,9 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
requestLog.setProcessInstanceId(processInstanceId);
|
|
|
//发送审批请求日志到消息中心
|
|
|
logger.info("=====发送批申请请求日志-发起消息,消息体为:{}====", JSON.toJSONString(requestLog));
|
|
|
- sendInfo(JSON.toJSONString(requestLog), "审批请求日志", LogTypeEnum.REQUEST_LOG.getValue(), taskKey, flowKey, processInstanceId);
|
|
|
+
|
|
|
+ sendInfo(JSON.toJSONString(requestLog), "审批请求日志", LogTypeEnum.REQUEST_LOG.getValue(), taskKey, flowKey,
|
|
|
+ processInstanceId, logDto.getCreateIp());
|
|
|
return requestLog;
|
|
|
}
|
|
|
|
|
@@ -193,7 +207,7 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
//发送审批操作日志消息
|
|
|
logger.info("=====发送审批操作日志消息,消息体为:{}====", JSON.toJSONString(operateLog));
|
|
|
sendInfo(JSON.toJSONString(operateLog), "审批操作日志", LogTypeEnum.OPERATE_LOG.getValue(),
|
|
|
- taskKey, flowKey, processInstanceId);
|
|
|
+ taskKey, flowKey, processInstanceId, dto.getCreateIp());
|
|
|
return operateLog;
|
|
|
}
|
|
|
|
|
@@ -221,15 +235,25 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
String taskKey = map.get("taskKey");
|
|
|
String flowKey = map.get("flowKey");
|
|
|
String processInstanceId = map.get("processInstanceId");
|
|
|
+ String terminalIP = map.get("terminalIP");
|
|
|
+
|
|
|
+ LogInfoMetaDTO logInfoMetaDTO = new LogInfoMetaDTO();
|
|
|
+ logInfoMetaDTO.setLogType(logType);
|
|
|
+ logInfoMetaDTO.setTaskKey(taskKey);
|
|
|
+ logInfoMetaDTO.setFlowKey(flowKey);
|
|
|
+ logInfoMetaDTO.setProcessInstanceId(processInstanceId);
|
|
|
+ logInfoMetaDTO.setTerminalIP(terminalIP);
|
|
|
+
|
|
|
+
|
|
|
switch (EnumUtils.enumOf(LogTypeEnum.class, logType)) {
|
|
|
case MANAGE_LOG:
|
|
|
- saveManageLog(messageInfoDTO.getContent(), processInstanceId);
|
|
|
+ saveManageLog(messageInfoDTO.getContent(), logInfoMetaDTO);
|
|
|
break;
|
|
|
case REQUEST_LOG:
|
|
|
- saveRequestLog(messageInfoDTO.getContent(), taskKey, flowKey, processInstanceId);
|
|
|
+ saveRequestLog(messageInfoDTO.getContent(), logInfoMetaDTO);
|
|
|
break;
|
|
|
case OPERATE_LOG:
|
|
|
- saveOperateLog(messageInfoDTO.getContent(), taskKey, flowKey, processInstanceId);
|
|
|
+ saveOperateLog(messageInfoDTO.getContent(), logInfoMetaDTO);
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
@@ -254,13 +278,15 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
* @param orgCode 操作者机构code
|
|
|
* @param createTime 创建时间
|
|
|
* @param processInstanceId 流程实例ID
|
|
|
+ * @param terminalIP 操作者IP
|
|
|
*/
|
|
|
public void buildRiskLog(LogTypeEnum logTypeEnum, String taskKey, String flowKey, String applyIdcard,
|
|
|
String operateIdcard, String approveRecordId,
|
|
|
String businessCode, String riskIp,
|
|
|
String title, String createUserName,
|
|
|
String orgName, String orgCode,
|
|
|
- Date createTime, String processInstanceId) {
|
|
|
+ Date createTime, String processInstanceId,
|
|
|
+ String terminalIP) {
|
|
|
|
|
|
try {
|
|
|
//开始节点直接返回
|
|
@@ -294,7 +320,7 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
title, operateIdcard, createUserName,
|
|
|
applyIdcard, orgName, orgCode,
|
|
|
createTime, riskScheme.getSchemeType(),
|
|
|
- approveRecordId, processInstanceId);
|
|
|
+ approveRecordId, processInstanceId, terminalIP);
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -329,7 +355,7 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
title, operateIdcard, createUserName,
|
|
|
applyIdcard, orgName, orgCode,
|
|
|
createTime, riskScheme.getSchemeType(),
|
|
|
- approveRecordId, processInstanceId);
|
|
|
+ approveRecordId, processInstanceId, terminalIP);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -362,14 +388,15 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
* @param riskType 风险类型
|
|
|
* @param approveRecordId 申请单id
|
|
|
* @param processInstanceId 实例ID
|
|
|
+ * @param terminalIP 操作者IP
|
|
|
*/
|
|
|
private void saveRiskLog(String businessCode, String riskIp, String riskContent,
|
|
|
String title, String createUser, String createUserName,
|
|
|
String idcard, String orgName, String orgCode,
|
|
|
Date createTime, String riskType, String approveRecordId,
|
|
|
- String processInstanceId) {
|
|
|
+ String processInstanceId, String terminalIP) {
|
|
|
RiskLog riskLog = new RiskLog();
|
|
|
- riskLog.setLogSender(approveConfig.getAppCode());
|
|
|
+ riskLog.setLogSender(approveProperties.getAppCode());
|
|
|
riskLog.setLogReceiver(LogReceiverEnum.AUDIT_SERVICE.getValue() + "," + LogReceiverEnum.SECURITY_POLICY_SERVICE.getValue());
|
|
|
riskLog.setRiskType(riskType);
|
|
|
riskLog.setRiskTime(createTime);
|
|
@@ -386,6 +413,11 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
riskLog.setCreateTime(createTime);
|
|
|
riskLog.setProcessInstanceId(processInstanceId);
|
|
|
|
|
|
+ QmRiskLogDTO build = QmRiskLogDTO.builder().riskLog(riskLog)
|
|
|
+ .terminalIP(terminalIP)
|
|
|
+ .build();
|
|
|
+ approveEventPublish.publishRiskLogEvent(build);
|
|
|
+
|
|
|
riskLogService.saveRiskLog(riskLog);
|
|
|
}
|
|
|
|
|
@@ -394,18 +426,40 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
*
|
|
|
* @param content
|
|
|
*/
|
|
|
- private void saveOperateLog(String content, String taskKey, String flowKey,
|
|
|
- String processInstanceId) {
|
|
|
+ private void saveOperateLog(String content, LogInfoMetaDTO logInfoMetaDTO) {
|
|
|
+
|
|
|
+ String taskKey = logInfoMetaDTO.getTaskKey();
|
|
|
+ String flowKey = logInfoMetaDTO.getFlowKey();
|
|
|
+ String processInstanceId = logInfoMetaDTO.getProcessInstanceId();
|
|
|
+ String terminalIP = logInfoMetaDTO.getTerminalIP();
|
|
|
OperateLog entity = JSONObject.parseObject(content, OperateLog.class);
|
|
|
entity.setProcessInstanceId(processInstanceId);
|
|
|
operateLogService.saveOperateLog(entity);
|
|
|
|
|
|
+ String approveRecordId = entity.getApproveRecordId();
|
|
|
+ ApproveRecordInfo approveRecordInfo = approveRecordService.getOne(approveRecordId);
|
|
|
+ String applicantIdcard = approveRecordInfo.getApplicantIdcard();
|
|
|
+ String businessCode = entity.getBusinessCode();
|
|
|
+ Date createTime = entity.getCreateTime();
|
|
|
+
|
|
|
buildRiskLog(LogTypeEnum.OPERATE_LOG, taskKey, flowKey, entity.getIdcard(),
|
|
|
entity.getCreateUser(), entity.getApproveRecordId(),
|
|
|
entity.getBusinessCode(), entity.getCreateIp(),
|
|
|
entity.getTitle(), entity.getCreateUserName(),
|
|
|
entity.getOrgName(), entity.getOrgCode(),
|
|
|
- entity.getCreateTime(), processInstanceId);
|
|
|
+ entity.getCreateTime(), processInstanceId, terminalIP);
|
|
|
+
|
|
|
+ QmOperateLogDTO qmOperateLogDTO = QmOperateLogDTO.builder()
|
|
|
+ .qmApproveTypeEnum(QmApproveTypeEnum.OPERATE)
|
|
|
+ .approveRecordId(approveRecordId)
|
|
|
+ .applyApproveId(applicantIdcard)
|
|
|
+ .applyApproveIdCard(applicantIdcard)
|
|
|
+ .businessCode(businessCode)
|
|
|
+ .createTime(createTime)
|
|
|
+ .build();
|
|
|
+
|
|
|
+ approveEventPublish.publishOperateEvent(qmOperateLogDTO);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -413,7 +467,12 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
*
|
|
|
* @param content
|
|
|
*/
|
|
|
- private void saveRequestLog(String content, String taskKey, String flowKey, String processInstanceId) {
|
|
|
+ private void saveRequestLog(String content, LogInfoMetaDTO logInfoMetaDTO) {
|
|
|
+ String taskKey = logInfoMetaDTO.getTaskKey();
|
|
|
+ String flowKey = logInfoMetaDTO.getFlowKey();
|
|
|
+ String processInstanceId = logInfoMetaDTO.getProcessInstanceId();
|
|
|
+ String terminalIP = logInfoMetaDTO.getTerminalIP();
|
|
|
+
|
|
|
RequestLog entity = JSONObject.parseObject(content, RequestLog.class);
|
|
|
entity.setProcessInstanceId(processInstanceId);
|
|
|
requestLogService.saveRequestLog(entity);
|
|
@@ -423,7 +482,24 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
entity.getBusinessCode(), entity.getCreateIp(),
|
|
|
entity.getTitle(), entity.getCreateUserName(),
|
|
|
entity.getOrgName(), entity.getOrgCode(),
|
|
|
- entity.getCreateTime(), processInstanceId);
|
|
|
+ entity.getCreateTime(), processInstanceId, terminalIP);
|
|
|
+
|
|
|
+ String approveRecordId = entity.getApproveRecordId();
|
|
|
+ ApproveRecordInfo approveRecordInfo = approveRecordService.getOne(approveRecordId);
|
|
|
+ String applicantIdcard = approveRecordInfo.getApplicantIdcard();
|
|
|
+ String businessCode = entity.getBusinessCode();
|
|
|
+ Date createTime = entity.getCreateTime();
|
|
|
+
|
|
|
+ QmOperateLogDTO qmOperateLogDTO = QmOperateLogDTO.builder()
|
|
|
+ .qmApproveTypeEnum(QmApproveTypeEnum.REQUEST)
|
|
|
+ .approveRecordId(approveRecordId)
|
|
|
+ .applyApproveId(applicantIdcard)
|
|
|
+ .applyApproveIdCard(applicantIdcard)
|
|
|
+ .businessCode(businessCode)
|
|
|
+ .createTime(createTime)
|
|
|
+ .build();
|
|
|
+
|
|
|
+ approveEventPublish.publishOperateEvent(qmOperateLogDTO);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -431,10 +507,28 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
*
|
|
|
* @param content
|
|
|
*/
|
|
|
- private void saveManageLog(String content, String processInstanceId) {
|
|
|
+ private void saveManageLog(String content, LogInfoMetaDTO logInfoMetaDTO) {
|
|
|
+ String processInstanceId = logInfoMetaDTO.getProcessInstanceId();
|
|
|
FlowManageLog entity = JSONObject.parseObject(content, FlowManageLog.class);
|
|
|
entity.setProcessInstanceId(processInstanceId);
|
|
|
flowManageLogService.saveFlowManageLog(entity);
|
|
|
+
|
|
|
+ String approveRecordId = entity.getApproveRecordId();
|
|
|
+ String businessCode = entity.getBusinessCode();
|
|
|
+ Date createTime = entity.getCreateTime();
|
|
|
+ ApproveRecordInfo approveRecordInfo = approveRecordService.getOne(approveRecordId);
|
|
|
+ String applicantIdcard = approveRecordInfo.getApplicantIdcard();
|
|
|
+
|
|
|
+ QmOperateLogDTO qmOperateLogDTO = QmOperateLogDTO.builder()
|
|
|
+ .qmApproveTypeEnum(QmApproveTypeEnum.FLOW)
|
|
|
+ .approveRecordId(approveRecordId)
|
|
|
+ .applyApproveId(applicantIdcard)
|
|
|
+ .applyApproveIdCard(applicantIdcard)
|
|
|
+ .businessCode(businessCode)
|
|
|
+ .createTime(createTime)
|
|
|
+ .build();
|
|
|
+
|
|
|
+ approveEventPublish.publishOperateEvent(qmOperateLogDTO);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -517,8 +611,9 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
//发送审批流程管理日志到消息中心
|
|
|
logger.info("=====发送审批流程管理日志消息,消息体为:{}====", JSON.toJSONString(flowManageLog));
|
|
|
//审批流程管理日志类型不会涉及到审批风险,故taskKey/flowKey可以为空
|
|
|
+ String createIp = logDto.getCreateIp();
|
|
|
sendInfo(JSON.toJSONString(flowManageLog), "审批流程管理日志", LogTypeEnum.MANAGE_LOG.getValue(),
|
|
|
- "", "", processInstanceId);
|
|
|
+ "", "", processInstanceId, logDto.getCreateIp());
|
|
|
return flowManageLog;
|
|
|
|
|
|
}
|
|
@@ -534,7 +629,9 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
* @param flowKey 流程定义id
|
|
|
* @param processInstanceId 实例ID
|
|
|
*/
|
|
|
- public void sendInfo(String content, String title, String logType, String taskKey, String flowKey, String processInstanceId) {
|
|
|
+ public void sendInfo(String content, String title, String logType, String taskKey,
|
|
|
+ String flowKey, String processInstanceId, String terminalIP) {
|
|
|
+
|
|
|
RequestVo requestVo = new RequestVo();
|
|
|
MessageInfoVo messageInfoVo = new MessageInfoVo();
|
|
|
messageInfoVo.setTitle(title);
|
|
@@ -549,6 +646,7 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
map.put("taskKey", taskKey);
|
|
|
map.put("flowKey", flowKey);
|
|
|
map.put("processInstanceId", processInstanceId);
|
|
|
+ map.put("terminalIP", terminalIP);
|
|
|
List<Map<String, String>> infoSet = new ArrayList<>();
|
|
|
infoSet.add(map);
|
|
|
messageInfoVo.setInfoSet(infoSet);
|
|
@@ -557,10 +655,10 @@ public class ApproveLogHelperServiceImpl implements IApproveLogHelperService {
|
|
|
messageInfoVos.add(messageInfoVo);
|
|
|
//设置消息
|
|
|
requestVo.setMessages(messageInfoVos);
|
|
|
- requestVo.setTopic(kafkaConfig.getApproveLogTopic());
|
|
|
- requestVo.setAppKey(kafkaConfig.getAppKey());
|
|
|
- requestVo.setAppSecret(kafkaConfig.getAppSecret());
|
|
|
+ requestVo.setTopic(kafkaProperties.getApproveLogTopic());
|
|
|
+ requestVo.setAppKey(kafkaProperties.getAppKey());
|
|
|
+ requestVo.setAppSecret(kafkaProperties.getAppSecret());
|
|
|
logger.info("====kafka开始推送结果,消息体为:{}", JSON.toJSONString(requestVo));
|
|
|
- kafkaService.send(requestVo, kafkaConfig.getKafkaServers());
|
|
|
+ kafkaService.send(requestVo, kafkaProperties.getKafkaServers());
|
|
|
}
|
|
|
}
|