add Hiwork统一待办集成、统一消息集成
This commit is contained in:
+30
@@ -0,0 +1,30 @@
|
|||||||
|
package com.jero.modules.docking.hiwork.entity;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/13 17:49
|
||||||
|
* @Description: 统一消息集成-钉钉消息
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@ApiModel(value="统一消息集成-钉钉消息", description="统一消息集成-钉钉消息")
|
||||||
|
public class HiworkDingDingMsg {
|
||||||
|
@ApiModelProperty(value = "异构系统标识")
|
||||||
|
private String sysCode;
|
||||||
|
@ApiModelProperty(value = "发送人员Id")
|
||||||
|
private String useridList;
|
||||||
|
@ApiModelProperty(value = "发送部门id")
|
||||||
|
private String deptIdList;
|
||||||
|
@ApiModelProperty(value = "agentId")
|
||||||
|
private String agentId;
|
||||||
|
@ApiModelProperty(value = "消息体")
|
||||||
|
private JSONObject msg;
|
||||||
|
}
|
||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
package com.jero.modules.docking.hiwork.entity;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/13 14:39
|
||||||
|
* @Description: 统一待办集成返回
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@ApiModel(value="统一待办集成返回", description="统一待办集成返回")
|
||||||
|
public class HiworkResult {
|
||||||
|
@ApiModelProperty(value = "成功true,失败false")
|
||||||
|
private Boolean success;
|
||||||
|
@ApiModelProperty(value = "成功1,失败0")
|
||||||
|
private Integer code;
|
||||||
|
@ApiModelProperty(value = "消息")
|
||||||
|
private String msg;
|
||||||
|
@ApiModelProperty(value = "成功null,失败null")
|
||||||
|
private Object data;
|
||||||
|
}
|
||||||
+35
@@ -0,0 +1,35 @@
|
|||||||
|
package com.jero.modules.docking.hiwork.entity;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/13 17:49
|
||||||
|
* @Description: 统一消息集成-系统消息
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@ApiModel(value="统一消息集成-系统消息", description="统一消息集成-系统消息")
|
||||||
|
public class HiworkSystemMsg {
|
||||||
|
@ApiModelProperty(value = "异构系统标识")
|
||||||
|
private String sysCode;
|
||||||
|
@ApiModelProperty(value = "发送人员编号")
|
||||||
|
private String sendCode;
|
||||||
|
@ApiModelProperty(value = "发送人员姓名")
|
||||||
|
private String sendName;
|
||||||
|
@ApiModelProperty(value = "消息类型 字典")
|
||||||
|
private String messageType;
|
||||||
|
@ApiModelProperty(value = "消息标题")
|
||||||
|
private String title;
|
||||||
|
@ApiModelProperty(value = "消息接收人 集合")
|
||||||
|
private JSONArray receiverList;
|
||||||
|
@ApiModelProperty(value = "消息体")
|
||||||
|
private JSONObject msg;
|
||||||
|
}
|
||||||
+76
@@ -0,0 +1,76 @@
|
|||||||
|
package com.jero.modules.docking.hiwork.entity;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/13 14:22
|
||||||
|
* @Description: 待办
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@ApiModel(value="统一待办集成", description="统一待办集成")
|
||||||
|
public class HiworkTodo {
|
||||||
|
@ApiModelProperty(value = "异构系统标识")
|
||||||
|
private String sysCode;
|
||||||
|
@ApiModelProperty(value = "标题")
|
||||||
|
private String noticeTitle;
|
||||||
|
@ApiModelProperty(value = "描述")
|
||||||
|
private String noticeDescription;
|
||||||
|
@ApiModelProperty(value = "流程编号")
|
||||||
|
private String busiDefCode;
|
||||||
|
@ApiModelProperty(value = "流程实例id")
|
||||||
|
private String processId;
|
||||||
|
@ApiModelProperty(value = "流程实例名称")
|
||||||
|
private String processName;
|
||||||
|
@ApiModelProperty(value = "流程类型,字典")
|
||||||
|
private String processType;
|
||||||
|
@ApiModelProperty(value = "任务id")
|
||||||
|
private String taskId;
|
||||||
|
@ApiModelProperty(value = "节点名称")
|
||||||
|
private String taskName;
|
||||||
|
@ApiModelProperty(value = "是否会签")
|
||||||
|
private Integer multiInstance;
|
||||||
|
@ApiModelProperty(value = "节点编号")
|
||||||
|
private String nodeBusiCode;
|
||||||
|
@ApiModelProperty(value = "跳转链接")
|
||||||
|
private String businessLink;
|
||||||
|
@ApiModelProperty(value = "APP跳转链接")
|
||||||
|
private String appBusinessLink;
|
||||||
|
@ApiModelProperty(value = "创建人code")
|
||||||
|
private String createUserCode;
|
||||||
|
@ApiModelProperty(value = "创建人姓名")
|
||||||
|
private String createUserName;
|
||||||
|
@ApiModelProperty(value = "接收人id")
|
||||||
|
private String userId;
|
||||||
|
@ApiModelProperty(value = "接收人code")
|
||||||
|
private String userCode;
|
||||||
|
@ApiModelProperty(value = "接收人姓名")
|
||||||
|
private String userName;
|
||||||
|
@ApiModelProperty(value = "参与者id")
|
||||||
|
private String participantId;
|
||||||
|
@ApiModelProperty(value = "参与者编号")
|
||||||
|
private String participantCode;
|
||||||
|
@ApiModelProperty(value = "接收时间")
|
||||||
|
private Instant receiveTime;
|
||||||
|
@ApiModelProperty(value = "截止时间")
|
||||||
|
private Long dueTime;
|
||||||
|
@ApiModelProperty(value = "业务主键")
|
||||||
|
private String bid;
|
||||||
|
@ApiModelProperty(value = "待办、已办")
|
||||||
|
private String isTodo;
|
||||||
|
@ApiModelProperty(value = "是否展示在列表中")
|
||||||
|
private String isShow;
|
||||||
|
@ApiModelProperty(value = "优先级")
|
||||||
|
private String priority;
|
||||||
|
@ApiModelProperty(value = "是否通知消息")
|
||||||
|
private String notifyConfig;
|
||||||
|
|
||||||
|
}
|
||||||
+43
@@ -0,0 +1,43 @@
|
|||||||
|
package com.jero.modules.docking.hiwork.entity;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/16 17:23
|
||||||
|
* @Description: 统一待办集成-添加
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@ApiModel(value="统一待办集成-添加", description="统一待办集成-添加")
|
||||||
|
public class HiworkTodoAdd {
|
||||||
|
@ApiModelProperty(value = "标题")
|
||||||
|
private String title;
|
||||||
|
@ApiModelProperty(value = "任务id")
|
||||||
|
private String taskId;
|
||||||
|
@ApiModelProperty(value = "流程类型,字典")
|
||||||
|
private String processType;
|
||||||
|
@ApiModelProperty(value = "是否会签")
|
||||||
|
private Integer isCounterSignature;
|
||||||
|
@ApiModelProperty(value = "节点编号")
|
||||||
|
private String nodeNumber;
|
||||||
|
@ApiModelProperty(value = "跳转链接")
|
||||||
|
private String jumpLink;
|
||||||
|
@ApiModelProperty(value = "APP跳转链接")
|
||||||
|
private String appJumpLink;
|
||||||
|
@ApiModelProperty(value = "创建人id")
|
||||||
|
private String creatorId;
|
||||||
|
@ApiModelProperty(value = "接收人id")
|
||||||
|
private String recipientId;
|
||||||
|
@ApiModelProperty(value = "截止时间")
|
||||||
|
private Long endTime;
|
||||||
|
@ApiModelProperty(value = "业务主键")
|
||||||
|
private String businessId;
|
||||||
|
@ApiModelProperty(value = "待办、已办(1、待办 2已办 3结束 6 删除)")
|
||||||
|
private String isTodo;
|
||||||
|
}
|
||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
package com.jero.modules.docking.hiwork.enums;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/13 15:05
|
||||||
|
* @Description: 待办、已办
|
||||||
|
*/
|
||||||
|
public enum IsTodoEnum {
|
||||||
|
TODO( "待办", "1"),
|
||||||
|
DONE("已办", "2"),
|
||||||
|
FINISH("结束", "3"),
|
||||||
|
DEL("删除", "6")
|
||||||
|
;
|
||||||
|
|
||||||
|
String name;
|
||||||
|
String value;
|
||||||
|
|
||||||
|
IsTodoEnum(String name, String value) {
|
||||||
|
this.name = name;
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {return name;}
|
||||||
|
public String getValue() {return value;}
|
||||||
|
}
|
||||||
+32
@@ -0,0 +1,32 @@
|
|||||||
|
package com.jero.modules.docking.hiwork.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/16 15:18
|
||||||
|
* @Description: 统一消息集成
|
||||||
|
*/
|
||||||
|
public interface IHiworkMsgService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/16 15:32
|
||||||
|
* @Description: 发送钉钉消息
|
||||||
|
* senderIdList:发送人员id集合
|
||||||
|
* content:文本内容
|
||||||
|
**/
|
||||||
|
void sendDingDingMsg(List<String> senderIdList, String content);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/16 16:11
|
||||||
|
* @Description: 发送系统消息
|
||||||
|
* senderId:发送人员id
|
||||||
|
* receiverIdList:消息接收人id集合
|
||||||
|
* messageType:消息类型 字典
|
||||||
|
* title:消息标题
|
||||||
|
* content:消息内容
|
||||||
|
**/
|
||||||
|
void sendSystemMsg(String senderId, List<String> receiverIdList, String messageType, String title, String content);
|
||||||
|
}
|
||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
package com.jero.modules.docking.hiwork.service;
|
||||||
|
|
||||||
|
import com.jero.modules.docking.hiwork.entity.HiworkTodoAdd;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/13 14:23
|
||||||
|
* @Description: 待办
|
||||||
|
*/
|
||||||
|
public interface IHiworkTodoService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/13 15:12
|
||||||
|
* @Description: 统一待办集成
|
||||||
|
**/
|
||||||
|
void sendTodoTask(List<HiworkTodoAdd> hiworkTodoAddList);
|
||||||
|
|
||||||
|
}
|
||||||
+129
@@ -0,0 +1,129 @@
|
|||||||
|
package com.jero.modules.docking.hiwork.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.jero.common.exception.JeroBootException;
|
||||||
|
import com.jero.modules.docking.hiwork.entity.HiworkDingDingMsg;
|
||||||
|
import com.jero.modules.docking.hiwork.entity.HiworkSystemMsg;
|
||||||
|
import com.jero.modules.docking.hiwork.service.IHiworkMsgService;
|
||||||
|
import com.jero.modules.docking.hiwork.util.HiworkPostUtil;
|
||||||
|
import com.jero.modules.laws.common.constant.ResultCommon;
|
||||||
|
import com.jero.modules.system.entity.SysUser;
|
||||||
|
import com.jero.modules.system.service.ISysUserService;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/16 15:18
|
||||||
|
* @Description: 统一消息集成
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class HiworkMsgServiceImpl implements IHiworkMsgService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HiworkPostUtil hiworkPostUtil;
|
||||||
|
@Autowired
|
||||||
|
private ISysUserService sysUserService;
|
||||||
|
|
||||||
|
private final static String TEXT = "text"; // 消息类型-文本
|
||||||
|
private final static String MSG_TYPE = "msgtype"; // 消息类型
|
||||||
|
private final static String CONTENT = "content"; // 消息内容
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/16 15:32
|
||||||
|
* @Description: 发送钉钉消息
|
||||||
|
* senderIdList:发送人员id集合
|
||||||
|
* content:文本内容
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public void sendDingDingMsg(List<String> senderIdList, String content) {
|
||||||
|
HiworkDingDingMsg hiworkDingDingMsg = new HiworkDingDingMsg();
|
||||||
|
// 异步系统标识
|
||||||
|
hiworkDingDingMsg.setSysCode(HiworkPostUtil.getSysCode());
|
||||||
|
|
||||||
|
if (CollectionUtils.isEmpty(senderIdList)) {
|
||||||
|
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "senderIdList");
|
||||||
|
}
|
||||||
|
List<SysUser> senderUserList = sysUserService.listByIds(senderIdList);
|
||||||
|
List<String> usernameList = senderUserList.stream().map(SysUser::getUsername).collect(Collectors.toList());
|
||||||
|
// 发送人员id(工号以英文逗号分隔)
|
||||||
|
hiworkDingDingMsg.setUseridList(StringUtils.join(usernameList, ","));
|
||||||
|
|
||||||
|
// 消息体
|
||||||
|
JSONObject msgJsonObject = new JSONObject();
|
||||||
|
msgJsonObject.put(MSG_TYPE, TEXT);
|
||||||
|
JSONObject textJsonObject = new JSONObject();
|
||||||
|
textJsonObject.put(CONTENT, content);
|
||||||
|
msgJsonObject.put(TEXT, textJsonObject);
|
||||||
|
hiworkDingDingMsg.setMsg(msgJsonObject);
|
||||||
|
|
||||||
|
hiworkPostUtil.postDingDingMsg(hiworkDingDingMsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/16 16:12
|
||||||
|
* @Description: 发送系统消息
|
||||||
|
* senderId:发送人员id
|
||||||
|
* receiverIdList:消息接收人id集合
|
||||||
|
* messageType:消息类型 字典
|
||||||
|
* title:消息标题
|
||||||
|
* content:消息内容
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public void sendSystemMsg(String senderId, List<String> receiverIdList, String messageType, String title, String content) {
|
||||||
|
HiworkSystemMsg hiworkSystemMsg = new HiworkSystemMsg();
|
||||||
|
|
||||||
|
// 异步系统标识
|
||||||
|
hiworkSystemMsg.setSysCode(HiworkPostUtil.getSysCode());
|
||||||
|
|
||||||
|
if (StringUtils.isBlank(senderId)) {
|
||||||
|
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "senderId");
|
||||||
|
}
|
||||||
|
|
||||||
|
SysUser senderUser = sysUserService.getById(senderId);
|
||||||
|
// 发送人员编号
|
||||||
|
hiworkSystemMsg.setSendCode(senderUser.getUsername());
|
||||||
|
// 发送人员姓名
|
||||||
|
hiworkSystemMsg.setSendName(senderUser.getRealname());
|
||||||
|
// 消息类型
|
||||||
|
hiworkSystemMsg.setMessageType(messageType);
|
||||||
|
// 消息标题
|
||||||
|
hiworkSystemMsg.setTitle(title);
|
||||||
|
|
||||||
|
if (CollectionUtils.isEmpty(receiverIdList)) {
|
||||||
|
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "receiverIdList");
|
||||||
|
}
|
||||||
|
List<SysUser> receiverUserList = sysUserService.listByIds(receiverIdList);
|
||||||
|
JSONArray jsonArray = new JSONArray();
|
||||||
|
receiverUserList.forEach(receiverUser -> {
|
||||||
|
Map<String, String> receiverMap = new HashMap<>();
|
||||||
|
// 人员编号
|
||||||
|
receiverMap.put("employeeNo", receiverUser.getUsername());
|
||||||
|
// 人员名称
|
||||||
|
receiverMap.put("userName", receiverUser.getRealname());
|
||||||
|
jsonArray.add(receiverMap);
|
||||||
|
});
|
||||||
|
// 消息接收人 集合
|
||||||
|
hiworkSystemMsg.setReceiverList(jsonArray);
|
||||||
|
|
||||||
|
// 消息体
|
||||||
|
JSONObject msgJsonObject = new JSONObject();
|
||||||
|
msgJsonObject.put(MSG_TYPE, TEXT);
|
||||||
|
JSONObject textJsonObject = new JSONObject();
|
||||||
|
textJsonObject.put(CONTENT, content);
|
||||||
|
msgJsonObject.put(TEXT, textJsonObject);
|
||||||
|
hiworkSystemMsg.setMsg(msgJsonObject);
|
||||||
|
|
||||||
|
hiworkPostUtil.postSystemMsg(hiworkSystemMsg);
|
||||||
|
}
|
||||||
|
}
|
||||||
+118
@@ -0,0 +1,118 @@
|
|||||||
|
package com.jero.modules.docking.hiwork.service.impl;
|
||||||
|
|
||||||
|
import com.jero.common.exception.JeroBootException;
|
||||||
|
import com.jero.modules.docking.hiwork.entity.HiworkTodoAdd;
|
||||||
|
import com.jero.modules.docking.hiwork.service.IHiworkTodoService;
|
||||||
|
import com.jero.modules.docking.hiwork.util.HiworkPostUtil;
|
||||||
|
import com.jero.modules.docking.hiwork.entity.HiworkTodo;
|
||||||
|
import com.jero.modules.laws.common.constant.ResultCommon;
|
||||||
|
import com.jero.modules.system.entity.SysUser;
|
||||||
|
import com.jero.modules.system.service.ISysUserService;
|
||||||
|
import org.activiti.engine.RuntimeService;
|
||||||
|
import org.activiti.engine.TaskService;
|
||||||
|
import org.activiti.engine.runtime.ProcessInstance;
|
||||||
|
import org.activiti.engine.task.Task;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/13 14:23
|
||||||
|
* @Description: 待办
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class HiworkTodoServiceImpl implements IHiworkTodoService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISysUserService sysUserService;
|
||||||
|
@Autowired
|
||||||
|
private TaskService taskService;
|
||||||
|
@Autowired
|
||||||
|
private RuntimeService runtimeService;
|
||||||
|
@Autowired
|
||||||
|
private HiworkPostUtil hiworkPostUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/13 15:12
|
||||||
|
* @Description: 统一待办集成
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public void sendTodoTask(List<HiworkTodoAdd> hiworkTodoAddList) {
|
||||||
|
if (CollectionUtils.isEmpty(hiworkTodoAddList)) {
|
||||||
|
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "hiworkTodoAddList");
|
||||||
|
}
|
||||||
|
|
||||||
|
List<HiworkTodo> hiworkTodoList = new ArrayList<>();
|
||||||
|
hiworkTodoAddList.forEach(hiworkTodoAdd -> {
|
||||||
|
HiworkTodo hiworkTodo = new HiworkTodo();
|
||||||
|
// 异步系统标识
|
||||||
|
hiworkTodo.setSysCode(HiworkPostUtil.getSysCode());
|
||||||
|
// 标题
|
||||||
|
hiworkTodo.setNoticeTitle(hiworkTodoAdd.getTitle());
|
||||||
|
|
||||||
|
if (StringUtils.isBlank(hiworkTodoAdd.getTaskId())) {
|
||||||
|
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "taskId");
|
||||||
|
}
|
||||||
|
Task task = taskService.createTaskQuery().taskId(hiworkTodoAdd.getTaskId()).singleResult();
|
||||||
|
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
|
||||||
|
.processInstanceId(task.getProcessInstanceId()).singleResult();
|
||||||
|
|
||||||
|
// 流程实例id
|
||||||
|
hiworkTodo.setProcessId(processInstance.getId());
|
||||||
|
// 流程实例名称
|
||||||
|
hiworkTodo.setProcessName(processInstance.getName());
|
||||||
|
// 流程类型,字典
|
||||||
|
hiworkTodo.setProcessType(hiworkTodoAdd.getProcessType());
|
||||||
|
// 任务id
|
||||||
|
hiworkTodo.setTaskId(hiworkTodoAdd.getTaskId());
|
||||||
|
// 节点名称
|
||||||
|
hiworkTodo.setTaskName(task.getName());
|
||||||
|
// 是否会签
|
||||||
|
hiworkTodo.setMultiInstance(hiworkTodoAdd.getIsCounterSignature());
|
||||||
|
// 节点编号
|
||||||
|
hiworkTodo.setNodeBusiCode(hiworkTodoAdd.getNodeNumber());
|
||||||
|
// 跳转链接
|
||||||
|
hiworkTodo.setBusinessLink(hiworkTodoAdd.getJumpLink());
|
||||||
|
// APP跳转链接
|
||||||
|
hiworkTodo.setAppBusinessLink(hiworkTodoAdd.getAppJumpLink());
|
||||||
|
|
||||||
|
if (StringUtils.isBlank(hiworkTodoAdd.getCreatorId())) {
|
||||||
|
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "creatorId");
|
||||||
|
}
|
||||||
|
SysUser creatorUser = sysUserService.getById(hiworkTodoAdd.getCreatorId());
|
||||||
|
// 创建人code
|
||||||
|
hiworkTodo.setCreateUserCode(creatorUser.getUsername());
|
||||||
|
// 创建人姓名
|
||||||
|
hiworkTodo.setCreateUserName(creatorUser.getRealname());
|
||||||
|
|
||||||
|
if (StringUtils.isBlank(hiworkTodoAdd.getRecipientId())) {
|
||||||
|
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "recipientId");
|
||||||
|
}
|
||||||
|
SysUser recipientUser = sysUserService.getById(hiworkTodoAdd.getRecipientId());
|
||||||
|
// 接收人id
|
||||||
|
hiworkTodo.setUserId(recipientUser.getId());
|
||||||
|
// 接收人code
|
||||||
|
hiworkTodo.setUserCode(recipientUser.getUsername());
|
||||||
|
// 接收人姓名
|
||||||
|
hiworkTodo.setUserName(recipientUser.getRealname());
|
||||||
|
|
||||||
|
// 截止时间
|
||||||
|
hiworkTodo.setDueTime(hiworkTodoAdd.getEndTime());
|
||||||
|
// 业务主键
|
||||||
|
hiworkTodo.setBid(hiworkTodoAdd.getBusinessId());
|
||||||
|
// 待办、已办
|
||||||
|
hiworkTodo.setIsTodo(hiworkTodoAdd.getIsTodo());
|
||||||
|
|
||||||
|
hiworkTodoList.add(hiworkTodo);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 远程调用
|
||||||
|
hiworkPostUtil.postTodo(hiworkTodoList);
|
||||||
|
}
|
||||||
|
}
|
||||||
+122
@@ -0,0 +1,122 @@
|
|||||||
|
package com.jero.modules.docking.hiwork.util;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.jero.common.exception.JeroBootException;
|
||||||
|
import com.jero.modules.docking.hiwork.entity.HiworkResult;
|
||||||
|
import com.jero.modules.docking.hiwork.entity.HiworkTodo;
|
||||||
|
import com.jero.modules.docking.hiwork.entity.HiworkDingDingMsg;
|
||||||
|
import com.jero.modules.docking.hiwork.entity.HiworkSystemMsg;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.http.HttpEntity;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/13 16:55
|
||||||
|
* @Description: Hiwork集成
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class HiworkPostUtil {
|
||||||
|
@Autowired
|
||||||
|
private RestTemplate restTemplate;
|
||||||
|
@Value("${hiwork.ip}")
|
||||||
|
private String ip;
|
||||||
|
@Value("${hiwork.todoUrl}")
|
||||||
|
private String todoUrl;
|
||||||
|
@Value("${hiwork.messageUrl}")
|
||||||
|
private String messageUrl;
|
||||||
|
|
||||||
|
// 异构系统标识
|
||||||
|
private static String sysCode;
|
||||||
|
|
||||||
|
@Value("${hiwork.sysCode}")
|
||||||
|
public void setSysCode(String sysCode) {
|
||||||
|
HiworkPostUtil.sysCode = sysCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getSysCode() {
|
||||||
|
return sysCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/13 17:45
|
||||||
|
* @Description: 远程调用Hiwork
|
||||||
|
**/
|
||||||
|
private void postHiwork(String jsonString, String url) {
|
||||||
|
// 设置请求头
|
||||||
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||||
|
|
||||||
|
HttpEntity<String> requestEntity = new HttpEntity<>(jsonString, headers);
|
||||||
|
|
||||||
|
// 发送 POST 请求并获取响应
|
||||||
|
ResponseEntity<HiworkResult> response = restTemplate.postForEntity(url, requestEntity, HiworkResult.class);
|
||||||
|
|
||||||
|
// 处理响应数据
|
||||||
|
if (response.getStatusCode().is2xxSuccessful()) {
|
||||||
|
HiworkResult hiworkResult = response.getBody();
|
||||||
|
if (!hiworkResult.getSuccess()) {
|
||||||
|
throw new JeroBootException("Hiwork:" + hiworkResult.getMsg());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new JeroBootException("Hiwork: request failed with status code: " + response.getStatusCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/13 17:45
|
||||||
|
* @Description: 统一待办集成远程调用
|
||||||
|
**/
|
||||||
|
public void postTodo(List<HiworkTodo> hiworkTodoList) {
|
||||||
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
String jsonString;
|
||||||
|
try {
|
||||||
|
jsonString = objectMapper.writeValueAsString(hiworkTodoList);
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
throw new JeroBootException("JSON string format conversion error");
|
||||||
|
}
|
||||||
|
postHiwork(jsonString, ip + todoUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/13 17:45
|
||||||
|
* @Description: 统一消息集成远程调用-钉钉消息
|
||||||
|
**/
|
||||||
|
public void postDingDingMsg(HiworkDingDingMsg hiworkDingDingMsg) {
|
||||||
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
String jsonString;
|
||||||
|
try {
|
||||||
|
jsonString = objectMapper.writeValueAsString(hiworkDingDingMsg);
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
throw new JeroBootException("JSON string format conversion error");
|
||||||
|
}
|
||||||
|
postHiwork(jsonString, ip + messageUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/10/13 17:45
|
||||||
|
* @Description: 统一消息集成远程调用-系统消息
|
||||||
|
**/
|
||||||
|
public void postSystemMsg(HiworkSystemMsg hiworkSystemMsg) {
|
||||||
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
String jsonString;
|
||||||
|
try {
|
||||||
|
jsonString = objectMapper.writeValueAsString(hiworkSystemMsg);
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
throw new JeroBootException("JSON string format conversion error");
|
||||||
|
}
|
||||||
|
postHiwork(jsonString, ip + messageUrl);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -375,3 +375,13 @@ iam:
|
|||||||
# bimRemoteUser: bbcadmin
|
# bimRemoteUser: bbcadmin
|
||||||
# bimRemotePwd: P@ssw0rd
|
# bimRemotePwd: P@ssw0rd
|
||||||
bpmcAppkey: test
|
bpmcAppkey: test
|
||||||
|
|
||||||
|
# Hiwork集成
|
||||||
|
hiwork:
|
||||||
|
ip: http://task-test.sinotruk.com/
|
||||||
|
# 异构系统标识
|
||||||
|
sysCode: test
|
||||||
|
# 统一待办集成
|
||||||
|
todoUrl: taskapi/task.basedata/integrationCall/workflowIntegration
|
||||||
|
# 统一消息集成
|
||||||
|
messageUrl: taskapi/task.basedata/notice/noticeCalls/send
|
||||||
Reference in New Issue
Block a user