待办,已办,抄送中添加标题
Some checks failed
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
yudao-ui-admin CI / build (14.x) (push) Has been cancelled
yudao-ui-admin CI / build (16.x) (push) Has been cancelled
Some checks failed
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
yudao-ui-admin CI / build (14.x) (push) Has been cancelled
yudao-ui-admin CI / build (16.x) (push) Has been cancelled
This commit is contained in:
parent
fee01d624f
commit
29f38fc2e4
@ -44,13 +44,13 @@ import java.util.Map;
|
||||
public class EsearchUtils {
|
||||
// private static String ipStr = "192.168.1.28";
|
||||
private static String ipStr;
|
||||
private static int port = 9200;
|
||||
private static int port;
|
||||
private static String modeStr = "http";
|
||||
private static RestHighLevelClient esClient;
|
||||
|
||||
public static void initialize(String ip) {
|
||||
ipStr = ip;
|
||||
// this.port = port;
|
||||
// this.port = port;
|
||||
// modeStr = mode;
|
||||
esClient = new RestHighLevelClient(RestClient.builder(new HttpHost(ipStr,port,modeStr)));
|
||||
}
|
||||
|
@ -97,4 +97,7 @@ public interface ErrorCodeConstants {
|
||||
// ========== BPM 表单工作流对应 1_009_022_000 ==========
|
||||
ErrorCode FORM_PROCESS_MAPPING_NOT_EXISTS = new ErrorCode(1_009_022_000, "BPM 表单工作流对应不存在");
|
||||
ErrorCode PROCESS_KEY_NOT_PROVIDED = new ErrorCode(1_009_022_001, "工作流表单key没有提供");
|
||||
// ========== BPM 流程实例信息 1_009_023_000 ==========
|
||||
ErrorCode PROCESS_INSTANCE_TODO_NOT_EXISTS = new ErrorCode(1_009_023_000, "BPM 流程实例信息不存在");
|
||||
|
||||
}
|
||||
|
@ -99,4 +99,9 @@ public class FormProcessMappingController {
|
||||
public CommonResult<String> getFormCreatePath(@RequestParam("processKey") String processKey) {
|
||||
return success(formProcessMappingService.selectFormCreatePathByProcessKey(processKey));
|
||||
}
|
||||
|
||||
@GetMapping("/get-process-key")
|
||||
public CommonResult<String> selectProcessKey(@RequestParam("fullpath") String fullpath) {
|
||||
return success(formProcessMappingService.selectProcessKey(fullpath));
|
||||
}
|
||||
}
|
||||
|
@ -34,4 +34,6 @@ public class FormProcessMappingPageReqVO extends PageParam {
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
@Schema(description = "备注", example = "你说的对")
|
||||
private String remark;
|
||||
}
|
||||
|
@ -43,4 +43,7 @@ public class FormProcessMappingRespVO {
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "备注", example = "你说的对")
|
||||
@ExcelProperty("备注")
|
||||
private String remark;
|
||||
}
|
||||
|
@ -29,4 +29,6 @@ public class FormProcessMappingSaveReqVO {
|
||||
@NotNull(message = "状态(0正常 1停用)不能为空")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "备注", example = "你说的对")
|
||||
private String remark;
|
||||
}
|
||||
|
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.bpm.controller.admin.processinstancetodo;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.bpm.controller.admin.processinstancetodo.vo.*;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.processinstancetodo.ProcessInstanceTodoDO;
|
||||
import cn.iocoder.yudao.module.bpm.service.processinstancetodo.ProcessInstanceTodoService;
|
||||
|
||||
@Tag(name = "管理后台 - BPM 流程实例信息")
|
||||
@RestController
|
||||
@RequestMapping("/bpm/process-instance-todo")
|
||||
@Validated
|
||||
public class ProcessInstanceTodoController {
|
||||
|
||||
@Resource
|
||||
private ProcessInstanceTodoService processInstanceTodoService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建BPM 流程实例信息")
|
||||
@PreAuthorize("@ss.hasPermission('bpm:process-instance-todo:create')")
|
||||
public CommonResult<Long> createProcessInstanceTodo(@Valid @RequestBody ProcessInstanceTodoSaveReqVO createReqVO) {
|
||||
return success(processInstanceTodoService.createProcessInstanceTodo(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新BPM 流程实例信息")
|
||||
@PreAuthorize("@ss.hasPermission('bpm:process-instance-todo:update')")
|
||||
public CommonResult<Boolean> updateProcessInstanceTodo(@Valid @RequestBody ProcessInstanceTodoSaveReqVO updateReqVO) {
|
||||
processInstanceTodoService.updateProcessInstanceTodo(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除BPM 流程实例信息")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('bpm:process-instance-todo:delete')")
|
||||
public CommonResult<Boolean> deleteProcessInstanceTodo(@RequestParam("id") Long id) {
|
||||
processInstanceTodoService.deleteProcessInstanceTodo(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得BPM 流程实例信息")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('bpm:process-instance-todo:query')")
|
||||
public CommonResult<ProcessInstanceTodoRespVO> getProcessInstanceTodo(@RequestParam("id") Long id) {
|
||||
ProcessInstanceTodoDO processInstanceTodo = processInstanceTodoService.getProcessInstanceTodo(id);
|
||||
return success(BeanUtils.toBean(processInstanceTodo, ProcessInstanceTodoRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得BPM 流程实例信息分页")
|
||||
@PreAuthorize("@ss.hasPermission('bpm:process-instance-todo:query')")
|
||||
public CommonResult<PageResult<ProcessInstanceTodoRespVO>> getProcessInstanceTodoPage(@Valid ProcessInstanceTodoPageReqVO pageReqVO) {
|
||||
PageResult<ProcessInstanceTodoDO> pageResult = processInstanceTodoService.getProcessInstanceTodoPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, ProcessInstanceTodoRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出BPM 流程实例信息 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('bpm:process-instance-todo:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportProcessInstanceTodoExcel(@Valid ProcessInstanceTodoPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<ProcessInstanceTodoDO> list = processInstanceTodoService.getProcessInstanceTodoPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "BPM 流程实例信息.xls", "数据", ProcessInstanceTodoRespVO.class,
|
||||
BeanUtils.toBean(list, ProcessInstanceTodoRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package cn.iocoder.yudao.module.bpm.controller.admin.processinstancetodo.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - BPM 流程实例信息分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ProcessInstanceTodoPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "标题")
|
||||
private String title;
|
||||
|
||||
@Schema(description = "流程信息")
|
||||
private String processKey;
|
||||
|
||||
@Schema(description = "流程实例id", example = "15646")
|
||||
private String processInstanceId;
|
||||
|
||||
@Schema(description = "表单的提交路径")
|
||||
private String formCustomCreatePath;
|
||||
|
||||
@Schema(description = "备用字段1")
|
||||
private String field1;
|
||||
|
||||
@Schema(description = "备用字段2")
|
||||
private String field2;
|
||||
|
||||
@Schema(description = "备用字段3")
|
||||
private String field3;
|
||||
|
||||
@Schema(description = "状态(0正常 1停用)", example = "2")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "备注", example = "随便")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
package cn.iocoder.yudao.module.bpm.controller.admin.processinstancetodo.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - BPM 流程实例信息 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class ProcessInstanceTodoRespVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "16933")
|
||||
@ExcelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("标题")
|
||||
private String title;
|
||||
|
||||
@Schema(description = "流程信息", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("流程信息")
|
||||
private String processKey;
|
||||
|
||||
@Schema(description = "流程实例id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15646")
|
||||
@ExcelProperty("流程实例id")
|
||||
private String processInstanceId;
|
||||
|
||||
@Schema(description = "表单的提交路径", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("表单的提交路径")
|
||||
private String formCustomCreatePath;
|
||||
|
||||
@Schema(description = "备用字段1")
|
||||
@ExcelProperty("备用字段1")
|
||||
private String field1;
|
||||
|
||||
@Schema(description = "备用字段2")
|
||||
@ExcelProperty("备用字段2")
|
||||
private String field2;
|
||||
|
||||
@Schema(description = "备用字段3")
|
||||
@ExcelProperty("备用字段3")
|
||||
private String field3;
|
||||
|
||||
@Schema(description = "状态(0正常 1停用)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@ExcelProperty("状态(0正常 1停用)")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "备注", example = "随便")
|
||||
@ExcelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package cn.iocoder.yudao.module.bpm.controller.admin.processinstancetodo.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - BPM 流程实例信息新增/修改 Request VO")
|
||||
@Data
|
||||
public class ProcessInstanceTodoSaveReqVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "16933")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "标题不能为空")
|
||||
private String title;
|
||||
|
||||
@Schema(description = "流程信息", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "流程信息不能为空")
|
||||
private String processKey;
|
||||
|
||||
@Schema(description = "流程实例id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15646")
|
||||
@NotEmpty(message = "流程实例id不能为空")
|
||||
private String processInstanceId;
|
||||
|
||||
@Schema(description = "表单的提交路径", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "表单的提交路径不能为空")
|
||||
private String formCustomCreatePath;
|
||||
|
||||
@Schema(description = "备用字段1")
|
||||
private String field1;
|
||||
|
||||
@Schema(description = "备用字段2")
|
||||
private String field2;
|
||||
|
||||
@Schema(description = "备用字段3")
|
||||
private String field3;
|
||||
|
||||
@Schema(description = "状态(0正常 1停用)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@NotNull(message = "状态(0正常 1停用)不能为空")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "备注", example = "随便")
|
||||
private String remark;
|
||||
|
||||
}
|
@ -11,9 +11,11 @@ import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessI
|
||||
import cn.iocoder.yudao.module.bpm.convert.task.BpmProcessInstanceConvert;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmCategoryDO;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.processinstancetodo.ProcessInstanceTodoDO;
|
||||
import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils;
|
||||
import cn.iocoder.yudao.module.bpm.service.definition.BpmCategoryService;
|
||||
import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService;
|
||||
import cn.iocoder.yudao.module.bpm.service.processinstancetodo.ProcessInstanceTodoService;
|
||||
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
|
||||
import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
|
||||
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
|
||||
@ -60,6 +62,9 @@ public class BpmProcessInstanceController {
|
||||
@Resource
|
||||
private DeptApi deptApi;
|
||||
|
||||
@Resource
|
||||
private ProcessInstanceTodoService todoservice;
|
||||
|
||||
@GetMapping("/my-page")
|
||||
@Operation(summary = "获得我的实例分页列表", description = "在【我的流程】菜单中,进行调用")
|
||||
@PreAuthorize("@ss.hasPermission('bpm:process-instance:query')")
|
||||
@ -78,8 +83,11 @@ public class BpmProcessInstanceController {
|
||||
convertSet(pageResult.getList(), HistoricProcessInstance::getProcessDefinitionId));
|
||||
Map<String, BpmCategoryDO> categoryMap = categoryService.getCategoryMap(
|
||||
convertSet(processDefinitionMap.values(), ProcessDefinition::getCategory));
|
||||
return success(BpmProcessInstanceConvert.INSTANCE.buildProcessInstancePage(pageResult,
|
||||
processDefinitionMap, categoryMap, taskMap, null, null));
|
||||
Map<String, ProcessInstanceTodoDO> todoMap = todoservice.getTitleMap(
|
||||
convertSet(pageResult.getList(), HistoricProcessInstance::getId));
|
||||
|
||||
return success(BpmProcessInstanceConvert.INSTANCE.buildProcessInstancePageNew(pageResult,
|
||||
processDefinitionMap, categoryMap, taskMap,todoMap, null, null));
|
||||
}
|
||||
|
||||
@GetMapping("/manager-page")
|
||||
|
@ -8,7 +8,9 @@ import cn.iocoder.yudao.framework.common.util.date.DateUtils;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.cc.BpmProcessInstanceCopyRespVO;
|
||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyPageReqVO;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.processinstancetodo.ProcessInstanceTodoDO;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceCopyDO;
|
||||
import cn.iocoder.yudao.module.bpm.service.processinstancetodo.ProcessInstanceTodoService;
|
||||
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceCopyService;
|
||||
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
|
||||
import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
|
||||
@ -17,6 +19,7 @@ import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.flowable.engine.history.HistoricProcessInstance;
|
||||
import org.flowable.task.api.history.HistoricTaskInstance;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@ -49,6 +52,8 @@ public class BpmProcessInstanceCopyController {
|
||||
@Resource
|
||||
private AdminUserApi adminUserApi;
|
||||
|
||||
@Resource
|
||||
private ProcessInstanceTodoService todoservice;
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得抄送流程分页列表")
|
||||
@PreAuthorize("@ss.hasPermission('bpm:process-instance-cc:query')")
|
||||
@ -65,12 +70,15 @@ public class BpmProcessInstanceCopyController {
|
||||
convertSet(pageResult.getList(), BpmProcessInstanceCopyDO::getTaskId));
|
||||
Map<String, HistoricProcessInstance> processInstanceMap = processInstanceService.getHistoricProcessInstanceMap(
|
||||
convertSet(pageResult.getList(), BpmProcessInstanceCopyDO::getProcessInstanceId));
|
||||
Map<String, ProcessInstanceTodoDO> todoMap = todoservice.getTitleMap(
|
||||
convertSet(pageResult.getList(), BpmProcessInstanceCopyDO::getProcessInstanceId));
|
||||
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertListByFlatMap(pageResult.getList(),
|
||||
copy -> Stream.of(copy.getStartUserId(), Long.parseLong(copy.getCreator()))));
|
||||
return success(BeanUtils.toBean(pageResult, BpmProcessInstanceCopyRespVO.class, copyVO -> {
|
||||
MapUtils.findAndThen(userMap, Long.valueOf(copyVO.getCreator()), user -> copyVO.setCreatorName(user.getNickname()));
|
||||
MapUtils.findAndThen(userMap, copyVO.getStartUserId(), user -> copyVO.setStartUserName(user.getNickname()));
|
||||
MapUtils.findAndThen(taskNameMap, copyVO.getTaskId(), copyVO::setTaskName);
|
||||
MapUtils.findAndThen(todoMap,copyVO.getProcessInstanceId(), todo -> copyVO.setTitle(todo.getTitle()));
|
||||
MapUtils.findAndThen(processInstanceMap, copyVO.getProcessInstanceId(),
|
||||
processInstance -> copyVO.setProcessInstanceStartTime(DateUtils.of(processInstance.getStartTime())));
|
||||
}));
|
||||
|
@ -7,7 +7,9 @@ import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
|
||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*;
|
||||
import cn.iocoder.yudao.module.bpm.convert.task.BpmTaskConvert;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.processinstancetodo.ProcessInstanceTodoDO;
|
||||
import cn.iocoder.yudao.module.bpm.service.definition.BpmFormService;
|
||||
import cn.iocoder.yudao.module.bpm.service.processinstancetodo.ProcessInstanceTodoService;
|
||||
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
|
||||
import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
|
||||
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
|
||||
@ -56,6 +58,9 @@ public class BpmTaskController {
|
||||
@Resource
|
||||
private DeptApi deptApi;
|
||||
|
||||
@Resource
|
||||
private ProcessInstanceTodoService todoservice;
|
||||
|
||||
@GetMapping("todo-page")
|
||||
@Operation(summary = "获取 Todo 待办任务分页")
|
||||
@PreAuthorize("@ss.hasPermission('bpm:task:query')")
|
||||
@ -70,7 +75,10 @@ public class BpmTaskController {
|
||||
convertSet(pageResult.getList(), Task::getProcessInstanceId));
|
||||
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
|
||||
convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId())));
|
||||
return success(BpmTaskConvert.INSTANCE.buildTodoTaskPage(pageResult, processInstanceMap, userMap));
|
||||
|
||||
Map<String, ProcessInstanceTodoDO> todoMap = todoservice.getTitleMap(
|
||||
convertSet(pageResult.getList(), Task::getProcessInstanceId));
|
||||
return success(BpmTaskConvert.INSTANCE.buildTodoTaskPageNew(pageResult, processInstanceMap, todoMap,userMap));
|
||||
}
|
||||
|
||||
@GetMapping("done-page")
|
||||
@ -87,7 +95,9 @@ public class BpmTaskController {
|
||||
convertSet(pageResult.getList(), HistoricTaskInstance::getProcessInstanceId));
|
||||
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
|
||||
convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId())));
|
||||
return success(BpmTaskConvert.INSTANCE.buildTaskPage(pageResult, processInstanceMap, userMap, null));
|
||||
Map<String, ProcessInstanceTodoDO> todoMap = todoservice.getTitleMap(
|
||||
convertSet(pageResult.getList(), HistoricTaskInstance::getProcessInstanceId));
|
||||
return success(BpmTaskConvert.INSTANCE.buildTaskPageNew(pageResult, processInstanceMap,todoMap,userMap, null));
|
||||
}
|
||||
|
||||
@GetMapping("manager-page")
|
||||
|
@ -29,6 +29,8 @@ public class BpmProcessInstanceCopyRespVO {
|
||||
@Schema(description = "发起抄送的任务名称")
|
||||
private String taskName;
|
||||
|
||||
@Schema(description = "流程实例的标题")
|
||||
private String title;
|
||||
@Schema(description = "抄送人")
|
||||
private String creator;
|
||||
@Schema(description = "抄送人昵称")
|
||||
|
@ -22,6 +22,8 @@ public class BpmProcessInstanceRespVO {
|
||||
private String category;
|
||||
@Schema(description = "流程分类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "请假")
|
||||
private String categoryName;
|
||||
@Schema(description = "流程实例标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "关于....")
|
||||
private String title;
|
||||
|
||||
@Schema(description = "流程实例的状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
private Integer status; // 参见 BpmProcessInstanceStatusEnum 枚举
|
||||
|
@ -33,6 +33,8 @@ public class BpmTaskRespVO {
|
||||
@Schema(description = "审批理由", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
private String reason;
|
||||
|
||||
@Schema(description = "流程实例标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "关于....")
|
||||
private String title;
|
||||
/**
|
||||
* 负责人的用户信息
|
||||
*/
|
||||
|
@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmPro
|
||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceRespVO;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmCategoryDO;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.processinstancetodo.ProcessInstanceTodoDO;
|
||||
import cn.iocoder.yudao.module.bpm.event.BpmProcessInstanceStatusEvent;
|
||||
import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.FlowableUtils;
|
||||
import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceApproveReqDTO;
|
||||
@ -61,7 +62,33 @@ public interface BpmProcessInstanceConvert {
|
||||
}
|
||||
return vpPageResult;
|
||||
}
|
||||
|
||||
default PageResult<BpmProcessInstanceRespVO> buildProcessInstancePageNew(PageResult<HistoricProcessInstance> pageResult,
|
||||
Map<String, ProcessDefinition> processDefinitionMap,
|
||||
Map<String, BpmCategoryDO> categoryMap,
|
||||
Map<String, List<Task>> taskMap,
|
||||
Map<String, ProcessInstanceTodoDO> todoMap,
|
||||
Map<Long, AdminUserRespDTO> userMap,
|
||||
Map<Long, DeptRespDTO> deptMap) {
|
||||
PageResult<BpmProcessInstanceRespVO> vpPageResult = BeanUtils.toBean(pageResult, BpmProcessInstanceRespVO.class);
|
||||
for (int i = 0; i < pageResult.getList().size(); i++) {
|
||||
BpmProcessInstanceRespVO respVO = vpPageResult.getList().get(i);
|
||||
respVO.setStatus(FlowableUtils.getProcessInstanceStatus(pageResult.getList().get(i)));
|
||||
MapUtils.findAndThen(processDefinitionMap, respVO.getProcessDefinitionId(),
|
||||
processDefinition -> respVO.setCategory(processDefinition.getCategory()));
|
||||
MapUtils.findAndThen(categoryMap, respVO.getCategory(), category -> respVO.setCategoryName(category.getName()));
|
||||
MapUtils.findAndThen(todoMap,respVO.getId(),todo -> respVO.setTitle(todo.getTitle()));
|
||||
respVO.setTasks(BeanUtils.toBean(taskMap.get(respVO.getId()), BpmProcessInstanceRespVO.Task.class));
|
||||
// user
|
||||
if (userMap != null) {
|
||||
AdminUserRespDTO startUser = userMap.get(NumberUtils.parseLong(pageResult.getList().get(i).getStartUserId()));
|
||||
if (startUser != null) {
|
||||
respVO.setStartUser(BeanUtils.toBean(startUser, BpmProcessInstanceRespVO.User.class));
|
||||
MapUtils.findAndThen(deptMap, startUser.getDeptId(), dept -> respVO.getStartUser().setDeptName(dept.getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
return vpPageResult;
|
||||
}
|
||||
default BpmProcessInstanceRespVO buildProcessInstance(HistoricProcessInstance processInstance,
|
||||
ProcessDefinition processDefinition,
|
||||
BpmProcessDefinitionInfoDO processDefinitionExt,
|
||||
|
@ -4,11 +4,13 @@ import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
||||
import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
|
||||
import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceRespVO;
|
||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.processinstancetodo.ProcessInstanceTodoDO;
|
||||
import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.FlowableUtils;
|
||||
import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO;
|
||||
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
|
||||
@ -51,6 +53,21 @@ public interface BpmTaskConvert {
|
||||
taskVO.getProcessInstance().setStartUser(BeanUtils.toBean(startUser, BpmProcessInstanceRespVO.User.class));
|
||||
});
|
||||
}
|
||||
default PageResult<BpmTaskRespVO> buildTodoTaskPageNew(PageResult<Task> pageResult,
|
||||
Map<String, ProcessInstance> processInstanceMap,
|
||||
Map<String, ProcessInstanceTodoDO> todoMap,
|
||||
Map<Long, AdminUserRespDTO> userMap) {
|
||||
return BeanUtils.toBean(pageResult, BpmTaskRespVO.class, taskVO -> {
|
||||
ProcessInstance processInstance = processInstanceMap.get(taskVO.getProcessInstanceId());
|
||||
if (processInstance == null) {
|
||||
return;
|
||||
}
|
||||
taskVO.setProcessInstance(BeanUtils.toBean(processInstance, BpmTaskRespVO.ProcessInstance.class));
|
||||
MapUtils.findAndThen(todoMap,taskVO.getProcessInstanceId(), todo -> taskVO.setTitle(todo.getTitle()));
|
||||
AdminUserRespDTO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
|
||||
taskVO.getProcessInstance().setStartUser(BeanUtils.toBean(startUser, BpmProcessInstanceRespVO.User.class));
|
||||
});
|
||||
}
|
||||
|
||||
default PageResult<BpmTaskRespVO> buildTaskPage(PageResult<HistoricTaskInstance> pageResult,
|
||||
Map<String, HistoricProcessInstance> processInstanceMap,
|
||||
@ -77,6 +94,34 @@ public interface BpmTaskConvert {
|
||||
return new PageResult<>(taskVOList, pageResult.getTotal());
|
||||
}
|
||||
|
||||
default PageResult<BpmTaskRespVO> buildTaskPageNew(PageResult<HistoricTaskInstance> pageResult,
|
||||
Map<String, HistoricProcessInstance> processInstanceMap,
|
||||
Map<String, ProcessInstanceTodoDO> todoMap,
|
||||
Map<Long, AdminUserRespDTO> userMap,
|
||||
Map<Long, DeptRespDTO> deptMap) {
|
||||
List<BpmTaskRespVO> taskVOList = CollectionUtils.convertList(pageResult.getList(), task -> {
|
||||
BpmTaskRespVO taskVO = BeanUtils.toBean(task, BpmTaskRespVO.class);
|
||||
taskVO.setStatus(FlowableUtils.getTaskStatus(task)).setReason(FlowableUtils.getTaskReason(task));
|
||||
// 用户信息
|
||||
AdminUserRespDTO assignUser = userMap.get(NumberUtils.parseLong(task.getAssignee()));
|
||||
if (assignUser != null) {
|
||||
taskVO.setAssigneeUser(BeanUtils.toBean(assignUser, BpmProcessInstanceRespVO.User.class));
|
||||
findAndThen(deptMap, assignUser.getDeptId(), dept -> taskVO.getAssigneeUser().setDeptName(dept.getName()));
|
||||
}
|
||||
//流程实例待办
|
||||
MapUtils.findAndThen(todoMap,taskVO.getProcessInstanceId(), todo -> taskVO.setTitle(todo.getTitle()));
|
||||
// 流程实例
|
||||
HistoricProcessInstance processInstance = processInstanceMap.get(taskVO.getProcessInstanceId());
|
||||
if (processInstance != null) {
|
||||
AdminUserRespDTO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId()));
|
||||
taskVO.setProcessInstance(BeanUtils.toBean(processInstance, BpmTaskRespVO.ProcessInstance.class));
|
||||
taskVO.getProcessInstance().setStartUser(BeanUtils.toBean(startUser, BpmProcessInstanceRespVO.User.class));
|
||||
}
|
||||
return taskVO;
|
||||
});
|
||||
return new PageResult<>(taskVOList, pageResult.getTotal());
|
||||
}
|
||||
|
||||
default List<BpmTaskRespVO> buildTaskListByProcessInstanceId(List<HistoricTaskInstance> taskList,
|
||||
HistoricProcessInstance processInstance,
|
||||
Map<Long, BpmFormDO> formMap,
|
||||
|
@ -49,5 +49,8 @@ public class FormProcessMappingDO extends BaseDO {
|
||||
* 枚举 {@link TODO common_status 对应的类}
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
}
|
||||
|
@ -0,0 +1,67 @@
|
||||
package cn.iocoder.yudao.module.bpm.dal.dataobject.processinstancetodo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* BPM 流程实例信息 DO
|
||||
*
|
||||
* @author 君风
|
||||
*/
|
||||
@TableName("bpm_process_instance_todo")
|
||||
@KeySequence("bpm_process_instance_todo_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ProcessInstanceTodoDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
private String title;
|
||||
/**
|
||||
* 流程信息
|
||||
*/
|
||||
private String processKey;
|
||||
/**
|
||||
* 流程实例id
|
||||
*/
|
||||
private String processInstanceId;
|
||||
/**
|
||||
* 表单的提交路径
|
||||
*/
|
||||
private String formCustomCreatePath;
|
||||
/**
|
||||
* 备用字段1
|
||||
*/
|
||||
private String field1;
|
||||
/**
|
||||
* 备用字段2
|
||||
*/
|
||||
private String field2;
|
||||
/**
|
||||
* 备用字段3
|
||||
*/
|
||||
private String field3;
|
||||
/**
|
||||
* 状态(0正常 1停用)
|
||||
*/
|
||||
private Integer status;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
@ -34,4 +34,7 @@ public interface FormProcessMappingMapper extends BaseMapperX<FormProcessMapping
|
||||
|
||||
@Select("SELECT form_custom_create_path FROM bpm_form_process_mapping WHERE process_key = #{processKey}")
|
||||
String selectFormCreatePathByProcessKey(@Param("processKey") String processKey);
|
||||
|
||||
@Select("SELECT process_key FROM bpm_form_process_mapping WHERE form_custom_create_path = #{formCustomCreatePath}")
|
||||
String selectProcessKey(@Param("formCustomCreatePath") String formCustomCreatePath);
|
||||
}
|
||||
|
@ -0,0 +1,42 @@
|
||||
package cn.iocoder.yudao.module.bpm.dal.mysql.processinstancetodo;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmCategoryDO;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.processinstancetodo.ProcessInstanceTodoDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.bpm.controller.admin.processinstancetodo.vo.*;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
|
||||
/**
|
||||
* BPM 流程实例信息 Mapper
|
||||
*
|
||||
* @author 君风
|
||||
*/
|
||||
@Mapper
|
||||
public interface ProcessInstanceTodoMapper extends BaseMapperX<ProcessInstanceTodoDO> {
|
||||
|
||||
default PageResult<ProcessInstanceTodoDO> selectPage(ProcessInstanceTodoPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<ProcessInstanceTodoDO>()
|
||||
.eqIfPresent(ProcessInstanceTodoDO::getTitle, reqVO.getTitle())
|
||||
.eqIfPresent(ProcessInstanceTodoDO::getProcessKey, reqVO.getProcessKey())
|
||||
.eqIfPresent(ProcessInstanceTodoDO::getProcessInstanceId, reqVO.getProcessInstanceId())
|
||||
.eqIfPresent(ProcessInstanceTodoDO::getFormCustomCreatePath, reqVO.getFormCustomCreatePath())
|
||||
.eqIfPresent(ProcessInstanceTodoDO::getField1, reqVO.getField1())
|
||||
.eqIfPresent(ProcessInstanceTodoDO::getField2, reqVO.getField2())
|
||||
.eqIfPresent(ProcessInstanceTodoDO::getField3, reqVO.getField3())
|
||||
.eqIfPresent(ProcessInstanceTodoDO::getStatus, reqVO.getStatus())
|
||||
.eqIfPresent(ProcessInstanceTodoDO::getRemark, reqVO.getRemark())
|
||||
.betweenIfPresent(ProcessInstanceTodoDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(ProcessInstanceTodoDO::getId));
|
||||
}
|
||||
|
||||
default List<ProcessInstanceTodoDO> selectListByProcessinstandid(Collection<String> proccessinstandids) {
|
||||
return selectList(ProcessInstanceTodoDO::getProcessInstanceId, proccessinstandids);
|
||||
}
|
||||
|
||||
}
|
@ -52,17 +52,24 @@ public interface FormProcessMappingService {
|
||||
*/
|
||||
PageResult<FormProcessMappingDO> getFormProcessMappingPage(FormProcessMappingPageReqVO pageReqVO);
|
||||
/**
|
||||
* 通过 processKey 查询 formViewPath
|
||||
* 通过 processKey 查询 formCustomViewPath
|
||||
*
|
||||
* @param processKey 流程信息的键
|
||||
* @return formCustomViewPath 表单的提交路径
|
||||
* @return formCustomViewPath 表单的查看路径
|
||||
*/
|
||||
String selectFormViewPathByProcessKey(String processKey);
|
||||
/**
|
||||
* 通过 processKey 查询 formViewPath
|
||||
* 通过 processKey 查询 formCustomCreatePath
|
||||
*
|
||||
* @param processKey 流程信息的键
|
||||
* @return formCustomCreatePath 表单的提交路径
|
||||
*/
|
||||
String selectFormCreatePathByProcessKey(String processKey);
|
||||
/**
|
||||
* 通过 formCustomCreatePath 查询 processKey
|
||||
*
|
||||
* @param formCustomCreatePath 表单的提交路径
|
||||
* @return ProcessKey 流程信息的键
|
||||
*/
|
||||
String selectProcessKey(String formCustomCreatePath);
|
||||
}
|
||||
|
@ -92,4 +92,16 @@ public class FormProcessMappingServiceImpl implements FormProcessMappingService
|
||||
}
|
||||
return formCustomViewPath;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String selectProcessKey(String formCustomCreatePath) {
|
||||
if (StringUtils.isBlank(formCustomCreatePath)) {
|
||||
throw exception(PROCESS_KEY_NOT_PROVIDED); // 可自定义异常
|
||||
}
|
||||
String processKey= formProcessMappingMapper.selectProcessKey(formCustomCreatePath);
|
||||
if (processKey == null) {
|
||||
throw exception(FORM_PROCESS_MAPPING_NOT_EXISTS); // 如果不存在对应记录
|
||||
}
|
||||
return processKey;
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,9 @@ import cn.hutool.core.collection.CollUtil;
|
||||
import cn.iocoder.yudao.framework.common.util.elasticsearch.KmsSearchDto;
|
||||
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
|
||||
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
|
||||
import cn.iocoder.yudao.module.bpm.controller.admin.processinstancetodo.vo.ProcessInstanceTodoSaveReqVO;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.processinstancetodo.ProcessInstanceTodoDO;
|
||||
import cn.iocoder.yudao.module.bpm.dal.mysql.processinstancetodo.ProcessInstanceTodoMapper;
|
||||
import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum;
|
||||
|
||||
import cn.iocoder.yudao.module.infra.service.config.ConfigService;
|
||||
@ -56,12 +59,15 @@ public class KnowledgeServiceImpl implements KnowledgeService {
|
||||
@Resource
|
||||
private BpmProcessInstanceApi processInstanceApi;
|
||||
|
||||
private boolean isEsFlag = true;
|
||||
private boolean isEsFlag = false;
|
||||
private String indexName = "knows_index";
|
||||
|
||||
@Resource
|
||||
private ConfigService configService;
|
||||
|
||||
@Resource
|
||||
private ProcessInstanceTodoMapper processInstanceTodoMapper;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Long createKnowledge(Long userId,KnowledgeSaveReqVO createReqVO){
|
||||
@ -82,6 +88,14 @@ public class KnowledgeServiceImpl implements KnowledgeService {
|
||||
|
||||
// 将工作流的编号,更新到 OA 请假单中
|
||||
knowledgeMapper.updateById(new KnowledgeDO().setId(knowledge.getId()).setProcessInstanceId(processInstanceId));
|
||||
//同步更新流程待办库
|
||||
ProcessInstanceTodoDO todo = new ProcessInstanceTodoDO();
|
||||
todo.setTitle( createReqVO.getKnowTitle() );
|
||||
todo.setProcessKey( PROCESS_KEY );
|
||||
todo.setProcessInstanceId( processInstanceId );
|
||||
todo.setStatus( 0 );
|
||||
processInstanceTodoMapper.insert(todo);
|
||||
|
||||
try {
|
||||
if (isEsFlag){
|
||||
EsearchUtils.initialize(configService.getConfigByKey("esearch.ip").getValue() );
|
||||
@ -103,6 +117,7 @@ public class KnowledgeServiceImpl implements KnowledgeService {
|
||||
// 更新
|
||||
KnowledgeDO updateObj = BeanUtils.toBean(updateReqVO, KnowledgeDO.class);
|
||||
knowledgeMapper.updateById(updateObj);
|
||||
|
||||
if (isEsFlag){
|
||||
EsearchUtils.initialize(configService.getConfigByKey("esearch.ip").getValue() );
|
||||
EsearchUtils.updateIndex(updateReqVO.getId(),updateReqVO,indexName);
|
||||
@ -198,61 +213,4 @@ public class KnowledgeServiceImpl implements KnowledgeService {
|
||||
knowledgeMapper.updateById(new KnowledgeDO().setId(id).setFlowStatus(status));
|
||||
}
|
||||
|
||||
// public List<KnowledgeDO> selectForEs(KmsSearchDto kmsSearchDto) {
|
||||
// kmsSearchDto.setSearchKey("knowTitle");
|
||||
// // 1.创建并设置SearchSourceBuilder对象
|
||||
// SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
|
||||
// // 2.创建BoolQueryBuilder对象
|
||||
// BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
||||
// // 3.设置boolQueryBuilder条件
|
||||
// //MatchPhraseQueryBuilder matchPhraseQueryBuilder = QueryBuilders.matchPhraseQuery(kmsSearchDto.getSearchKey(), kmsSearchDto.getSearchValue());
|
||||
// // 4.添加查询条件到boolQueryBuilder中
|
||||
// //boolQueryBuilder.must(matchPhraseQueryBuilder);
|
||||
// if("1".equals(kmsSearchDto.getSearchBy())) {
|
||||
// boolQueryBuilder.should(QueryBuilders.termsQuery(kmsSearchDto.getSearchKey(), kmsSearchDto.getSearchValue()));
|
||||
// }
|
||||
// else if("2".equals(kmsSearchDto.getSearchBy())) {
|
||||
// boolQueryBuilder.should(QueryBuilders.wildcardQuery(kmsSearchDto.getSearchKey(), "*" + kmsSearchDto.getSearchValue() + "*"));
|
||||
// }
|
||||
// // 查询条件--->生成DSL查询语句
|
||||
// searchSourceBuilder.query(boolQueryBuilder);
|
||||
// Integer pageNum = 1;
|
||||
// Integer pageSize = kmsSearchDto.getPageSize();
|
||||
// // 第几页
|
||||
// searchSourceBuilder.from((pageNum - 1) * pageSize);
|
||||
// // 每页多少条数据
|
||||
// searchSourceBuilder.size(pageSize);
|
||||
// // 设置排序规则
|
||||
// String sortBy = kmsSearchDto.getSortBy();
|
||||
// SortOrder sortType = kmsSearchDto.getSortType().equals("1") ? SortOrder.DESC : SortOrder.ASC;
|
||||
// //searchSourceBuilder.sort(sortBy, sortType);
|
||||
// System.out.println("sortBy="+sortBy);
|
||||
// System.out.println(sortType);
|
||||
//// searchSourceBuilder.sort(
|
||||
//// SortBuilders.fieldSort("createTime")
|
||||
//// .unmappedType("date")
|
||||
//// .order(SortOrder.DESC)
|
||||
//// );
|
||||
//
|
||||
// SearchRequest searchRequest = new SearchRequest("knows_index");
|
||||
// searchRequest.source(searchSourceBuilder);
|
||||
// //返回信息
|
||||
// List<KnowledgeDO> rsList = Lists.newArrayList();
|
||||
// try {
|
||||
// SearchResponse response = esClient.search(searchRequest, RequestOptions.DEFAULT);
|
||||
// //解析搜索结果
|
||||
// for (SearchHit sh : response.getHits()) {
|
||||
// Map<String, Object> sourceAsMap = sh.getSourceAsMap();
|
||||
// /*for (Map.Entry<String, Object> stringObjectEntry : sourceAsMap.entrySet()) {
|
||||
// System.out.println(sourceAsMap.get(stringObjectEntry.getKey()));
|
||||
// }*/
|
||||
// System.out.println("111111");
|
||||
// KnowledgeDO main = JSON.parseObject(JSON.toJSONString(sourceAsMap), KnowledgeDO.class);
|
||||
// rsList.add(main);
|
||||
// }
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// return rsList;
|
||||
// }
|
||||
}
|
||||
|
@ -0,0 +1,73 @@
|
||||
package cn.iocoder.yudao.module.bpm.service.processinstancetodo;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import cn.iocoder.yudao.module.bpm.controller.admin.processinstancetodo.vo.*;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmCategoryDO;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.processinstancetodo.ProcessInstanceTodoDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
|
||||
|
||||
/**
|
||||
* BPM 流程实例信息 Service 接口
|
||||
*
|
||||
* @author 君风
|
||||
*/
|
||||
public interface ProcessInstanceTodoService {
|
||||
|
||||
/**
|
||||
* 创建BPM 流程实例信息
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createProcessInstanceTodo(@Valid ProcessInstanceTodoSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新BPM 流程实例信息
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateProcessInstanceTodo(@Valid ProcessInstanceTodoSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除BPM 流程实例信息
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteProcessInstanceTodo(Long id);
|
||||
|
||||
/**
|
||||
* 获得流程实体标题 Map,基于指定流程实例id
|
||||
*
|
||||
* @param ids 编号数组
|
||||
* @return 流程分类 Map
|
||||
*/
|
||||
default Map<String, ProcessInstanceTodoDO> getTitleMap(Collection<String> ids) {
|
||||
return convertMap(getTitleListByProcessinstandid(ids), ProcessInstanceTodoDO::getProcessInstanceId);
|
||||
}
|
||||
/**
|
||||
* 获得流程实例标题,基于指定流程实例id
|
||||
*
|
||||
* @return 流程分类列表
|
||||
*/
|
||||
public List<ProcessInstanceTodoDO> getTitleListByProcessinstandid(Collection<String> ids);
|
||||
/**
|
||||
* 获得BPM 流程实例信息
|
||||
*
|
||||
* @param id 编号
|
||||
* @return BPM 流程实例信息
|
||||
*/
|
||||
ProcessInstanceTodoDO getProcessInstanceTodo(Long id);
|
||||
|
||||
/**
|
||||
* 获得BPM 流程实例信息分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return BPM 流程实例信息分页
|
||||
*/
|
||||
PageResult<ProcessInstanceTodoDO> getProcessInstanceTodoPage(ProcessInstanceTodoPageReqVO pageReqVO);
|
||||
|
||||
}
|
@ -0,0 +1,84 @@
|
||||
package cn.iocoder.yudao.module.bpm.service.processinstancetodo;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmCategoryDO;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import cn.iocoder.yudao.module.bpm.controller.admin.processinstancetodo.vo.*;
|
||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.processinstancetodo.ProcessInstanceTodoDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
|
||||
import cn.iocoder.yudao.module.bpm.dal.mysql.processinstancetodo.ProcessInstanceTodoMapper;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* BPM 流程实例信息 Service 实现类
|
||||
*
|
||||
* @author 君风
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class ProcessInstanceTodoServiceImpl implements ProcessInstanceTodoService {
|
||||
|
||||
@Resource
|
||||
private ProcessInstanceTodoMapper processInstanceTodoMapper;
|
||||
|
||||
@Override
|
||||
public Long createProcessInstanceTodo(ProcessInstanceTodoSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
ProcessInstanceTodoDO processInstanceTodo = BeanUtils.toBean(createReqVO, ProcessInstanceTodoDO.class);
|
||||
processInstanceTodoMapper.insert(processInstanceTodo);
|
||||
// 返回
|
||||
return processInstanceTodo.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateProcessInstanceTodo(ProcessInstanceTodoSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateProcessInstanceTodoExists(updateReqVO.getId());
|
||||
// 更新
|
||||
ProcessInstanceTodoDO updateObj = BeanUtils.toBean(updateReqVO, ProcessInstanceTodoDO.class);
|
||||
processInstanceTodoMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteProcessInstanceTodo(Long id) {
|
||||
// 校验存在
|
||||
validateProcessInstanceTodoExists(id);
|
||||
// 删除
|
||||
processInstanceTodoMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateProcessInstanceTodoExists(Long id) {
|
||||
if (processInstanceTodoMapper.selectById(id) == null) {
|
||||
throw exception(PROCESS_INSTANCE_TODO_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProcessInstanceTodoDO getProcessInstanceTodo(Long id) {
|
||||
return processInstanceTodoMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<ProcessInstanceTodoDO> getProcessInstanceTodoPage(ProcessInstanceTodoPageReqVO pageReqVO) {
|
||||
return processInstanceTodoMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<ProcessInstanceTodoDO> getTitleListByProcessinstandid(Collection<String> ids) {
|
||||
if (CollUtil.isEmpty(ids)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return processInstanceTodoMapper.selectListByProcessinstandid(ids);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user