diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/mapper/CookRecipeDishesMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/mapper/CookRecipeDishesMapper.java index e8b8cd3..a376b82 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/mapper/CookRecipeDishesMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/mapper/CookRecipeDishesMapper.java @@ -37,6 +37,8 @@ public interface CookRecipeDishesMapper { */ public int insertCookRecipeDishes(CookRecipeDishes cookRecipeDishes); + public int batchInsertCookRecipeDishes(@Param("list") List dishesList); + /** * 修改菜品计划菜品关联 * 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 3e0b105..8e3d1b1 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 @@ -342,6 +342,7 @@ public class CookRecipeServiceImpl implements ICookRecipeService { } cookRecipeDetailMapper.insertCookRecipeDetail(cookRecipeDetail); //插入菜谱之执行计划 List dishesList = detailDTO.getDishesList(); + List newDishesList = new ArrayList<>(); for (CookRecipeDishesDTO dishesDTO : dishesList) { CookRecipeDishes cookRecipeDishes = new CookRecipeDishes(); BeanUtils.copyProperties(dishesDTO, cookRecipeDishes); @@ -354,8 +355,9 @@ public class CookRecipeServiceImpl implements ICookRecipeService { cookRecipeDishes.setSaleNum(saleNum); cookRecipeDishes.setRemanentNum((int) (supplyNum - saleNum)); cookRecipeDishes.setRecipeDetailId(cookRecipeDetail.getRecipeDetailId()); - cookRecipeDishesMapper.insertCookRecipeDishes(cookRecipeDishes); //插入菜谱之菜品详情 + newDishesList.add(cookRecipeDishes); } + cookRecipeDishesMapper.batchInsertCookRecipeDishes(newDishesList); //插入菜谱之菜品详情 } private void deleteOldCookRecipeDetailsAndDishes(CookRecipeDTO cookRecipeDTO) { @@ -553,33 +555,35 @@ public class CookRecipeServiceImpl implements ICookRecipeService { //List recipeDishesV2List = Lists.newArrayList(); for (Long recipeId : recipeMap.keySet()) { List cookRecipeDetailList = detailMap.get(recipeId); - for (CookRecipeDetail oldDetail : cookRecipeDetailList) { - Long oldDetailId = oldDetail.getRecipeDetailId(); - CookRecipeDetail newRecipeDetail = new CookRecipeDetail(); - newRecipeDetail.setCreateBy("JOB"); - newRecipeDetail.setCreateTime(DateUtils.getNowDate()); - newRecipeDetail.setRecipeId(recipeId); - Long recipeType = recipeTypeMap.get(recipeId); - if (ObjectUtil.equal(recipeType, RecipeTypeEnum.WEEKLY.key())) { - newRecipeDetail.setApplyWeek((long)applyDate.getDayOfWeek().getValue()); - } - newRecipeDetail.setApplyDate(applyDate); - newRecipeDetail.setDetailType(RecipeDetailTypeEnum.DETAIL_DATA.key()); - newRecipeDetail.setMealtimeType(oldDetail.getMealtimeType()); - newRecipeDetail.setSaleTypeId(oldDetail.getSaleTypeId()); - 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.setCreateBy("JOB"); - 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); //插入菜谱之菜品详情 + if (!CollectionUtils.isEmpty(cookRecipeDetailList)) { + for (CookRecipeDetail oldDetail : cookRecipeDetailList) { + Long oldDetailId = oldDetail.getRecipeDetailId(); + CookRecipeDetail newRecipeDetail = new CookRecipeDetail(); + newRecipeDetail.setCreateBy("JOB"); + newRecipeDetail.setCreateTime(DateUtils.getNowDate()); + newRecipeDetail.setRecipeId(recipeId); + Long recipeType = recipeTypeMap.get(recipeId); + if (ObjectUtil.equal(recipeType, RecipeTypeEnum.WEEKLY.key())) { + newRecipeDetail.setApplyWeek((long) applyDate.getDayOfWeek().getValue()); + } + newRecipeDetail.setApplyDate(applyDate); + newRecipeDetail.setDetailType(RecipeDetailTypeEnum.DETAIL_DATA.key()); + newRecipeDetail.setMealtimeType(oldDetail.getMealtimeType()); + newRecipeDetail.setSaleTypeId(oldDetail.getSaleTypeId()); + 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.setCreateBy("JOB"); + 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); //插入菜谱之菜品详情 + } } } } diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/cook/CookRecipeDishesMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/cook/CookRecipeDishesMapper.xml index e800807..36f02e7 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/cook/CookRecipeDishesMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/cook/CookRecipeDishesMapper.xml @@ -96,6 +96,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + insert into cook_recipe_dishes (recipe_detail_id, dishes_id, price, sale_price, size_type, supply_num, sale_num, + remanent_num, limit_num, chef_id, recommend_flag, create_by, create_time) + VALUES + + (#{item.recipeDetailId}, #{item.dishesId}, #{item.price}, #{item.salePrice}, #{item.sizeType}, + #{item.supplyNum}, #{item.saleNum}, #{item.remanentNum}, #{item.limitNum}, #{item.chefId}, #{item.recommendFlag}, + #{item.createBy}, #{item.createTime}) + + + update cook_recipe_dishes