package org.springblade.mdm.flow.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; import org.springblade.mdm.flow.entity.FlowProgramFile; import org.springblade.mdm.flow.service.ApproveRecordService; import org.springblade.mdm.flow.service.FlowProgramFileService; import org.springblade.mdm.flow.vo.ApproveRecordVO; import org.springblade.mdm.flow.vo.ProgramUploadVO; import org.springblade.mdm.flow.vo.TaskTraceVO; import org.springblade.mdm.program.service.NcProgramService; import org.springblade.mdm.program.service.ProcessProgRefService; import org.springblade.mdm.program.vo.NcNodeProgramQueryVO; import org.springblade.mdm.program.vo.NcProgramUploadVO; import org.springblade.mdm.program.vo.NcProgramVO; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** * 程序节点 * * @author yangys */ @NonDS @RestController @RequestMapping("/flow/mgr") @AllArgsConstructor @Tag(name = "流程管理", description = "流程管理") @Slf4j public class FlowProgramController { private final NcProgramService ncProgramService; private final ProcessProgRefService ncProcessProgRefService; private final FlowProgramFileService flowProgramFileService; @PostMapping("/ncupload") @Operation(summary = "上传程序文件", description = "上传程序文件") public R upload(ProgramUploadVO uploadVO) { try { flowProgramFileService.uploadFlowProgramFile(uploadVO); }catch(Exception e) { log.error("程序上传执行错误",e); return R.fail("上传失败:" + e.getMessage()); } return R.success(); } @GetMapping("/nclist-by-instanceid") @Operation(summary = "流程程序文件列表", description = "流程程序文件列表") public R> listNcFileByProcess(@Parameter(description="流程实例id")@RequestParam String processInstanceId) { return R.data(flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId, processInstanceId).list()); } @PostMapping("/remove") @Operation(summary = "删除临时程序文件", description = "") public R removeFile(Long id) { try { flowProgramFileService.removeById(id); }catch(Exception e) { log.error("删除文件失败",e); return R.fail(e.getMessage()); } return R.success(); } @GetMapping("/content") @Operation(summary = "获取文件内容", description = "仅限文本格式的内容,二进制文件将返回空串") public R fileContent(@Parameter(description = "程序文件id") Long id) { try { return R.data(flowProgramFileService.getFileContent(id)); }catch(Exception e) { log.error("删除文件失败",e); return R.fail(e.getMessage()); } } }