yxk-20260417-流程表tasktask后端方法

This commit is contained in:
ye1023
2026-04-17 14:22:51 +08:00
parent b821803991
commit 2d0ffa9db5
6 changed files with 502 additions and 0 deletions
@@ -0,0 +1,187 @@
package org.jeecg.modules.tasktask.controller;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.query.QueryRuleEnum;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.tasktask.entity.TaskTask;
import org.jeecg.modules.tasktask.service.ITaskTaskService;
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 org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description: 事项任务计划表(发起流程)
* @Author: jeecg-boot
* @Date: 2026-04-17
* @Version: V1.0
*/
@Tag(name="事项任务计划表(发起流程)")
@RestController
@RequestMapping("/tasktask/taskTask")
@Slf4j
public class TaskTaskController extends JeecgController<TaskTask, ITaskTaskService> {
@Autowired
private ITaskTaskService taskTaskService;
/**
* 分页列表查询
*
* @param taskTask
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "事项任务计划表(发起流程)-分页列表查询")
@Operation(summary="事项任务计划表(发起流程)-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<TaskTask>> queryPageList(TaskTask taskTask,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
// 自定义查询规则
Map<String, QueryRuleEnum> customeRuleMap = new HashMap<>();
// 自定义多选的查询规则为:LIKE_WITH_OR
customeRuleMap.put("urgencyLevel", QueryRuleEnum.LIKE_WITH_OR);
QueryWrapper<TaskTask> queryWrapper = QueryGenerator.initQueryWrapper(taskTask, req.getParameterMap(),customeRuleMap);
Page<TaskTask> page = new Page<TaskTask>(pageNo, pageSize);
IPage<TaskTask> pageList = taskTaskService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
* @param taskTask
* @return
*/
@AutoLog(value = "事项任务计划表(发起流程)-添加")
@Operation(summary="事项任务计划表(发起流程)-添加")
@RequiresPermissions("tasktask:task_task:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody TaskTask taskTask) {
taskTask.setBpmStatus("1");
taskTaskService.save(taskTask);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param taskTask
* @return
*/
@AutoLog(value = "事项任务计划表(发起流程)-编辑")
@Operation(summary="事项任务计划表(发起流程)-编辑")
@RequiresPermissions("tasktask:task_task:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody TaskTask taskTask) {
taskTaskService.updateById(taskTask);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "事项任务计划表(发起流程)-通过id删除")
@Operation(summary="事项任务计划表(发起流程)-通过id删除")
@RequiresPermissions("tasktask:task_task:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
taskTaskService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "事项任务计划表(发起流程)-批量删除")
@Operation(summary="事项任务计划表(发起流程)-批量删除")
@RequiresPermissions("tasktask:task_task:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.taskTaskService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "事项任务计划表(发起流程)-通过id查询")
@Operation(summary="事项任务计划表(发起流程)-通过id查询")
@GetMapping(value = "/queryById")
public Result<TaskTask> queryById(@RequestParam(name="id",required=true) String id) {
TaskTask taskTask = taskTaskService.getById(id);
if(taskTask==null) {
return Result.error("未找到对应数据");
}
return Result.OK(taskTask);
}
/**
* 导出excel
*
* @param request
* @param taskTask
*/
@RequiresPermissions("tasktask:task_task:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, TaskTask taskTask) {
return super.exportXls(request, taskTask, TaskTask.class, "事项任务计划表(发起流程)");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequiresPermissions("tasktask:task_task:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, TaskTask.class);
}
}
@@ -0,0 +1,260 @@
package org.jeecg.modules.tasktask.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import org.jeecg.common.constant.ProvinceCityArea;
import org.jeecg.common.util.SpringContextUtils;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 事项任务计划表(发起流程)
* @Author: jeecg-boot
* @Date: 2026-04-17
* @Version: V1.0
*/
@Data
@TableName("task_task")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(description="事项任务计划表(发起流程)")
public class TaskTask implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "主键")
private java.lang.String id;
/**创建人*/
@Schema(description = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Schema(description = "创建日期")
private java.util.Date createTime;
/**更新人*/
@Schema(description = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Schema(description = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@Schema(description = "所属部门")
private java.lang.String sysOrgCode;
/**流程编码*/
@Excel(name = "流程编码", width = 15)
@Schema(description = "流程编码")
private java.lang.String flowCode;
/**流程名称*/
@Excel(name = "流程名称", width = 15)
@Schema(description = "流程名称")
private java.lang.String flowName;
/**流程实例ID*/
@Excel(name = "流程实例ID", width = 15)
@Schema(description = "流程实例ID")
private java.lang.String processInstId;
/**流程类型*/
@Excel(name = "流程类型", width = 15)
@Schema(description = "流程类型")
private java.lang.String processType;
/**流程状态*/
@Excel(name = "流程状态", width = 15)
@Schema(description = "流程状态")
private java.lang.String bpmStatus;
/**关联台账事项ID*/
@Excel(name = "关联台账事项ID", width = 15)
@Schema(description = "关联台账事项ID")
private java.lang.String businessId;
/**关联台账根节点id*/
@Excel(name = "关联台账根节点id", width = 15)
@Schema(description = "关联台账根节点id")
private java.lang.String parentBusinessId;
/**关联台账表名*/
@Excel(name = "关联台账表名", width = 15)
@Schema(description = "关联台账表名")
private java.lang.String businessTablename;
/**外部来源 ID*/
@Excel(name = "外部来源 ID", width = 15)
@Schema(description = "外部来源 ID")
private java.lang.String sourceId;
/**任务标题*/
@Excel(name = "任务标题", width = 15)
@Schema(description = "任务标题")
private java.lang.String title;
/**任务内容*/
@Excel(name = "任务内容", width = 15)
@Schema(description = "任务内容")
private java.lang.String content;
/**紧急程度(一般/紧急/特急)*/
@Excel(name = "紧急程度(一般/紧急/特急)", width = 15, dicCode = "urgency_level")
@Dict(dicCode = "urgency_level")
@Schema(description = "紧急程度(一般/紧急/特急)")
private java.lang.String urgencyLevel;
/**自定义分组*/
@Excel(name = "自定义分组", width = 15)
@Schema(description = "自定义分组")
private java.lang.String customGroup;
/**所属任务清单 ID*/
@Excel(name = "所属任务清单 ID", width = 15)
@Schema(description = "所属任务清单 ID")
private java.lang.String taskListId;
/**所属任务清单名称*/
@Excel(name = "所属任务清单名称", width = 15)
@Schema(description = "所属任务清单名称")
private java.lang.String taskListName;
/**是否为里程碑节点*/
@Excel(name = "是否为里程碑节点", width = 15)
@Schema(description = "是否为里程碑节点")
private java.lang.String milestone;
/**任务完成方式*/
@Excel(name = "任务完成方式", width = 15)
@Schema(description = "任务完成方式")
private java.lang.String finishMethod;
/**被督办部门id*/
@Excel(name = "被督办部门id", width = 15)
@Schema(description = "被督办部门id")
private java.lang.String deptId;
/**被督办部门名称(冗余)*/
@Excel(name = "被督办部门名称(冗余)", width = 15)
@Schema(description = "被督办部门名称(冗余)")
private java.lang.String deptName;
/**部门负责人id*/
@Excel(name = "部门负责人id", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "username")
@Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
@Schema(description = "部门负责人id")
private java.lang.String deptLeaderId;
/**部门负责人姓名(冗余)*/
@Excel(name = "部门负责人姓名(冗余)", width = 15)
@Schema(description = "部门负责人姓名(冗余)")
private java.lang.String deptLeaderName;
/**部门经办人id(负责人指派后填入)*/
@Excel(name = "部门经办人id(负责人指派后填入)", width = 15, dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
@Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
@Schema(description = "部门经办人id(负责人指派后填入)")
private java.lang.String deptHandlerId;
/**部门经办人姓名(冗余)*/
@Excel(name = "部门经办人姓名(冗余)", width = 15)
@Schema(description = "部门经办人姓名(冗余)")
private java.lang.String deptHandlerName;
/**关注人 ID 列表*/
@Excel(name = "关注人 ID 列表", width = 15)
@Schema(description = "关注人 ID 列表")
private java.lang.String followerIds;
/**关注人姓名列表,冗余*/
@Excel(name = "关注人姓名列表,冗余", width = 15)
@Schema(description = "关注人姓名列表,冗余")
private java.lang.String followerNames;
/**要求完成日期(业务层面的硬性要求)*/
@Excel(name = "要求完成日期(业务层面的硬性要求)", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@Schema(description = "要求完成日期(业务层面的硬性要求)")
private java.util.Date requireFinishDate;
/**督办开始时间*/
@Excel(name = "督办开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Schema(description = "督办开始时间")
private java.util.Date startTime;
/**截止时间(精确到时分,与 require_finish_date 互补)*/
@Excel(name = "截止时间(精确到时分,与 require_finish_date 互补)", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Schema(description = "截止时间(精确到时分,与 require_finish_date 互补)")
private java.util.Date deadline;
/**实际完成时间*/
@Excel(name = "实际完成时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Schema(description = "实际完成时间")
private java.util.Date actualFinishTime;
/**是否已逾期*/
@Excel(name = "是否已逾期", width = 15)
@Schema(description = "是否已逾期")
private java.lang.String isOverdue;
/**逾期时长*/
@Excel(name = "逾期时长", width = 15)
@Schema(description = "逾期时长")
private java.lang.Double overdueDuration;
/**持续时长*/
@Excel(name = "持续时长", width = 15)
@Schema(description = "持续时长")
private java.lang.Double duration;
/**子任务完成进度(0.00~100.00,参考飞书子任务进度)*/
@Excel(name = "子任务完成进度(0.00~100.00,参考飞书子任务进度)", width = 15)
@Schema(description = "子任务完成进度(0.00~100.00,参考飞书子任务进度)")
private java.lang.Double subTaskProgress;
/**父任务 ID*/
@Excel(name = "父任务 ID", width = 15)
@Schema(description = "父任务 ID")
private java.lang.String parentTaskId;
/**前置任务 ID 列表,逗号分隔*/
@Excel(name = "前置任务 ID 列表,逗号分隔", width = 15)
@Schema(description = "前置任务 ID 列表,逗号分隔")
private java.lang.String preTaskIds;
/**后置任务 ID 列表,逗号分隔*/
@Excel(name = "后置任务 ID 列表,逗号分隔", width = 15)
@Schema(description = "后置任务 ID 列表,逗号分隔")
private java.lang.String nextTaskIds;
/**子任务数*/
@Excel(name = "子任务数", width = 15)
@Schema(description = "子任务数")
private java.lang.Double subTaskCount;
/**删除标识*/
@Excel(name = "删除标识", width = 15)
@Schema(description = "删除标识")
@TableLogic
private java.lang.String delFlag;
/**流程序列号*/
@Excel(name = "流程序列号", width = 15)
@Schema(description = "流程序列号")
private java.lang.String processCodenumber;
/**表单组件路径*/
@Excel(name = "表单组件路径", width = 15)
@Schema(description = "表单组件路径")
private java.lang.String formUrl;
/**流程变量*/
@Excel(name = "流程变量", width = 15)
private transient java.lang.String jsonDataString;
private byte[] jsonData;
public byte[] getJsonData(){
if(jsonDataString==null){
return null;
}
try {
return jsonDataString.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
public String getJsonDataString(){
if(jsonData==null || jsonData.length==0){
return "";
}
try {
return new String(jsonData,"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return "";
}
}
@@ -0,0 +1,17 @@
package org.jeecg.modules.tasktask.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.tasktask.entity.TaskTask;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 事项任务计划表(发起流程)
* @Author: jeecg-boot
* @Date: 2026-04-17
* @Version: V1.0
*/
public interface TaskTaskMapper extends BaseMapper<TaskTask> {
}
@@ -0,0 +1,5 @@
<?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="org.jeecg.modules.tasktask.mapper.TaskTaskMapper">
</mapper>
@@ -0,0 +1,14 @@
package org.jeecg.modules.tasktask.service;
import org.jeecg.modules.tasktask.entity.TaskTask;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: 事项任务计划表(发起流程)
* @Author: jeecg-boot
* @Date: 2026-04-17
* @Version: V1.0
*/
public interface ITaskTaskService extends IService<TaskTask> {
}
@@ -0,0 +1,19 @@
package org.jeecg.modules.tasktask.service.impl;
import org.jeecg.modules.tasktask.entity.TaskTask;
import org.jeecg.modules.tasktask.mapper.TaskTaskMapper;
import org.jeecg.modules.tasktask.service.ITaskTaskService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 事项任务计划表(发起流程)
* @Author: jeecg-boot
* @Date: 2026-04-17
* @Version: V1.0
*/
@Service
public class TaskTaskServiceImpl extends ServiceImpl<TaskTaskMapper, TaskTask> implements ITaskTaskService {
}