From 7bc1d0f521c1d59246f29bcadcc4343f88ceef1c Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 15 九月 2025 11:29:30 +0800
Subject: [PATCH] 性能优化+bug调整
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java | 98 ++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 76 insertions(+), 22 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
index e5ca25d..2c207eb 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
@@ -1,30 +1,24 @@
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.apache.commons.lang3.StringUtils;
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.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.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.Comparator;
import java.util.List;
/**
@@ -39,11 +33,10 @@
@Tag(name = "绋嬪簭鑺傜偣", description = "绋嬪簭鑺傜偣")
@Slf4j
public class NcNodeController {
- private final NcProgramService ncProgramService;
private final NcNodeService ncNodeService;
private final ProgramFlowStatusQueryService programFlowStatusQueryService;
private final FlowProgramFileService flowProgramFileService;
- private final QinzheFgbService qinzheFgbService;
+ private final TaskDispatchService taskDispatchService;
/**
* 鏂板
*/
@@ -51,7 +44,7 @@
@Operation(summary = "鏂板鑺傜偣", description = "鑺傜偣淇℃伅,id淇濇寔绌�")
public R<Boolean> save(@RequestBody NcNodeVO vo) {
ncNodeService.saveNcCode(vo);
- return R.<Boolean>status(true);
+ return R.status(true);
}
@@ -59,21 +52,33 @@
@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) {
- ncNodeService.lock(id);
- return R.<Boolean>status(true);
+ public R<Boolean> lock(@Parameter(description="绋嬪簭鍖呭悕鑺傜偣id)")Long id,@Parameter(description="閿佸畾鍘熷洜)")String remark) {
+ ncNodeService.lock(id,remark);
+ return R.status(true);
+ }
+
+ @GetMapping("/query-lock-remark")
+ @Operation(summary = "鏌ヨ閿佸畾鍘熷洜")
+ public R<String> queryLockRemark(@Parameter(description="绋嬪簭鍖呭悕鑺傜偣id)")Long id) {
+
+ NcNode node = ncNodeService.getById(id);
+ if(node.hasLocked()){
+ return R.data(node.getRemark());
+ }else{
+ return R.data(StringUtils.EMPTY);
+ }
}
@GetMapping("/lazy-list")
@@ -85,6 +90,39 @@
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);
@@ -100,13 +138,13 @@
return R.data(list);
}
- @GetMapping("/search")
- @Operation(summary = "棣栭〉鎼滅储", description = "鎼滅储鎸囧畾闆剁粍浠跺彿")
- public R<List<Long>> search(NcNodeQueryVO queryVO) {
+ @GetMapping("/search-list2")
+ @Operation(summary = "娑夊瘑缃戦椤垫悳绱�", description = "鎼滅储鎸囧畾闆剁粍浠跺彿")
+ public R<List<NcNodeVO>> search(NcNodeQueryVO queryVO) {
if(Func.isEmpty(queryVO.getDrawingNo())){
return R.fail("璇疯緭鍏ラ浂缁勪欢鍙�");
}
- List<Long> list = ncNodeService.searchDrawing(queryVO);
+ List<NcNodeVO> list = ncNodeService.searchList2(queryVO);
return R.data(list);
}
@@ -114,7 +152,7 @@
@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")
@@ -139,4 +177,20 @@
return R.data(vo);
}
+
+ @GetMapping("/content-by-nodeid")
+ @Operation(summary = "鏍规嵁鑺傜偣鑾峰彇鏂囦欢鍐呭", description = "浠呴檺鏂囨湰鏍煎紡鐨勫唴瀹癸紝浜岃繘鍒舵枃浠跺皢杩斿洖绌轰覆")
+ public R<String> fileContentByNodeId(@Parameter(description = "鑺傜偣id") Long nodeId) {
+ try {
+ NcNode ncnode = ncNodeService.getById(nodeId);
+ if(ncnode.getFlowProgramFileId() != null) {
+ return R.data(flowProgramFileService.getFileContent(ncnode.getFlowProgramFileId()));
+ }else{
+ return R.data("鎵句笉鍒版枃浠�");
+ }
+ }catch(Exception e) {
+ log.error("鍒犻櫎鏂囦欢澶辫触",e);
+ return R.fail(e.getMessage());
+ }
+ }
}
--
Gitblit v1.9.3