| | |
| | | import com.qiniu.util.IOUtils; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.codec.digest.DigestUtils; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.mdm.basesetting.machine.entity.Machine; |
| | |
| | | //非文本 |
| | | excepType = MachineFile.EXCEPTION_NOT_TEXT; |
| | | }else{ |
| | | Matcher matcher = RegExpConstants.PROGRAM_FILE_PATTERN.matcher(machineFile.getName()); |
| | | |
| | | boolean filenameValid = matcher.find(); |
| | | //Matcher matcher = RegExpConstants.PROGRAM_FILE_PATTERN.matcher(machineFile.getName()); |
| | | ProgramNameVO progNameVO = ProgramFileNameParser.parseProgramName(machineFile.getName()); |
| | | boolean filenameValid = progNameVO.isValidFilename(); |
| | | if(!filenameValid){ |
| | | excepType = MachineFile.EXCEPTION_BAD_FILENAME; |
| | | }else { |
| | | ProgramNameVO progNameVO = ProgramFileNameParser.parseProgramName(machineFile.getName()); |
| | | |
| | | String prefix = progNameVO.logicProgramName()+"-"; |
| | | long matchCount = allFilesInDir.stream().filter(file -> file.getName().startsWith(prefix)).count(); |
| | | if(matchCount != progNameVO.getSegmentCount()){//文件段数缺失 |
| | |
| | | if(progNameVO.getSegmentCount() != sendProgNameVO.getSegmentCount()){ |
| | | //段数不匹配下发记录 |
| | | excepType = MachineFile.EXCEPTION_NOT_MATCH_SEND_SEG_COUNT; |
| | | }else if(!StringUtils.equals(sendProgNameVO.getLgPart(),progNameVO.getLgPart())){ |
| | | excepType = MachineFile.EXCEPTION_NOT_MATCH_SEND_LG; |
| | | } |
| | | }else{ |
| | | matchSendRecord = false; |
| | |
| | | |
| | | if(!matchSendRecord){//如果文件未下发过,查看是否有现场编程记录 |
| | | byteStream.reset(); |
| | | //TODO 下面这些应该都没有,因为时现场编程 |
| | | String planStatusLine = AnnotationUtil.removeAnnotation(machine.getControlSystem(),FileContentUtil.readLineAt(byteStream,annoProps.getStatusLineIndex()),programAnnotationService.getAnnotionDictList()); |
| | | |
| | | String lgNo;//更改单号 |
| | |
| | | .eq(ProgramOnMachine::getDrawingNo,progNameVO.getDrawingNo()) |
| | | .eq(ProgramOnMachine::getProcessNo,progNameVO.getProcessNo()) |
| | | .eq(ProgramOnMachine::getProcessEdition,progNameVO.getProcessEdition()) |
| | | .eq(lgNo != null,ProgramOnMachine::getDeviation,lgNo)//临时更改单匹配 |
| | | .eq(lgNo != null,ProgramOnMachine::getDeviation,lgNo)//TODO 临时更改单序号匹配 |
| | | |
| | | .eq(ProgramOnMachine::getMachineCode,machineFile.getMachineCode()).count(); |
| | | |