From e756af0f5bfd1addbd5d5c145441fb34aad91a28 Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期三, 25 六月 2025 13:55:58 +0800 Subject: [PATCH] 同步工控网 --- lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/FileFerryService.java | 68 +++++++++++++++++++++++++++------ 1 files changed, 55 insertions(+), 13 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..586e458 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}") @@ -47,19 +55,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 +91,8 @@ throw new RuntimeException("鏂囦欢鍐欏叆澶辫触", e); } } + + public TransferPackage importData(String filePath) { try { @@ -140,6 +146,7 @@ // 6. 鑾峰彇鏂囦欢澶嶅埗鐩爣璺緞 DocFile docFile = pkg.getTraceChain().getDocFile(); + DocInfo docInfo = pkg.getTraceChain().getDocInfo(); if (docFile == null) { throw new IllegalStateException("浼犺緭鍖呬腑缂哄皯鏂囨。鏂囦欢淇℃伅"); } @@ -159,6 +166,41 @@ Path source = Paths.get(ncFilePath); Files.copy(source, Paths.get(targetPath), StandardCopyOption.REPLACE_EXISTING); + // 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("鏂囦欢浼犺緭璺緞鑾峰彇澶辫触"); + } + // 10.鍒犻櫎涓存椂NC鏂囦欢涓巎son鏂囦欢 logger.info("鍒犻櫎涓存椂鏂囦欢: {}", ncFilePath); Files.delete(source); -- Gitblit v1.9.3