package org.springblade.mdm.flow.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.flowable.engine.HistoryService; import org.flowable.engine.TaskService; import org.flowable.engine.task.Comment; import org.flowable.task.api.history.HistoricTaskInstance; import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.oss.model.BladeFile; import org.springblade.core.oss.model.OssFile; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.UrlUtil; import org.springblade.mdm.commons.service.OssFileCommonService; import org.springblade.mdm.flow.excel.TaskAssignExcel; import org.springblade.mdm.flow.service.*; import org.springblade.mdm.flow.vo.FlowVO; import org.springblade.mdm.flow.vo.OvertimeTaskExcelVO; import org.springblade.mdm.flow.vo.TaskTraceVO; import org.springblade.system.feign.IUserClient; import org.springblade.system.pojo.entity.User; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Collections; import java.util.List; @Slf4j @RestController @RequestMapping("/flow/mgr") @Tag(name = "流程管理", description = "流程管理") public class TaskImportController { @Autowired private OssFileCommonService ossFileCommonService; @Autowired private TaskImportService taskImportService; @PostMapping("/import-task") @Operation(summary = "导入任务", description = "excel导入任务") public R importTask(MultipartFile file) { try { List importTaskList = ExcelUtil.read(file, TaskAssignExcel.class); if(importTaskList.isEmpty()){ return R.fail("数据为空"); } BladeFile resultFile = taskImportService.importTask(importTaskList,file.getOriginalFilename()); return R.data(resultFile); }catch(Exception e) { log.error("导入异常", e); return R.fail(e.getMessage()); } } @GetMapping("/download-import-result") @Operation(summary = "任务导入结果下载", description = "任务导入结果下载") public void downloadImportResult(String name,String originalName,HttpServletResponse response) throws IOException { ossFileCommonService.download(name,originalName,response); } @GetMapping("/download-task-template") @Operation(summary = "任务模板下载", description = "任务模板下载") public void downloadTaskTemplate(HttpServletResponse response) { ExcelUtil.export(response,"计划任务导入模板", "任务派工",Collections.emptyList(),TaskAssignExcel.class); } }