|
@@ -31,11 +31,7 @@ import org.dromara.system.domain.vo.SysDiseaseLabelVo;
|
|
import org.dromara.system.domain.vo.SysFoodCategoryVo;
|
|
import org.dromara.system.domain.vo.SysFoodCategoryVo;
|
|
import org.dromara.system.domain.vo.SysFoodIngredientVo;
|
|
import org.dromara.system.domain.vo.SysFoodIngredientVo;
|
|
import org.dromara.system.domain.vo.SysRecipeFoodIngredientVo;
|
|
import org.dromara.system.domain.vo.SysRecipeFoodIngredientVo;
|
|
-import org.dromara.system.mapper.SysDiseaseLabelMapper;
|
|
|
|
-import org.dromara.system.mapper.SysFoodCategoryMapper;
|
|
|
|
-import org.dromara.system.mapper.SysFoodIngredientMapper;
|
|
|
|
-import org.dromara.system.mapper.SysRecipeCategoryMapper;
|
|
|
|
-import org.dromara.system.mapper.SysRecipeFoodIngredientMapper;
|
|
|
|
|
|
+import org.dromara.system.mapper.*;
|
|
import org.dromara.system.service.ISysDictDataService;
|
|
import org.dromara.system.service.ISysDictDataService;
|
|
import org.dromara.system.service.ISysDiseaseLabelService;
|
|
import org.dromara.system.service.ISysDiseaseLabelService;
|
|
import org.dromara.system.service.ISysRecipeCategoryService;
|
|
import org.dromara.system.service.ISysRecipeCategoryService;
|
|
@@ -43,18 +39,12 @@ import org.springframework.stereotype.Service;
|
|
import org.dromara.system.domain.bo.SysRecipeBo;
|
|
import org.dromara.system.domain.bo.SysRecipeBo;
|
|
import org.dromara.system.domain.vo.SysRecipeVo;
|
|
import org.dromara.system.domain.vo.SysRecipeVo;
|
|
import org.dromara.system.domain.SysRecipe;
|
|
import org.dromara.system.domain.SysRecipe;
|
|
-import org.dromara.system.mapper.SysRecipeMapper;
|
|
|
|
import org.dromara.system.service.ISysRecipeService;
|
|
import org.dromara.system.service.ISysRecipeService;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.io.ObjectInput;
|
|
import java.io.ObjectInput;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
-import java.util.Arrays;
|
|
|
|
-import java.util.Collections;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
-import java.util.Collection;
|
|
|
|
-import java.util.Set;
|
|
|
|
|
|
+import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -75,6 +65,7 @@ public class SysRecipeServiceImpl implements ISysRecipeService {
|
|
private final SysDiseaseLabelMapper diseaseLabelMapper;
|
|
private final SysDiseaseLabelMapper diseaseLabelMapper;
|
|
private final SysFoodCategoryMapper foodCategoryMapper;
|
|
private final SysFoodCategoryMapper foodCategoryMapper;
|
|
private final SysFoodIngredientMapper foodIngredientMapper;
|
|
private final SysFoodIngredientMapper foodIngredientMapper;
|
|
|
|
+ private final SysDictDataMapper sysDictDataMapper;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public int updateRecipeStatus(List<Long> recipeIds, String status) {
|
|
public int updateRecipeStatus(List<Long> recipeIds, String status) {
|
|
@@ -196,6 +187,79 @@ public class SysRecipeServiceImpl implements ISysRecipeService {
|
|
v.setCategoryName(recipeCategoryMap.get(v.getCategoryId()));
|
|
v.setCategoryName(recipeCategoryMap.get(v.getCategoryId()));
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ Map<Long, List<Long>> foodToIngredientMap = new HashMap<>();
|
|
|
|
+ List<SysRecipeFoodIngredient> recipeFoodIngredientList = sysRecipeFoodIngredientMapper.selectList();
|
|
|
|
+ recipeFoodIngredientList.forEach(e -> {
|
|
|
|
+ foodToIngredientMap.computeIfAbsent(e.getRecipeId(), k -> new ArrayList<>())
|
|
|
|
+ .add(e.getFoodIngredientId());
|
|
|
|
+ });
|
|
|
|
+ List<SysFoodIngredient> foodIngredientList = foodIngredientMapper.selectList();
|
|
|
|
+ Map<String, String> unitMap = new HashMap<>();
|
|
|
|
+ sysDictDataMapper.selectDictDataByType("food_unit").forEach(e -> unitMap.put(e.getDictValue(), e.getDictLabel()));
|
|
|
|
+
|
|
|
|
+ result.getRecords().forEach(e -> {
|
|
|
|
+ List<SysFoodIngredientVo> foodList = new ArrayList<>();
|
|
|
|
+ StringBuilder foodNames = new StringBuilder();
|
|
|
|
+ List<Long> ids = foodToIngredientMap.get(e.getRecipeId());
|
|
|
|
+ for (Long id : ids) {
|
|
|
|
+ for (SysFoodIngredient sysFoodIngredient : foodIngredientList) {
|
|
|
|
+ if (Objects.equals(id, sysFoodIngredient.getFoodIngredientId())) {
|
|
|
|
+ SysFoodIngredientVo vo = new SysFoodIngredientVo();
|
|
|
|
+ vo.setFoodIngredientId(sysFoodIngredient.getFoodIngredientId());
|
|
|
|
+ vo.setFoodCategoryId(sysFoodIngredient.getFoodCategoryId());
|
|
|
|
+ vo.setBigCategory(sysFoodIngredient.getBigCategory());
|
|
|
|
+ vo.setSubCategory(sysFoodIngredient.getSubCategory());
|
|
|
|
+ vo.setName(sysFoodIngredient.getName());
|
|
|
|
+ vo.setCode(sysFoodIngredient.getCode());
|
|
|
|
+ vo.setUnit(sysFoodIngredient.getUnit());
|
|
|
|
+ vo.setUnitName(sysFoodIngredient.getUnitName());
|
|
|
|
+ vo.setPurchasePrice(sysFoodIngredient.getPurchasePrice());
|
|
|
|
+ vo.setEdibleRatio(sysFoodIngredient.getEdibleRatio());
|
|
|
|
+ vo.setShelfLife(sysFoodIngredient.getShelfLife());
|
|
|
|
+ vo.setStockWarning(sysFoodIngredient.getStockWarning());
|
|
|
|
+ vo.setExpiryWarning(sysFoodIngredient.getExpiryWarning());
|
|
|
|
+ vo.setDescription(sysFoodIngredient.getDescription());
|
|
|
|
+ vo.setProtein(sysFoodIngredient.getProtein());
|
|
|
|
+ vo.setFat(sysFoodIngredient.getFat());
|
|
|
|
+ vo.setCarbohydrate(sysFoodIngredient.getCarbohydrate());
|
|
|
|
+ vo.setWater(sysFoodIngredient.getWater());
|
|
|
|
+ vo.setVitaminA(sysFoodIngredient.getVitaminA());
|
|
|
|
+ vo.setVitaminB2(sysFoodIngredient.getVitaminB2());
|
|
|
|
+ vo.setVitaminC(sysFoodIngredient.getVitaminC());
|
|
|
|
+ vo.setSodium(sysFoodIngredient.getSodium());
|
|
|
|
+ vo.setIron(sysFoodIngredient.getIron());
|
|
|
|
+ vo.setPhosphorus(sysFoodIngredient.getPhosphorus());
|
|
|
|
+ vo.setDietaryFiber(sysFoodIngredient.getDietaryFiber());
|
|
|
|
+ vo.setVitaminB1(sysFoodIngredient.getVitaminB1());
|
|
|
|
+ vo.setNiacin(sysFoodIngredient.getNiacin());
|
|
|
|
+ vo.setVitaminE(sysFoodIngredient.getVitaminE());
|
|
|
|
+ vo.setCalcium(sysFoodIngredient.getCalcium());
|
|
|
|
+ vo.setPotassium(sysFoodIngredient.getPotassium());
|
|
|
|
+ vo.setCholesterol(sysFoodIngredient.getCholesterol());
|
|
|
|
+ vo.setStatus(sysFoodIngredient.getStatus());
|
|
|
|
+
|
|
|
|
+ for (SysRecipeFoodIngredient sysRecipeFoodIngredient : recipeFoodIngredientList) {
|
|
|
|
+ if (Objects.equals(sysRecipeFoodIngredient.getFoodIngredientId(), sysFoodIngredient.getFoodIngredientId())) {
|
|
|
|
+ vo.setQuantity(sysRecipeFoodIngredient.getQuantity());
|
|
|
|
+ vo.setCalories(sysRecipeFoodIngredient.getCalories());
|
|
|
|
+ vo.setRemark(sysRecipeFoodIngredient.getRemark());
|
|
|
|
+ foodNames
|
|
|
|
+ .append(sysFoodIngredient.getName())
|
|
|
|
+ .append(sysRecipeFoodIngredient.getQuantity())
|
|
|
|
+ .append(unitMap.get(sysFoodIngredient.getUnit()))
|
|
|
|
+ .append(";");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ vo.setCaloriesForInput(sysFoodIngredient.getCaloriesForInput());
|
|
|
|
+ vo.setStockNum(sysFoodIngredient.getStockWarning());
|
|
|
|
+ foodList.add(vo);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ e.setFoodNames(foodNames.toString());
|
|
|
|
+ e.setFoodList(foodList);
|
|
|
|
+ });
|
|
return TableDataInfo.build(result);
|
|
return TableDataInfo.build(result);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -226,6 +290,7 @@ public class SysRecipeServiceImpl implements ISysRecipeService {
|
|
lqw.eq(StringUtils.isNotBlank(bo.getSmartRecommend()), SysRecipe::getSmartRecommend, bo.getSmartRecommend());
|
|
lqw.eq(StringUtils.isNotBlank(bo.getSmartRecommend()), SysRecipe::getSmartRecommend, bo.getSmartRecommend());
|
|
lqw.eq(StringUtils.isNotBlank(bo.getCookingMethod()), SysRecipe::getCookingMethod, bo.getCookingMethod());
|
|
lqw.eq(StringUtils.isNotBlank(bo.getCookingMethod()), SysRecipe::getCookingMethod, bo.getCookingMethod());
|
|
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysRecipe::getStatus, bo.getStatus());
|
|
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysRecipe::getStatus, bo.getStatus());
|
|
|
|
+ lqw.in(bo.getCategoryIds() != null && !bo.getCategoryIds().isEmpty(), SysRecipe::getCategoryId, bo.getCategoryIds());
|
|
return lqw;
|
|
return lqw;
|
|
}
|
|
}
|
|
|
|
|