From 6d3c8e9c8800becec33e714c2ec42703bb1cef50 Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期一, 25 八月 2025 17:42:08 +0800 Subject: [PATCH] 两网交互添加图片 --- lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/FileFerryService.java | 97 +++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 83 insertions(+), 14 deletions(-) diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/FileFerryService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/FileFerryService.java index 4661dcd..85e3df8 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/FileFerryService.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/FileFerryService.java @@ -1,13 +1,24 @@ package org.jeecg.modules.dnc.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import liquibase.pro.packaged.S; +import org.apache.commons.lang3.StringUtils; import org.jeecg.modules.dnc.dto.ComponentHierarchy; import org.jeecg.modules.dnc.dto.TransferPackage; -import org.jeecg.modules.dnc.entity.ComponentInfo; -import org.jeecg.modules.dnc.entity.DocFile; +import org.jeecg.modules.dnc.entity.*; +import org.jeecg.modules.dnc.exception.ExceptionCast; +import org.jeecg.modules.dnc.mapper.DocRelativeMapper; +import org.jeecg.modules.dnc.response.ActivitiCode; +import org.jeecg.modules.dnc.response.DocumentCode; import org.jeecg.modules.dnc.service.IDocClassificationService; +import org.jeecg.modules.dnc.service.IDocFileService; import org.jeecg.modules.dnc.service.IDocInfoService; import org.jeecg.modules.dnc.service.IDocRelativeService; +import org.jeecg.modules.dnc.utils.CompressionUtils; import org.jeecg.modules.dnc.utils.JsonUtils; +import org.jeecg.modules.dnc.utils.file.FileUtilS; +import org.jeecg.modules.dncFlow.service.IAssignFileStreamService; +import org.jeecg.modules.mdc.entity.MdcEquipment; import org.jeecg.modules.mdc.mapper.MdcEquipmentMapper; import org.jeecg.modules.system.service.IMdcProductionService; import org.slf4j.Logger; @@ -29,9 +40,6 @@ @Service public class FileFerryService { - private final DataPackageService dataPackageService; - private final SecurityService securityService; - private static final Logger logger = LoggerFactory.getLogger(FileFerryService.class); @Value("${deploy.secretFolder}") @@ -40,6 +48,9 @@ @Value("${fileHomePath}") private String fileHomePath; + @Value("${jeecg.path.upload}") + private String upLoadPath; + @Autowired private MdcEquipmentMapper mdcEquipmentMapper; @@ -47,19 +58,15 @@ private IMdcProductionService mdcProductionService; @Autowired + private IDocInfoService docInfoService; + + @Autowired private IDocClassificationService classificationService; @Autowired private IDocRelativeService docRelativeService; - @Autowired - private IDocInfoService docInfoService; - - @Autowired - public FileFerryService(DataPackageService dataPackageService, SecurityService securityService) { - this.dataPackageService = dataPackageService; - this.securityService = securityService; - } + private DataPackageService dataPackageService; public String exportData(TransferPackage.DataType type, String id,String fileName) { // 1. 鑾峰彇灏佽鏁版嵁 @@ -87,6 +94,8 @@ throw new RuntimeException("鏂囦欢鍐欏叆澶辫触", e); } } + + public TransferPackage importData(String filePath) { try { @@ -140,6 +149,7 @@ // 6. 鑾峰彇鏂囦欢澶嶅埗鐩爣璺緞 DocFile docFile = pkg.getTraceChain().getDocFile(); + DocInfo docInfo = pkg.getTraceChain().getDocInfo(); if (docFile == null) { throw new IllegalStateException("浼犺緭鍖呬腑缂哄皯鏂囨。鏂囦欢淇℃伅"); } @@ -159,10 +169,69 @@ Path source = Paths.get(ncFilePath); Files.copy(source, Paths.get(targetPath), StandardCopyOption.REPLACE_EXISTING); - // 10.鍒犻櫎涓存椂NC鏂囦欢涓巎son鏂囦欢 + // 8. 鏌ヨ璁惧id + MdcEquipment mdcEquipment=mdcEquipmentMapper.selectOne(new QueryWrapper<MdcEquipment>().eq("equipment_id",equipmentId)); + if (mdcEquipment == null) { + throw new IllegalArgumentException("鏃犳晥鐨勮澶嘔D: " + equipmentId); + } + + // 9.浼犺緭鏂囦欢鍒拌澶囦笅 + List<String> strings = mdcProductionService.findListParentTreeAll(mdcEquipment.getId()); + if (strings != null && !strings.isEmpty()) { + DocInfo deviceDoc = docInfoService.getByDocAttrAndDocId(docInfo.getDocId(), 7, mdcEquipment.getId()); + if (deviceDoc == null) { + DocClassification classification = classificationService.getByCode("send"); + if(classification == null) + ExceptionCast.cast(DocumentCode.DOC_CLASS_ERROR); + DocRelative docRelative = new DocRelative(); + docRelative.setDocId(docInfo.getDocId()); + docRelative.setClassificationId(classification.getClassificationId()); + docRelative.setAttributionType(7); + docRelative.setAttributionId(mdcEquipment.getId()); + docRelativeService.save(docRelative); + } + String sendPath = StringUtils.join(strings.toArray(), "/"); + boolean copyFileNc = FileUtilS.copyFileNc(docFile.getFilePath(), sendPath + "/" + mdcEquipment.getEquipmentId(), + docFile.getFileEncodeName(), + docFile.getFileName(), docFile.getFileSuffix()); + if (!copyFileNc) { + ExceptionCast.cast(ActivitiCode.ACT_FILE_ERROR); + } else { + FileUtilS.deleteZipFromToSend(sendPath + "/" + mdcEquipment.getEquipmentId(), + docFile.getFileName(), docFile.getFileSuffix()); + } + } else { + throw new RuntimeException("鏂囦欢浼犺緭璺緞鑾峰彇澶辫触"); + } + + // 璁$畻鍚庝竴涓枃浠跺悕 + long nextNumber = Long.parseLong(numericPart); + nextNumber++; + + //鑾峰彇搴忓垪鍖栫殑绋嬪簭纭琛ㄦ暟鎹� + GuideCardBatch guideCardBatch=pkg.getTraceChain().getGuideCardBatch(); + + //鑾峰彇鏂囦欢璺緞 + String pictureUrl=guideCardBatch.getPicture(); + + // 淇濇寔鐩稿悓浣嶆暟鏍煎紡 + String nextNumeric = String.format("%0" + numericPart.length() + "d", nextNumber); + String nextFileName = prefix + nextNumeric + "_" + equipmentId+"."+pictureUrl.split("\\.")[1]; + String nextFilePath = path.getParent().resolve(nextFileName).toString(); + + //鎷兼帴鐜版湁璺緞 + String picturePtah=upLoadPath+"/"+pictureUrl; + + // 9. 澶嶅埗鏂囦欢骞堕噸鍛藉悕 + logger.info("澶嶅埗鏂囦欢: {} 鈫� {}", nextFilePath,picturePtah); + Path PicSource= Paths.get(nextFilePath); + Files.copy(PicSource, Paths.get(picturePtah), StandardCopyOption.REPLACE_EXISTING); + + // 鍒犻櫎鏂囦欢 logger.info("鍒犻櫎涓存椂鏂囦欢: {}", ncFilePath); Files.delete(source); Files.delete(path); + Files.delete(PicSource); return JsonUtils.fromJson(json, TransferPackage.class); -- Gitblit v1.9.3