add 对接oa
This commit is contained in:
+4
-6
@@ -1,7 +1,7 @@
|
||||
package com.jero.common.api;
|
||||
|
||||
|
||||
import com.jero.common.api.dto.message.HiworkTodoAdd;
|
||||
import com.jero.common.api.dto.message.UnifiedTodoVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -16,10 +16,8 @@ public interface PushWorkflowIntegrationAPI {
|
||||
* @Author: liao
|
||||
* @Date: 2023/10/13 15:12
|
||||
* @Description: 统一待办集成
|
||||
**/
|
||||
void sendTodoTask(List<HiworkTodoAdd> hiworkTodoAddList);
|
||||
*
|
||||
* @return*/
|
||||
void sendTodoTask(List<UnifiedTodoVO> unifiedTodoVOList);
|
||||
|
||||
void sendActivityComplete(List<HiworkTodoAdd> processInstanceId);
|
||||
|
||||
void sendDeleteTask(List<HiworkTodoAdd> todoAddList);
|
||||
}
|
||||
|
||||
+6
-3
@@ -15,15 +15,18 @@ import lombok.experimental.Accessors;
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ApiModel(value="统一待办集成", description="统一待办集成")
|
||||
public class HiworkTodoAdd {
|
||||
public class UnifiedTodoVO {
|
||||
|
||||
@ApiModelProperty(value = "审批记录表id")
|
||||
private String recordId;
|
||||
@ApiModelProperty(value = "流程定义id")
|
||||
private String processDefinitionId;
|
||||
@ApiModelProperty(value = "1待办,2已办,3结束,6删除,其他是待办已办")
|
||||
private String type;
|
||||
@ApiModelProperty(value = "0:待办,2:已办,4:办结,8:待阅,10:已阅")
|
||||
private String isRemark;
|
||||
@ApiModelProperty(value = "转办时用")
|
||||
private String toUserId;
|
||||
@ApiModelProperty(value = "发送时的时间")
|
||||
private String date;
|
||||
|
||||
|
||||
}
|
||||
@@ -341,4 +341,14 @@ public class CommonConstant {
|
||||
*/
|
||||
public static final String READING_STATUS_1 = "1";
|
||||
public static final String READING_STATUS_2 = "2";
|
||||
|
||||
/**
|
||||
* OA待办消息状态(0:待办,2:已办,4:办结,8:待阅,10:已阅)
|
||||
*/
|
||||
//待办
|
||||
public static final String TODO_TYPE_0 = "0";
|
||||
//已办
|
||||
public static final String TODO_TYPE_2 = "2";
|
||||
//办结
|
||||
public static final String TODO_TYPE_4 = "4";
|
||||
}
|
||||
|
||||
+158
@@ -0,0 +1,158 @@
|
||||
package com.jero.modules.docking.hiwork.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
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.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, LawsUnifiedTodoLogService> {
|
||||
/**
|
||||
* 服务对象
|
||||
*/
|
||||
@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) {
|
||||
QueryWrapper<LawsUnifiedTodoLog> queryWrapper = QueryGenerator.initQueryWrapper(lawsUnifiedTodoLog, req.getParameterMap());
|
||||
Page<LawsUnifiedTodoLog> page = new Page<>(pageNo, pageSize);
|
||||
IPage<LawsUnifiedTodoLog> pageList = lawsUnifiedTodoLogService.page(page, queryWrapper);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*/
|
||||
@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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
-78
@@ -1,78 +0,0 @@
|
||||
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 flowid;
|
||||
@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 = "是否进入下一节点(0是 1不是)")
|
||||
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;
|
||||
|
||||
}
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
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 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.INPUT)
|
||||
@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失败")
|
||||
private Integer state;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@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;
|
||||
|
||||
}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
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 UnifiedTodo {
|
||||
@ApiModelProperty(value = "异构系统标识")
|
||||
private String sysCode;
|
||||
@ApiModelProperty(value = "流程id")
|
||||
private String flowid;
|
||||
@ApiModelProperty(value = "标题")
|
||||
private String requestname;
|
||||
@ApiModelProperty(value = "流程类型名称")
|
||||
private String workflowname;
|
||||
@ApiModelProperty(value = "步骤名称(节点名称)")
|
||||
private String nodename;
|
||||
@ApiModelProperty(value = "PC地址")
|
||||
private String pcurl;
|
||||
@ApiModelProperty(value = "APP地址")
|
||||
private String appurl;
|
||||
@ApiModelProperty(value = "0:待办,2:已办,4:办结,8:待阅,10:已阅")
|
||||
private String isremark;
|
||||
@ApiModelProperty(value = "流程查看状态0:未读1:已读;")
|
||||
private String viewtype;
|
||||
@ApiModelProperty(value = "创建人code")
|
||||
private String creator;
|
||||
@ApiModelProperty(value = "接收人code")
|
||||
private String receiver;
|
||||
@ApiModelProperty(value = "创建日期时间")
|
||||
private String createdatetime;
|
||||
@ApiModelProperty(value = "接收日期时间")
|
||||
private String receivedatetime;
|
||||
@ApiModelProperty(value = "时间戳字段")
|
||||
private String receivets;
|
||||
@ApiModelProperty(value = "缓急值0正常,2紧急")
|
||||
private String requestlevel;
|
||||
|
||||
|
||||
}
|
||||
+12
@@ -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> {
|
||||
}
|
||||
+21
@@ -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>
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
package com.jero.modules.docking.hiwork.service;
|
||||
|
||||
|
||||
import com.jero.common.api.dto.message.HiworkTodoAdd;
|
||||
import com.jero.common.api.dto.message.UnifiedTodoVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -17,6 +17,6 @@ public interface IHiworkTodoService {
|
||||
* @Date: 2023/10/13 15:12
|
||||
* @Description: 统一待办集成
|
||||
**/
|
||||
void sendTodoTask(List<HiworkTodoAdd> hiworkTodoAddList);
|
||||
void sendTodoTask(List<UnifiedTodoVO> unifiedTodoVOList);
|
||||
|
||||
}
|
||||
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
package com.jero.modules.docking.hiwork.service;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import java.util.List;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.modules.docking.hiwork.entity.LawsUnifiedTodoLog;
|
||||
import com.jero.modules.docking.hiwork.mapper.LawsUnifiedTodoLogMapper;
|
||||
/**
|
||||
*
|
||||
*@author liJiaRao
|
||||
*@date 2024-07-12 14:02
|
||||
*/
|
||||
@Service
|
||||
public class LawsUnifiedTodoLogService extends ServiceImpl<LawsUnifiedTodoLogMapper, LawsUnifiedTodoLog> {
|
||||
public void add(LawsUnifiedTodoLog lawsUnifiedTodoLog) {
|
||||
this.save(lawsUnifiedTodoLog);
|
||||
}
|
||||
|
||||
public void editById(LawsUnifiedTodoLog lawsUnifiedTodoLog) {
|
||||
this.updateById(lawsUnifiedTodoLog);
|
||||
}
|
||||
|
||||
public void deleteById(String id) {
|
||||
this.removeById(id);
|
||||
}
|
||||
|
||||
public void deleteByIds(List<String> idList) {
|
||||
for (String id : idList) {
|
||||
deleteById(id);
|
||||
}
|
||||
}
|
||||
|
||||
public LawsUnifiedTodoLog queryById(String id) {
|
||||
LawsUnifiedTodoLog lawsUnifiedTodoLog = this.getById(id);
|
||||
return lawsUnifiedTodoLog;
|
||||
}
|
||||
}
|
||||
-275
@@ -1,275 +0,0 @@
|
||||
package com.jero.modules.docking.hiwork.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.api.PushWorkflowIntegrationAPI;
|
||||
import com.jero.common.api.dto.message.HiworkTodoAdd;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.activiti.entity.ProcessAll;
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
import com.jero.modules.activiti.entity.ProcessNode;
|
||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
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.util.HiworkPostUtil;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
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;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/10/13 14:23
|
||||
* @Description: 待办
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
|
||||
|
||||
@Resource
|
||||
private ISysUserService sysUserService;
|
||||
@Resource
|
||||
private ProcessApprovalRecordService processApprovalRecordService;
|
||||
@Resource
|
||||
private HiworkPostUtil hiworkPostUtil;
|
||||
@Resource
|
||||
private ProcessNodeService processNodeService;
|
||||
@Resource
|
||||
private ProcessAllService processAllService;
|
||||
@Resource
|
||||
private RestTemplate restTemplate;
|
||||
|
||||
@Value("${hiwork.ip}")
|
||||
private String ip;
|
||||
@Value("${hiwork.todoUrl}")
|
||||
private String todoUrl;
|
||||
@Value("${hiwork.isWorkflow}")
|
||||
private boolean isWorkflow;
|
||||
@Value("${hiwork.sysCode}")
|
||||
private String hiworkSysCode;
|
||||
@Value("${hiwork.url}")
|
||||
private String hiworkUrl;
|
||||
@Value("${hiwork.fontUrl}")
|
||||
private String hiworkFontUrl;
|
||||
@Value("${hiwork.fontAppUrl}")
|
||||
private String hiworkFontAppUrl;
|
||||
|
||||
|
||||
private static final String PROCESS_TYPE = "srms";
|
||||
private static final String TODO_TYPE_2 = "2";
|
||||
private static final String TODO_TYPE_3 = "3";
|
||||
private static final String TODO_TYPE_6 = "6";
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/10/13 15:12
|
||||
* @Description: 统一待办集成
|
||||
**/
|
||||
@Override
|
||||
public void sendTodoTask(List<HiworkTodoAdd> hiworkTodoAddList) {
|
||||
if(!isWorkflow){
|
||||
return;
|
||||
}
|
||||
|
||||
if (CollectionUtils.isEmpty(hiworkTodoAddList)) {
|
||||
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "hiworkTodoAddList");
|
||||
}
|
||||
try {
|
||||
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);
|
||||
}
|
||||
}catch (Exception e){
|
||||
log.error("统一待办推送异常",e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendActivityComplete(List<HiworkTodoAdd> hiworkTodoAddList) {
|
||||
if(!isWorkflow){
|
||||
return;
|
||||
}
|
||||
try {
|
||||
for (HiworkTodoAdd hiworkTodoAdd : hiworkTodoAddList) {
|
||||
hiworkTodoAdd.setType(TODO_TYPE_3);
|
||||
}
|
||||
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);
|
||||
}
|
||||
}catch (Exception e){
|
||||
log.error("统一待办推送异常",e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendDeleteTask(List<HiworkTodoAdd> hiworkTodoAddList) {
|
||||
if(!isWorkflow){
|
||||
return;
|
||||
}
|
||||
try {
|
||||
for (HiworkTodoAdd hiworkTodoAdd : hiworkTodoAddList) {
|
||||
hiworkTodoAdd.setType(TODO_TYPE_6);
|
||||
}
|
||||
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);
|
||||
}
|
||||
}catch (Exception e){
|
||||
log.error("统一待办删除推送异常",e);
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private List<HiworkTodo> getHiworkTodos(List<HiworkTodoAdd> hiworkTodoAddList) {
|
||||
List<HiworkTodo> hiworkTodoList = new ArrayList<>();
|
||||
for (HiworkTodoAdd hiworkTodoAdd : hiworkTodoAddList) {
|
||||
String recordId = hiworkTodoAdd.getRecordId();
|
||||
String processDefinitionId = hiworkTodoAdd.getProcessDefinitionId();
|
||||
String type = hiworkTodoAdd.getType();
|
||||
ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getById(recordId);
|
||||
if(Objects.isNull(processApprovalRecord)){
|
||||
continue;
|
||||
}
|
||||
HiworkTodo hiworkTodo = new HiworkTodo();
|
||||
hiworkTodo.setSysCode(hiworkSysCode);
|
||||
|
||||
String date = DateUtil.formatDateTime(new Date());
|
||||
String taskId = processApprovalRecord.getTaskId();
|
||||
hiworkTodo.setFlowid(processApprovalRecord.getProcessInstanceId());
|
||||
hiworkTodo.setProcessId(taskId);
|
||||
hiworkTodo.setProcessType(PROCESS_TYPE);
|
||||
hiworkTodo.setTaskId(taskId);
|
||||
hiworkTodo.setTaskName(processApprovalRecord.getTaskName());
|
||||
|
||||
LambdaQueryWrapper<ProcessNode> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessNode::getProcessDefinitionId,processDefinitionId);
|
||||
wrapper.eq(ProcessNode::getNodeName,processApprovalRecord.getTaskName());
|
||||
wrapper.eq(ProcessNode::getIsView, YesOrNoEnum.YES.getValue());
|
||||
ProcessNode processNode = processNodeService.getOne(wrapper,false);
|
||||
if(!Objects.isNull(processNode)){
|
||||
if(processNode.getNodeName().contains("会签")){
|
||||
|
||||
}
|
||||
hiworkTodo.setNodeBusiCode(processNode.getXmlNodeId());
|
||||
// 是否显示(0否,1是)
|
||||
hiworkTodo.setIsShow(String.valueOf(processNode.getIsView()));
|
||||
}
|
||||
String userId;
|
||||
if (hiworkTodoAdd.getToUserId() == null){
|
||||
userId = processApprovalRecord.getUserId();
|
||||
}else {
|
||||
userId = hiworkTodoAdd.getToUserId();
|
||||
}
|
||||
SysUser sysUser = sysUserService.getById(userId);
|
||||
|
||||
String noticeTitle = processApprovalRecord.getTaskName() + "(" + sysUser.getRealname() + " " + date + ")";
|
||||
LambdaQueryWrapper<ProcessAll> queryProcessAll = new LambdaQueryWrapper<>();
|
||||
queryProcessAll.eq(ProcessAll::getProcessInstanceId,processApprovalRecord.getProcessInstanceId());
|
||||
ProcessAll processAll = processAllService.getOne(queryProcessAll);
|
||||
if(!Objects.isNull(processAll)){
|
||||
String processName = ProcessTypeEnum.getNameByValue(processAll.getPrcType());
|
||||
noticeTitle = processName + "(" + sysUser.getRealname() + " " + date + ")";
|
||||
hiworkTodo.setProcessName(processName);
|
||||
|
||||
SysUser createUser = sysUserService.getById(processAll.getCreateUserId());
|
||||
if(!Objects.isNull(createUser)){
|
||||
hiworkTodo.setCreateUserCode(createUser.getUsername());
|
||||
hiworkTodo.setCreateUserName(createUser.getRealname());
|
||||
}
|
||||
if(!Objects.isNull(processAll.getDueTime())){
|
||||
hiworkTodo.setDueTime(processAll.getDueTime().getTime());
|
||||
}
|
||||
String projectId = "";
|
||||
if (StrUtil.isNotBlank(processAll.getProjectId())){
|
||||
projectId = processAll.getProjectId();
|
||||
}
|
||||
hiworkTodo.setBid(projectId);
|
||||
String url = hiworkFontUrl
|
||||
//.replaceAll("&","%26")
|
||||
//.replaceAll("\\?","%3F")
|
||||
.replace("{projectId}",projectId)
|
||||
.replace("{taskName}",processApprovalRecord.getTaskName())
|
||||
.replace("{taskId}", taskId)
|
||||
.replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId())
|
||||
.replace("{nodeId}",processApprovalRecord.getNodeId());
|
||||
// 跳转链接
|
||||
String businessLink = Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())) + url;
|
||||
hiworkTodo.setBusinessLink(businessLink);
|
||||
// APP跳转链接
|
||||
String appUrl = hiworkFontAppUrl
|
||||
//.replaceAll("&","%26")
|
||||
//.replaceAll("\\?","%3F")
|
||||
.replace("{projectId}",projectId)
|
||||
.replace("{taskName}",processApprovalRecord.getTaskName())
|
||||
.replace("{taskId}", taskId)
|
||||
.replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId())
|
||||
.replace("{nodeId}",processApprovalRecord.getNodeId());
|
||||
String appBusinessLink = appUrl.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())));
|
||||
hiworkTodo.setAppBusinessLink(appBusinessLink);
|
||||
}
|
||||
hiworkTodo.setNoticeTitle(noticeTitle);
|
||||
hiworkTodo.setUserId(userId);
|
||||
hiworkTodo.setUserCode(sysUser.getUsername());
|
||||
hiworkTodo.setUserName(sysUser.getRealname());
|
||||
hiworkTodo.setReceiveTime(Instant.now());
|
||||
//2已完成时进入下一节点
|
||||
Integer finishFlag = processApprovalRecord.getFinishFlag();
|
||||
if (finishFlag.equals(2)){
|
||||
hiworkTodo.setMultiInstance(0);
|
||||
}else {
|
||||
hiworkTodo.setMultiInstance(1);
|
||||
}
|
||||
if (TODO_TYPE_3.equals(type)){
|
||||
hiworkTodo.setIsTodo(TODO_TYPE_3);
|
||||
}else if (TODO_TYPE_6.equals(type)){
|
||||
hiworkTodo.setIsTodo(TODO_TYPE_6);
|
||||
}else if (TODO_TYPE_2.equals(type)){
|
||||
hiworkTodo.setIsTodo(TODO_TYPE_2);
|
||||
}else {
|
||||
hiworkTodo.setIsTodo(String.valueOf(finishFlag));
|
||||
}
|
||||
hiworkTodoList.add(hiworkTodo);
|
||||
}
|
||||
return hiworkTodoList;
|
||||
}
|
||||
|
||||
}
|
||||
+229
@@ -0,0 +1,229 @@
|
||||
package com.jero.modules.docking.hiwork.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.Header;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.HttpResponse;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.api.PushWorkflowIntegrationAPI;
|
||||
import com.jero.common.api.dto.message.UnifiedTodoVO;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.modules.activiti.entity.ProcessAll;
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
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.LawsUnifiedTodoLog;
|
||||
import com.jero.modules.docking.hiwork.entity.UnifiedTodo;
|
||||
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;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
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.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/10/13 14:23
|
||||
* @Description: 待办
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class UnifiedTodoServiceImpl implements PushWorkflowIntegrationAPI {
|
||||
|
||||
@Resource
|
||||
private ISysUserService sysUserService;
|
||||
@Resource
|
||||
private ProcessApprovalRecordService processApprovalRecordService;
|
||||
@Resource
|
||||
private HiworkPostUtil hiworkPostUtil;
|
||||
@Resource
|
||||
private ProcessNodeService processNodeService;
|
||||
@Resource
|
||||
private ProcessAllService processAllService;
|
||||
@Resource
|
||||
private RestTemplate restTemplate;
|
||||
@Resource
|
||||
private LawsUnifiedTodoLogService unifiedTodoLogService;
|
||||
|
||||
@Value("${hiwork.ip}")
|
||||
private String ip;
|
||||
@Value("${hiwork.todoUrl}")
|
||||
private String todoUrl;
|
||||
@Value("${hiwork.isWorkflow}")
|
||||
private boolean isWorkflow;
|
||||
@Value("${hiwork.sysCode}")
|
||||
private String hiworkSysCode;
|
||||
@Value("${hiwork.url}")
|
||||
private String hiworkUrl;
|
||||
@Value("${hiwork.fontUrl}")
|
||||
private String hiworkFontUrl;
|
||||
@Value("${hiwork.fontAppUrl}")
|
||||
private String hiworkFontAppUrl;
|
||||
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/10/13 15:12
|
||||
* @Description: 统一待办集成
|
||||
*
|
||||
* @return*/
|
||||
@Override
|
||||
public void sendTodoTask(List<UnifiedTodoVO> unifiedTodoVOList) {
|
||||
if(!isWorkflow){
|
||||
return;
|
||||
}
|
||||
boolean successFlag = true;
|
||||
if (CollectionUtils.isEmpty(unifiedTodoVOList)) {
|
||||
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "unifiedTodoVOList");
|
||||
}
|
||||
String newDate = DateUtil.formatDateTime(new Date());
|
||||
for (UnifiedTodoVO unifiedTodoVO : unifiedTodoVOList) {
|
||||
String date = unifiedTodoVO.getDate();
|
||||
if (StringUtils.isBlank(date)){
|
||||
unifiedTodoVO.setDate(newDate);
|
||||
}
|
||||
}
|
||||
try {
|
||||
List<UnifiedTodo> unifiedTodoList = getHiworkTodos(unifiedTodoVOList);
|
||||
String jsonString = JSONObject.toJSONString(unifiedTodoList);
|
||||
log.info("统一待办推送入参" + jsonString);
|
||||
push(ip + todoUrl,jsonString);
|
||||
}catch (Exception e){
|
||||
log.error("统一待办推送异常",e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void push(String url, String jsonString) {
|
||||
// 设置最大重试次数
|
||||
int maxRetries = 3;
|
||||
// 当前重试次数
|
||||
int retries = 0;
|
||||
LawsUnifiedTodoLog lawsUnifiedTodoLog = new LawsUnifiedTodoLog();
|
||||
while (retries < maxRetries) {
|
||||
// 远程调用
|
||||
HttpResponse execute = HttpRequest.post(url)
|
||||
.header(Header.CONTENT_TYPE, "application/json;charset=UTF-8")
|
||||
.body(jsonString)//表单内容
|
||||
.timeout(3000)//超时,毫秒
|
||||
.execute();
|
||||
if (execute.isOk()) {
|
||||
log.info("统一待办推送成功");
|
||||
String body = execute.body();
|
||||
lawsUnifiedTodoLog.setResponseBody(body);
|
||||
break;
|
||||
}else {
|
||||
String body = execute.body();
|
||||
lawsUnifiedTodoLog.setResponseBody(body);
|
||||
JSONObject jsonObject = JSONObject.parseObject(body);
|
||||
String operResult = jsonObject.getString("operResult");
|
||||
if ("1".equals(operResult)){
|
||||
log.info("统一待办推送成功");
|
||||
break;
|
||||
}
|
||||
log.info("统一待办推送失败{}",jsonObject);
|
||||
retries++;
|
||||
}
|
||||
}
|
||||
lawsUnifiedTodoLog.setUrl(url);
|
||||
lawsUnifiedTodoLog.setJsonStr(jsonString);
|
||||
if (retries == maxRetries){
|
||||
lawsUnifiedTodoLog.setState(2);
|
||||
}else {
|
||||
lawsUnifiedTodoLog.setState(1);
|
||||
}
|
||||
unifiedTodoLogService.add(lawsUnifiedTodoLog);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private List<UnifiedTodo> getHiworkTodos(List<UnifiedTodoVO> unifiedTodoVOList) {
|
||||
List<UnifiedTodo> unifiedTodoList = new ArrayList<>();
|
||||
for (UnifiedTodoVO unifiedTodoVO : unifiedTodoVOList) {
|
||||
String recordId = unifiedTodoVO.getRecordId();
|
||||
String processDefinitionId = unifiedTodoVO.getProcessDefinitionId();
|
||||
String isremark = unifiedTodoVO.getIsRemark();
|
||||
String date = unifiedTodoVO.getDate();
|
||||
ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getById(recordId);
|
||||
if(Objects.isNull(processApprovalRecord)){
|
||||
continue;
|
||||
}
|
||||
UnifiedTodo unifiedTodo = new UnifiedTodo();
|
||||
unifiedTodo.setSysCode(hiworkSysCode);
|
||||
|
||||
String taskId = processApprovalRecord.getTaskId();
|
||||
unifiedTodo.setFlowid(processApprovalRecord.getProcessInstanceId());
|
||||
unifiedTodo.setNodename(processApprovalRecord.getTaskName());
|
||||
|
||||
String userId;
|
||||
if (unifiedTodoVO.getToUserId() == null){
|
||||
userId = processApprovalRecord.getUserId();
|
||||
}else {
|
||||
userId = unifiedTodoVO.getToUserId();
|
||||
}
|
||||
SysUser sysUser = sysUserService.getById(userId);
|
||||
|
||||
String noticeTitle = processApprovalRecord.getTaskName() + "(" + sysUser.getRealname() + " " + date + ")";
|
||||
LambdaQueryWrapper<ProcessAll> queryProcessAll = new LambdaQueryWrapper<>();
|
||||
queryProcessAll.eq(ProcessAll::getProcessInstanceId,processApprovalRecord.getProcessInstanceId());
|
||||
ProcessAll processAll = processAllService.getOne(queryProcessAll);
|
||||
if(!Objects.isNull(processAll)){
|
||||
String processName = ProcessTypeEnum.getNameByValue(processAll.getPrcType());
|
||||
noticeTitle = processName + "(" + sysUser.getRealname() + " " + date + ")";
|
||||
unifiedTodo.setWorkflowname(processName);
|
||||
|
||||
SysUser createUser = sysUserService.getById(processAll.getCreateUserId());
|
||||
if(!Objects.isNull(createUser)){
|
||||
unifiedTodo.setCreator(createUser.getUsername());
|
||||
}
|
||||
String projectId = "";
|
||||
if (StrUtil.isNotBlank(processAll.getProjectId())){
|
||||
projectId = processAll.getProjectId();
|
||||
}
|
||||
String url = hiworkFontUrl
|
||||
.replace("{projectId}",projectId)
|
||||
.replace("{taskName}",processApprovalRecord.getTaskName())
|
||||
.replace("{taskId}", taskId)
|
||||
.replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId())
|
||||
.replace("{nodeId}",processApprovalRecord.getNodeId());
|
||||
// 跳转链接
|
||||
String businessLink = Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())) + url;
|
||||
unifiedTodo.setPcurl(businessLink);
|
||||
// APP跳转链接
|
||||
String appUrl = hiworkFontAppUrl
|
||||
.replace("{projectId}",projectId)
|
||||
.replace("{taskName}",processApprovalRecord.getTaskName())
|
||||
.replace("{taskId}", taskId)
|
||||
.replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId())
|
||||
.replace("{nodeId}",processApprovalRecord.getNodeId());
|
||||
String appBusinessLink = appUrl.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())));
|
||||
unifiedTodo.setAppurl(appBusinessLink);
|
||||
}
|
||||
unifiedTodo.setRequestname(noticeTitle);
|
||||
unifiedTodo.setReceiver(sysUser.getUsername());
|
||||
unifiedTodo.setReceivedatetime(date);
|
||||
unifiedTodo.setIsremark(isremark);
|
||||
unifiedTodo.setReceivets(String.valueOf(System.currentTimeMillis()));
|
||||
unifiedTodo.setRequestlevel("0");
|
||||
unifiedTodoList.add(unifiedTodo);
|
||||
}
|
||||
return unifiedTodoList;
|
||||
}
|
||||
|
||||
}
|
||||
+3
-6
@@ -8,7 +8,7 @@ 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.UnifiedTodo;
|
||||
import com.jero.modules.docking.hiwork.entity.HiworkDingDingMsg;
|
||||
import com.jero.modules.docking.hiwork.entity.HiworkSystemMsg;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -17,14 +17,11 @@ 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;
|
||||
|
||||
import static net.sf.jsqlparser.parser.feature.Feature.execute;
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/10/13 16:55
|
||||
@@ -102,11 +99,11 @@ public class HiworkPostUtil {
|
||||
* @Date: 2023/10/13 17:45
|
||||
* @Description: 统一待办集成远程调用
|
||||
**/
|
||||
public void postTodo(List<HiworkTodo> hiworkTodoList) {
|
||||
public void postTodo(List<UnifiedTodo> unifiedTodoList) {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
String jsonString;
|
||||
try {
|
||||
jsonString = objectMapper.writeValueAsString(hiworkTodoList);
|
||||
jsonString = objectMapper.writeValueAsString(unifiedTodoList);
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new JeroBootException("JSON string format conversion error");
|
||||
}
|
||||
|
||||
+101
-33
@@ -6,7 +6,9 @@ import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.jero.common.api.dto.message.HiworkTodoAdd;
|
||||
import com.jero.common.api.PushWorkflowIntegrationAPI;
|
||||
import com.jero.common.api.dto.message.UnifiedTodoVO;
|
||||
import com.jero.common.constant.CommonConstant;
|
||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.activiti.common.ActivitiCommon;
|
||||
@@ -62,11 +64,15 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
||||
case PROCESS_COMPLETED:
|
||||
this.activityComplete(event);
|
||||
break;
|
||||
case ENTITY_DELETED:
|
||||
this.entityDeleted(event);
|
||||
break;
|
||||
default:
|
||||
//log.info("Event received: " + event.getType());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 上面的 onEvent 方法抛出异常的后续处理动作
|
||||
* false :表示忽略onEvent()方法方法中抛出的异常
|
||||
@@ -173,13 +179,14 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
||||
processAllService.update(updateWrapper);
|
||||
|
||||
// 对接统一平台生成待办任务
|
||||
// PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
|
||||
List<HiworkTodoAdd> list = new ArrayList<>();
|
||||
HiworkTodoAdd hiworkTodoAdd = new HiworkTodoAdd();
|
||||
hiworkTodoAdd.setRecordId(approvalRecord.getId());
|
||||
hiworkTodoAdd.setProcessDefinitionId(processDefinitionId);
|
||||
list.add(hiworkTodoAdd);
|
||||
// pushWorkflowIntegrationAPI.sendTodoTask(list);
|
||||
PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
|
||||
List<UnifiedTodoVO> list = new ArrayList<>();
|
||||
UnifiedTodoVO unifiedTodoVO = new UnifiedTodoVO();
|
||||
unifiedTodoVO.setRecordId(approvalRecord.getId());
|
||||
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
|
||||
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_0);
|
||||
list.add(unifiedTodoVO);
|
||||
pushWorkflowIntegrationAPI.sendTodoTask(list);
|
||||
}
|
||||
|
||||
private void taskAssigned(ActivitiEvent event) {
|
||||
@@ -202,24 +209,21 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
||||
if (!Objects.equals(assignee,userId)) {
|
||||
log.info("由"+userId+"转办给"+assignee);
|
||||
// 对接统一平台生成完成任务
|
||||
// PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
|
||||
List<HiworkTodoAdd> list = new ArrayList<>();
|
||||
HiworkTodoAdd hiworkTodoAdd = new HiworkTodoAdd();
|
||||
hiworkTodoAdd.setRecordId(approvalRecord.getId());
|
||||
hiworkTodoAdd.setType("2");
|
||||
hiworkTodoAdd.setProcessDefinitionId(processDefinitionId);
|
||||
list.add(hiworkTodoAdd);
|
||||
// pushWorkflowIntegrationAPI.sendTodoTask(list);
|
||||
|
||||
// 对接统一平台生成办结
|
||||
// pushWorkflowIntegrationAPI.sendActivityComplete(list);
|
||||
PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
|
||||
List<UnifiedTodoVO> list = new ArrayList<>();
|
||||
UnifiedTodoVO unifiedTodoVO = new UnifiedTodoVO();
|
||||
unifiedTodoVO.setRecordId(approvalRecord.getId());
|
||||
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_2);
|
||||
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
|
||||
list.add(unifiedTodoVO);
|
||||
pushWorkflowIntegrationAPI.sendTodoTask(list);
|
||||
|
||||
// 生成被转办人的待办
|
||||
list.clear();
|
||||
hiworkTodoAdd.setToUserId(assignee);
|
||||
hiworkTodoAdd.setType("1");
|
||||
list.add(hiworkTodoAdd);
|
||||
// pushWorkflowIntegrationAPI.sendTodoTask(list);
|
||||
unifiedTodoVO.setToUserId(assignee);
|
||||
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_0);
|
||||
list.add(unifiedTodoVO);
|
||||
pushWorkflowIntegrationAPI.sendTodoTask(list);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -298,18 +302,62 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
||||
processAllService.update(updateWrapper);
|
||||
|
||||
// 对接统一平台生成完成任务
|
||||
// PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
|
||||
List<HiworkTodoAdd> list = new ArrayList<>();
|
||||
HiworkTodoAdd hiworkTodoAdd = new HiworkTodoAdd();
|
||||
hiworkTodoAdd.setRecordId(approvalRecord.getId());
|
||||
hiworkTodoAdd.setProcessDefinitionId(processDefinitionId);
|
||||
list.add(hiworkTodoAdd);
|
||||
// pushWorkflowIntegrationAPI.sendTodoTask(list);
|
||||
|
||||
// 对接统一平台生成办结
|
||||
// pushWorkflowIntegrationAPI.sendActivityComplete(list);
|
||||
PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
|
||||
List<UnifiedTodoVO> list = new ArrayList<>();
|
||||
UnifiedTodoVO unifiedTodoVO = new UnifiedTodoVO();
|
||||
unifiedTodoVO.setRecordId(approvalRecord.getId());
|
||||
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
|
||||
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_2);
|
||||
list.add(unifiedTodoVO);
|
||||
pushWorkflowIntegrationAPI.sendTodoTask(list);
|
||||
}
|
||||
|
||||
private void entityDeleted(ActivitiEvent event) {
|
||||
log.info("===================任务删除事件===================");
|
||||
ActivitiEntityEventImpl activitiEntityEvent = (ActivitiEntityEventImpl) event;
|
||||
TaskEntity delegateTask;
|
||||
if (activitiEntityEvent.getEntity() instanceof TaskEntity){
|
||||
delegateTask = (TaskEntity) activitiEntityEvent.getEntity();
|
||||
}else {
|
||||
return;
|
||||
}
|
||||
ExecutionEntity execution = delegateTask.getExecution();
|
||||
ProcessApprovalRecordService recordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class);
|
||||
String taskId = delegateTask.getId();
|
||||
String assignee = delegateTask.getAssignee();
|
||||
String processDefinitionId = delegateTask.getProcessDefinitionId();
|
||||
//更新审批信息为完成
|
||||
LambdaQueryWrapper<ProcessApprovalRecord> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessApprovalRecord::getTaskId,taskId);
|
||||
wrapper.ne(ProcessApprovalRecord::getFinishFlag,FinishFlagEnum.COMPLETE.getValue());
|
||||
wrapper.ne(ProcessApprovalRecord::getFinishFlag,FinishFlagEnum.WITHDRAWN.getValue());
|
||||
ProcessApprovalRecord approvalRecord = recordService.getOne(wrapper);
|
||||
if (approvalRecord == null){
|
||||
return;
|
||||
}
|
||||
Integer finishFlag = approvalRecord.getFinishFlag();
|
||||
if (FinishFlagEnum.COMPLETE.getValue().equals(finishFlag)){
|
||||
return;
|
||||
}
|
||||
log.info("id = " + delegateTask.getId());
|
||||
log.info("name = " + delegateTask.getName());
|
||||
log.info("taskEntity.getAssignee() = " + delegateTask.getAssignee());
|
||||
log.info("taskEntity.getIdentityLinks() = " + delegateTask.getIdentityLinks());
|
||||
log.info("execution.getActivityId() = " + execution.getActivityId());
|
||||
log.info("taskEntity.getVariables() = " + delegateTask.getVariables());
|
||||
|
||||
PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
|
||||
List<UnifiedTodoVO> todoAddList = new ArrayList<>();
|
||||
UnifiedTodoVO unifiedTodoVO = new UnifiedTodoVO();
|
||||
unifiedTodoVO.setRecordId(approvalRecord.getId());
|
||||
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
|
||||
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_2);
|
||||
todoAddList.add(unifiedTodoVO);
|
||||
|
||||
pushWorkflowIntegrationAPI.sendTodoTask(todoAddList);
|
||||
}
|
||||
|
||||
|
||||
private void activityComplete(ActivitiEvent event) {
|
||||
log.info("===================流程完成事件===================");
|
||||
ActivitiEntityEventImpl activitiEntityEvent = (ActivitiEntityEventImpl) event;
|
||||
@@ -319,6 +367,8 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
||||
//根据mainInstanceId是否存在判断是否子流程
|
||||
String mainInstanceId = (String) execution.getVariable(ActivitiCommon.MAIN_INSTANCE_ID);
|
||||
String processInstanceId = mainInstanceId != null ? mainInstanceId : execution.getProcessInstanceId();
|
||||
String processDefinitionId = execution.getProcessDefinitionId();
|
||||
|
||||
ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
Date createTime = processAll.getCreateTime();
|
||||
DateTime date = DateUtil.date();
|
||||
@@ -339,6 +389,24 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
||||
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
|
||||
taskService.complete(parentTaskId);
|
||||
}
|
||||
}else {
|
||||
//查询所有审批信息
|
||||
ProcessApprovalRecordService recordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class);
|
||||
LambdaQueryWrapper<ProcessApprovalRecord> wrapper1 = new LambdaQueryWrapper<>();
|
||||
wrapper1.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId);
|
||||
List<ProcessApprovalRecord> approvalRecordList = recordService.list(wrapper1);
|
||||
|
||||
//对接统一平台生成办结
|
||||
PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
|
||||
List<UnifiedTodoVO> list = new ArrayList<>();
|
||||
for (ProcessApprovalRecord approvalRecord : approvalRecordList) {
|
||||
UnifiedTodoVO unifiedTodoVO = new UnifiedTodoVO();
|
||||
unifiedTodoVO.setRecordId(approvalRecord.getId());
|
||||
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
|
||||
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_2);
|
||||
list.add(unifiedTodoVO);
|
||||
}
|
||||
pushWorkflowIntegrationAPI.sendTodoTask(list);
|
||||
}
|
||||
log.info("id = " + execution.getId());
|
||||
log.info("name = " + execution.getName());
|
||||
|
||||
+13
-10
@@ -7,10 +7,12 @@ 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.SendMessageAPI;
|
||||
import com.jero.common.api.dto.message.HiworkTodoAdd;
|
||||
import com.jero.common.api.dto.message.UnifiedTodoVO;
|
||||
import com.jero.common.api.dto.message.SendMessageDTO;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.common.constant.CommonConstant;
|
||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
@@ -73,6 +75,8 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
|
||||
private EnterpriseStandardPlanService espService;
|
||||
@Resource
|
||||
private EnterpriseStandardRecheckPlanService esRecheckService;
|
||||
@Resource
|
||||
private PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI;
|
||||
|
||||
private static final List<Integer> INSPECT_PROCESS = Arrays.asList();
|
||||
public ProcessAll getByProcessInstanceId(String processInstanceId){
|
||||
@@ -230,23 +234,22 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
|
||||
processApprovalRecord.setCreateTime(null);
|
||||
approvalRecordService.save(processApprovalRecord);
|
||||
|
||||
//todo 同步删除操作到统一待办
|
||||
//查询所有待办任务
|
||||
LambdaQueryWrapper<ProcessApprovalRecord> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId);
|
||||
wrapper.eq(ProcessApprovalRecord::getFinishFlag,FinishFlagEnum.INCOMPLETE.getValue());
|
||||
List<ProcessApprovalRecord> approvalRecordList = approvalRecordService.list(wrapper);
|
||||
|
||||
List<HiworkTodoAdd> todoAddList = new ArrayList<>();
|
||||
//同步删除操作到统一待办
|
||||
List<UnifiedTodoVO> todoAddList = new ArrayList<>();
|
||||
String processDefinitionId = processAll.getProcessDefinitionId();
|
||||
for (ProcessApprovalRecord approvalRecord : approvalRecordList) {
|
||||
HiworkTodoAdd hiworkTodoAdd = new HiworkTodoAdd();
|
||||
hiworkTodoAdd.setRecordId(approvalRecord.getId());
|
||||
hiworkTodoAdd.setProcessDefinitionId(processDefinitionId);
|
||||
todoAddList.add(hiworkTodoAdd);
|
||||
UnifiedTodoVO unifiedTodoVO = new UnifiedTodoVO();
|
||||
unifiedTodoVO.setRecordId(approvalRecord.getId());
|
||||
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
|
||||
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_2);
|
||||
todoAddList.add(unifiedTodoVO);
|
||||
}
|
||||
|
||||
// pushWorkflowIntegrationAPI.sendDeleteTask(todoAddList);
|
||||
pushWorkflowIntegrationAPI.sendTodoTask(todoAddList);
|
||||
}
|
||||
|
||||
public void delegateTask(DelegateTaskParam param) {
|
||||
|
||||
@@ -379,13 +379,13 @@ iam:
|
||||
|
||||
# Hiwork集成
|
||||
hiwork:
|
||||
ip: http://task-test.sinotruk.com/
|
||||
ip: http://10.2.5.218:8088/
|
||||
# 异构系统标识
|
||||
sysCode: SRMS
|
||||
# 服务号
|
||||
serviceCode: SRMSService
|
||||
# 统一待办集成
|
||||
todoUrl: taskapi/task.basedata/integrationCall/workflowIntegration
|
||||
todoUrl: rest/ofs/batchReceiveRequestInfoByJson
|
||||
# 统一消息集成
|
||||
messageUrl: taskapi/task.basedata/notice/noticeCalls/send
|
||||
# 是否发送消息
|
||||
|
||||
Reference in New Issue
Block a user