add:待办推送记录推送结果

This commit is contained in:
sunzheng
2024-07-26 17:38:59 +08:00
parent c9a986427f
commit 2fb859684d
8 changed files with 520 additions and 22 deletions
+23
View File
@@ -0,0 +1,23 @@
DROP TABLE IF EXISTS `laws_unified_todo_log`;
CREATE TABLE `laws_unified_todo_log` (
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '推送地址',
`json_str` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '推送内容',
`response_body` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '返回值',
`state` int NULL DEFAULT NULL COMMENT '状态1成功,2失败',
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
`message_type` int NULL DEFAULT NULL COMMENT '消息类型1OA消息 2:飞书',
`type` int NULL DEFAULT NULL COMMENT '消息处理类型: 1待办,2已办,3结束,6删除,其他是待办已办',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '统一代办推送日志表' ROW_FORMAT = DYNAMIC;
SET FOREIGN_KEY_CHECKS = 1;
INSERT INTO `sys_dict`(`id`, `dict_name`, `dict_en_name`, `dict_code`, `description`, `del_flag`, `create_by`, `create_time`, `update_by`, `update_time`, `type`, `is_tag_dict`, `is_read_only`, `attribute_type`, `order_num`) VALUES ('1816762153966465026', '任务类型', NULL, 'task_type', '', 0, 'admin', '2024-07-26 17:07:06', NULL, NULL, NULL, 0, 0, NULL, NULL);
INSERT INTO `sys_dict_item`(`id`, `dict_id`, `parent_id`, `item_text`, `en_name`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `stat_node`) VALUES ('1816762430140411905', '1816762153966465026', '0', '删除', NULL, '6', '', 6, 1, 'admin', '2024-07-26 17:08:12', NULL, NULL, 0, 0, NULL, '0', NULL);
INSERT INTO `sys_dict_item`(`id`, `dict_id`, `parent_id`, `item_text`, `en_name`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `stat_node`) VALUES ('1816762385068421122', '1816762153966465026', '0', '结束', NULL, '3', '', 3, 1, 'admin', '2024-07-26 17:08:01', NULL, NULL, 0, 0, NULL, '0', NULL);
INSERT INTO `sys_dict_item`(`id`, `dict_id`, `parent_id`, `item_text`, `en_name`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `stat_node`) VALUES ('1816762266797436930', '1816762153966465026', '0', '已办', NULL, '2', '', 2, 1, 'admin', '2024-07-26 17:07:33', NULL, NULL, 0, 0, NULL, '0', NULL);
INSERT INTO `sys_dict_item`(`id`, `dict_id`, `parent_id`, `item_text`, `en_name`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `stat_node`) VALUES ('1816762222031630337', '1816762153966465026', '0', '待办', NULL, '1', '', 1, 1, 'admin', '2024-07-26 17:07:22', NULL, NULL, 0, 0, NULL, '0', NULL);
@@ -0,0 +1,164 @@
package com.jero.modules.docking.hiwork.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.docking.hiwork.entity.LawsUnifiedTodoLog;
import com.jero.modules.docking.hiwork.service.LawsUnifiedTodoLogService;
import com.jero.modules.docking.hiwork.service.impl.LawsUnifiedTodoLogServiceImpl;
import com.jero.modules.system.vo.IdMapBody;
import com.jero.modules.system.vo.IdsMapBody;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
/**
* 统一代办推送日志表(laws_unified_todo_log)表控制层
*
* @author xxxxx
*/
@Slf4j
@Api(tags = "统一代办推送日志表")
@RestController
@RequestMapping("/lawsUnifiedTodoLog")
public class LawsUnifiedTodoLogController extends JeroController<LawsUnifiedTodoLog, LawsUnifiedTodoLogServiceImpl> {
/**
* 服务对象
*/
@Resource
private LawsUnifiedTodoLogService lawsUnifiedTodoLogService;
/**
* 分页列表查询
*/
@ApiOperation(value = "统一代办推送日志表-分页列表查询", notes = "统一代办推送日志表-分页列表查询")
@GetMapping(value = "/page")
public Result<IPage<LawsUnifiedTodoLog>> queryPageList(LawsUnifiedTodoLog lawsUnifiedTodoLog,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
return lawsUnifiedTodoLogService.getPage(lawsUnifiedTodoLog,pageNo,pageSize,req);
}
/**
* 列表查询
*/
@ApiOperation(value = "统一代办推送日志表-列表查询", notes = "统一代办推送日志表-列表查询")
@GetMapping(value = "/list")
public Result<List<LawsUnifiedTodoLog>> queryList(LawsUnifiedTodoLog lawsUnifiedTodoLog,
HttpServletRequest req) {
QueryWrapper<LawsUnifiedTodoLog> queryWrapper = QueryGenerator.initQueryWrapper(lawsUnifiedTodoLog, req.getParameterMap());
List<LawsUnifiedTodoLog> list = lawsUnifiedTodoLogService.list(queryWrapper);
return Result.OK(list);
}
/**
* 添加
*/
@AutoLog(value = "统一代办推送日志表-添加")
@ApiOperation(value = "统一代办推送日志表-添加", notes = "统一代办推送日志表-添加")
@PostMapping(value = "/add")
public Result<String> add(@Validated @RequestBody LawsUnifiedTodoLog lawsUnifiedTodoLog) {
lawsUnifiedTodoLogService.add(lawsUnifiedTodoLog);
return Result.OK(ResultCommon.OK);
}
/**
* 编辑
*/
@AutoLog(value = "统一代办推送日志表-编辑")
@ApiOperation(value = "统一代办推送日志表-编辑", notes = "统一代办推送日志表-编辑")
@PostMapping(value = "/edit")
public Result<String> edit(@Validated @RequestBody LawsUnifiedTodoLog lawsUnifiedTodoLog) {
lawsUnifiedTodoLogService.editById(lawsUnifiedTodoLog);
return Result.OK(ResultCommon.EDIT_OK);
}
/**
* 通过id删除
*/
@AutoLog(value = "统一代办推送日志表-通过id删除")
@ApiOperation(value = "统一代办推送日志表-通过id删除", notes = "统一代办推送日志表-通过id删除")
@PostMapping(value = "/delete")
public Result<String> delete(@RequestBody IdMapBody map) {
String id = map.getId();
if (StringUtils.isBlank(id)) {
return Result.error(ResultCommon.PLEASE_SELECT_DATA);
}
lawsUnifiedTodoLogService.deleteById(id);
return Result.OK(ResultCommon.SUCCESSFULLY_DELETED);
}
/**
* 批量删除
*/
@AutoLog(value = "统一代办推送日志表-批量删除")
@ApiOperation(value = "统一代办推送日志表-批量删除", notes = "统一代办推送日志表-批量删除")
@PostMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestBody IdsMapBody map) {
String ids = map.getIds();
if (StringUtils.isBlank(ids)) {
return Result.error(ResultCommon.PLEASE_SELECT_DATA);
}
List<String> idList = Arrays.asList(map.getIds().split(","));
this.lawsUnifiedTodoLogService.deleteByIds(idList);
return Result.OK(ResultCommon.SUCCESSFULLY_DELETED_IN_BULK);
}
/**
* 通过id查询
*/
@AutoLog(value = "统一代办推送日志表-通过id查询")
@ApiOperation(value = "统一代办推送日志表-通过id查询", notes = "统一代办推送日志表-通过id查询")
@GetMapping(value = "/queryById")
public Result<LawsUnifiedTodoLog> queryById(@RequestParam(name = "id") String id) {
LawsUnifiedTodoLog lawsUnifiedTodoLog = lawsUnifiedTodoLogService.queryById(id);
if (lawsUnifiedTodoLog == null) {
return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
}
return Result.OK(lawsUnifiedTodoLog);
}
/**
* 导出excel
*/
@ApiOperation(value = "统一代办推送日志表-导出excel")
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, LawsUnifiedTodoLog lawsUnifiedTodoLog) {
return super.exportXls(request, lawsUnifiedTodoLog, LawsUnifiedTodoLog.class, "统一代办推送日志表");
}
/**
* 通过excel导入数据
*/
@ApiOperation(value = "统一代办推送日志表-通过excel导入数据")
@PostMapping(value = "/importExcel")
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, LawsUnifiedTodoLog.class);
}
/**
* 发送
*/
@AutoLog(value = "统一代办推送日志表-发送")
@ApiOperation(value = "统一代办推送日志表-发送", notes = "统一代办推送日志表-发送")
@PostMapping(value = "/send")
public Result<String> send(@RequestBody LawsUnifiedTodoLog lawsUnifiedTodoLog) {
return lawsUnifiedTodoLogService.send(lawsUnifiedTodoLog);
}
}
@@ -0,0 +1,96 @@
package com.jero.modules.docking.hiwork.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
*统一代办推送日志表
*@author liJiaRao
*@date 2024-07-12 14:02
*/
@Data
@ApiModel(description="统一代办推送日志表")
@TableName(value = "laws_unified_todo_log")
public class LawsUnifiedTodoLog {
@TableId(value = "id", type = IdType.ASSIGN_ID)
@ApiModelProperty(value="")
private String id;
/**
* 推送地址
*/
@TableField(value = "url")
@ApiModelProperty(value="推送地址")
private String url;
/**
* 推送内容
*/
@TableField(value = "json_str")
@ApiModelProperty(value="推送内容")
private String jsonStr;
/**
* 返回内容
*/
@TableField(value = "response_body")
@ApiModelProperty(value="返回内容")
private String responseBody;
/**
* 状态1成功,2失败
*/
@TableField(value = "`state`")
@ApiModelProperty(value="状态1成功,2失败")
@Dict(dicCode = "msgSendStatus")
private Integer state;
/**
* 任务处理类型: 1待办,2已办,3结束,6删除,其他是待办已办
*/
@ApiModelProperty(value="消息处理类型: 1待办,2已办,3结束,6删除,其他是待办已办")
@Dict(dicCode = "task_type")
private Integer type;
/**
* 消息类型1OA消息
*/
@ApiModelProperty(value="消息类型1OA消息")
private Integer messageType;
/**
* 创建人
*/
@TableField(value = "create_by")
@ApiModelProperty(value="创建人")
private String createBy;
/**
* 创建时间
*/
@TableField(value = "create_time")
@ApiModelProperty(value="创建时间")
private Date createTime;
/**
* 更新人
*/
@TableField(value = "update_by")
@ApiModelProperty(value="更新人")
private String updateBy;
/**
* 更新时间
*/
@TableField(value = "update_time")
@ApiModelProperty(value="更新时间")
private Date updateTime;
}
@@ -0,0 +1,12 @@
package com.jero.modules.docking.hiwork.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.docking.hiwork.entity.LawsUnifiedTodoLog;
/**
*
*@author liJiaRao
*@date 2024-07-12 14:02
*/
public interface LawsUnifiedTodoLogMapper extends BaseMapper<LawsUnifiedTodoLog> {
}
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.docking.hiwork.mapper.LawsUnifiedTodoLogMapper">
<resultMap id="BaseResultMap" type="com.jero.modules.docking.hiwork.entity.LawsUnifiedTodoLog">
<!--@mbg.generated-->
<!--@Table laws_unified_todo_log-->
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="url" jdbcType="VARCHAR" property="url" />
<result column="type" jdbcType="INTEGER" property="type" />
<result column="json_str" jdbcType="VARCHAR" property="jsonStr" />
<result column="state" jdbcType="INTEGER" property="state" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, url, `type`, json_str, `state`, create_by, create_time, update_by, update_time
</sql>
</mapper>
@@ -0,0 +1,45 @@
package com.jero.modules.docking.hiwork.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.common.api.vo.Result;
import com.jero.modules.docking.hiwork.entity.LawsUnifiedTodoLog;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
*
*@author liJiaRao
*@date 2024-07-12 14:02
*/
public interface LawsUnifiedTodoLogService extends IService<LawsUnifiedTodoLog> {
/**
* 分页
* @param lawsUnifiedTodoLog
* @param pageNo
* @param pageSize
* @param req
* @return
*/
Result<IPage<LawsUnifiedTodoLog>> getPage(LawsUnifiedTodoLog lawsUnifiedTodoLog, Integer pageNo,Integer pageSize,
HttpServletRequest req);
void add(LawsUnifiedTodoLog lawsUnifiedTodoLog);
void editById(LawsUnifiedTodoLog lawsUnifiedTodoLog);
void deleteById(String id);
void deleteByIds(List<String> idList);
LawsUnifiedTodoLog queryById(String id);
/**
* 发送
* @param lawsUnifiedTodoLog
* @return
*/
Result<String> send(LawsUnifiedTodoLog lawsUnifiedTodoLog);
}
@@ -18,6 +18,8 @@ import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeService;
import com.jero.modules.docking.hiwork.entity.HiworkTodo;
import com.jero.modules.docking.hiwork.entity.LawsUnifiedTodoLog;
import com.jero.modules.docking.hiwork.service.LawsUnifiedTodoLogService;
import com.jero.modules.docking.hiwork.util.HiworkPostUtil;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
@@ -27,7 +29,6 @@ import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.time.Instant;
import java.util.ArrayList;
@@ -56,6 +57,8 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
private ProcessAllService processAllService;
@Resource
private RestTemplate restTemplate;
@Resource
private LawsUnifiedTodoLogService unifiedTodoLogService;
@Value("${hiwork.ip}")
private String ip;
@@ -97,13 +100,8 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
List<HiworkTodo> hiworkTodoList = getHiworkTodos(hiworkTodoAddList);
log.info("统一待办推送入参" + JSON.toJSONString(hiworkTodoList));
log.info("统一待办推送url" + ip + todoUrl);
// 远程调用
JSONObject json = restTemplate.postForObject(ip + todoUrl,hiworkTodoList, JSONObject.class);
if(!Objects.isNull(json) && json.containsKey("success") && Objects.equals("true",json.getString("success"))){
log.info("统一待办推送成功");
}else{
log.info("统一待办推送失败{}",json);
}
String isTodo = hiworkTodoList.get(0).getIsTodo();
push(ip + todoUrl,JSON.toJSONString(hiworkTodoAddList),isTodo);
}catch (Exception e){
log.error("统一待办推送异常",e);
}
@@ -119,15 +117,11 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
hiworkTodoAdd.setType(TODO_TYPE_3);
}
List<HiworkTodo> hiworkTodoList = getHiworkTodos(hiworkTodoAddList);
log.info("统一待办推送入参" + JSON.toJSONString(hiworkTodoList));
log.info("统一待办推送入参" + JSON.toJSONString(hiworkTodoAddList));
log.info("统一待办推送url" + ip + todoUrl);
// 远程调用
JSONObject json = restTemplate.postForObject(ip + todoUrl,hiworkTodoList, JSONObject.class);
if(!Objects.isNull(json) && json.containsKey("success") && Objects.equals("true",json.getString("success"))){
log.info("统一待办推送成功");
}else{
log.info("统一待办推送失败{}",json);
}
String isTodo = hiworkTodoList.get(0).getIsTodo();
push(ip + todoUrl,JSON.toJSONString(hiworkTodoAddList),isTodo);
}catch (Exception e){
log.error("统一待办推送异常",e);
}
@@ -146,17 +140,46 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
log.info("统一待办删除推送入参" + JSON.toJSONString(hiworkTodoList));
log.info("统一待办推送url" + ip + todoUrl);
// 远程调用
JSONObject json = restTemplate.postForObject(ip + todoUrl,hiworkTodoList, JSONObject.class);
if(!Objects.isNull(json) && json.containsKey("success") && Objects.equals("true",json.getString("success"))){
log.info("统一待办删除推送成功");
}else{
log.info("统一待办删除推送失败{}",json);
}
String isTodo = hiworkTodoList.get(0).getIsTodo();
push(ip + todoUrl,JSON.toJSONString(hiworkTodoAddList),isTodo);
}catch (Exception e){
log.error("统一待办删除推送异常",e);
}
}
private void push(String url, String jsonString, String type) {
// 设置最大重试次数
int maxRetries = 3;
// 当前重试次数
int retries = 0;
LawsUnifiedTodoLog lawsUnifiedTodoLog = new LawsUnifiedTodoLog();
lawsUnifiedTodoLog.setType(Integer.valueOf(type));
while (retries < maxRetries) {
// 远程调用
// JSONObject json = new JSONObject();
// json.put("success5", true);
JSONObject json = restTemplate.postForObject(url,jsonString, JSONObject.class);
if(!Objects.isNull(json) && json.containsKey("success") && Objects.equals("true",json.getString("success"))){
log.info("统一待办推送成功");
lawsUnifiedTodoLog.setResponseBody(JSON.toJSONString(json));
break;
}else{
lawsUnifiedTodoLog.setResponseBody(JSON.toJSONString(json));
log.info("统一待办推送失败{}",json);
retries++;
}
}
lawsUnifiedTodoLog.setUrl(url);
lawsUnifiedTodoLog.setJsonStr(jsonString);
if (retries == maxRetries){
lawsUnifiedTodoLog.setState(2);
}else {
lawsUnifiedTodoLog.setState(1);
}
unifiedTodoLogService.add(lawsUnifiedTodoLog);
}
@NotNull
private List<HiworkTodo> getHiworkTodos(List<HiworkTodoAdd> hiworkTodoAddList) {
List<HiworkTodo> hiworkTodoList = new ArrayList<>();
@@ -0,0 +1,114 @@
package com.jero.modules.docking.hiwork.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.PushWorkflowIntegrationAPI;
import com.jero.common.api.dto.message.HiworkTodoAdd;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.docking.hiwork.entity.HiworkTodo;
import com.jero.modules.docking.hiwork.entity.LawsUnifiedTodoLog;
import com.jero.modules.docking.hiwork.enums.IsTodoEnum;
import com.jero.modules.docking.hiwork.mapper.LawsUnifiedTodoLogMapper;
import com.jero.modules.docking.hiwork.service.LawsUnifiedTodoLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Objects;
/**
*
*@author liJiaRao
*@date 2024-07-12 14:02
*/
@Service
@Slf4j
public class LawsUnifiedTodoLogServiceImpl extends ServiceImpl<LawsUnifiedTodoLogMapper, LawsUnifiedTodoLog>
implements LawsUnifiedTodoLogService{
@Resource
private PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI;
@Value("${hiwork.ip}")
private String ip;
@Value("${hiwork.todoUrl}")
private String todoUrl;
@Value("${hiwork.isWorkflow}")
private boolean isWorkflow;
private static final String TODO_TYPE_2 = "2";
private static final String TODO_TYPE_3 = "3";
private static final String TODO_TYPE_6 = "6";
@Override
public Result<IPage<LawsUnifiedTodoLog>> getPage(LawsUnifiedTodoLog lawsUnifiedTodoLog, Integer pageNo,
Integer pageSize, HttpServletRequest req) {
QueryWrapper<LawsUnifiedTodoLog> queryWrapper = QueryGenerator.initQueryWrapper(lawsUnifiedTodoLog, req.getParameterMap());
Page<LawsUnifiedTodoLog> page = new Page<>(pageNo, pageSize);
IPage<LawsUnifiedTodoLog> pageList = page(page, queryWrapper);
return Result.OK(pageList);
}
@Override
public void add(LawsUnifiedTodoLog lawsUnifiedTodoLog) {
this.save(lawsUnifiedTodoLog);
}
@Override
public void editById(LawsUnifiedTodoLog lawsUnifiedTodoLog) {
this.updateById(lawsUnifiedTodoLog);
}
@Override
public void deleteById(String id) {
this.removeById(id);
}
@Override
public void deleteByIds(List<String> idList) {
for (String id : idList) {
deleteById(id);
}
}
@Override
public LawsUnifiedTodoLog queryById(String id) {
LawsUnifiedTodoLog lawsUnifiedTodoLog = this.getById(id);
return lawsUnifiedTodoLog;
}
@Override
public Result<String> send(LawsUnifiedTodoLog lawsUnifiedTodoLog) {
LawsUnifiedTodoLog lawsUnifiedTodoLogObj = getById(lawsUnifiedTodoLog.getId());
if(Objects.isNull(lawsUnifiedTodoLogObj)){
return Result.error("数据不存在");
}
String jsonStr = lawsUnifiedTodoLog.getJsonStr();
String type = lawsUnifiedTodoLog.getType().toString(); // 当前任务的状态类型
// 转换为List<HiworkTodo>
List<HiworkTodoAdd> hiworkTodoAddList = JSON.parseObject(jsonStr, new TypeReference<List<HiworkTodoAdd>>() {});
if (IsTodoEnum.TODO.getValue().equals(type) || IsTodoEnum.DONE.getValue().equals(type)) {
// 如果是待办或已办,走待办发送消息
pushWorkflowIntegrationAPI.sendTodoTask(hiworkTodoAddList);
}else if (IsTodoEnum.FINISH.getValue().equals(type)) {
// 如果是结束,调用流程结束的发送消息
pushWorkflowIntegrationAPI.sendActivityComplete(hiworkTodoAddList);
}else {
// 如果是删除,走删除发送消息
pushWorkflowIntegrationAPI.sendDeleteTask(hiworkTodoAddList);
}
LambdaUpdateWrapper<LawsUnifiedTodoLog> queryLawsUnifiedTodoLog = new LambdaUpdateWrapper<>();
queryLawsUnifiedTodoLog.eq(LawsUnifiedTodoLog::getId,lawsUnifiedTodoLog.getId());
queryLawsUnifiedTodoLog.set(LawsUnifiedTodoLog::getState,1);
update(queryLawsUnifiedTodoLog);
return Result.OK("操作成功");
}
}