package org.springblade.mdm.program.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.Parameters; import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.media.Schema; 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.core.tool.utils.Func; import org.springblade.mdm.basesetting.machine.vo.MachineQueryVO; import org.springblade.mdm.basesetting.machine.vo.MachineVO; import org.springblade.mdm.program.entity.NcProgram; import org.springblade.mdm.program.service.NcNodeService; import org.springblade.mdm.program.service.NcProgramService; import org.springblade.mdm.program.service.ProgramFlowStatusQueryService; import org.springblade.mdm.program.vo.*; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 程序节点 * * @author yangys */ @NonDS @RestController @RequestMapping("/program/node") @AllArgsConstructor @Tag(name = "程序节点", description = "程序节点") @Slf4j public class NcNodeController { private final NcProgramService ncProgramService; private final NcNodeService ncNodeService; private final ProgramFlowStatusQueryService programFlowStatusQueryService; /** * 新增 */ @PostMapping("/save") @Operation(summary = "新增节点", description = "节点信息,id保持空") public R save(@RequestBody NcNodeVO vo) { ncNodeService.saveNcCode(vo); return R.status(true); } @PostMapping("/update") @Operation(summary = "修改节点", description = "节点信息,必须传入ID") public R update(@RequestBody NcNodeVO vo) { ncNodeService.updateNcNode(vo); return R.status(true); } @PostMapping("/remove") @Operation(summary = "删除节点") public R remove(Long id) { ncNodeService.removeById(id); return R.status(true); } @GetMapping("/lazy-list") @Operation(summary = "懒加载列表", description = "程序目录树形结构") public R> lazyList(Long parentId) { List list = ncNodeService.lazyList(parentId); if(list != null && !list.isEmpty()) { for(NcNodeVO ncNodeVO : list) { if(!"60".equals(ncNodeVO.getNodeType())){ break; } ncNodeVO.setFlowStatus(programFlowStatusQueryService.queryFlowStatus(ncNodeVO.getProcessInstanceId())); /* NcProgram program = ncProgramService.getByBindNodeId(ncNodeVO.getId()); if(program != null) { ncNodeVO.setProcessEdition(program.getProcessEdition()); ncNodeVO.setDrawingNo(program.getDrawingNo()); ncNodeVO.setMachineCode(program.getMachineCode()); ncNodeVO.setProcessName(program.getProcessName()); ncNodeVO.setVersionNumber(program.getVersionNumber()); //record中找不到时未启动0;找到了需要查询流程实例id,是否运行中 ncNodeVO.setFlowStatus(programFlowStatusQueryService.queryFlowStatus(program.getId())); }*/ } } return R.data(list); } @GetMapping("/search-list") @Operation(summary = "查询树状列表", description = "程序目录树形结构(查询专用)") public R> searchList(NcNodeQueryVO queryVO) { if(Func.isEmpty(queryVO.getName())){ return R.fail("请输入名称"); } List list = ncNodeService.searchList(queryVO); /* if(list != null && !list.isEmpty()) { for(NcNodeVO ncNodeVO : list) { if(!"70".equals(ncNodeVO.getNodeType())){ break; } NcProgram program = ncProgramService.getByBindNodeId(ncNodeVO.getId()); if(program != null) { ncNodeVO.setProcessEdition(program.getProcessEdition()); ncNodeVO.setDrawingNo(program.getDrawingNo()); ncNodeVO.setMachineCode(program.getMachineCode()); ncNodeVO.setProcessName(program.getProcessName()); ncNodeVO.setVersionNumber(program.getVersionNumber()); //record中找不到时未启动0;找到了需要查询流程实例id,是否运行中 ncNodeVO.setFlowStatus(programFlowStatusQueryService.queryFlowStatus(program.getId())); } } } */ return R.data(list); } @GetMapping("/history-by-nodeid") @Operation(summary = "根据绑定节点id获取历史列表", description = "程序历史列表,仅‘程序包’字典值70的数据。用于显示程序的‘历史版本’") public R> historyByBindNodeId(@Parameter(description="节点ID(nodeType=70的节点id)")@RequestParam Long id) { return R.data(this.ncNodeService.historyByNodeId(id)); } }