| | |
| | | |
| | | 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.tags.Tag; |
| | | import jakarta.servlet.http.HttpServletResponse; |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | 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.producedivision.service.QinzheFgbService; |
| | | import org.springblade.mdm.flow.service.FlowProgramFileService; |
| | | import org.springblade.mdm.flow.service.TaskDispatchService; |
| | | import org.springblade.mdm.program.entity.NcNode; |
| | | import org.springblade.mdm.program.service.NcNodeHisService; |
| | | 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.io.IOException; |
| | | import java.rmi.ServerError; |
| | | import java.util.Comparator; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | @Tag(name = "程序节点", description = "程序节点") |
| | | @Slf4j |
| | | public class NcNodeController { |
| | | private final NcProgramService ncProgramService; |
| | | private final NcNodeService ncNodeService; |
| | | private final NcNodeHisService nodeHisService; |
| | | private final ProgramFlowStatusQueryService programFlowStatusQueryService; |
| | | private final FlowProgramFileService flowProgramFileService; |
| | | private final QinzheFgbService qinzheFgbService; |
| | | private final TaskDispatchService taskDispatchService; |
| | | /** |
| | | * 新增 |
| | | */ |
| | |
| | | @Operation(summary = "新增节点", description = "节点信息,id保持空") |
| | | public R<Boolean> save(@RequestBody NcNodeVO vo) { |
| | | ncNodeService.saveNcCode(vo); |
| | | return R.<Boolean>status(true); |
| | | return R.status(true); |
| | | } |
| | | |
| | | |
| | |
| | | @Operation(summary = "修改节点", description = "节点信息,必须传入ID") |
| | | public R<Boolean> update(@RequestBody NcNodeVO vo) { |
| | | ncNodeService.updateNcNode(vo); |
| | | return R.<Boolean>status(true); |
| | | return R.status(true); |
| | | } |
| | | |
| | | @PostMapping("/remove") |
| | | @Operation(summary = "删除节点") |
| | | public R<Boolean> remove(Long id) { |
| | | ncNodeService.removeById(id); |
| | | return R.<Boolean>status(true); |
| | | return R.status(true); |
| | | } |
| | | |
| | | @PostMapping("/lock") |
| | | @Operation(summary = "锁定节点(程序包名)") |
| | | public R<Boolean> lock(@Parameter(description="程序包名节点id)")Long id,@Parameter(description="锁定原因)")String remark) { |
| | | ncNodeService.lock(id,remark); |
| | | return R.<Boolean>status(true); |
| | | return R.status(true); |
| | | } |
| | | |
| | | @GetMapping("/query-lock-remark") |
| | |
| | | if(NcNode.TYPE_PROGRAM_PACKAGE.equals(ncNodeVO.getNodeType())){ |
| | | ncNodeVO.setFlowStatus(programFlowStatusQueryService.queryFlowStatus(ncNodeVO.getProcessInstanceId())); |
| | | } |
| | | } |
| | | //文件,按照先程序,后其他排序 |
| | | if(list.get(0).getNodeType().equals(NcNode.TYPE_PROGRAM_FILE)){ |
| | | NcNode parentNode = ncNodeService.getById(parentId); |
| | | //list.sort(Comparator.comparing().thenComparing(NcNodeVO::getName)); |
| | | Comparator<NcNodeVO> cp = new Comparator<NcNodeVO>() { |
| | | @Override |
| | | public int compare(NcNodeVO n1, NcNodeVO n2) { |
| | | if (n1.getName().startsWith(parentNode.getName()) && !n2.getName().startsWith(parentNode.getName())) { |
| | | return -1; |
| | | } else { |
| | | return 1; |
| | | } |
| | | } |
| | | }; |
| | | list.sort(cp.thenComparing(NcNodeVO::getName)); |
| | | /* |
| | | list.sort((n1, n2) -> { |
| | | |
| | | if(n1.getName().startsWith(parentNode.getName())){ |
| | | return 1; |
| | | }else{ |
| | | return n1.getName().compareTo(n2.getName()); |
| | | } |
| | | |
| | | });*/ |
| | | /* |
| | | Collections.sort(userList, new Comparator<User>() { |
| | | @Override |
| | | public int compare(User u1, User u2) { |
| | | return u1.getName().compareTo(u2.getName()); |
| | | } |
| | | });*/ |
| | | } |
| | | } |
| | | return R.data(list); |
| | |
| | | @GetMapping("/drawing-no-pick") |
| | | @Operation(summary = "首页搜索零组件下拉数据", description = "搜索指定零组件号") |
| | | public R<List<String>> drawingNoPick(String drawingNo) { |
| | | return R.data(qinzheFgbService.seletDropList(drawingNo)); |
| | | return R.data(taskDispatchService.drawingNoSeletDropList(drawingNo)); |
| | | } |
| | | /* |
| | | |
| | | @GetMapping("/history-by-nodeid") |
| | | @Operation(summary = "根据绑定节点id获取历史列表", description = "程序历史列表,仅‘程序包’字典值70的数据。用于显示程序的‘历史版本’") |
| | | public R<List<NcNodeVO>> historyByBindNodeId(@Parameter(description="节点ID(nodeType=70的节点id)")@RequestParam Long id) { |
| | | return R.data(this.ncNodeService.historyByNodeId(id)); |
| | | @Operation(summary = "根据绑定节点id获取历史列表", description = "程序历史列表,仅‘程序包’字典值60的数据。用于显示程序的‘历史版本’") |
| | | public R<List<NcNodeVO>> historyByBindNodeId(@Parameter(description="节点ID(nodeType=60的节点id)")@RequestParam Long id) { |
| | | return R.data(this.nodeHisService.historyByNodeId(id)); |
| | | } |
| | | |
| | | */ |
| | | |
| | | @GetMapping("/compare-content") |
| | | @Operation(summary = "对比内容数据", description = "查询对比内容的2个文本数据") |
| | |
| | | |
| | | return R.data(vo); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |