فهرست منبع

简易解决消息问题

ljy121 1 سال پیش
والد
کامیت
3633adb1cb

+ 10 - 7
zjugis-business/src/main/java/com/zjugis/business/flow/common/event/CommonEvent.java

@@ -44,7 +44,7 @@ public class CommonEvent extends BaseController {
     DingApi dingApi;
 
     @PostMapping("/send-ding-message")
-    public String sendDingMessage(@ParamModel Map flowInstance, @ParamModel Map activityInstance) {
+    public String sendDingMessage(@ParamModel Map flowInstance, @ParamModel Map activityInstance,String currentUserId) {
         try {
             if (!Objects.isNull(activityInstance) && activityInstance.containsKey("id")) {
                 String flowName = flowInstance.get("name").toString();
@@ -61,11 +61,17 @@ public class CommonEvent extends BaseController {
                 IFlowInstanceReq iFlowInstanceReq = new IFlowInstanceReq();
                 iFlowInstanceReq.setFlowInstanceId(flowInstanceId);
                 iFlowInstanceReq.setMobile(true);
+                iFlowInstanceReq.setUserId(currentUserId);
                 CommonResult<String> flowUrlRes = workflowClient.getFlowUrl(iFlowInstanceReq);
+                int index = 0;
+                while(describtion == null || StringUtils.isBlank(describtion.toString()) || index < 5){
+                    Thread.sleep(200);
+                    CommonResult<IFlowInstance> res = workflowClient.flowInstance(flowInstanceId);
+                    IFlowInstance checkedData = res.getCheckedData();
+                    describtion = checkedData.getDescribtion();
+                    index ++;
+                }
                 String mobileUrl = flowUrlRes.getCheckedData();
-                iFlowInstanceReq.setMobile(false);
-                CommonResult<String> flowPcUrlRes = workflowClient.getFlowUrl(iFlowInstanceReq);
-                String pcUrl = flowPcUrlRes.getCheckedData();
                 for (int i = 0; i < parts.size(); i++) {
                     IActivityInsParticiPantDto item = parts.get(i);
                     String content = "";
@@ -77,9 +83,6 @@ public class CommonEvent extends BaseController {
                     if(StringUtils.isNotBlank(mobileUrl)){
                         OA oa = new OA();
                         oa.setMessageUrl(mobileUrl);
-                        if(StringUtils.isNotBlank(pcUrl)){
-                            oa.setPcMessageUrl(pcUrl);
-                        }
                         OA.Head head = new OA.Head();
                         head.setBgcolor("FFBBBBBB");
                         head.setText("浙江万维OA");

+ 3 - 4
zjugis-workflow/src/main/java/com/zjugis/z_workflow/service/IActivityInstanceService.java

@@ -1,6 +1,5 @@
 package com.zjugis.z_workflow.service;
 
-import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson2.JSON;
@@ -317,12 +316,12 @@ public class IActivityInstanceService {
 				.setStatus(status); //活动状态 可为空
 		if (StringUtils.isBlank(activityInsId)) {
 			List<ActivityInstanceDTO> resList = findActivityInstanceTreeList(urlComm.getFlowInstanceId());
-			if (resList.size() > 0) {
+			if (!resList.isEmpty()) {
 				ActivityInstanceDTO lastInstance = resList.get(resList.size() - 1);
 				List<ActivityInstanceDTO> pList = resList.stream().filter(t ->
 						urlComm.getFlowInstanceId().equals(t.getFlowInstanceId()) && StringUtils.isBlank(t.getpFlowInstanceId())).collect(Collectors.toList());
 				//pid 空 -> 父流程  或者 pList 空->只有子流程
-				if (StringUtils.isBlank(lastInstance.getpFlowInstanceId()) || pList.size() == 0) {
+				if (StringUtils.isBlank(lastInstance.getpFlowInstanceId()) || pList.isEmpty()) {
 					urlComm.setActivityInstanceId(lastInstance.getActivityInstanceId());
 				} else {
 					if (pList.size() == 1) {
@@ -348,7 +347,7 @@ public class IActivityInstanceService {
 			//只读:如用户id为空  or 如活动实例为已完成  or 根据传入的是否只读参数判断
 			if (StringUtils.isBlank(userId)) {
 				urlComm.setView(true);
-			} else if (activityInstance.getStatus() == FINISH.getStatus()) {
+			} else if (Objects.equals(activityInstance.getStatus(), FINISH.getStatus())) {
 				urlComm.setView(true);
 			} else {
 				urlComm.setView(isView);

+ 2 - 2
zjugis-workflow/src/main/java/com/zjugis/z_workflow/service/ProcessEngineService.java

@@ -719,7 +719,7 @@ public class ProcessEngineService {
 		}
 		//endregion
 		//region 环节转件处理
-		String gatewayId = rotateParts.size() == 0 ? null : rotateParts.get(0).getGatewayTemplateId();
+		String gatewayId = rotateParts.isEmpty() ? null : rotateParts.get(0).getGatewayTemplateId();
 		if (StringUtils.isNotBlank(gatewayId)) {
 			//判断流向条件是否满足
 			decideFlowCondParams(activityIns, nextActivityTemIds, rotateParts, gatewayId, flowIns);
@@ -1027,7 +1027,7 @@ public class ProcessEngineService {
 						receiverList = new ArrayList<>();
 						//生成初始化活动实例信息
 						activityInstance = iActivityInstanceService.createActivityInstance(flowTempVersionId,activityTemp,flowIns.getId());
-						if (participants.size() == 0) {//流向自动转件
+						if (participants.isEmpty()) {//流向自动转件
 							receiverList = directionAutoTrans(flowTempVersionId,preActivityTemId,node,activityInstance,currentUserId);
 							activityCirculation(flowIns,activityIns,activityInstance,activityTemp,receiverList,direRecordId,currentUserId);
 						} else if (!CollectionUtils.isEmpty(participants.get(0).getParticipants())) {