From 0ecd5acd3b9f320a487c68df2ea6234b4dacb12c Mon Sep 17 00:00:00 2001 From: yangys <y_ys79@sina.com> Date: 星期日, 20 七月 2025 13:24:54 +0800 Subject: [PATCH] 增加流程查询接口 --- blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java | 139 ++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 127 insertions(+), 12 deletions(-) diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java index 3ec932c..eb4769a 100644 --- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java +++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java @@ -31,7 +31,9 @@ import com.fasterxml.jackson.databind.ObjectMapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; import org.flowable.engine.*; import org.springblade.core.mp.base.BizServiceImpl; import org.springblade.core.mp.support.Condition; @@ -53,12 +55,14 @@ import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; +import java.util.Optional; /** * 宸ヤ綔娴佹湇鍔″疄鐜扮被 @@ -71,20 +75,18 @@ public class NcProgramService extends BizServiceImpl<NcProgramMapper, NcProgram> { private final MachineService machineService; - private final OssTemplate ossTemplate; private final NcNodeService nodeService; - private final ProgramSeqMapper seqMapper; /** * 鏌ヨ鐜版湁鍥哄寲鐨勭▼搴忥紝鏆傚畾鏉′欢锛氶浂缁勪欢鍙风浉鍚岋紝涓旀槸鍚屼竴鏈哄簥缁� - * @param partNo + * @param drwaingNo * @param machineCode * @return */ - public List<NcProgram> getCuredNcProgram(String partNo,String machineCode) { + public List<NcProgram> getCuredNcProgram(String drwaingNo,String machineCode) { Machine machine = machineService.getByCode(machineCode); - return this.getBaseMapper().getCuredNcProgram(partNo,machine.getMachineGroupCode()); + return this.getBaseMapper().getCuredNcProgram(drwaingNo,machine.getMachineGroupCode()); } @@ -103,7 +105,7 @@ prog.setName(file.getOriginalFilename()); prog.setNcNodeId(uploadVO.getNodeId()); prog.setOssName(bfile.getName()); - prog.setPartNo(uploadVO.getPartNo()); + prog.setDrawingNo(uploadVO.getDrawingNo()); prog.setProcessEdition(uploadVO.getProcessEdition()); prog.setIsLastEdition(1); boolean isTextFile = false; @@ -134,10 +136,11 @@ prog.setName(file.getOriginalFilename()); prog.setNcNodeId(uploadVO.getNodeId()); prog.setOssName(bfile.getName()); - prog.setPartNo(uploadVO.getPartNo()); + prog.setDrawingNo(uploadVO.getDrawingNo()); prog.setProcessEdition(uploadVO.getProcessEdition()); prog.setIsLastEdition(1); prog.setMachineCode(uploadVO.getMachineCode()); + prog.setProcessName(uploadVO.getProcessName()); boolean isTextFile = false; try { isTextFile = FileContentUtil.isTextFile(file.getInputStream()); @@ -153,9 +156,13 @@ node.setName(prog.getName()); node.setMachineCode(uploadVO.getMachineCode()); node.setParentId(uploadVO.getNodeId()); - node.setPartNo(uploadVO.getPartNo()); + node.setDrawingNo(uploadVO.getDrawingNo()); node.setProcessName(uploadVO.getProcessName()); + NcNode parentNode = nodeService.getById(uploadVO.getNodeId()); + node.setParentIds(parentNode.getParentIds()+","+uploadVO.getNodeId()); + //uploadVO.getre + //node.setDescription(uploadVO.getDrawingNo()); nodeService.save(node); prog.setBindNcNodeId(node.getId()); @@ -241,13 +248,15 @@ /** * 鍗囩増(鍗囩骇宸ュ簭鐗堟),鍗囩骇宸ュ簭鐗堟湰锛堝寘鎷▼搴忓拰鍏朵粬闄勪欢锛� - * @param id 绋嬪簭鏂囦欢id + * @param bindNcNodeId 绋嬪簭鏂囦欢缁戝畾鐨勮妭鐐筰d * @param newProcessEdition 鏂扮増娆� */ - public void upgradeProcessEdition(long id,String newProcessEdition) { - NcProgram prog = this.getById(id); + public void upgradeProcessEdition(Long bindNcNodeId,String newProcessEdition) { + //NcProgram prog = this.getById(id); + NcProgram prog = getByBindNodeId(bindNcNodeId); + //灏嗙幇鏈夌▼搴忔洿鏂颁负闈炴渶鏂扮増鏈� - this.update(Wrappers.lambdaUpdate(NcProgram.class).eq(NcProgram::getId,id).set(NcProgram::getIsLastEdition,0)); + this.update(Wrappers.lambdaUpdate(NcProgram.class).eq(NcProgram::getBindNcNodeId,bindNcNodeId).set(NcProgram::getIsLastEdition,0)); NcProgram newVerProg = new NcProgram(); BeanUtils.copyProperties(prog, newVerProg); @@ -266,4 +275,110 @@ public IPage<NcProgramVO> pageQuery(NcNodeProgramQueryVO query) { return this.getBaseMapper().pageQuery(Condition.getPage(query),query); } + + /** + * 涓嬪彂缁欎綘鏈哄簥 + * @param bindNcNodeId 涓庣▼搴忕粦瀹氱殑鑺傜偣id + */ + public void sendByBindNodeId(Long bindNcNodeId) throws IOException { + //NcNode node = this.nodeService.getById(bindNodeId); + LambdaQueryWrapper<NcProgram> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(NcProgram::getBindNcNodeId, bindNcNodeId); + wrapper.eq(NcProgram::getIsLastEdition,1); + NcProgram prog = this.getOne(wrapper); + + String filePath = getFilePath(prog); + try(InputStream ins = ossTemplate.statFileStream(prog.getOssName());){ + File targetFile = new File(filePath); + FileUtils.copyInputStreamToFile(ins, targetFile); + } + } + + String getFilePath(NcProgram prog){ + Machine machine = machineService.getByCode(prog.getMachineCode()); + String dirPath = machine.getProgSendDir(); + + dirPath = StringUtils.removeEnd(StringUtils.removeEnd(dirPath,"/"),"\\"); + File dirs = new File(dirPath); + if(!dirs.exists()){ + dirs.mkdirs(); + } + + return dirPath+File.separator+prog.getName(); + } + + /** + * + * @param bindNcNodeId + * @return + */ + public NcProgram getByBindNodeId(Long bindNcNodeId) { + + LambdaQueryWrapper<NcProgram> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(NcProgram::getBindNcNodeId, bindNcNodeId); + wrapper.eq(NcProgram::getIsLastEdition,1); + + Optional<NcProgram> progOpt = this.getOneOpt(wrapper); + + return progOpt.orElse(null); + } + + /** + * 鏍规嵁绋嬪簭鍚嶇О鑾峰彇鏈�鏂扮殑绋嬪簭鏁版嵁 + * @param name 绋嬪簭鍚嶇О + * @return + */ + public NcProgram getByName(String name) { + LambdaQueryWrapper<NcProgram> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(NcProgram::getName, name); + wrapper.eq(NcProgram::getIsLastEdition,1); + Optional<NcProgram> progOpt = this.getOneOpt(wrapper); + + return progOpt.orElse(null); + } + + /** + * + * @param nodeId 涓婄骇鑺傜偣id + * @param name 绋嬪簭鍚嶇О + */ + public boolean programExistsUnderNode(Long nodeId, String name) { + LambdaQueryWrapper<NcProgram> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(nodeId!=null,NcProgram::getNcNodeId, nodeId); + wrapper.eq(NcProgram::getName, name); + wrapper.eq(NcProgram::getIsLastEdition,1); + + return this.count(wrapper)>0; + } + + /** + * + * @param nodeId 涓婄骇鑺傜偣id + * @param name 绋嬪簭鍚嶇О + */ + public boolean programExistsUnderOtherNode(Long nodeId, String name) { + LambdaQueryWrapper<NcProgram> wrapper = new LambdaQueryWrapper<>(); + wrapper.ne(NcProgram::getNcNodeId, nodeId); + wrapper.eq(NcProgram::getName, name); + wrapper.eq(NcProgram::getIsLastEdition,1); + + return this.count(wrapper)>0; + } + + /** + * 鏄剧ず绋嬪簭鐨勫巻鍙茶褰曞垪琛� + * @param bindNodeId + * @return + */ + public List<NcProgramVO> historyByBindNode(Long bindNodeId) { + + NcProgram program = this.getByBindNodeId(bindNodeId); + List<NcProgram> list = this.lambdaQuery().eq(NcProgram::getName,program.getName()) + .eq(NcProgram::getNcNodeId,program.getNcNodeId()).orderByDesc(NcProgram::getCreateTime).list(); + + return list.stream().map(p -> { + NcProgramVO vo = new NcProgramVO(); + BeanUtils.copyProperties(p,vo); + return vo;}).toList(); + } } -- Gitblit v1.9.3