新增菜谱

This commit is contained in:
sxu 2025-05-27 23:09:54 +08:00
parent 774bc46626
commit 001eb9ba6f
1 changed files with 35 additions and 35 deletions

View File

@ -88,15 +88,13 @@ public class CookRecipeServiceImpl implements ICookRecipeService {
} }
private void createRecipeDetails(CookRecipeDTO cookRecipeDTO, boolean isCreate) { private void createRecipeDetails(CookRecipeDTO cookRecipeDTO, boolean isCreate) {
List<CookRecipeDateDTO> recipeDateList = getCookRecipeDateList(cookRecipeDTO); List<CookRecipeDateDTO> generatedRecipeDateList = generateCookRecipeDateList(cookRecipeDTO);
insertRecipeDetails(cookRecipeDTO, recipeDateList); insertRecipeDetails(cookRecipeDTO, generatedRecipeDateList);
} }
private static List<CookRecipeDateDTO> getCookRecipeDateList(CookRecipeDTO cookRecipeDTO) { private static List<CookRecipeDateDTO> generateCookRecipeDateList(CookRecipeDTO cookRecipeDTO) {
List<CookRecipeDateDTO> recipeDateList = new ArrayList<>(); List<CookRecipeDateDTO> recipeDateList = new ArrayList<>();
if (1 == cookRecipeDTO.getRecipeType()) { //指定日期 if (2 == cookRecipeDTO.getRecipeType()) { //每日循环
recipeDateList = cookRecipeDTO.getRecipeDateList();
} else if (2 == cookRecipeDTO.getRecipeType()) { //每日循环
List<CookRecipeDetailDTO> recipeDetailList = cookRecipeDTO.getRecipeDateList().get(0).getDetailList(); List<CookRecipeDetailDTO> recipeDetailList = cookRecipeDTO.getRecipeDateList().get(0).getDetailList();
//新增详情 //新增详情
CookRecipeDateDTO cookRecipeDateDTO = new CookRecipeDateDTO(); CookRecipeDateDTO cookRecipeDateDTO = new CookRecipeDateDTO();
@ -106,10 +104,6 @@ public class CookRecipeServiceImpl implements ICookRecipeService {
cookRecipeDateDTO.setApplyDate(now.plusDays(i)); cookRecipeDateDTO.setApplyDate(now.plusDays(i));
} }
recipeDateList.add(cookRecipeDateDTO); recipeDateList.add(cookRecipeDateDTO);
//新增模板
CookRecipeDateDTO cookRecipeDateDTO2 = new CookRecipeDateDTO();
cookRecipeDateDTO2.setDetailList(recipeDetailList);
recipeDateList.add(cookRecipeDateDTO2);
} else if (3 == cookRecipeDTO.getRecipeType()) { //每周循环 } else if (3 == cookRecipeDTO.getRecipeType()) { //每周循环
LocalDate now = LocalDate.now(); LocalDate now = LocalDate.now();
HashMap<Integer, LocalDate> dateHashMap = new HashMap<>(); HashMap<Integer, LocalDate> dateHashMap = new HashMap<>();
@ -126,42 +120,48 @@ public class CookRecipeServiceImpl implements ICookRecipeService {
cookRecipeDateDTO.setApplyDate(entry.getValue()); cookRecipeDateDTO.setApplyDate(entry.getValue());
recipeDateList.add(cookRecipeDateDTO); recipeDateList.add(cookRecipeDateDTO);
} }
//新增模板
for (Integer key : dateHashMap.keySet()) {
CookRecipeDateDTO cookRecipeDateDTO = new CookRecipeDateDTO();
cookRecipeDateDTO.setApplyWeek(Long.valueOf(key));
recipeDateList.add(cookRecipeDateDTO);
}
} }
return recipeDateList; return recipeDateList;
} }
private void insertRecipeDetails(CookRecipeDTO cookRecipeDTO, List<CookRecipeDateDTO> recipeDateList) { private void insertRecipeDetails(CookRecipeDTO cookRecipeDTO, List<CookRecipeDateDTO> generatedRecipeDateList) {
for (CookRecipeDateDTO recipeDateDTO : recipeDateList) { // 插入指定日期日循环摸板周循环模板
for (CookRecipeDateDTO recipeDateDTO :cookRecipeDTO.getRecipeDateList() ) {
List<CookRecipeDetailDTO> detailList = recipeDateDTO.getDetailList(); List<CookRecipeDetailDTO> detailList = recipeDateDTO.getDetailList();
for (CookRecipeDetailDTO detailDTO : detailList) { for (CookRecipeDetailDTO detailDTO : detailList) {
if (1 == cookRecipeDTO.getRecipeType() && CollectionUtils.isEmpty(detailDTO.getDishesList())) { //指定日期不插入空数据 if (1 == cookRecipeDTO.getRecipeType() && CollectionUtils.isEmpty(detailDTO.getDishesList())) { //指定日期不插入空数据
continue; continue;
} }
CookRecipeDetail cookRecipeDetail = new CookRecipeDetail(); insertDetailAndDishes(cookRecipeDTO, recipeDateDTO, detailDTO);
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<CookRecipeDishesDTO> dishesList = detailDTO.getDishesList();
for (CookRecipeDishesDTO dishesDTO : dishesList) {
CookRecipeDishes cookRecipeDishes = new CookRecipeDishes();
BeanUtils.copyProperties(dishesDTO, cookRecipeDishes);
cookRecipeDishes.setRecipeDetailId(cookRecipeDetail.getRecipeDetailId());
cookRecipeDishesMapper.insertCookRecipeDishes(cookRecipeDishes); //插入菜谱之菜品详情
}
} }
} }
// 插入日循环周循环详情
for (CookRecipeDateDTO recipeDateDTO : generatedRecipeDateList) {
List<CookRecipeDetailDTO> 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<CookRecipeDishesDTO> dishesList = detailDTO.getDishesList();
for (CookRecipeDishesDTO dishesDTO : dishesList) {
CookRecipeDishes cookRecipeDishes = new CookRecipeDishes();
BeanUtils.copyProperties(dishesDTO, cookRecipeDishes);
cookRecipeDishes.setRecipeDetailId(cookRecipeDetail.getRecipeDetailId());
cookRecipeDishesMapper.insertCookRecipeDishes(cookRecipeDishes); //插入菜谱之菜品详情
}
} }
/** /**