package org.springblade.mdm.flow.controller; 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.tool.api.R; import org.springblade.mdm.basesetting.producedivision.entity.ProduceDivision; import org.springblade.mdm.basesetting.producedivision.service.ProduceDivisionService; import org.springblade.mdm.flow.service.ReplaceFlowService; import org.springblade.mdm.flow.vo.ReplaceFlowStartVO; import org.springblade.mdm.flow.vo.ReplaceUploadVO; import org.springblade.mdm.program.vo.NcNodeVO; import org.springframework.web.bind.annotation.*; @Slf4j @RestController @AllArgsConstructor @RequestMapping("/flow/replace") @Tag(name = "替换流程", description = "替换流程") public class ReplaceFlowController { private final ProduceDivisionService produceDivisionService; private final ReplaceFlowService replaceFlowService; @PostMapping("/pre") @Operation(summary = "准备程序替换流程new", description = "准备程序替换流程,打开界面之前调用,调用之后会初始化文件列表,") public R pre(@Parameter(description = "程序包名 节点的id") Long nodeId) { String tempInstanceId = "REP"+System.currentTimeMillis(); try { return R.data(replaceFlowService.pre(nodeId,tempInstanceId)); }catch(Exception e){ log.error("预开始错误",e); return R.fail(e.getMessage()); } } /** * 发起替换流程 */ @PostMapping("/start") @Operation(summary = "发起程序替换流程", description = "发起程序替换流程") public R start(@RequestBody ReplaceFlowStartVO startVO) { try { replaceFlowService.start(startVO); return R.data(true); }catch(Exception e){ log.error("发起程序替换错误",e); return R.fail(e.getMessage()); } } @PostMapping("/upload") @Operation(summary = "替换流程发起上传程序文件", description = "替换流程发起上传程序文件") public R upload(ReplaceUploadVO uploadVO) { try { replaceFlowService.uploadReplaceProgramFile(uploadVO); }catch(Exception e) { log.error("替换程序上传执行错误",e); return R.fail("上传失败:" + e.getMessage()); } return R.success(); } @GetMapping("/default-assignees") @Operation(summary = "默认的审核用户", description = "准备程序替换流程,打开界面之前调用,调用之后会初始化文件列表,") public R defaultAssignees(@Parameter(description = "零组件号") String drawingNo) { return R.data(produceDivisionService.getByDrawingNoWithQinzhe(drawingNo)); } }