diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java b/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java index 3e52c3bf..2ba71ba1 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java @@ -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 hiworkTodoAddList); + * + * @return*/ + void sendTodoTask(List unifiedTodoVOList); - void sendActivityComplete(List processInstanceId); - - void sendDeleteTask(List todoAddList); } diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/api/dto/message/HiworkTodoAdd.java b/laws-base/laws-base-core/src/main/java/com/jero/common/api/dto/message/UnifiedTodoVO.java similarity index 74% rename from laws-base/laws-base-core/src/main/java/com/jero/common/api/dto/message/HiworkTodoAdd.java rename to laws-base/laws-base-core/src/main/java/com/jero/common/api/dto/message/UnifiedTodoVO.java index 6fa190ce..5f0f4847 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/common/api/dto/message/HiworkTodoAdd.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/api/dto/message/UnifiedTodoVO.java @@ -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; + } diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/constant/CommonConstant.java b/laws-base/laws-base-core/src/main/java/com/jero/common/constant/CommonConstant.java index 2d682bd4..1514963a 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/common/constant/CommonConstant.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/constant/CommonConstant.java @@ -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"; } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/controller/LawsUnifiedTodoLogController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/controller/LawsUnifiedTodoLogController.java new file mode 100644 index 00000000..2cc93771 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/controller/LawsUnifiedTodoLogController.java @@ -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 { + /** + * 服务对象 + */ + @Resource + private LawsUnifiedTodoLogService lawsUnifiedTodoLogService; + + /** + * 分页列表查询 + */ + @ApiOperation(value = "统一代办推送日志表-分页列表查询", notes = "统一代办推送日志表-分页列表查询") + @GetMapping(value = "/page") + public Result> queryPageList(LawsUnifiedTodoLog lawsUnifiedTodoLog, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsUnifiedTodoLog, req.getParameterMap()); + Page page = new Page<>(pageNo, pageSize); + IPage pageList = lawsUnifiedTodoLogService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 列表查询 + */ + @ApiOperation(value = "统一代办推送日志表-列表查询", notes = "统一代办推送日志表-列表查询") + @GetMapping(value = "/list") + public Result> queryList(LawsUnifiedTodoLog lawsUnifiedTodoLog, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsUnifiedTodoLog, req.getParameterMap()); + List list = lawsUnifiedTodoLogService.list(queryWrapper); + return Result.OK(list); + } + + /** + * 添加 + */ + @AutoLog(value = "统一代办推送日志表-添加") + @ApiOperation(value = "统一代办推送日志表-添加", notes = "统一代办推送日志表-添加") + @PostMapping(value = "/add") + public Result add(@Validated @RequestBody LawsUnifiedTodoLog lawsUnifiedTodoLog) { + lawsUnifiedTodoLogService.add(lawsUnifiedTodoLog); + return Result.OK(ResultCommon.OK); + } + + /** + * 编辑 + */ + @AutoLog(value = "统一代办推送日志表-编辑") + @ApiOperation(value = "统一代办推送日志表-编辑", notes = "统一代办推送日志表-编辑") + @PostMapping(value = "/edit") + public Result 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 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 deleteBatch(@RequestBody IdsMapBody map) { + String ids = map.getIds(); + if (StringUtils.isBlank(ids)) { + return Result.error(ResultCommon.PLEASE_SELECT_DATA); + } + List 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 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); + } + + +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/entity/HiworkTodo.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/entity/HiworkTodo.java deleted file mode 100644 index 466cf350..00000000 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/entity/HiworkTodo.java +++ /dev/null @@ -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; - -} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/entity/LawsUnifiedTodoLog.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/entity/LawsUnifiedTodoLog.java new file mode 100644 index 00000000..8cb62b44 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/entity/LawsUnifiedTodoLog.java @@ -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; + +} \ No newline at end of file diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/entity/UnifiedTodo.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/entity/UnifiedTodo.java new file mode 100644 index 00000000..fe721fde --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/entity/UnifiedTodo.java @@ -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; + + +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/mapper/LawsUnifiedTodoLogMapper.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/mapper/LawsUnifiedTodoLogMapper.java new file mode 100644 index 00000000..84271709 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/mapper/LawsUnifiedTodoLogMapper.java @@ -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 { +} \ No newline at end of file diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/mapper/mapperxml/LawsUnifiedTodoLogMapper.xml b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/mapper/mapperxml/LawsUnifiedTodoLogMapper.xml new file mode 100644 index 00000000..2717fac9 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/mapper/mapperxml/LawsUnifiedTodoLogMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + id, url, `type`, json_str, `state`, create_by, create_time, update_by, update_time + + \ No newline at end of file diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/IHiworkTodoService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/IHiworkTodoService.java index f1d144a7..5acf0dde 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/IHiworkTodoService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/IHiworkTodoService.java @@ -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 hiworkTodoAddList); + void sendTodoTask(List unifiedTodoVOList); } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/LawsUnifiedTodoLogService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/LawsUnifiedTodoLogService.java new file mode 100644 index 00000000..ca987ed7 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/LawsUnifiedTodoLogService.java @@ -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 { + 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 idList) { + for (String id : idList) { + deleteById(id); + } + } + + public LawsUnifiedTodoLog queryById(String id) { + LawsUnifiedTodoLog lawsUnifiedTodoLog = this.getById(id); + return lawsUnifiedTodoLog; + } +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java deleted file mode 100644 index 8894b953..00000000 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java +++ /dev/null @@ -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 hiworkTodoAddList) { - if(!isWorkflow){ - return; - } - - if (CollectionUtils.isEmpty(hiworkTodoAddList)) { - throw new JeroBootException(ResultCommon.EMPTY_COMMON, "hiworkTodoAddList"); - } - try { - List 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 hiworkTodoAddList) { - if(!isWorkflow){ - return; - } - try { - for (HiworkTodoAdd hiworkTodoAdd : hiworkTodoAddList) { - hiworkTodoAdd.setType(TODO_TYPE_3); - } - List 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 hiworkTodoAddList) { - if(!isWorkflow){ - return; - } - try { - for (HiworkTodoAdd hiworkTodoAdd : hiworkTodoAddList) { - hiworkTodoAdd.setType(TODO_TYPE_6); - } - List 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 getHiworkTodos(List hiworkTodoAddList) { - List 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 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 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; - } - -} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/UnifiedTodoServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/UnifiedTodoServiceImpl.java new file mode 100644 index 00000000..9b223bd9 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/UnifiedTodoServiceImpl.java @@ -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 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 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 getHiworkTodos(List unifiedTodoVOList) { + List 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 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; + } + +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/util/HiworkPostUtil.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/util/HiworkPostUtil.java index c8514c34..50b78883 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/util/HiworkPostUtil.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/util/HiworkPostUtil.java @@ -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 hiworkTodoList) { + public void postTodo(List 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"); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java index d6c10771..3ad6eac9 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java @@ -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 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 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 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 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 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 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 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 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 wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId); + List approvalRecordList = recordService.list(wrapper1); + + //对接统一平台生成办结 + PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class); + List 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()); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java index 335e4472..f378f42a 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java @@ -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 private EnterpriseStandardPlanService espService; @Resource private EnterpriseStandardRecheckPlanService esRecheckService; + @Resource + private PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI; private static final List INSPECT_PROCESS = Arrays.asList(); public ProcessAll getByProcessInstanceId(String processInstanceId){ @@ -230,23 +234,22 @@ public class ProcessAllService extends ServiceImpl processApprovalRecord.setCreateTime(null); approvalRecordService.save(processApprovalRecord); - //todo 同步删除操作到统一待办 //查询所有待办任务 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId); wrapper.eq(ProcessApprovalRecord::getFinishFlag,FinishFlagEnum.INCOMPLETE.getValue()); List approvalRecordList = approvalRecordService.list(wrapper); - - List todoAddList = new ArrayList<>(); + //同步删除操作到统一待办 + List 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) { diff --git a/laws-single-startup/src/main/resources/application-dev.yml b/laws-single-startup/src/main/resources/application-dev.yml index 19c31e3e..3a23fb2c 100644 --- a/laws-single-startup/src/main/resources/application-dev.yml +++ b/laws-single-startup/src/main/resources/application-dev.yml @@ -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 # 是否发送消息