| | |
| | | |
| | | 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; |
| | |
| | | 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() + "结尾的文件!"); |
| | | } |
| | |
| | | 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 -> { |
| | |
| | | b = i.getName().endsWith(fileExtension); |
| | | break; |
| | | } |
| | | if(isMatchFileName){ |
| | | b = matchFileName(i.getName(),matchRule,entrustCode,sampleCode); |
| | | } |
| | | if (b) { |
| | | list.add(i); |
| | | } |
| | |
| | | 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(); |