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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user