From 3eaa0d017c33a5639f81745e59b850d59c8a365c Mon Sep 17 00:00:00 2001 From: shahaibo <1023316923@qq.com> Date: Fri, 13 Jun 2025 10:55:55 +0800 Subject: [PATCH] BUGFIX: cloud; --- .../ai/da/service/impl/DesignServiceImpl.java | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java index 606f0132..8f5baa62 100644 --- a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java @@ -1919,10 +1919,11 @@ public class DesignServiceImpl extends ServiceImpl impleme prompt = pythonService.promptTranslate(prompt); } - Map toProductImageVOIntegerMap = allocateElements(toProductImageDTO.getToProductImageVOList(), cloudTaskDTO.getNums()); + Map toProductImageVOIntegerMap = allocateElements(toProductImageDTO.getToProductImageVOList(), cloudTaskDTO.getNums()); for (ToProductImageVO toProductImageVO : toProductImageDTO.getToProductImageVOList()) { String taskId; + String key = toProductImageVO.getElementId() + "_" + toProductImageVO.getElementType(); if (toProductImageVO.getElementType().equals("DesignOutfit")) { TDesignPythonOutfit tDesignPythonOutfit = designPythonOutfitMapper.selectById(toProductImageVO.getElementId()); @@ -1954,8 +1955,8 @@ public class DesignServiceImpl extends ServiceImpl impleme } // 走模型 List paramList = new ArrayList<>(); - List promptList = pythonService.getPrompt(sb.toString(), toProductImageVOIntegerMap.get(toProductImageVO)); - for (int i1 = 0; i1 < toProductImageVOIntegerMap.get(toProductImageVO); i1++) { + List promptList = pythonService.getPrompt(sb.toString(), toProductImageVOIntegerMap.get(key)); + for (int i1 = 0; i1 < toProductImageVOIntegerMap.get(key); i1++) { BatchParamDTO batchParamDTO = new BatchParamDTO(); taskId = UUID.randomUUID() + "-" + i + "-" + userHolder.getId(); batchParamDTO.setTasks_id(taskId); @@ -1997,8 +1998,8 @@ public class DesignServiceImpl extends ServiceImpl impleme ToProductElement toProductElement = toProductElementMapper.selectById(toProductImageVO.getElementId()); // 走模型 List paramList = new ArrayList<>(); - List promptList = pythonService.getPrompt(sb.toString(), toProductImageVOIntegerMap.get(toProductImageVO)); - for (int i1 = 0; i1 < toProductImageVOIntegerMap.get(toProductImageVO); i1++) { + List promptList = pythonService.getPrompt(sb.toString(), toProductImageVOIntegerMap.get(key)); + for (int i1 = 0; i1 < toProductImageVOIntegerMap.get(key); i1++) { BatchParamDTO batchParamDTO = new BatchParamDTO(); taskId = UUID.randomUUID() + "-" + i + "-" + userHolder.getId(); batchParamDTO.setTasks_id(taskId); @@ -2092,9 +2093,10 @@ public class DesignServiceImpl extends ServiceImpl impleme }else { s = "Snow moutain, snowy day, natural light"; } - Map toProductImageVOIntegerMap = allocateElements(toProductImageDTO.getToProductImageVOList(), cloudTaskDTO.getNums()); + Map toProductImageVOIntegerMap = allocateElements(toProductImageDTO.getToProductImageVOList(), cloudTaskDTO.getNums()); for (ToProductImageVO toProductImageVO : toProductImageDTO.getToProductImageVOList()) { String taskId; + String key = toProductImageVO.getElementId() + "_" + toProductImageVO.getElementType(); if (toProductImageVO.getElementType().equals("ToProductImage")) { ToProductImageResult toProductImageResult1 = toProductImageResultMapper.selectById(toProductImageVO.getElementId()); String relightType = "overall"; @@ -2106,8 +2108,8 @@ public class DesignServiceImpl extends ServiceImpl impleme relightType = "single"; } List paramList = new ArrayList<>(); - List promptList = pythonService.getPrompt(s, toProductImageVOIntegerMap.get(toProductImageVO)); - for (int i1 = 0; i1 < toProductImageVOIntegerMap.get(toProductImageVO); i1++) { + List promptList = pythonService.getPrompt(s, toProductImageVOIntegerMap.get(key)); + for (int i1 = 0; i1 < toProductImageVOIntegerMap.get(key); i1++) { BatchParamDTO batchParamDTO = new BatchParamDTO(); taskId = UUID.randomUUID() + "-" + i + "-" + userHolder.getId(); batchParamDTO.setTasks_id(taskId); @@ -2148,8 +2150,8 @@ public class DesignServiceImpl extends ServiceImpl impleme ToProductElement toProductElement = toProductElementMapper.selectById(toProductImageVO.getElementId()); // 走模型 List paramList = new ArrayList<>(); - List promptList = pythonService.getPrompt(s, toProductImageVOIntegerMap.get(toProductImageVO)); - for (int i1 = 0; i1 < toProductImageVOIntegerMap.get(toProductImageVO); i1++) { + List promptList = pythonService.getPrompt(s, toProductImageVOIntegerMap.get(key)); + for (int i1 = 0; i1 < toProductImageVOIntegerMap.get(key); i1++) { BatchParamDTO batchParamDTO = new BatchParamDTO(); taskId = UUID.randomUUID() + "-" + i + "-" + userHolder.getId(); batchParamDTO.setTasks_id(taskId); @@ -2246,16 +2248,17 @@ public class DesignServiceImpl extends ServiceImpl impleme return null; } - public static Map allocateElements(List voList, int totalResults) { + public static Map allocateElements(List voList, int totalResults) { // 计算基础分配值和余数 int baseAllocation = totalResults / voList.size(); int remainder = totalResults % voList.size(); // 初始化分配结果(每个元素先分配基础值) - Map allocationMap = new HashMap<>(); + Map allocationMap = new HashMap<>(); for (ToProductImageVO vo : voList) { - allocationMap.put(vo, baseAllocation); + String key = vo.getElementId() + "_" + vo.getElementType(); + allocationMap.put(key, baseAllocation); } // 如果有余数,随机分配额外的一个结果 @@ -2267,7 +2270,8 @@ public class DesignServiceImpl extends ServiceImpl impleme // 将前N个元素各增加1(N=余数) for (int i = 0; i < remainder; i++) { ToProductImageVO toProductImageVO = shuffledIds.get(i); - allocationMap.put(toProductImageVO, allocationMap.get(toProductImageVO) + 1); + String key = toProductImageVO.getElementId() + "_" + toProductImageVO.getElementType(); + allocationMap.put(key, allocationMap.get(key) + 1); } }