菜谱编辑优化

This commit is contained in:
sxu 2025-06-23 17:51:41 +08:00
parent eb80b04134
commit cc18c9f36e
3 changed files with 45 additions and 28 deletions

View File

@ -37,6 +37,8 @@ public interface CookRecipeDishesMapper {
*/ */
public int insertCookRecipeDishes(CookRecipeDishes cookRecipeDishes); public int insertCookRecipeDishes(CookRecipeDishes cookRecipeDishes);
public int batchInsertCookRecipeDishes(@Param("list") List<CookRecipeDishes> dishesList);
/** /**
* 修改菜品计划菜品关联 * 修改菜品计划菜品关联
* *

View File

@ -342,6 +342,7 @@ public class CookRecipeServiceImpl implements ICookRecipeService {
} }
cookRecipeDetailMapper.insertCookRecipeDetail(cookRecipeDetail); //插入菜谱之执行计划 cookRecipeDetailMapper.insertCookRecipeDetail(cookRecipeDetail); //插入菜谱之执行计划
List<CookRecipeDishesDTO> dishesList = detailDTO.getDishesList(); List<CookRecipeDishesDTO> dishesList = detailDTO.getDishesList();
List<CookRecipeDishes> newDishesList = new ArrayList<>();
for (CookRecipeDishesDTO dishesDTO : dishesList) { for (CookRecipeDishesDTO dishesDTO : dishesList) {
CookRecipeDishes cookRecipeDishes = new CookRecipeDishes(); CookRecipeDishes cookRecipeDishes = new CookRecipeDishes();
BeanUtils.copyProperties(dishesDTO, cookRecipeDishes); BeanUtils.copyProperties(dishesDTO, cookRecipeDishes);
@ -354,8 +355,9 @@ public class CookRecipeServiceImpl implements ICookRecipeService {
cookRecipeDishes.setSaleNum(saleNum); cookRecipeDishes.setSaleNum(saleNum);
cookRecipeDishes.setRemanentNum((int) (supplyNum - saleNum)); cookRecipeDishes.setRemanentNum((int) (supplyNum - saleNum));
cookRecipeDishes.setRecipeDetailId(cookRecipeDetail.getRecipeDetailId()); cookRecipeDishes.setRecipeDetailId(cookRecipeDetail.getRecipeDetailId());
cookRecipeDishesMapper.insertCookRecipeDishes(cookRecipeDishes); //插入菜谱之菜品详情 newDishesList.add(cookRecipeDishes);
} }
cookRecipeDishesMapper.batchInsertCookRecipeDishes(newDishesList); //插入菜谱之菜品详情
} }
private void deleteOldCookRecipeDetailsAndDishes(CookRecipeDTO cookRecipeDTO) { private void deleteOldCookRecipeDetailsAndDishes(CookRecipeDTO cookRecipeDTO) {
@ -553,33 +555,35 @@ public class CookRecipeServiceImpl implements ICookRecipeService {
//List<CookRecipeDishes> recipeDishesV2List = Lists.newArrayList(); //List<CookRecipeDishes> recipeDishesV2List = Lists.newArrayList();
for (Long recipeId : recipeMap.keySet()) { for (Long recipeId : recipeMap.keySet()) {
List<CookRecipeDetail> cookRecipeDetailList = detailMap.get(recipeId); List<CookRecipeDetail> cookRecipeDetailList = detailMap.get(recipeId);
for (CookRecipeDetail oldDetail : cookRecipeDetailList) { if (!CollectionUtils.isEmpty(cookRecipeDetailList)) {
Long oldDetailId = oldDetail.getRecipeDetailId(); for (CookRecipeDetail oldDetail : cookRecipeDetailList) {
CookRecipeDetail newRecipeDetail = new CookRecipeDetail(); Long oldDetailId = oldDetail.getRecipeDetailId();
newRecipeDetail.setCreateBy("JOB"); CookRecipeDetail newRecipeDetail = new CookRecipeDetail();
newRecipeDetail.setCreateTime(DateUtils.getNowDate()); newRecipeDetail.setCreateBy("JOB");
newRecipeDetail.setRecipeId(recipeId); newRecipeDetail.setCreateTime(DateUtils.getNowDate());
Long recipeType = recipeTypeMap.get(recipeId); newRecipeDetail.setRecipeId(recipeId);
if (ObjectUtil.equal(recipeType, RecipeTypeEnum.WEEKLY.key())) { Long recipeType = recipeTypeMap.get(recipeId);
newRecipeDetail.setApplyWeek((long)applyDate.getDayOfWeek().getValue()); if (ObjectUtil.equal(recipeType, RecipeTypeEnum.WEEKLY.key())) {
} newRecipeDetail.setApplyWeek((long) applyDate.getDayOfWeek().getValue());
newRecipeDetail.setApplyDate(applyDate); }
newRecipeDetail.setDetailType(RecipeDetailTypeEnum.DETAIL_DATA.key()); newRecipeDetail.setApplyDate(applyDate);
newRecipeDetail.setMealtimeType(oldDetail.getMealtimeType()); newRecipeDetail.setDetailType(RecipeDetailTypeEnum.DETAIL_DATA.key());
newRecipeDetail.setSaleTypeId(oldDetail.getSaleTypeId()); newRecipeDetail.setMealtimeType(oldDetail.getMealtimeType());
cookRecipeDetailMapper.insertCookRecipeDetail(newRecipeDetail); //插入菜谱之执行计划 newRecipeDetail.setSaleTypeId(oldDetail.getSaleTypeId());
Long newDetailId = newRecipeDetail.getRecipeDetailId(); cookRecipeDetailMapper.insertCookRecipeDetail(newRecipeDetail); //插入菜谱之执行计划
List<CookRecipeDishes> dishes = recipeDishes.get(oldDetailId); Long newDetailId = newRecipeDetail.getRecipeDetailId();
for (CookRecipeDishes dishesDTO : dishes) { List<CookRecipeDishes> dishes = recipeDishes.get(oldDetailId);
CookRecipeDishes newRecipeDishes = new CookRecipeDishes(); for (CookRecipeDishes dishesDTO : dishes) {
BeanUtils.copyProperties(dishesDTO, newRecipeDishes); CookRecipeDishes newRecipeDishes = new CookRecipeDishes();
newRecipeDishes.setCreateBy("JOB"); BeanUtils.copyProperties(dishesDTO, newRecipeDishes);
newRecipeDishes.setCreateTime(DateUtils.getNowDate()); newRecipeDishes.setCreateBy("JOB");
long supplyNum = Objects.isNull(newRecipeDishes.getSupplyNum()) ? 0 : newRecipeDishes.getSupplyNum(); newRecipeDishes.setCreateTime(DateUtils.getNowDate());
long saleNum = Objects.isNull(newRecipeDishes.getSaleNum()) ? 0 : newRecipeDishes.getSaleNum(); long supplyNum = Objects.isNull(newRecipeDishes.getSupplyNum()) ? 0 : newRecipeDishes.getSupplyNum();
newRecipeDishes.setRemanentNum((int) (supplyNum - saleNum)); long saleNum = Objects.isNull(newRecipeDishes.getSaleNum()) ? 0 : newRecipeDishes.getSaleNum();
newRecipeDishes.setRecipeDetailId(newDetailId); newRecipeDishes.setRemanentNum((int) (supplyNum - saleNum));
cookRecipeDishesMapper.insertCookRecipeDishes(newRecipeDishes); //插入菜谱之菜品详情 newRecipeDishes.setRecipeDetailId(newDetailId);
cookRecipeDishesMapper.insertCookRecipeDishes(newRecipeDishes); //插入菜谱之菜品详情
}
} }
} }
} }

View File

@ -96,6 +96,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</trim> </trim>
</insert> </insert>
<insert id="batchInsertCookRecipeDishes" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
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
<foreach collection="list" item="item" separator=",">
(#{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})
</foreach>
</insert>
<update id="updateCookRecipeDishes" parameterType="com.bonus.canteen.core.cook.domain.CookRecipeDishes"> <update id="updateCookRecipeDishes" parameterType="com.bonus.canteen.core.cook.domain.CookRecipeDishes">
update cook_recipe_dishes update cook_recipe_dishes
<trim prefix="SET" suffixOverrides=","> <trim prefix="SET" suffixOverrides=",">