From 5058481100d938bc4680725c3659757a09a2dd8a Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 03 六月 2026 17:50:39 +0800
Subject: [PATCH] 采集器调整:支持文件名匹配查找
---
src/main/java/com/chinaztt/mes/docx/service/impl/DocxServiceImpl.java | 37 +++++++++++++++++++++++++++++++++++--
1 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/chinaztt/mes/docx/service/impl/DocxServiceImpl.java b/src/main/java/com/chinaztt/mes/docx/service/impl/DocxServiceImpl.java
index 8a55cec..fffe1ad 100644
--- a/src/main/java/com/chinaztt/mes/docx/service/impl/DocxServiceImpl.java
+++ b/src/main/java/com/chinaztt/mes/docx/service/impl/DocxServiceImpl.java
@@ -2,6 +2,7 @@
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ObjectUtil;
+import com.chinaztt.mes.docx.constant.FieldMatchRuleConstants;
import com.chinaztt.mes.docx.dto.GetFileDto;
import com.chinaztt.mes.docx.handler.SerialPortListener;
import com.chinaztt.mes.docx.pojo.TestBatch;
@@ -35,7 +36,11 @@
if(StringUtils.equals(".pngInExcel",getFileDto.getFileExtension())){
fileExtension = ".xls";
}
- File file = getFileStart(getFileDto.getFilePath(), fileExtension);
+ String entrustCode = "";
+ if(StringUtils.isNotBlank(getFileDto.getEntrustCode()) && getFileDto.getIsMatchFileName()){
+ entrustCode = getFileDto.getEntrustCode().substring(8);
+ }
+ File file = getFileStart(getFileDto.getFilePath(), fileExtension,getFileDto.getIsMatchFileName(),getFileDto.getFieldMatchRule(),entrustCode,getFileDto.getSampleCode());
if (file != null && !file.exists()) {
return Result.failed("鏈煡璇㈠埌璇ヨ矾寰勶細" + getFileDto.getFilePath() + "涓嬪瓨鍦細" + getFileDto.getFileExtension() + "缁撳熬鐨勬枃浠讹紒");
}
@@ -128,7 +133,11 @@
return latestFile;
}
- public static File getFileStart(String filePath, String fileExtension) {
+ public static File getFileStart(String filePath, String fileExtension){
+ return getFileStart(filePath,fileExtension,false,null,null,null);
+ }
+
+ public static File getFileStart(String filePath, String fileExtension,Boolean isMatchFileName,String matchRule,String entrustCode,String sampleCode) {
List<File> files = FileUtil.loopFiles(filePath);
List<File> list = new ArrayList<>();
files.forEach(i -> {
@@ -145,6 +154,9 @@
b = i.getName().endsWith(fileExtension);
break;
}
+ if(isMatchFileName){
+ b = matchFileName(i.getName(),matchRule,entrustCode,sampleCode);
+ }
if (b) {
list.add(i);
}
@@ -152,6 +164,27 @@
return getLatestFile(list);
}
+ /**
+ * 鍖归厤鏂囦欢鍚嶇О
+ * @param fileName 鏂囦欢鍚嶇О
+ * @param matchRule 鍖归厤瑙勫垯
+ * @param entrustCode 濮旀墭缂栧彿
+ * @param sampleCode 鏍峰搧鍚嶇О
+ * @return
+ */
+ private static Boolean matchFileName(String fileName,String matchRule,String entrustCode,String sampleCode){
+ if(FieldMatchRuleConstants.ENTRUST_CODE_EQUAL.equals(matchRule)){
+ return fileName.equals(entrustCode);
+ }else if(FieldMatchRuleConstants.ENTRUST_CODE_LIKE.equals(matchRule)){
+ return fileName.contains(entrustCode);
+ }else if(FieldMatchRuleConstants.SAMPLE_CODE_EQUAL.equals(matchRule)){
+ return fileName.equals(sampleCode);
+ }else if(FieldMatchRuleConstants.SAMPLE_CODE_LIKE.equals(matchRule)){
+ return fileName.contains(sampleCode);
+ }
+ return false;
+ }
+
@Override
public void readXml() {
XMLFileListener fileListener = new XMLFileListener();
--
Gitblit v1.9.3