|
@@ -4,23 +4,25 @@ import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.google.gson.Gson;
|
|
import com.google.gson.Gson;
|
|
import com.qmth.boot.redis.uid.RedisMachineService;
|
|
import com.qmth.boot.redis.uid.RedisMachineService;
|
|
-import com.qmth.distributed.print.business.bean.flow.dto.FlowMsgDto;
|
|
|
|
-import com.qmth.distributed.print.business.bean.flow.dto.HandleMessageDto;
|
|
|
|
-import com.qmth.distributed.print.business.bean.flow.dto.StandardFlowData;
|
|
|
|
-import com.qmth.distributed.print.business.bean.flow.dto.StandardFlowDoneMsg;
|
|
|
|
|
|
+import com.qmth.boot.tools.signature.SignatureEntity;
|
|
|
|
+import com.qmth.boot.tools.signature.SignatureType;
|
|
|
|
+import com.qmth.distributed.print.business.bean.flow.dto.*;
|
|
import com.qmth.distributed.print.business.bean.result.TFFlowLogResult;
|
|
import com.qmth.distributed.print.business.bean.result.TFFlowLogResult;
|
|
import com.qmth.distributed.print.business.service.ActivitiService;
|
|
import com.qmth.distributed.print.business.service.ActivitiService;
|
|
import com.qmth.distributed.print.business.service.TFFlowLogService;
|
|
import com.qmth.distributed.print.business.service.TFFlowLogService;
|
|
import com.qmth.distributed.print.business.templete.execute.AsyncCreatePdfTempleteService;
|
|
import com.qmth.distributed.print.business.templete.execute.AsyncCreatePdfTempleteService;
|
|
import com.qmth.teachcloud.common.bean.dto.MqDto;
|
|
import com.qmth.teachcloud.common.bean.dto.MqDto;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
|
|
+import com.qmth.teachcloud.common.entity.BasicSchool;
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
import com.qmth.teachcloud.common.entity.TBTask;
|
|
import com.qmth.teachcloud.common.entity.TBTask;
|
|
import com.qmth.teachcloud.common.entity.TMMqMessage;
|
|
import com.qmth.teachcloud.common.entity.TMMqMessage;
|
|
import com.qmth.teachcloud.common.enums.FlowApproveOperationEnum;
|
|
import com.qmth.teachcloud.common.enums.FlowApproveOperationEnum;
|
|
import com.qmth.teachcloud.common.enums.MqTagEnum;
|
|
import com.qmth.teachcloud.common.enums.MqTagEnum;
|
|
|
|
+import com.qmth.teachcloud.common.service.CommonCacheService;
|
|
import com.qmth.teachcloud.common.service.TMMqMessageService;
|
|
import com.qmth.teachcloud.common.service.TMMqMessageService;
|
|
import com.qmth.teachcloud.common.util.GsonUtil;
|
|
import com.qmth.teachcloud.common.util.GsonUtil;
|
|
|
|
+import com.qmth.teachcloud.common.util.HttpUtil;
|
|
import com.qmth.teachcloud.common.util.JacksonUtil;
|
|
import com.qmth.teachcloud.common.util.JacksonUtil;
|
|
import com.qmth.teachcloud.common.util.RedisUtil;
|
|
import com.qmth.teachcloud.common.util.RedisUtil;
|
|
import org.apache.commons.text.StringEscapeUtils;
|
|
import org.apache.commons.text.StringEscapeUtils;
|
|
@@ -65,6 +67,9 @@ public class RedisMessageListener implements MessageListener {
|
|
@Resource
|
|
@Resource
|
|
TFFlowLogService tfFlowLogService;
|
|
TFFlowLogService tfFlowLogService;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ CommonCacheService commonCacheService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public void onMessage(Message message, byte[] bytes) {
|
|
public void onMessage(Message message, byte[] bytes) {
|
|
if (Objects.nonNull(redisUtil.get(SystemConstant.CURRENT_TASK_MACHINE_ID))) {
|
|
if (Objects.nonNull(redisUtil.get(SystemConstant.CURRENT_TASK_MACHINE_ID))) {
|
|
@@ -114,8 +119,18 @@ public class RedisMessageListener implements MessageListener {
|
|
FlowMsgDto flowMsgDto = activitiService.getFlowMsgData(schoolId);
|
|
FlowMsgDto flowMsgDto = activitiService.getFlowMsgData(schoolId);
|
|
StandardFlowData standardFlowData = activitiService.getFlowInfo(Long.parseLong(mqDto.getObjId()));
|
|
StandardFlowData standardFlowData = activitiService.getFlowInfo(Long.parseLong(mqDto.getObjId()));
|
|
HandleMessageDto handleMessageDto = activitiService.handleMessage(schoolId, Long.parseLong(mqDto.getObjId()), flowApproveOperationEnum);
|
|
HandleMessageDto handleMessageDto = activitiService.handleMessage(schoolId, Long.parseLong(mqDto.getObjId()), flowApproveOperationEnum);
|
|
- log.info("flowMq standardFlowData:{}", JacksonUtil.parseJson(standardFlowData));
|
|
|
|
- log.info("flowMq handleMessageDto:{}", JacksonUtil.parseJson(handleMessageDto));
|
|
|
|
|
|
+ if (Objects.nonNull(handleMessageDto) && !CollectionUtils.isEmpty(handleMessageDto.getStandardFlowWorkMsgList())) {
|
|
|
|
+ ToDoTaskDto toDoTaskDto = new ToDoTaskDto(standardFlowData, handleMessageDto.getStandardFlowWorkMsgList());
|
|
|
|
+ log.info("flowMq toDoTaskDto:{}", JacksonUtil.parseJson(toDoTaskDto));
|
|
|
|
+
|
|
|
|
+ BasicSchool basicSchool = commonCacheService.schoolCache(schoolId);
|
|
|
|
+ String hostUrl = SystemConstant.getHost(flowMsgDto.getMqHostUrl(), basicSchool.getCode());
|
|
|
|
+ String[] strs = hostUrl.split("\\?");
|
|
|
|
+ Long timestamp = System.currentTimeMillis();
|
|
|
|
+ String signature = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, SystemConstant.GDPU_TODOTASK_URL, timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
|
|
|
|
+ String callResult = HttpUtil.postJson(strs[0] + SystemConstant.GDPU_TODOTASK_URL, JacksonUtil.parseJson(toDoTaskDto), signature, timestamp);
|
|
|
|
+ log.info("flowMq toDoTaskDto callResult:{}", JacksonUtil.parseJson(callResult));
|
|
|
|
+ }
|
|
} else if (Objects.equals(topic, MqTagEnum.FLOW_MQ_DONE.getCode())) {
|
|
} else if (Objects.equals(topic, MqTagEnum.FLOW_MQ_DONE.getCode())) {
|
|
log.info("创建flowMqDone消息进来了");
|
|
log.info("创建flowMqDone消息进来了");
|
|
Map<String, Object> map = (Map<String, Object>) mqDto.getBody();
|
|
Map<String, Object> map = (Map<String, Object>) mqDto.getBody();
|
|
@@ -125,10 +140,18 @@ public class RedisMessageListener implements MessageListener {
|
|
FlowMsgDto flowMsgDto = activitiService.getFlowMsgData(schoolId);
|
|
FlowMsgDto flowMsgDto = activitiService.getFlowMsgData(schoolId);
|
|
List<TFFlowLogResult> tfFlowLogResultList = tfFlowLogService.findByFlowIdAndTaskId(flowId, taskId);
|
|
List<TFFlowLogResult> tfFlowLogResultList = tfFlowLogService.findByFlowIdAndTaskId(flowId, taskId);
|
|
if (!CollectionUtils.isEmpty(tfFlowLogResultList)) {
|
|
if (!CollectionUtils.isEmpty(tfFlowLogResultList)) {
|
|
- StandardFlowDoneMsg standardFlowDoneMsg = GsonUtil.fromJson(GsonUtil.toJson(tfFlowLogResultList.get(tfFlowLogResultList.size() - 1)), StandardFlowDoneMsg.class);
|
|
|
|
- standardFlowDoneMsg.setMessageType(flowMsgDto.getFlowMsgType());
|
|
|
|
- standardFlowDoneMsg.setFlowOperation(standardFlowDoneMsg.getApproveOperation());
|
|
|
|
- log.info("flowMq standardFlowDoneMsg:{}", JacksonUtil.parseJson(standardFlowDoneMsg));
|
|
|
|
|
|
+ DoneTaskDto doneTaskDto = GsonUtil.fromJson(GsonUtil.toJson(tfFlowLogResultList.get(tfFlowLogResultList.size() - 1)), DoneTaskDto.class);
|
|
|
|
+ doneTaskDto.setMessageType(flowMsgDto.getFlowMsgType());
|
|
|
|
+ doneTaskDto.setFlowOperation(doneTaskDto.getApproveOperation());
|
|
|
|
+ log.info("flowMq doneTaskDto:{}", JacksonUtil.parseJson(doneTaskDto));
|
|
|
|
+
|
|
|
|
+ BasicSchool basicSchool = commonCacheService.schoolCache(schoolId);
|
|
|
|
+ String hostUrl = SystemConstant.getHost(flowMsgDto.getMqHostUrl(), basicSchool.getCode());
|
|
|
|
+ String[] strs = hostUrl.split("\\?");
|
|
|
|
+ Long timestamp = System.currentTimeMillis();
|
|
|
|
+ String signature = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, SystemConstant.GDPU_DONETASK_URL, timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
|
|
|
|
+ String callResult = HttpUtil.postJson(strs[0] + SystemConstant.GDPU_DONETASK_URL, JacksonUtil.parseJson(doneTaskDto), signature, timestamp);
|
|
|
|
+ log.info("flowMq doneTask callResult:{}", JacksonUtil.parseJson(callResult));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
redisUtil.set(SystemConstant.CURRENT_TASK_MACHINE_ID, redisMachineService.getMachineId());
|
|
redisUtil.set(SystemConstant.CURRENT_TASK_MACHINE_ID, redisMachineService.getMachineId());
|