待办中心模块-流程信息、流程信息明细表开发。

This commit is contained in:
wangzhijiang
2022-10-14 17:51:59 +08:00
parent 035c78e3bc
commit f52357fdd9
16 changed files with 1184 additions and 0 deletions
@@ -1180,3 +1180,41 @@ update onl_cgform_field set is_query = '1', is_read_only = '1' where id = '09fa6
INSERT INTO `laws_weilai`.`sys_config` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `config`, `config_name`) VALUES ('4', 'admin', '2022-09-28 14:35:30', NULL, NULL, 'A01', 'http://grp.nioint.com/', 'domianWebImgURL');
-- 待办中心 流程信息表 2022-10-14 未同步生产环境
CREATE TABLE `laws_weilai`.`process_info` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建日期',
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新日期',
`sys_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属部门',
`project_library_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '项目库id',
`project_laws_inventory_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '法规清单id',
`buss_document_library_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文档库id/标准id',
`acti_proc_inst_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程实例id',
`flow_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程类型',
`end_time` datetime NULL DEFAULT NULL COMMENT '截止日期',
`status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务状态',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '流程信息表' ROW_FORMAT = Dynamic;
-- 待办中心 流程信息明细表 2022-10-14 未同步生产环境
CREATE TABLE `laws_weilai`.`process_info_detail` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建日期',
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新日期',
`sys_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属部门',
`acti_proc_inst_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程实例id',
`task_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '待办id',
`user_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '处理人id',
`status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务状态:待办/已办',
`task_definition_key` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务节点定义key',
`submit_time` datetime NULL DEFAULT NULL COMMENT '提交时间',
`process_info_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程信息id',
`project_laws_inventory_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '法规清单id',
`buss_document_library_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文档库id/标准id',
`flow_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程类型',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '流程信息明细表' ROW_FORMAT = Dynamic;
@@ -152,6 +152,10 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/lawsTechnologyEvaluation/lawsTechnologyEvaluationEO/processCall", "anon");
// 法规技术评估-条款信息评估结果表 工作流处理数据接口排除
filterChainDefinitionMap.put("/lawsTechnologyEvaluation/lawsTechnologyEvaluationItemResultEO/processCall", "anon");
// 流程信息表 工作流处理数据接口排除
filterChainDefinitionMap.put("/todoCenter/processInfoEO/processCall", "anon");
// 流程信息明细表 工作流处理数据接口排除
filterChainDefinitionMap.put("/todoCenter/processInfoDetailEO/processCall", "anon");
filterChainDefinitionMap.put("/lark/larkEventSubscriptionConfig", "anon"); //飞书调用接口事件订阅配置
filterChainDefinitionMap.put("/lark/larkCardMessageConfig", "anon"); //飞书调用接口卡片消息配置
@@ -11,6 +11,7 @@ public enum OperatorTypeEnum {
* 工作流调用后台操作类型
*/
ADD("添加","add"),
UPDATE("更新","update"),
UPDATE_STATUS("修改状态","updateStatus"),
DELETE("删除","delete"),
QUERY("查询","query"),
@@ -0,0 +1,184 @@
package com.jero.modules.todoCenter.controller;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO;
import com.jero.modules.todoCenter.service.IProcessInfoDetailEOService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.jero.common.aspect.annotation.AutoLog;
/**
* @Description: 流程信息明细表
* @Author: jero-boot
* @Date: 2022-10-14
* @Version: V1.0
*/
@Api(tags="流程信息明细表")
@RestController
@RequestMapping("/todoCenter/processInfoDetailEO")
@Slf4j
public class ProcessInfoDetailEOController extends JeroController<ProcessInfoDetailEO, IProcessInfoDetailEOService> {
@Autowired
private IProcessInfoDetailEOService processInfoDetailEOService;
/**
* 分页列表查询
*
* @param processInfoDetailEO
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "流程信息明细表-分页列表查询")
@ApiOperation(value="流程信息明细表-分页列表查询", notes="流程信息明细表-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(ProcessInfoDetailEO processInfoDetailEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ProcessInfoDetailEO> queryWrapper = QueryGenerator.initQueryWrapper(processInfoDetailEO, req.getParameterMap());
Page<ProcessInfoDetailEO> page = new Page<ProcessInfoDetailEO>(pageNo, pageSize);
IPage<ProcessInfoDetailEO> pageList = processInfoDetailEOService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "流程信息明细表-列表查询")
@ApiOperation(value="流程信息明细表-列表查询", notes="流程信息明细表-列表查询")
@GetMapping(value = "/list")
public Result<List<ProcessInfoDetailEO>> queryList() {
List<ProcessInfoDetailEO> list = processInfoDetailEOService.queryList();
return Result.OK(list);
}
/**
* 添加
*
* @param processInfoDetailEO
* @return
*/
@AutoLog(value = "流程信息明细表-添加")
@ApiOperation(value="流程信息明细表-添加", notes="流程信息明细表-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody ProcessInfoDetailEO processInfoDetailEO) {
processInfoDetailEOService.add(processInfoDetailEO);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param processInfoDetailEO
* @return
*/
@AutoLog(value = "流程信息明细表-编辑")
@ApiOperation(value="流程信息明细表-编辑", notes="流程信息明细表-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody ProcessInfoDetailEO processInfoDetailEO) {
processInfoDetailEOService.editById(processInfoDetailEO);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "流程信息明细表-通过id删除")
@ApiOperation(value="流程信息明细表-通过id删除", notes="流程信息明细表-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
processInfoDetailEOService.deleteById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "流程信息明细表-批量删除")
@ApiOperation(value="流程信息明细表-批量删除", notes="流程信息明细表-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.processInfoDetailEOService.deleteByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "流程信息明细表-通过id查询")
@ApiOperation(value="流程信息明细表-通过id查询", notes="流程信息明细表-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
ProcessInfoDetailEO processInfoDetailEO = processInfoDetailEOService.queryById(id);
if(processInfoDetailEO==null) {
return Result.error("未找到对应数据");
}
return Result.OK(processInfoDetailEO);
}
/**
* 导出excel
*
* @param request
* @param processInfoDetailEO
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, ProcessInfoDetailEO processInfoDetailEO) {
return super.exportXls(request, processInfoDetailEO, ProcessInfoDetailEO.class, "流程信息明细表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, ProcessInfoDetailEO.class);
}
/**
* 流程调用接口
* @param jsonObject
* @return
*/
@AutoLog(value = "流程信息明细表-流程调用")
@ApiOperation(value="流程信息明细表-流程调用", notes="流程信息明细表-流程调用")
@PostMapping(value = "/processCall")
public Result<?> processCall(@RequestBody JSONObject jsonObject){
return this.processInfoDetailEOService.processCall(jsonObject);
}
}
@@ -0,0 +1,183 @@
package com.jero.modules.todoCenter.controller;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
import com.jero.modules.todoCenter.service.IProcessInfoEOService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.jero.common.aspect.annotation.AutoLog;
/**
* @Description: 流程信息表
* @Author: jero-boot
* @Date: 2022-10-14
* @Version: V1.0
*/
@Api(tags="流程信息表")
@RestController
@RequestMapping("/todoCenter/processInfoEO")
@Slf4j
public class ProcessInfoEOController extends JeroController<ProcessInfoEO, IProcessInfoEOService> {
@Autowired
private IProcessInfoEOService processInfoEOService;
/**
* 分页列表查询
*
* @param processInfoEO
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "流程信息表-分页列表查询")
@ApiOperation(value="流程信息表-分页列表查询", notes="流程信息表-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(ProcessInfoEO processInfoEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ProcessInfoEO> queryWrapper = QueryGenerator.initQueryWrapper(processInfoEO, req.getParameterMap());
Page<ProcessInfoEO> page = new Page<ProcessInfoEO>(pageNo, pageSize);
IPage<ProcessInfoEO> pageList = processInfoEOService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "流程信息表-列表查询")
@ApiOperation(value="流程信息表-列表查询", notes="流程信息表-列表查询")
@GetMapping(value = "/list")
public Result<List<ProcessInfoEO>> queryList() {
List<ProcessInfoEO> list = processInfoEOService.queryList();
return Result.OK(list);
}
/**
* 添加
*
* @param processInfoEO
* @return
*/
@AutoLog(value = "流程信息表-添加")
@ApiOperation(value="流程信息表-添加", notes="流程信息表-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody ProcessInfoEO processInfoEO) {
processInfoEOService.add(processInfoEO);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param processInfoEO
* @return
*/
@AutoLog(value = "流程信息表-编辑")
@ApiOperation(value="流程信息表-编辑", notes="流程信息表-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody ProcessInfoEO processInfoEO) {
processInfoEOService.editById(processInfoEO);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "流程信息表-通过id删除")
@ApiOperation(value="流程信息表-通过id删除", notes="流程信息表-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
processInfoEOService.deleteById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "流程信息表-批量删除")
@ApiOperation(value="流程信息表-批量删除", notes="流程信息表-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.processInfoEOService.deleteByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "流程信息表-通过id查询")
@ApiOperation(value="流程信息表-通过id查询", notes="流程信息表-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
ProcessInfoEO processInfoEO = processInfoEOService.queryById(id);
if(processInfoEO==null) {
return Result.error("未找到对应数据");
}
return Result.OK(processInfoEO);
}
/**
* 导出excel
*
* @param request
* @param processInfoEO
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, ProcessInfoEO processInfoEO) {
return super.exportXls(request, processInfoEO, ProcessInfoEO.class, "流程信息表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, ProcessInfoEO.class);
}
/**
* 流程调用接口
* @param jsonObject
* @return
*/
@AutoLog(value = "流程信息表-流程调用")
@ApiOperation(value="流程信息表-流程调用", notes="流程信息表-流程调用")
@PostMapping(value = "/processCall")
public Result<?> processCall(@RequestBody JSONObject jsonObject){
return this.processInfoEOService.processCall(jsonObject);
}
}
@@ -0,0 +1,116 @@
package com.jero.modules.todoCenter.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* @Description: 流程信息明细表
* @Author: jero-boot
* @Date: 2022-10-14
* @Version: V1.0
*/
@Data
@TableName("process_info_detail")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="process_info_detail对象", description="流程信息明细表")
public class ProcessInfoDetailEO implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
/**流程实例id*/
@Excel(name = "流程实例id", width = 15)
@ApiModelProperty(value = "流程实例id")
private java.lang.String actiProcInstId;
/**待办id*/
@Excel(name = "待办id", width = 15)
@ApiModelProperty(value = "待办id")
private java.lang.String taskId;
/**处理人id*/
@Excel(name = "处理人id", width = 15)
@ApiModelProperty(value = "处理人id")
private java.lang.String userId;
/**任务状态:待办/已办*/
@Excel(name = "任务状态:待办/已办", width = 15)
@ApiModelProperty(value = "任务状态:待办/已办")
private java.lang.String status;
/**任务节点定义key*/
@Excel(name = "任务节点定义key", width = 15)
@ApiModelProperty(value = "任务节点定义key")
private java.lang.String taskDefinitionKey;
/**提交时间*/
@Excel(name = "提交时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "提交时间")
private java.util.Date submitTime;
/**流程信息id*/
@Excel(name = "流程信息id", width = 15)
@ApiModelProperty(value = "流程信息id")
private java.lang.String processInfoId;
/**法规清单id*/
@Excel(name = "法规清单id", width = 15)
@ApiModelProperty(value = "法规清单id")
private java.lang.String projectLawsInventoryId;
/**文档库id/标准id*/
@Excel(name = "文档库id/标准id", width = 15)
@ApiModelProperty(value = "文档库id/标准id")
private java.lang.String bussDocumentLibraryId;
/**流程类型*/
@Excel(name = "流程类型", width = 15)
@ApiModelProperty(value = "流程类型")
private java.lang.String flowType;
}
@@ -0,0 +1,101 @@
package com.jero.modules.todoCenter.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* @Description: 流程信息表
* @Author: jero-boot
* @Date: 2022-10-14
* @Version: V1.0
*/
@Data
@TableName("process_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="process_info对象", description="流程信息表")
public class ProcessInfoEO implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
/**项目库id*/
@Excel(name = "项目库id", width = 15)
@ApiModelProperty(value = "项目库id")
private java.lang.String projectLibraryId;
/**法规清单id*/
@Excel(name = "法规清单id", width = 15)
@ApiModelProperty(value = "法规清单id")
private java.lang.String projectLawsInventoryId;
/**文档库id/标准id*/
@Excel(name = "文档库id/标准id", width = 15)
@ApiModelProperty(value = "文档库id/标准id")
private java.lang.String bussDocumentLibraryId;
/**流程实例id*/
@Excel(name = "流程实例id", width = 15)
@ApiModelProperty(value = "流程实例id")
private java.lang.String actiProcInstId;
/**流程类型*/
@Excel(name = "流程类型", width = 15)
@ApiModelProperty(value = "流程类型")
private java.lang.String flowType;
/**截止日期*/
@Excel(name = "截止日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "截止日期")
private java.util.Date endTime;
/**任务状态*/
@Excel(name = "任务状态", width = 15)
@ApiModelProperty(value = "任务状态")
private java.lang.String status;
}
@@ -0,0 +1,64 @@
package com.jero.modules.todoCenter.enums;
import com.jero.common.constant.enums.CutEnum;
import org.apache.commons.lang3.StringUtils;
/**
* 待办中心状态枚举类
*/
public enum TodoCenterStatusEnum {
LIST_TO_CONFIRM("待确认","List to confirm","List to confirm"),
COMPLETED("已完成","Completed","Completed"),
INQUIRY("询问","Inquiry","Inquiry"),
TO_SUBMIT("待提交","To submit","To submit"),
TO_AUDIT("待审核","To audit","To audit"),
;
String cnName;
String enName;
String value;
private TodoCenterStatusEnum(String cnName,String enName, String value) {
this.cnName = cnName;
this.enName = enName;
this.value = value;
}
public String getCnName() {
return cnName;
}
public void setCnName(String cnName) {
this.cnName = cnName;
}
public String getEnName() {
return enName;
}
public void setEnName(String enName) {
this.enName = enName;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static String getTextByValue(String value,String cut) {
TodoCenterStatusEnum[] values = values();
for (TodoCenterStatusEnum operatorTypeEnum : values) {
if (operatorTypeEnum.value.equals(value)) {
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
return operatorTypeEnum.cnName;
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
return operatorTypeEnum.enName;
}
}
}
return null;
}
}
@@ -0,0 +1,17 @@
package com.jero.modules.todoCenter.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 流程信息明细表
* @Author: jero-boot
* @Date: 2022-10-14
* @Version: V1.0
*/
public interface ProcessInfoDetailEOMapper extends BaseMapper<ProcessInfoDetailEO> {
}
@@ -0,0 +1,17 @@
package com.jero.modules.todoCenter.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 流程信息表
* @Author: jero-boot
* @Date: 2022-10-14
* @Version: V1.0
*/
public interface ProcessInfoEOMapper extends BaseMapper<ProcessInfoEO> {
}
@@ -0,0 +1,22 @@
<?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.todoCenter.mapper.ProcessInfoDetailEOMapper">
<resultMap id="ProcessInfoDetailEOResultMap" type="com.jero.modules.todoCenter.entity.ProcessInfoDetailEO">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="acti_proc_inst_id" property="actiProcInstId" />
<result column="task_id" property="taskId" />
<result column="user_id" property="userId" />
<result column="status" property="status" />
<result column="task_definition_key" property="taskDefinitionKey" />
<result column="submit_time" property="submitTime" />
<result column="process_info_id" property="processInfoId" />
<result column="project_laws_inventory_id" property="projectLawsInventoryId" />
<result column="buss_document_library_id" property="bussDocumentLibraryId" />
<result column="flow_type" property="flowType" />
</resultMap>
</mapper>
@@ -0,0 +1,19 @@
<?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.todoCenter.mapper.ProcessInfoEOMapper">
<resultMap id="ProcessInfoEOResultMap" type="com.jero.modules.todoCenter.entity.ProcessInfoEO">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="project_library_id" property="projectLibraryId" />
<result column="project_laws_inventory_id" property="projectLawsInventoryId" />
<result column="buss_document_library_id" property="bussDocumentLibraryId" />
<result column="acti_proc_inst_id" property="actiProcInstId" />
<result column="flow_type" property="flowType" />
<result column="end_time" property="endTime" />
<result column="status" property="status" />
</resultMap>
</mapper>
@@ -0,0 +1,70 @@
package com.jero.modules.todoCenter.service;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 流程信息明细表
* @Author: jero-boot
* @Date: 2022-10-14
* @Version: V1.0
*/
public interface IProcessInfoDetailEOService extends IService<ProcessInfoDetailEO> {
/**
* 保存
*
* @param processInfoDetailEO
* @return
*/
void add(ProcessInfoDetailEO processInfoDetailEO);
/**
* 更新
*
* @param processInfoDetailEO
* @return
*/
void editById(ProcessInfoDetailEO processInfoDetailEO);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
ProcessInfoDetailEO queryById(String id);
/**
* 列表查询
*
* @return
*/
List<ProcessInfoDetailEO> queryList();
/**
* 流程调用
* @param jsonObject
* @return
*/
Result<?> processCall(JSONObject jsonObject);
}
@@ -0,0 +1,70 @@
package com.jero.modules.todoCenter.service;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 流程信息表
* @Author: jero-boot
* @Date: 2022-10-14
* @Version: V1.0
*/
public interface IProcessInfoEOService extends IService<ProcessInfoEO> {
/**
* 保存
*
* @param processInfoEO
* @return
*/
void add(ProcessInfoEO processInfoEO);
/**
* 更新
*
* @param processInfoEO
* @return
*/
void editById(ProcessInfoEO processInfoEO);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
ProcessInfoEO queryById(String id);
/**
* 列表查询
*
* @return
*/
List<ProcessInfoEO> queryList();
/**
* 流程调用
* @param jsonObject
* @return
*/
Result<?> processCall(JSONObject jsonObject);
}
@@ -0,0 +1,154 @@
package com.jero.modules.todoCenter.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.project.entity.ProjectTaskInventoryDetailEO;
import com.jero.modules.project.entity.ProjectTaskInventoryEO;
import com.jero.modules.project.enums.OperatorTypeEnum;
import com.jero.modules.project.enums.RequestSourceEnum;
import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO;
import com.jero.modules.todoCenter.mapper.ProcessInfoDetailEOMapper;
import com.jero.modules.todoCenter.service.IProcessInfoDetailEOService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 流程信息明细表
* @Author: jero-boot
* @Date: 2022-10-14
* @Version: V1.0
*/
@Service
public class ProcessInfoDetailEOServiceImpl extends ServiceImpl<ProcessInfoDetailEOMapper, ProcessInfoDetailEO> implements IProcessInfoDetailEOService {
/**
* 保存
*
* @param processInfoDetailEO
* @return
*/
@Override
public void add(ProcessInfoDetailEO processInfoDetailEO) {
Date now = new Date();
processInfoDetailEO.setCreateTime(now);
processInfoDetailEO.setUpdateTime(now);
save(processInfoDetailEO);
}
/**
* 更新
*
* @param processInfoDetailEO
* @return
*/
@Override
public void editById(ProcessInfoDetailEO processInfoDetailEO) {
Date now = new Date();
processInfoDetailEO.setUpdateTime(now);
saveOrUpdate(processInfoDetailEO);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public ProcessInfoDetailEO queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<ProcessInfoDetailEO> queryList() {
return list();
}
@Override
public Result<?> processCall(JSONObject jsonObject) {
String requestSource = jsonObject.getString("requestSource");
if(StringUtils.isEmpty(requestSource)){
throw new JeroBootException("请求来源不能为空!");
}
if(!StringUtils.equals(requestSource, RequestSourceEnum.WORK_FLOW.getValue())){
throw new JeroBootException("来源有误,没有权限调用该接口!");
}
String operatorType = jsonObject.getString("operatorType");
if(StringUtils.isEmpty(operatorType)){
throw new JeroBootException("操作类型不能为空!");
}
if(StringUtils.equals(operatorType, OperatorTypeEnum.ADD.getValue())){
JSONArray processInfoDetailList = jsonObject.getJSONArray("processInfoDetailList");
ProcessInfoDetailEO processInfoDetailEO = null;
List<ProcessInfoDetailEO> detailEOList = new ArrayList<>();
for (Object processInfoDetail : processInfoDetailList) {
processInfoDetailEO = JSONObject.parseObject(JSONObject.toJSONString(processInfoDetail), ProcessInfoDetailEO.class);
// 当前流程 当前用户 的数据删掉 确保唯一
QueryWrapper<ProcessInfoDetailEO> deleteWrapper = new QueryWrapper<>();
deleteWrapper.lambda().eq(ProcessInfoDetailEO::getActiProcInstId,processInfoDetailEO.getActiProcInstId());
deleteWrapper.lambda().eq(ProcessInfoDetailEO::getUserId,processInfoDetailEO.getUserId());
deleteWrapper.lambda().eq(ProcessInfoDetailEO::getFlowType,processInfoDetailEO.getFlowType());
this.baseMapper.delete(deleteWrapper);
detailEOList.add(processInfoDetailEO);
}
this.saveBatch(detailEOList);
}else if(StringUtils.equals(operatorType, OperatorTypeEnum.UPDATE.getValue())){
ProcessInfoDetailEO processInfoDetailEO = JSONObject.parseObject(jsonObject.toString(), ProcessInfoDetailEO.class);
this.baseMapper.updateById(processInfoDetailEO);
}else if(StringUtils.equals(operatorType, OperatorTypeEnum.QUERY.getValue())){
String userId = jsonObject.getString("userId");
String flowType = jsonObject.getString("flowType");
String actiProcInstId = jsonObject.getString("actiProcInstId");
QueryWrapper<ProcessInfoDetailEO> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ProcessInfoDetailEO::getUserId,userId);
queryWrapper.lambda().eq(ProcessInfoDetailEO::getFlowType,flowType);
queryWrapper.lambda().eq(ProcessInfoDetailEO::getActiProcInstId,actiProcInstId);
queryWrapper.isNull("task_id");
List<ProcessInfoDetailEO> processInfoDetailEOList = this.baseMapper.selectList(queryWrapper);
Result<List<ProcessInfoDetailEO>> objectResult = new Result<>();
objectResult.setResult(processInfoDetailEOList);
objectResult.setSuccess(true);
return objectResult;
}
return new Result<>().success("调用成功!");
}
}
@@ -0,0 +1,124 @@
package com.jero.modules.todoCenter.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.lawsOpinionGather.entity.LawsOpinionGatherEO;
import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationEO;
import com.jero.modules.project.enums.OperatorTypeEnum;
import com.jero.modules.project.enums.RequestSourceEnum;
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
import com.jero.modules.todoCenter.mapper.ProcessInfoEOMapper;
import com.jero.modules.todoCenter.service.IProcessInfoEOService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 流程信息表
* @Author: jero-boot
* @Date: 2022-10-14
* @Version: V1.0
*/
@Service
public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, ProcessInfoEO> implements IProcessInfoEOService {
/**
* 保存
*
* @param processInfoEO
* @return
*/
@Override
public void add(ProcessInfoEO processInfoEO) {
Date now = new Date();
processInfoEO.setCreateTime(now);
processInfoEO.setUpdateTime(now);
save(processInfoEO);
}
/**
* 更新
*
* @param processInfoEO
* @return
*/
@Override
public void editById(ProcessInfoEO processInfoEO) {
Date now = new Date();
processInfoEO.setUpdateTime(now);
saveOrUpdate(processInfoEO);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public ProcessInfoEO queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<ProcessInfoEO> queryList() {
return list();
}
@Override
public Result<?> processCall(JSONObject jsonObject) {
String requestSource = jsonObject.getString("requestSource");
if(StringUtils.isEmpty(requestSource)){
throw new JeroBootException("请求来源不能为空!");
}
if(!StringUtils.equals(requestSource, RequestSourceEnum.WORK_FLOW.getValue())){
throw new JeroBootException("来源有误,没有权限调用该接口!");
}
String operatorType = jsonObject.getString("operatorType");
if(StringUtils.isEmpty(operatorType)){
throw new JeroBootException("操作类型不能为空!");
}
if(StringUtils.equals(operatorType, OperatorTypeEnum.ADD.getValue())){
Object processInfoJson = jsonObject.get("processInfo");
ProcessInfoEO processInfo = JSONObject.parseObject(
JSONObject.toJSONString(processInfoJson),ProcessInfoEO.class
);
this.baseMapper.insert(processInfo);
}else if(StringUtils.equals(operatorType, OperatorTypeEnum.UPDATE_STATUS.getValue())){
ProcessInfoEO processInfo = JSONObject.parseObject(JSONObject.toJSONString(jsonObject.get("processInfo")),ProcessInfoEO.class);
this.updateById(processInfo);
}
return new Result<>().success("调用成功!");
}
}