From 001eb9ba6f77327e82767baaf671db4987a1ebe5 Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Tue, 27 May 2025 23:09:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=8F=9C=E8=B0=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CookRecipeServiceImpl.java | 70 +++++++++---------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/service/impl/CookRecipeServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/service/impl/CookRecipeServiceImpl.java index 87025c7..1d2ec0c 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/service/impl/CookRecipeServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/service/impl/CookRecipeServiceImpl.java @@ -88,15 +88,13 @@ public class CookRecipeServiceImpl implements ICookRecipeService { } private void createRecipeDetails(CookRecipeDTO cookRecipeDTO, boolean isCreate) { - List recipeDateList = getCookRecipeDateList(cookRecipeDTO); - insertRecipeDetails(cookRecipeDTO, recipeDateList); + List generatedRecipeDateList = generateCookRecipeDateList(cookRecipeDTO); + insertRecipeDetails(cookRecipeDTO, generatedRecipeDateList); } - private static List getCookRecipeDateList(CookRecipeDTO cookRecipeDTO) { + private static List generateCookRecipeDateList(CookRecipeDTO cookRecipeDTO) { List recipeDateList = new ArrayList<>(); - if (1 == cookRecipeDTO.getRecipeType()) { //指定日期 - recipeDateList = cookRecipeDTO.getRecipeDateList(); - } else if (2 == cookRecipeDTO.getRecipeType()) { //每日循环 + if (2 == cookRecipeDTO.getRecipeType()) { //每日循环 List recipeDetailList = cookRecipeDTO.getRecipeDateList().get(0).getDetailList(); //新增详情 CookRecipeDateDTO cookRecipeDateDTO = new CookRecipeDateDTO(); @@ -106,10 +104,6 @@ public class CookRecipeServiceImpl implements ICookRecipeService { cookRecipeDateDTO.setApplyDate(now.plusDays(i)); } recipeDateList.add(cookRecipeDateDTO); - //新增模板 - CookRecipeDateDTO cookRecipeDateDTO2 = new CookRecipeDateDTO(); - cookRecipeDateDTO2.setDetailList(recipeDetailList); - recipeDateList.add(cookRecipeDateDTO2); } else if (3 == cookRecipeDTO.getRecipeType()) { //每周循环 LocalDate now = LocalDate.now(); HashMap dateHashMap = new HashMap<>(); @@ -126,42 +120,48 @@ public class CookRecipeServiceImpl implements ICookRecipeService { cookRecipeDateDTO.setApplyDate(entry.getValue()); recipeDateList.add(cookRecipeDateDTO); } - //新增模板 - for (Integer key : dateHashMap.keySet()) { - CookRecipeDateDTO cookRecipeDateDTO = new CookRecipeDateDTO(); - cookRecipeDateDTO.setApplyWeek(Long.valueOf(key)); - recipeDateList.add(cookRecipeDateDTO); - } } return recipeDateList; } - private void insertRecipeDetails(CookRecipeDTO cookRecipeDTO, List recipeDateList) { - for (CookRecipeDateDTO recipeDateDTO : recipeDateList) { + private void insertRecipeDetails(CookRecipeDTO cookRecipeDTO, List generatedRecipeDateList) { + // 插入指定日期、日循环摸板、周循环模板 + for (CookRecipeDateDTO recipeDateDTO :cookRecipeDTO.getRecipeDateList() ) { List detailList = recipeDateDTO.getDetailList(); for (CookRecipeDetailDTO detailDTO : detailList) { if (1 == cookRecipeDTO.getRecipeType() && CollectionUtils.isEmpty(detailDTO.getDishesList())) { //指定日期,不插入空数据 continue; } - CookRecipeDetail cookRecipeDetail = new CookRecipeDetail(); - BeanUtils.copyProperties(recipeDateDTO, detailDTO); - BeanUtils.copyProperties(detailDTO, cookRecipeDetail); - cookRecipeDetail.setRecipeId(cookRecipeDTO.getRecipeId()); - if (Objects.isNull(cookRecipeDetail.getApplyDate())) { - cookRecipeDetail.setDetailType(1L); //模板数据 - } else { - cookRecipeDetail.setDetailType(2L); //详情数据 - } - cookRecipeDetailMapper.insertCookRecipeDetail(cookRecipeDetail); //插入菜谱之执行计划 - List dishesList = detailDTO.getDishesList(); - for (CookRecipeDishesDTO dishesDTO : dishesList) { - CookRecipeDishes cookRecipeDishes = new CookRecipeDishes(); - BeanUtils.copyProperties(dishesDTO, cookRecipeDishes); - cookRecipeDishes.setRecipeDetailId(cookRecipeDetail.getRecipeDetailId()); - cookRecipeDishesMapper.insertCookRecipeDishes(cookRecipeDishes); //插入菜谱之菜品详情 - } + insertDetailAndDishes(cookRecipeDTO, recipeDateDTO, detailDTO); } } + // 插入日循环、周循环详情 + for (CookRecipeDateDTO recipeDateDTO : generatedRecipeDateList) { + List detailList = recipeDateDTO.getDetailList(); + for (CookRecipeDetailDTO detailDTO : detailList) { + insertDetailAndDishes(cookRecipeDTO, recipeDateDTO, detailDTO); + } + } + } + + private void insertDetailAndDishes(CookRecipeDTO cookRecipeDTO, CookRecipeDateDTO recipeDateDTO, CookRecipeDetailDTO detailDTO) { + CookRecipeDetail cookRecipeDetail = new CookRecipeDetail(); + BeanUtils.copyProperties(recipeDateDTO, detailDTO); + BeanUtils.copyProperties(detailDTO, cookRecipeDetail); + cookRecipeDetail.setRecipeId(cookRecipeDTO.getRecipeId()); + if (Objects.isNull(cookRecipeDetail.getApplyDate())) { + cookRecipeDetail.setDetailType(1L); //模板数据 + } else { + cookRecipeDetail.setDetailType(2L); //详情数据 + } + cookRecipeDetailMapper.insertCookRecipeDetail(cookRecipeDetail); //插入菜谱之执行计划 + List dishesList = detailDTO.getDishesList(); + for (CookRecipeDishesDTO dishesDTO : dishesList) { + CookRecipeDishes cookRecipeDishes = new CookRecipeDishes(); + BeanUtils.copyProperties(dishesDTO, cookRecipeDishes); + cookRecipeDishes.setRecipeDetailId(cookRecipeDetail.getRecipeDetailId()); + cookRecipeDishesMapper.insertCookRecipeDishes(cookRecipeDishes); //插入菜谱之菜品详情 + } } /**