From 0f9b5a20f07396c65d2d902dca0b5564c846bb71 Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Sun, 8 Jun 2025 09:06:08 +0800 Subject: [PATCH] =?UTF-8?q?h5=E5=91=A8=E8=8F=9C=E8=B0=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cook/mapper/CookRecipeDetailMapper.java | 2 +- .../service/impl/CookRecipeServiceImpl.java | 82 +++++++------------ 2 files changed, 31 insertions(+), 53 deletions(-) diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/mapper/CookRecipeDetailMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/mapper/CookRecipeDetailMapper.java index 02cae34..87f84bb 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/mapper/CookRecipeDetailMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/mapper/CookRecipeDetailMapper.java @@ -78,7 +78,7 @@ public interface CookRecipeDetailMapper { List getByRecipeIdAndDatesAndIntervalId(@Param("recipeId") Long recipeId, @Param("dateList") Set dateList, @Param("mealtimeType") Long mealtimeType); - List getCookRecipeDetailsByApplyDateAndRecipeIds(@Param("recipeIdList") List recipeIdList); + List getCookRecipeDetailsByApplyDateAndRecipeIds(@Param("recipeIdList") List recipeIdList, @Param("applyDate") LocalDate applyDate); List getCookRecipeDetailsByDetailTypeAndRecipeIds(@Param("recipeIdList") List recipeIdList); } 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 71aba74..97257ee 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 @@ -527,7 +527,7 @@ public class CookRecipeServiceImpl implements ICookRecipeService { public synchronized void generateRecipe(List inputRecipeIdList, LocalDate applyDate) { if (!ObjectUtil.isEmpty(inputRecipeIdList) && !ObjectUtil.isEmpty(applyDate)) { List recipeIdList = new ArrayList(inputRecipeIdList); - List cookRecipeDetails = cookRecipeDetailMapper.getCookRecipeDetailsByApplyDateAndRecipeIds(recipeIdList); + List cookRecipeDetails = cookRecipeDetailMapper.getCookRecipeDetailsByApplyDateAndRecipeIds(recipeIdList, applyDate); Map recipeDetailContMap = cookRecipeDetails.stream().collect(Collectors.groupingBy(CookRecipeDetail::getRecipeId, Collectors.counting())); recipeIdList.removeAll(recipeDetailContMap.keySet()); if (!ObjectUtil.isEmpty(recipeIdList)) { @@ -544,57 +544,35 @@ public class CookRecipeServiceImpl implements ICookRecipeService { Map> recipeDishes = (Map)foundDishes.stream().collect(Collectors.groupingBy(CookRecipeDishes::getRecipeDetailId)); List recipeDetailV2List = Lists.newArrayList(); List recipeDishesV2List = Lists.newArrayList(); - Iterator var13 = recipeMap.keySet().iterator(); -// label59: -// while(true) { -// Long recipeId; -// Integer type; -// List menuRecipeDetail; -// do { -// if (!var13.hasNext()) { -// this.cookRecipeDetailMapper.insert(recipeDetailV2List); -// if (ObjectUtil.isNotEmpty(recipeDishesV2List)) { -// this.cookRecipeDishesService.saveBatch(recipeDishesV2List); -// } -// return; -// } -// recipeId = (Long)var13.next(); -// type = (Integer)recipeTypeMap.get(recipeId); -// menuRecipeDetail = (List)detailMap.get(recipeId); -// } while(!ObjectUtil.isNotEmpty(menuRecipeDetail)); -// Iterator var17 = menuRecipeDetail.iterator(); -// while(true) { -// Long detailId; -// List dishes; -// do { -// if (!var17.hasNext()) { -// continue label59; -// } -// CookRecipeDetail recipeDetail = (CookRecipeDetail)var17.next(); -// CookRecipeDetail detailItem = new CookRecipeDetail(); -// detailId = Id.next(); -// detailItem.setDetailId(detailId); -// detailItem.setRecipeId(recipeId); -// if (ObjectUtil.equal(type, 3)) { -// detailItem.setApplyWeek(applyDate.getDayOfWeek().getValue()); -// } -// detailItem.setApplyDate(applyDate); -// detailItem.setMealtimeType(recipeDetail.getMealtimeType()); -// detailItem.setCreateBy(""); -// detailItem.setDetailType(2); -// recipeDetailV2List.add(detailItem); -// dishes = (List)recipeDishes.get(recipeDetail.getDetailId()); -// } while(!ObjectUtil.isNotEmpty(dishes)); -// Iterator var22 = dishes.iterator(); -// while(var22.hasNext()) { -// CookRecipeDishes dish = (CookRecipeDishes)var22.next(); -// CookRecipeDishes dishesItem = (CookRecipeDishes) BeanUtil.copyProperties(dish, CookRecipeDishes.class, new String[0]); -// dishesItem.setDetailId(detailId); -// dishesItem.setId((Long)null); -// recipeDishesV2List.add(dishesItem); -// } -// } -// } + for (Long recipeId : recipeMap.keySet()) { + CookRecipe recipe = recipeMap.get(recipeId); + List cookRecipeDetailList = (List) detailMap.get(recipeId); + for (CookRecipeDetail oldDetail : cookRecipeDetailList) { + Long oldDetailId = oldDetail.getRecipeDetailId(); + CookRecipeDetail newRecipeDetail = new CookRecipeDetail(); + newRecipeDetail.setRecipeId(recipeId); + Integer recipeType = recipeTypeMap.get(recipeId); + if (ObjectUtil.equal(recipeType, RecipeTypeEnum.WEEKLY.key())) { + newRecipeDetail.setApplyWeek((long)applyDate.getDayOfWeek().getValue()); + } + newRecipeDetail.setApplyDate(applyDate); + newRecipeDetail.setCreateBy("JOB"); + newRecipeDetail.setDetailType(RecipeDetailTypeEnum.DETAIL_DATA.key()); + cookRecipeDetailMapper.insertCookRecipeDetail(newRecipeDetail); //插入菜谱之执行计划 + Long newDetailId = newRecipeDetail.getRecipeDetailId(); + List dishes = recipeDishes.get(oldDetailId); + for (CookRecipeDishes dishesDTO : dishes) { + CookRecipeDishes newRecipeDishes = new CookRecipeDishes(); + BeanUtils.copyProperties(dishesDTO, newRecipeDishes); + newRecipeDishes.setCreateTime(DateUtils.getNowDate()); + long supplyNum = Objects.isNull(newRecipeDishes.getSupplyNum()) ? 0 : newRecipeDishes.getSupplyNum(); + long saleNum = Objects.isNull(newRecipeDishes.getSaleNum()) ? 0 : newRecipeDishes.getSaleNum(); + newRecipeDishes.setRemanentNum((int) (supplyNum - saleNum)); + newRecipeDishes.setRecipeDetailId(newDetailId); + cookRecipeDishesMapper.insertCookRecipeDishes(newRecipeDishes); //插入菜谱之菜品详情 + } + } + } } } }