BUGFIX:重复停止组装;

This commit is contained in:
shahaibo
2025-02-04 10:58:35 +08:00
parent e5e6f360dc
commit 7697ab59fa

View File

@@ -260,28 +260,31 @@ public class PythonService {
noPrintNum--; noPrintNum--;
break; break;
} }
DesignPythonItemPrint designPythonItemPrint = getRandomPrint(elementVO, designPrintPictureType); DesignPythonItemPrint designPythonItemPrint = getRandomPrint(elementVO, designPrintPictureType);
elementVO.setDesignPythonItemPrint(designPythonItemPrint); elementVO.setDesignPythonItemPrint(designPythonItemPrint);
elementVO.setDesignPrintPictureTypeLayoutList(calculateCurrentDesignPintPictureTypeLayout(elementVO.getModelSex())); elementVO.setDesignPrintPictureTypeLayoutList(calculateCurrentDesignPintPictureTypeLayout(elementVO.getModelSex()));
List<String> beforeAssemblyHasUseMd5List = new ArrayList<>(elementVO.getHasUseMd5List());
DesignPythonObject pythonObject = createDesignPythonObject(elementVO, designPictureType, systemScale, singleOverall, switchCategory, i); DesignPythonObject pythonObject = createDesignPythonObject(elementVO, designPictureType, systemScale, singleOverall, switchCategory, i);
// 如果当前对象与已组装的对象重复,则跳过当前组装 // 如果当前对象与已组装的对象重复,则跳过当前组装
DesignPythonObject designPythonObjectCopy = getCopy(pythonObject); DesignPythonObject designPythonObjectCopy = getCopy(pythonObject);
if (assembledObjects.contains(designPythonObjectCopy)) {
if (lastAssembledObject != null && assembledObjects.contains(lastAssembledObject)) { boolean isDuplicate = assembledObjects.contains(designPythonObjectCopy);
// 如果当前组装与前一个组装的对象重复,且前一个组装也重复,结束组装
System.out.println("当前组装的对象与前两个组装的对象重复,结束组装。"); if (isDuplicate) {
break; // if (lastAssembledObject != null && assembledObjects.contains(lastAssembledObject)) {
} // // 如果当前组装与前一个组装的对象重复,且前一个组装也重复,结束组装
// 否则,跳过当前组装 // System.out.println("当前组装的对象与前两个组装的对象重复,结束组装。");
// break;
// }
elementVO.setHasUseMd5List(beforeAssemblyHasUseMd5List);
i --;
continue; continue;
} }
// 将当前对象添加到已组装的集合中,并记录 // 将当前对象添加到已组装的集合中,并记录
assembledObjects.add(designPythonObjectCopy); assembledObjects.add(designPythonObjectCopy);
lastAssembledObject = designPythonObjectCopy; // 更新上一次组装的对象 // lastAssembledObject = designPythonObjectCopy; // 更新上一次组装的对象
objects.add(pythonObject); objects.add(pythonObject);
redisUtil.addProcessId(processId, i + 1); redisUtil.addProcessId(processId, i + 1);