From 72e6bac02526caebc3797a7c2934d12896805708 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 23 九月 2025 00:47:18 +0800
Subject: [PATCH] 修复文件状态读取问题

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/MdmDictBizService.java          |   28 +++++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/contants/RegExpConstants.java           |    2 
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/config/InitBean.java                            |    3 
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/MachineFileScanTask.java                   |    6 -
 blade-service/blade-mdm/src/test/java/org/springblade/mdm/utils/ProgramFileNameParserTest.java            |    9 ++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/contants/ZipConstants.java              |    8 ++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java                      |    3 
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/mapper/MdmDictBizMapper.xml             |   10 ++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java         |   20 +---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java   |    8 +
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/mapper/MdmDictBizMapper.java            |   17 ++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileScanService.java |    8 +-
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/MdmProgramImportService.java    |   64 ++++++++++++---
 13 files changed, 140 insertions(+), 46 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/contants/RegExpConstants.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/contants/RegExpConstants.java
index 90f6a9b..c13dd89 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/contants/RegExpConstants.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/contants/RegExpConstants.java
@@ -7,7 +7,7 @@
 	/**
 	 * 绋嬪簭鏂囦欢鍚� 姝e垯
 	 */
-	public static final Pattern PROGRAM_FILE_PATTERN = Pattern.compile("^([\\w\\-]+)-([0-9a-zA-Z]+)-([0-9a-zA-Z]+)-(\\d+)-(\\d+)-?([Pp]\\d+)?(\\.[a-zA-Z]+)?$");
+	public static final Pattern PROGRAM_FILE_PATTERN = Pattern.compile("^([\\w\\-]+)-([0-9a-zA-Z]+)-([\\u4e00-\\u9fa5a-zA-Z0-9]+)-(\\d+)-(\\d+)-?([Pp]\\d+)?(\\.[a-zA-Z]+)?$");
 
 	//public static final Pattern PROGRAM_PACKAGE_PATTERN = Pattern.compile("[\\w\\-]+\\-\\w+\\-\\w+");
 	public static final Pattern PROGRAM_PACKAGE_PATTERN = Pattern.compile("([\\w\\-]+)-[0-9a-zA-Z]+-[0-9a-zA-Z]+");
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/contants/ZipConstants.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/contants/ZipConstants.java
new file mode 100644
index 0000000..5ec00f8
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/contants/ZipConstants.java
@@ -0,0 +1,8 @@
+package org.springblade.mdm.commons.contants;
+
+public class ZipConstants {
+	/**
+	 * 璇曢獙瑙e寘鐨勭紪鐮佹暟缁�
+	 */
+	public static final String[] TRY_ENCODINGS = {"UTF-8","GBK", "GB2312", "ISO-8859-1"};
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/mapper/MdmDictBizMapper.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/mapper/MdmDictBizMapper.java
new file mode 100644
index 0000000..bdf561f
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/mapper/MdmDictBizMapper.java
@@ -0,0 +1,17 @@
+package org.springblade.mdm.commons.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.core.mp.mapper.BladeMapper;
+import org.springblade.mdm.flow.entity.ApproveRecord;
+import org.springblade.mdm.flow.vo.DoneQueryVO;
+import org.springblade.mdm.flow.vo.FlowVO;
+import org.springblade.system.pojo.entity.DictBiz;
+
+import java.util.List;
+
+public interface MdmDictBizMapper{
+
+	List<DictBiz> getList(@Param("code") String code);
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/mapper/MdmDictBizMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/mapper/MdmDictBizMapper.xml
new file mode 100644
index 0000000..33191e0
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/mapper/MdmDictBizMapper.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.mdm.commons.mapper.MdmDictBizMapper">
+    <!--鏌ヨ鐢ㄦ埛宸插姙鍒楄〃-->
+    <select id="getList" resultType="org.springblade.system.pojo.entity.DictBiz">
+        select id,code,dict_key,dict_value,remark from blade_dict_biz where code=#{code} and is_deleted=0
+        order by sort
+    </select>
+
+</mapper>
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/MdmDictBizService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/MdmDictBizService.java
new file mode 100644
index 0000000..e738176
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/MdmDictBizService.java
@@ -0,0 +1,28 @@
+
+package org.springblade.mdm.commons.service;
+
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.mdm.commons.mapper.MdmDictBizMapper;
+import org.springblade.system.pojo.entity.DictBiz;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 绯荤粺鍙傛暟鑾峰彇鏈嶅姟
+ *
+ * @author yangys
+ */
+@Slf4j
+@Service
+@AllArgsConstructor
+public class MdmDictBizService {
+	@Autowired
+	private MdmDictBizMapper mdmDictBizMapper;
+
+	public List<DictBiz> getList(String code){
+		return mdmDictBizMapper.getList(code);
+	}
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/config/InitBean.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/config/InitBean.java
index 671c44d..6acb1a6 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/config/InitBean.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/config/InitBean.java
@@ -62,12 +62,15 @@
 	 * 鍒濆鍖栫洃鎺х洰褰�
 	 */
 	void initMachineDirMonitor() {
+		/*
 		boolean locked = directorLockService.acquireLock();
 		if (!locked) {
 			log.info("鍥炰紶鎺ユ敹鐩綍宸茬粡琚叾浠栭儴缃茬偣浣嶉攣瀹氾紝鐩存帴杩斿洖");
 			return;
 		}
 
+		 */
+
 		List<Machine> machineList = machineService.getEnableMachines();;
 		List<WatchInfo> monitorInfoList = new ArrayList<>();
 		machineList.forEach(m -> {
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileScanService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileScanService.java
index 6fcc498..cd052da 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileScanService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileScanService.java
@@ -180,16 +180,16 @@
 	public int readProgramStatus(Path filePath,String controlSystem,List<DictBiz> annotatiionList) throws IOException {
 		int programStatus = MachineFile.PROGRAM_STATUS_UNKNOWN;
 		try(InputStream ins = Files.newInputStream(filePath);
-			BufferedInputStream bis = new BufferedInputStream(ins)){
+			BufferedInputStream byteInsStream = new BufferedInputStream(ins)){
 
-			boolean isText= FileContentUtil.isTextFile(bis);
+			boolean isText= FileContentUtil.isTextFile(byteInsStream);
 			if(!isText){
 				return MachineFile.PROGRAM_STATUS_UNKNOWN;
 			}
-			bis.reset();
+			byteInsStream.reset();
 
 			AnnotationProcessor annoProcessor = ProcessorHelper.getProcessor(controlSystem,annoConfig);
-			String statusLine = FileContentUtil.readLineAt(ins, annoProcessor.getAnnotationProperties().getStatusLineIndex());
+			String statusLine = FileContentUtil.readLineAt(byteInsStream, annoProcessor.getAnnotationProperties().getStatusLineIndex());
 			if(AnnotationUtil.isAnnotation(statusLine,controlSystem,annotatiionList)){
 				String progStatusTxt = AnnotationUtil.removeAnnotation(controlSystem,statusLine,annotatiionList);
 				if(AnnotationUtil.SQ.equals(progStatusTxt)){
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java
index 8c2509c..31630c3 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java
@@ -1,7 +1,6 @@
 
 package org.springblade.mdm.program.service;
 
-import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.FilenameUtils;
@@ -18,10 +17,7 @@
 import org.springblade.core.tool.utils.Func;
 import org.springblade.mdm.basesetting.machine.entity.Machine;
 import org.springblade.mdm.basesetting.machine.service.MachineService;
-import org.springblade.mdm.basesetting.producedivision.entity.QinzheFgb;
-import org.springblade.mdm.basesetting.producedivision.service.QinzheFgbService;
-import org.springblade.mdm.commons.contants.RegExpConstants;
-import org.springblade.mdm.commons.service.ParamService;
+import org.springblade.mdm.commons.contants.ZipConstants;
 import org.springblade.mdm.flow.entity.FlowProgramFile;
 import org.springblade.mdm.flow.service.CureFlowService;
 import org.springblade.mdm.flow.service.FlowCommonService;
@@ -32,11 +28,8 @@
 import org.springblade.mdm.program.service.programannotation.*;
 import org.springblade.mdm.program.vo.DncSendBackData;
 import org.springblade.mdm.program.vo.DncSendBackFile;
-import org.springblade.mdm.program.vo.ProgramAnnotation;
 import org.springblade.mdm.utils.FileContentUtil;
-import org.springblade.mdm.utils.ProgramFileNameParser;
 import org.springblade.mdm.utils.ZipTextFileContentUtil;
-import org.springblade.system.pojo.entity.DictBiz;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -49,11 +42,8 @@
 import java.nio.file.StandardOpenOption;
 import java.time.Duration;
 import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
-import java.util.zip.ZipInputStream;
 
 /**
  * DNC鍥炰紶鏂囦欢澶勭悊鏈嶅姟
@@ -82,7 +72,7 @@
 	 * 鍋忕鍗曟枃浠舵湯灏剧殑妯″紡锛歅+鏁板瓧
 	 */
 	private static final String P_NUMBER_PATTERN = "(?i)P\\d+";
-	static String[] encodings = {"UTF-8","GBK", "GB2312", "ISO-8859-1"};
+	//static String[] encodings = {"UTF-8","GBK", "GB2312", "ISO-8859-1"};
 	private String getFileKey(){
 		return "dncimpfile-"+ AuthUtil.getUserId();
 	}
@@ -125,7 +115,7 @@
 		List<DncSendBackData> result = null;
 
 		ByteArrayInputStream byteInsStream = new ByteArrayInputStream(FileUtil.copyToByteArray(inputStream));
-		for (String encoding : encodings) {
+		for (String encoding : ZipConstants.TRY_ENCODINGS) {
 			try {
 				result = parseProgramListByCharset(byteInsStream,Charset.forName(encoding));
 				log.error("浣跨敤缂栫爜 {} 瑙f瀽鎴愬姛 ",encoding);
@@ -274,7 +264,7 @@
 		Map<Long, List<FlowProgramFile>> pkgIdFileMap = new HashMap<>();
 
 		//ByteArrayInputStream byteInsStream = new ByteArrayInputStream(FileUtil.copyToByteArray(inputStream));
-		for (String encoding : encodings) {
+		for (String encoding : ZipConstants.TRY_ENCODINGS) {
 			try {
 				pkgIdFileMap = dealWithBackFileWithCharset(ossFileName,acceptIdList,Charset.forName(encoding));
 				log.error("浣跨敤缂栫爜 {} 瑙f瀽鎴愬姛 ",encoding);
@@ -290,7 +280,7 @@
 
 	/**
 	 * 澶勭悊鍥炰紶鏂囦欢
-	 * @param inputStream
+	 * @param ossFileName
 	 * @param acceptIdList
 	 * @return
 	 * @throws IOException
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/MdmProgramImportService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/MdmProgramImportService.java
index f5ac1a9..5c2dc5c 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/MdmProgramImportService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/MdmProgramImportService.java
@@ -16,6 +16,7 @@
 import org.springblade.mdm.basesetting.machine.service.MachineService;
 import org.springblade.mdm.basesetting.machine.entity.Machine;
 import org.springblade.mdm.commons.contants.RegExpConstants;
+import org.springblade.mdm.commons.contants.ZipConstants;
 import org.springblade.mdm.gkw.programnode.vo.ProgramNameVO;
 import org.springblade.mdm.machinefile.entity.FileSendRecord;
 import org.springblade.mdm.machinefile.service.FileSendRecordService;
@@ -30,6 +31,8 @@
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.*;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -85,14 +88,8 @@
 				Path tempZipFile = Files.createTempFile("mdmimpfile-"+System.currentTimeMillis(), ".zip");
 				file.transferTo(tempZipFile);
 				extractZipToTempDir(tempZipFile,extractDir);
-
-
 			}else{
 				//鏅�氭枃浠讹紝鐩存帴鏀惧叆extract鏂囦欢澶�
-				String basename = FilenameUtils.getBaseName(file.getOriginalFilename());
-				String ext = FilenameUtils.getExtension(file.getOriginalFilename());
-				//Path filepath = Files.createTempFile(extractDir,basename,StringUtils.isEmpty(ext) ? "": "."+ext);
-				//Path filepath = Files.createFile();
 				file.transferTo(Paths.get(extractDir.toString()+File.separator+file.getOriginalFilename()));
 			}
 
@@ -111,13 +108,24 @@
 	 * @param extractDir 鐩爣鐩綍
 	 * @throws IOException 鏂囦欢鎿嶄綔寮傚父
 	 */
-	public void extractZipToTempDir(Path zipFilePath,Path extractDir) throws IOException {
+	public void extractZipToTempDir(Path zipFilePath,Path extractDir) throws IOException{
+		for (String encoding : ZipConstants.TRY_ENCODINGS) {
+			try {
+				extractZipToTempDirWithCharset(zipFilePath,extractDir,Charset.forName(encoding));
+				log.error("浣跨敤缂栫爜 {} 瑙f瀽鎴愬姛 ",encoding);
+				break;
+			} catch (Exception e) {
+				log.error("浣跨敤缂栫爜 {} 瑙f瀽澶辫触: ",encoding,e);
+			}
+		}
+	}
+	public void extractZipToTempDirWithCharset(Path zipFilePath, Path extractDir, Charset charset) throws IOException {
 		// 鑾峰彇绯荤粺涓存椂鐩綍
 		String tempDir = System.getProperty("java.io.tmpdir");
 
 		// 鍒涘缓瑙e帇鐩爣鐩綍锛堝湪涓存椂鐩綍涓嬪垱寤轰竴涓敮涓�瀛愮洰褰曪級
 		try (InputStream fis = Files.newInputStream(zipFilePath);
-			 ZipInputStream zis = new ZipInputStream(fis)) {
+			 ZipInputStream zis = new ZipInputStream(fis,charset)) {
 
 			ZipEntry zipEntry = zis.getNextEntry();
 			while (zipEntry != null) {
@@ -177,8 +185,7 @@
 		try (Stream<Path> paths = Files.walk(extractDir)) {
 			List<Path> filePathList = paths
 				.filter(Files::isRegularFile).toList();  // 鍙繚鐣欐櫘閫氭枃浠讹紝鎺掗櫎鐩綍
-				//.collect(Collectors.toList());
-			//System.out.println("鎵�鏈夋枃浠�"+filePathList);
+
 			for(Path path : filePathList){
 				list.add(readFileToVO(path));
 			}
@@ -205,19 +212,47 @@
 		}*/
 		return list;
 	}
+	public static byte[] getUTF8BytesFromGBKString(String gbkStr) {
+		int n = gbkStr.length();
+		byte[] utfBytes = new byte[3 * n];
+		int k = 0;
+		for (int i = 0; i < n; i++) {
+			int m = gbkStr.charAt(i);
+			if (m < 128 && m >= 0) {
+				utfBytes[k++] = (byte) m;
+				continue;
+			}
+			utfBytes[k++] = (byte) (0xe0 | (m >> 12));
+			utfBytes[k++] = (byte) (0x80 | ((m >> 6) & 0x3f));
+			utfBytes[k++] = (byte) (0x80 | (m & 0x3f));
+		}
+		if (k < utfBytes.length) {
+			byte[] tmp = new byte[k];
+			System.arraycopy(utfBytes, 0, tmp, 0, k);
+			return tmp;
+		}
+		return utfBytes;
+	}
 
+	ProgramNameVO tryParseProgramName(String fiilename){
+		ProgramNameVO pnmameVO = ProgramFileNameParser.parseProgramName(fiilename);//鏍囧噯utf8缂栫爜
+		if(pnmameVO.getDrawingNo() == null) {
+			//浣跨敤GBK缂栫爜瑙f瀽
+			pnmameVO = ProgramFileNameParser.parseProgramName(new String(getUTF8BytesFromGBKString(fiilename), StandardCharsets.UTF_8));
+		}
+		return pnmameVO;
+	}
 	/**
 	 * 灏嗘枃浠剁粍缁囨垚VO
 	 * @param path 鏂囦欢path
 	 * @return vo
 	 */
-	MdmProgramImportVO readFileToVO(Path path){
+	MdmProgramImportVO readFileToVO(Path path) throws UnsupportedEncodingException {
 		MdmProgramImportVO vo = new MdmProgramImportVO();
 		vo.setFilename(path.getFileName().toString());
 
-		ProgramNameVO pnmameVO = ProgramFileNameParser.parseProgramName(vo.getFilename());
+		ProgramNameVO pnmameVO = tryParseProgramName(vo.getFilename());
 		vo.setDrawingNo(pnmameVO.getDrawingNo());
-		//vo.setDrawingNo(parseDrawingNo(vo.getFilename()));
 
 		try (InputStream inputStream = Files.newInputStream(path)) {
 			// 浣跨敤杈撳叆娴佽鍙栨枃浠跺唴瀹�
@@ -234,7 +269,7 @@
 
 			AnnotationProperties defAnnoProperties = AnnotationProperties.getDefault();
 			String sendPathLine = FileContentUtil.readLineAt(bas,defAnnoProperties.getSendPathLineIndex());
-			//bas.mark(0);
+
 			bas.reset();
 			String statusLine = FileContentUtil.readLineAt(bas,defAnnoProperties.getStatusLineIndex());
 			log.info("sendPathLine={}", sendPathLine);
@@ -242,7 +277,6 @@
 			Machine matchedMachine = machineService.getMachineBySendPathAnnotation(sendPathLine);
 
 			if (matchedMachine != null) {
-				//vo.setName(parseProgramName(vo.getFilename()));
 				vo.setName(pnmameVO.logicProgramName());
 				vo.setMachineCode(matchedMachine.getCode());
 
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java
index 741715b..8d7334c 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java
@@ -7,6 +7,7 @@
 import org.jetbrains.annotations.NotNull;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.tool.api.R;
+import org.springblade.mdm.commons.service.MdmDictBizService;
 import org.springblade.mdm.program.service.programannotation.AnnotationUtil;
 import org.springblade.mdm.program.vo.ProgramAnnotation;
 import org.springblade.mdm.utils.FileContentUtil;
@@ -33,7 +34,8 @@
 
 	@Autowired
 	private IDictBizClient bizDictClient;
-
+	@Autowired
+	private MdmDictBizService mdmDictBizService;
 	//private static final String DEFAULT_ANNOTATION_SETTING = "(,)";
 
 	public static final String ANNOTATION_DICT = "machine_annotation";
@@ -54,6 +56,7 @@
 
 
 	public List<DictBiz> getAnnotionDictList(){
+		/*
 		List<DictBiz> annotationList;
 
 		R<List<DictBiz>> dictBizResult = bizDictClient.getList(ANNOTATION_DICT);
@@ -63,7 +66,8 @@
 			annotationList = Collections.emptyList();
 		}
 
-		return annotationList;
+		return annotationList;*/
+		return mdmDictBizService.getList(ANNOTATION_DICT);
 	}
 
 
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/MachineFileScanTask.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/MachineFileScanTask.java
index 00275d3..9a574ed 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/MachineFileScanTask.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/MachineFileScanTask.java
@@ -17,13 +17,7 @@
 @EnableScheduling
 public class MachineFileScanTask {
 	@Autowired
-	private MachineFileService machineFileService;
-	@Autowired
-	private MachineService machineService;
-	@Autowired
 	private ParamService paramService;
-	@Autowired
-	private ProgramAnnotationService programAnnotationService;
 	@Autowired
 	private MachineFileScanService machineFileScanService;
 	// 姣�5绉掓墽琛屼竴娆�
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java
index 93139db..bd4a5b9 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java
@@ -8,9 +8,6 @@
 import jakarta.xml.soap.SOAPException;
 import jakarta.xml.ws.WebServiceContext;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.io.IOUtils;
-import org.apache.neethi.AssertionBuilderFactory;
-import org.apache.ws.commons.schema.XmlSchemaSerializer;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.SpringUtil;
diff --git a/blade-service/blade-mdm/src/test/java/org/springblade/mdm/utils/ProgramFileNameParserTest.java b/blade-service/blade-mdm/src/test/java/org/springblade/mdm/utils/ProgramFileNameParserTest.java
index 34c0bf3..f36fdb3 100644
--- a/blade-service/blade-mdm/src/test/java/org/springblade/mdm/utils/ProgramFileNameParserTest.java
+++ b/blade-service/blade-mdm/src/test/java/org/springblade/mdm/utils/ProgramFileNameParserTest.java
@@ -41,6 +41,15 @@
 		ProgramNameVO vo = ProgramFileNameParser.parseProgramName("CS-A-1-1-1-P1.nc");
 
 		Assertions.assertTrue(vo.isValidFilename());
+
+		vo = ProgramFileNameParser.parseProgramName("CS-A-鏃�-1-1.txt");
+
+		Assertions.assertEquals("CS",vo.getDrawingNo());
+		Assertions.assertEquals("鏃�",vo.getProcessEdition());
+
+
+		ProgramNameVO pnmame1 = ProgramFileNameParser.parseProgramName("CP3-2-1-鏃�-1-1.txt");
+		Assertions.assertEquals("鏃�",pnmame1.getProcessEdition());
 	}
 
 }

--
Gitblit v1.9.3