diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/dto/DeviceDTO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/dto/DeviceDTO.java index c1234a8..ff0f4c0 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/dto/DeviceDTO.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/dto/DeviceDTO.java @@ -7,6 +7,7 @@ import javax.validation.constraints.NotBlank; @Data public class DeviceDTO { + private Long id; @ApiModelProperty("主键id") private String deviceId; @ApiModelProperty("商家id") @@ -47,4 +48,6 @@ public class DeviceDTO { private String updateBy; @ApiModelProperty("设备类型") private String deviceType; + @ApiModelProperty("菜谱id") + private String recipeId; } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/mapper/DoubleScreenMachineMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/mapper/DoubleScreenMachineMapper.java index c0c9097..0370a82 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/mapper/DoubleScreenMachineMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/mapper/DoubleScreenMachineMapper.java @@ -12,7 +12,7 @@ import javax.validation.constraints.NotBlank; /** * 设备绑定多档口子Mapper接口 - * + * * @author xsheng * @date 2025-04-03 */ @@ -70,4 +70,8 @@ public interface DoubleScreenMachineMapper { * @return 结果 */ int updateTimeBySn(String sn); + + int insertDeviceRecipe(DeviceDTO dto); + + int updateDeviceRecipe(DeviceDTO dto); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/service/impl/DoubleScreenMachineServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/service/impl/DoubleScreenMachineServiceImpl.java index 685f616..eb65cde 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/service/impl/DoubleScreenMachineServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/service/impl/DoubleScreenMachineServiceImpl.java @@ -7,6 +7,7 @@ import com.bonus.canteen.core.device.dto.DeviceDTO; import com.bonus.canteen.core.device.dto.DeviceSearchDTO; import com.bonus.canteen.core.device.vo.DeviceFullInfoVO; import com.bonus.common.houqin.constant.GlobalConstants; +import com.bonus.common.houqin.utils.id.Id; import com.bonus.common.security.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -16,7 +17,7 @@ import org.springframework.transaction.annotation.Transactional; /** * 设备绑定多档口子Service业务层处理 - * + * * @author xsheng * @date 2025-04-03 */ @@ -75,6 +76,11 @@ public class DoubleScreenMachineServiceImpl implements IDoubleScreenMachineServi if (code == 0){ throw new RuntimeException("设备绑定失败"); } + dto.setId(Id.next()); + code = mapper.insertDeviceRecipe(dto); + if (code == 0){ + throw new RuntimeException("添加菜谱关联失败"); + } } /** @@ -106,6 +112,11 @@ public class DoubleScreenMachineServiceImpl implements IDoubleScreenMachineServi if (code == 0){ throw new RuntimeException("设备绑定更新失败"); } + code = mapper.updateDeviceRecipe(dto); + + if (code == 0){ + throw new RuntimeException("修改菜谱关联失败"); + } } /** diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/controller/AppletRecipeH5Controller.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/controller/AppletRecipeH5Controller.java index 622cd68..11a641e 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/controller/AppletRecipeH5Controller.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/controller/AppletRecipeH5Controller.java @@ -2,18 +2,20 @@ package com.bonus.canteen.core.menu.controller; import com.bonus.canteen.core.menu.dto.AppletDishesDetailDTO; import com.bonus.canteen.core.menu.dto.AppletWeekCanteenDTO; +import com.bonus.canteen.core.menu.dto.AppletWeekRecipeDTO; import com.bonus.canteen.core.menu.service.AppletRecipeH5Service; import com.bonus.canteen.core.menu.vo.AppletDishesDetailVO; import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.core.web.page.TableDataInfo; import io.swagger.annotations.ApiOperation; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.validation.Valid; + +import java.time.LocalDate; import static com.bonus.common.core.web.domain.AjaxResult.success; @@ -21,8 +23,8 @@ import static com.bonus.common.core.web.domain.AjaxResult.success; * @author xliu * @date 2025/4/15 16:31 */ -//@RestController -@RequestMapping("/api/applet/menurecipe") +@RestController +@RequestMapping("/h5/menurecipe") public class AppletRecipeH5Controller extends BaseController { @@ -44,6 +46,19 @@ public class AppletRecipeH5Controller extends BaseController { } + @ApiOperation("获取一周菜谱详情") + @GetMapping({"/week/recipe/detail"}) + public TableDataInfo getWeekRecipeDetailList(@Valid AppletWeekRecipeDTO content) { + try { + startPage(); + return getDataTable(this.appletRecipeH5Service.getWeekRecipeDetailList(content)); + } catch (Exception e) { + return getDataTable(null); + } + + } + + @PostMapping({"/detail"}) @ApiOperation("根据菜品id获取菜品详情") public AjaxResult getRecipeDetail(@RequestBody AppletDishesDetailDTO dto) { @@ -52,4 +67,10 @@ public class AppletRecipeH5Controller extends BaseController { } + + ///下面是与订餐 + + + + } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/controller/MenuDishesController.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/controller/MenuDishesController.java index 48f253c..83323d7 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/controller/MenuDishesController.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/controller/MenuDishesController.java @@ -43,8 +43,8 @@ public class MenuDishesController extends BaseController { */ @ApiOperation(value = "查询菜品信息列表") //@RequiresPermissions("menu:dishes:list") - @GetMapping("/list") - public TableDataInfo list(MenuDishes menuDishes) { + @PostMapping("/list") + public TableDataInfo list(@RequestBody MenuDishes menuDishes) { startPage(); List list = menuDishesService.selectMenuDishesList(menuDishes); return getDataTable(list); @@ -68,10 +68,9 @@ public class MenuDishesController extends BaseController { * 获取菜品信息详细信息 */ @ApiOperation(value = "获取菜品信息详细信息") - //@RequiresPermissions("menu:dishes:query") - @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) { - return success(menuDishesService.selectMenuDishesById(id)); + @PostMapping(value = "/getInfo") + public AjaxResult getInfo(MenuDishes menuDishes) { + return success(menuDishesService.selectMenuDishesById(menuDishes.getId())); } @ApiOperation(value = "获取菜品信息详细信息") //@RequiresPermissions("menu:dishes:query") diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/domain/MenuDishes.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/domain/MenuDishes.java index 41f636d..264a088 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/domain/MenuDishes.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/domain/MenuDishes.java @@ -42,6 +42,10 @@ public class MenuDishes extends Model { private String intro; @ApiModelProperty("菜品类型ID") private Long typeId; + + @ApiModelProperty("菜品类型名称") + private String typeName; + @ApiModelProperty("菜品灶类ID") private Long cookId; @ApiModelProperty("菜品分类id(自定义)") @@ -168,6 +172,39 @@ public class MenuDishes extends Model { @ApiModelProperty("更新时间") private LocalDateTime updateTime; + @ApiModelProperty("条形码") + private String barCode; + + @ApiModelProperty("优先级") + private String sort; + + @ApiModelProperty("备注") + private String remark; + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getBarCode() { + return barCode; + } + + public void setBarCode(String barCode) { + this.barCode = barCode; + } + public Long getId() { return this.id; } @@ -752,4 +789,12 @@ public class MenuDishes extends Model { public void setUpdateTime(LocalDateTime updateTime) { this.updateTime = updateTime; } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/domain/MenuMaterial.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/domain/MenuMaterial.java index add822e..ee6d8e4 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/domain/MenuMaterial.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/domain/MenuMaterial.java @@ -66,11 +66,18 @@ public class MenuMaterial extends BaseEntity { @ApiModelProperty(value = "营养信息") private Long nutritionId; + @ApiModelProperty(value = "营养信息名称") + private String nutritionName; + /** 类别id */ @Excel(name = "类别id") @ApiModelProperty(value = "类别id") private Long categoryId; + @Excel(name = "类别名称") + @ApiModelProperty(value = "类别名称") + private String categoryName; + /** 原料类型(1原料2商品) */ @Excel(name = "原料类型(1原料2商品)") @ApiModelProperty(value = "原料类型(1原料2商品)") @@ -165,5 +172,8 @@ public class MenuMaterial extends BaseEntity { @ApiModelProperty(value = "转换数量 单位g") private Long convertGrams; + @ApiModelProperty(value = "营养信息类别") + private String nutritionType; + } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/domain/MenuRecipe.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/domain/MenuRecipe.java index 82e3c57..46fd38d 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/domain/MenuRecipe.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/domain/MenuRecipe.java @@ -3,6 +3,7 @@ package com.bonus.canteen.core.menu.domain; import java.util.Date; import java.util.List; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.bonus.common.core.annotation.Excel; import com.baomidou.mybatisplus.annotation.TableId; @@ -38,7 +39,9 @@ public class MenuRecipe { private String recipeName; @ApiModelProperty("食堂id") private Long canteenId; + @ApiModelProperty("档口id") + @TableField(exist = false) private List canteenIds; /** 档口id */ @@ -69,21 +72,25 @@ public class MenuRecipe { private Integer enableFlag; @ApiModelProperty("remark") private Integer remark; - private List stallIds; + @TableField(exist = false) + private List stallIds; + @TableField(exist = false) private List areaIds; /** 乐观锁 */ - + @TableField(exist = false) @ApiModelProperty(value = "选择日期") private String applyDate; + @TableField(exist = false) @ApiModelProperty(value = "设备类型") private String key; + @TableField(exist = false) @ApiModelProperty("设备类型") private List deviceTypeList; - + @TableField(exist = false) @ApiModelProperty("菜谱绑定类型") private Integer bindType; diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/dto/AppletWeekRecipeDTO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/dto/AppletWeekRecipeDTO.java new file mode 100644 index 0000000..f48127f --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/dto/AppletWeekRecipeDTO.java @@ -0,0 +1,20 @@ +package com.bonus.canteen.core.menu.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDate; + +@Data +public class AppletWeekRecipeDTO { + @ApiModelProperty("菜谱日期") + @DateTimeFormat(pattern = "yyyy-MM-dd") // Matc + private LocalDate applyDate; + @ApiModelProperty("人员id") + private Long custId; + @ApiModelProperty("菜谱id") + private Long recipeId; + private String date; + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/mapper/AppletRecipeH5Mapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/mapper/AppletRecipeH5Mapper.java index 09c0e68..588e88e 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/mapper/AppletRecipeH5Mapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/mapper/AppletRecipeH5Mapper.java @@ -6,8 +6,14 @@ import com.bonus.canteen.core.menu.domain.MenuDishesType; import com.bonus.canteen.core.menu.dto.AppletDishesDetailDTO; import com.bonus.canteen.core.menu.vo.AppletDishesDetailVO; import com.bonus.canteen.core.menu.vo.AppletWeekCanteenVO; +import com.bonus.canteen.core.menu.vo.AppletWeekRecipeVO; +import com.bonus.canteen.core.menu.vo.MenuMaterialBasVO; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import java.time.LocalDate; import java.util.List; +import java.util.Set; /** * 商家食材原料信息Mapper接口 @@ -23,4 +29,13 @@ public interface AppletRecipeH5Mapper { List selectWeekCanteenList(); AppletDishesDetailVO selectDishesDetailByDishesId(AppletDishesDetailDTO dishesDetailDTO); + + List selectWeekRecipeId(@Param("recipeId") Long recipeId, @Param("effIdSet") Set effIdSet); + + List selectWeekRecipe(@Param("applyDate") LocalDate applyDate, @Param("recipeId") Long recipeId, @Param("recipeIdList") List recipeIdList); + + List getMenuMaterialById(Long dishesId); + + @Select({"select md.dishes_name from menu_package_dishes mpd left join menu_dishes md on mpd.dishes_id = md.dishes_id where mpd.del_flag = 2 and mpd.package_id = #{dishesId}"}) + List selectDishesName(@Param("dishesId") Long dishesId); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/mapper/MenuRecipeDetailMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/mapper/MenuRecipeDetailMapper.java index 6133e78..130b7e7 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/mapper/MenuRecipeDetailMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/mapper/MenuRecipeDetailMapper.java @@ -2,18 +2,19 @@ package com.bonus.canteen.core.menu.mapper; import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.bonus.canteen.core.menu.domain.MenuRecipeDetail; /** * 菜品计划详情信息Mapper接口 - * + * * @author xsheng * @date 2025-04-03 */ -public interface MenuRecipeDetailMapper { +public interface MenuRecipeDetailMapper extends BaseMapper { /** * 查询菜品计划详情信息 - * + * * @param id 菜品计划详情信息主键 * @return 菜品计划详情信息 */ @@ -21,7 +22,7 @@ public interface MenuRecipeDetailMapper { /** * 查询菜品计划详情信息列表 - * + * * @param menuRecipeDetail 菜品计划详情信息 * @return 菜品计划详情信息集合 */ @@ -29,7 +30,7 @@ public interface MenuRecipeDetailMapper { /** * 新增菜品计划详情信息 - * + * * @param menuRecipeDetail 菜品计划详情信息 * @return 结果 */ @@ -37,7 +38,7 @@ public interface MenuRecipeDetailMapper { /** * 修改菜品计划详情信息 - * + * * @param menuRecipeDetail 菜品计划详情信息 * @return 结果 */ @@ -45,7 +46,7 @@ public interface MenuRecipeDetailMapper { /** * 删除菜品计划详情信息 - * + * * @param id 菜品计划详情信息主键 * @return 结果 */ @@ -53,7 +54,7 @@ public interface MenuRecipeDetailMapper { /** * 批量删除菜品计划详情信息 - * + * * @param ids 需要删除的数据主键集合 * @return 结果 */ diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/mapper/MenuRecipeDishesMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/mapper/MenuRecipeDishesMapper.java index 6e867b4..7ae737b 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/mapper/MenuRecipeDishesMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/mapper/MenuRecipeDishesMapper.java @@ -1,28 +1,33 @@ package com.bonus.canteen.core.menu.mapper; +import java.util.Collection; import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.bonus.canteen.core.menu.domain.MenuRecipeDetail; import com.bonus.canteen.core.menu.domain.MenuRecipeDishes; import org.apache.ibatis.annotations.Param; /** * 菜品计划菜品关联Mapper接口 - * + * * @author xsheng * @date 2025-04-03 */ -public interface MenuRecipeDishesMapper { +public interface MenuRecipeDishesMapper extends BaseMapper { /** * 查询菜品计划菜品关联 - * + * * @param id 菜品计划菜品关联主键 * @return 菜品计划菜品关联 */ public MenuRecipeDishes selectMenuRecipeDishesById(Long id); + + /** * 查询菜品计划菜品关联列表 - * + * * @param menuRecipeDishes 菜品计划菜品关联 * @return 菜品计划菜品关联集合 */ @@ -30,7 +35,7 @@ public interface MenuRecipeDishesMapper { /** * 新增菜品计划菜品关联 - * + * * @param menuRecipeDishes 菜品计划菜品关联 * @return 结果 */ @@ -38,7 +43,7 @@ public interface MenuRecipeDishesMapper { /** * 修改菜品计划菜品关联 - * + * * @param menuRecipeDishes 菜品计划菜品关联 * @return 结果 */ @@ -50,7 +55,7 @@ public interface MenuRecipeDishesMapper { /** * 删除菜品计划菜品关联 - * + * * @param id 菜品计划菜品关联主键 * @return 结果 */ @@ -58,9 +63,11 @@ public interface MenuRecipeDishesMapper { /** * 批量删除菜品计划菜品关联 - * + * * @param ids 需要删除的数据主键集合 * @return 结果 */ public int deleteMenuRecipeDishesByIds(Long[] ids); + + Integer insertValues(Collection list); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/mapper/MenuRecipeMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/mapper/MenuRecipeMapper.java index 10e2f5f..6decaa2 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/mapper/MenuRecipeMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/mapper/MenuRecipeMapper.java @@ -198,4 +198,6 @@ public interface MenuRecipeMapper extends BaseMapper { List selectMenuRecipeDishList(@Param("ew") Wrapper wrapper); List getSnByCanteenId(Long canteenId); + + int deleteRecipeByrecipeId(Long recipeId); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/AppletRecipeH5Service.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/AppletRecipeH5Service.java index 776a0b7..797c9dd 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/AppletRecipeH5Service.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/AppletRecipeH5Service.java @@ -1,9 +1,13 @@ package com.bonus.canteen.core.menu.service; +import com.baomidou.mybatisplus.extension.service.IService; +import com.bonus.canteen.core.menu.domain.MenuRecipe; import com.bonus.canteen.core.menu.dto.AppletDishesDetailDTO; import com.bonus.canteen.core.menu.dto.AppletWeekCanteenDTO; +import com.bonus.canteen.core.menu.dto.AppletWeekRecipeDTO; import com.bonus.canteen.core.menu.vo.AppletDishesDetailVO; import com.bonus.canteen.core.menu.vo.AppletWeekCanteenVO; +import com.bonus.canteen.core.menu.vo.AppletWeekRecipeVO; import java.util.List; import java.util.Set; @@ -12,10 +16,12 @@ import java.util.Set; * @author xliu * @date 2025/4/15 16:37 */ -public interface AppletRecipeH5Service { +public interface AppletRecipeH5Service extends IService { List getWeekMealList(AppletWeekCanteenDTO appletWeekCanteenDTO); Set getShopstallIdListByCustId(Long custId, boolean checkCustInfo); AppletDishesDetailVO getDishesDetailByDishesId(AppletDishesDetailDTO dto); + + List getWeekRecipeDetailList(AppletWeekRecipeDTO content); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/IMenuRecipeDetailService.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/IMenuRecipeDetailService.java index e8b6601..45fccb2 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/IMenuRecipeDetailService.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/IMenuRecipeDetailService.java @@ -1,18 +1,20 @@ package com.bonus.canteen.core.menu.service; import java.util.List; + +import com.baomidou.mybatisplus.extension.service.IService; import com.bonus.canteen.core.menu.domain.MenuRecipeDetail; /** * 菜品计划详情信息Service接口 - * + * * @author xsheng * @date 2025-04-03 */ -public interface IMenuRecipeDetailService { +public interface IMenuRecipeDetailService extends IService { /** * 查询菜品计划详情信息 - * + * * @param id 菜品计划详情信息主键 * @return 菜品计划详情信息 */ @@ -20,7 +22,7 @@ public interface IMenuRecipeDetailService { /** * 查询菜品计划详情信息列表 - * + * * @param menuRecipeDetail 菜品计划详情信息 * @return 菜品计划详情信息集合 */ @@ -28,7 +30,7 @@ public interface IMenuRecipeDetailService { /** * 新增菜品计划详情信息 - * + * * @param menuRecipeDetail 菜品计划详情信息 * @return 结果 */ @@ -36,7 +38,7 @@ public interface IMenuRecipeDetailService { /** * 修改菜品计划详情信息 - * + * * @param menuRecipeDetail 菜品计划详情信息 * @return 结果 */ @@ -44,7 +46,7 @@ public interface IMenuRecipeDetailService { /** * 批量删除菜品计划详情信息 - * + * * @param ids 需要删除的菜品计划详情信息主键集合 * @return 结果 */ @@ -52,7 +54,7 @@ public interface IMenuRecipeDetailService { /** * 删除菜品计划详情信息信息 - * + * * @param id 菜品计划详情信息主键 * @return 结果 */ diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/IMenuRecipeDishesService.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/IMenuRecipeDishesService.java index 6197417..5e6c25c 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/IMenuRecipeDishesService.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/IMenuRecipeDishesService.java @@ -1,26 +1,34 @@ package com.bonus.canteen.core.menu.service; +import java.util.Collection; import java.util.List; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.bonus.canteen.core.menu.domain.MenuRecipe; import com.bonus.canteen.core.menu.domain.MenuRecipeDishes; /** * 菜品计划菜品关联Service接口 - * + * * @author xsheng * @date 2025-04-03 */ -public interface IMenuRecipeDishesService { +public interface IMenuRecipeDishesService extends IService { /** * 查询菜品计划菜品关联 - * + * * @param id 菜品计划菜品关联主键 * @return 菜品计划菜品关联 */ public MenuRecipeDishes selectMenuRecipeDishesById(Long id); + @Override + boolean saveBatch(Collection entityList); + + /** * 查询菜品计划菜品关联列表 - * + * * @param menuRecipeDishes 菜品计划菜品关联 * @return 菜品计划菜品关联集合 */ @@ -28,7 +36,7 @@ public interface IMenuRecipeDishesService { /** * 新增菜品计划菜品关联 - * + * * @param menuRecipeDishes 菜品计划菜品关联 * @return 结果 */ @@ -36,7 +44,7 @@ public interface IMenuRecipeDishesService { /** * 修改菜品计划菜品关联 - * + * * @param menuRecipeDishes 菜品计划菜品关联 * @return 结果 */ @@ -55,7 +63,7 @@ public interface IMenuRecipeDishesService { /** * 批量删除菜品计划菜品关联 - * + * * @param ids 需要删除的菜品计划菜品关联主键集合 * @return 结果 */ @@ -63,7 +71,7 @@ public interface IMenuRecipeDishesService { /** * 删除菜品计划菜品关联信息 - * + * * @param id 菜品计划菜品关联主键 * @return 结果 */ diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/AppletRecipeH5ServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/AppletRecipeH5ServiceImpl.java index e7f024c..32bc931 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/AppletRecipeH5ServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/AppletRecipeH5ServiceImpl.java @@ -1,28 +1,42 @@ package com.bonus.canteen.core.menu.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bonus.canteen.core.android.vo.UserInfoVo; +import com.bonus.canteen.core.menu.domain.MenuRecipe; +import com.bonus.canteen.core.menu.domain.MenuRecipeDetail; +import com.bonus.canteen.core.menu.domain.MenuRecipeDishes; import com.bonus.canteen.core.menu.dto.AppletDishesDetailDTO; import com.bonus.canteen.core.menu.dto.AppletWeekCanteenDTO; +import com.bonus.canteen.core.menu.dto.AppletWeekRecipeDTO; import com.bonus.canteen.core.menu.enums.MktEffTypeEnum; import com.bonus.canteen.core.menu.enums.MktUserTypeEnum; import com.bonus.canteen.core.menu.mapper.AppletRecipeH5Mapper; import com.bonus.canteen.core.menu.mapper.MenuDishesMapper; +import com.bonus.canteen.core.menu.mapper.MenuRecipeMapper; import com.bonus.canteen.core.menu.service.AppletRecipeH5Service; -import com.bonus.canteen.core.menu.vo.AppletDishesDetailVO; -import com.bonus.canteen.core.menu.vo.AppletDishesSizeV2VO; -import com.bonus.canteen.core.menu.vo.AppletWeekCanteenVO; -import com.bonus.canteen.core.menu.vo.MktEffectiveUserVO; +import com.bonus.canteen.core.menu.service.IMenuRecipeDetailService; +import com.bonus.canteen.core.menu.service.IMenuRecipeDishesService; +import com.bonus.canteen.core.menu.vo.*; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.houqin.constant.DelFlagEnum; import com.bonus.common.houqin.i18n.I18n; +import com.bonus.common.houqin.utils.id.Id; +import com.google.common.collect.Lists; import com.google.common.collect.Sets; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.List; -import java.util.Set; +import java.time.LocalDate; +import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -30,11 +44,20 @@ import java.util.stream.Collectors; * @date 2025/4/15 16:38 */ @Service -public class AppletRecipeH5ServiceImpl implements AppletRecipeH5Service { +public class AppletRecipeH5ServiceImpl extends ServiceImpl implements AppletRecipeH5Service { @Resource private AppletRecipeH5Mapper appletRecipeH5Mapper; + @Resource + private IMenuRecipeDetailService menuRecipeDetailService; + + @Resource + private IMenuRecipeDishesService menuRecipeDishesService; + + @Resource + private MenuRecipeMapper menuRecipeMapper; + @Override public List getWeekMealList(AppletWeekCanteenDTO content) { //人员范围 暂时不用 @@ -44,8 +67,7 @@ public class AppletRecipeH5ServiceImpl implements AppletRecipeH5Service { // effIdSet.add(-1L); // } -// return this.menuAppRecipeMapper.selectWeekCanteenList(); - return null; + return this.appletRecipeH5Mapper.selectWeekCanteenList(); } @Override @@ -89,29 +111,145 @@ public class AppletRecipeH5ServiceImpl implements AppletRecipeH5Service { dishesDetailDTO.setDelFlag(DelFlagEnum.DEL_FALSE.key()); Long baseDishesId = dishesDetailDTO.getBaseDishesId(); Long custId = dishesDetailDTO.getCustId(); + //人员收藏信息暂时不管 // if (!ObjectUtil.isNull(custId) && custId != -1L) { - // AppletDishesDetailVO appletDishesDetailVO = menuAppRecipeMapper.selectDishesDetailByDishesId(dishesDetailDTO); -// Long countDishes = this.menuCollectionDishesMapper.selectCount(Wrappers.lambdaQuery(MenuCollectionDishes.class) + AppletDishesDetailVO appletDishesDetailVO = appletRecipeH5Mapper.selectDishesDetailByDishesId(dishesDetailDTO); +// Long countDishes = this.appletRecipeH5Mapper.selectCount(Wrappers.lambdaQuery(MenuCollectionDishes.class) // .eq(MenuCollectionDishes::getCustId, custId).eq(MenuCollectionDishes::getDishesId, baseDishesId)); // if (ObjectUtil.isNotNull(countDishes) && countDishes > 0L) { // appletDishesDetailVO.setIsFavorites(1); // } else { // appletDishesDetailVO.setIsFavorites(2); // } -// -// Long dishesId = ((AppletDishesSizeV2VO) appletDishesDetailVO.getDishesDetailList().get(0)).getDishesId(); -// List materialList; -// if (appletDishesDetailVO.getMealType() == 1) { -// materialList = this.menuMaterialDishesMapper.getMenuMaterialById(dishesId); -// appletDishesDetailVO.setMaterialList(materialList); -// } else { -// materialList = this.menuPackageDishesMapper.selectDishesName(dishesId); + + Long dishesId = ((AppletDishesSizeV2VO) appletDishesDetailVO.getDishesDetailList().get(0)).getDishesId(); + List materialList; + if (appletDishesDetailVO.getMealType() == 1) { + materialList = this.appletRecipeH5Mapper.getMenuMaterialById(dishesId); + appletDishesDetailVO.setMaterialList(materialList); + } else { + //套餐信息 暂时删除不要 +// materialList = this.appletRecipeH5Mapper.selectDishesName(dishesId); // appletDishesDetailVO.setPackageDishesList(materialList); -// } -// return appletDishesDetailVO; + } + return appletDishesDetailVO; // } else { // throw new ServiceException(I18n.getMessage("menu_no_cust_info", new Object[0])); // } - return null; } + + @Override + public List getWeekRecipeDetailList(AppletWeekRecipeDTO content) { + List recipeIdList = Lists.newArrayList(); + if (ObjectUtil.isNull(content.getRecipeId())) { + Set effIdSet = this.getShopstallIdListByCustId(content.getCustId(), false); + if (ObjectUtil.isEmpty(effIdSet)) { + effIdSet = Sets.newTreeSet(); + effIdSet.add(-1L); + } + + recipeIdList = this.appletRecipeH5Mapper.selectWeekRecipeId(content.getRecipeId(), (Set) effIdSet); + if (ObjectUtil.isEmpty(recipeIdList)) { + return Lists.newArrayList(); + } + } else { + recipeIdList.add(content.getRecipeId()); + } + + this.generateRecipe(recipeIdList, content.getApplyDate()); + List resultList = appletRecipeH5Mapper.selectWeekRecipe(content.getApplyDate(), content.getRecipeId(), (List) recipeIdList); + resultList.sort(Collections.reverseOrder((s1, s2) -> { + return s2.getMealtimeType() - s1.getMealtimeType(); + })); + return resultList; + } + + @Transactional(rollbackFor = {Exception.class}) + public synchronized void generateRecipe(List recipeIdList, LocalDate applyDate) { + if (!ObjectUtil.isEmpty(recipeIdList) && !ObjectUtil.isEmpty(applyDate)) { + recipeIdList = new ArrayList(recipeIdList); + Map recipeDetailContMap = (Map) this.menuRecipeDetailService.list((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery(MenuRecipeDetail.class).select(MenuRecipeDetail::getRecipeId).eq(MenuRecipeDetail::getApplyDate, applyDate)).in(MenuRecipeDetail::getRecipeId, recipeIdList)).stream().collect(Collectors.groupingBy(MenuRecipeDetail::getRecipeId, Collectors.counting())); + recipeIdList.removeAll(recipeDetailContMap.keySet()); + if (!ObjectUtil.isEmpty(recipeIdList)) { + List menuRecipes = this.list((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery(MenuRecipe.class).in(MenuRecipe::getRecipeType, new Object[]{2, 3})).apply(CollUtil.isNotEmpty(recipeIdList), "recipe_id IN (" + recipeIdList.stream().map(String::valueOf).collect(Collectors.joining(", ")) + ")")); + if (!ObjectUtil.isEmpty(menuRecipes)) { + Map recipeMap = (Map) menuRecipes.stream().collect(Collectors.toMap(MenuRecipe::getRecipeId, Function.identity())); + List menuRecipeDetails = this.menuRecipeDetailService.list((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery(MenuRecipeDetail.class).eq(MenuRecipeDetail::getDetailType, 1)).apply(CollUtil.isNotEmpty(recipeIdList), "recipe_id IN (" + recipeIdList.stream().map(String::valueOf).collect(Collectors.joining(", ")) + ")")); + Map recipeTypeMap = (Map) menuRecipes.stream().collect(Collectors.toMap(MenuRecipe::getRecipeId, MenuRecipe::getRecipeType)); + menuRecipeDetails = this.filterMenuRecipeDetails(recipeTypeMap, menuRecipeDetails, applyDate); + if (!ObjectUtil.isEmpty(menuRecipeDetails)) { + Map> detailMap = (Map) menuRecipeDetails.stream().collect(Collectors.groupingBy(MenuRecipeDetail::getRecipeId)); + List detailIds = (List) menuRecipeDetails.stream().map(MenuRecipeDetail::getDetailId).collect(Collectors.toList()); + Map> recipeDishes = (Map) this.menuRecipeDishesService.list((Wrapper) Wrappers.lambdaQuery(MenuRecipeDishes.class).in(MenuRecipeDishes::getDetailId, detailIds)).stream().collect(Collectors.groupingBy(MenuRecipeDishes::getDetailId)); + 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.menuRecipeDetailService.saveBatch(recipeDetailV2List); + if (ObjectUtil.isNotEmpty(recipeDishesV2List)) { + this.menuRecipeDishesService.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; + } + MenuRecipeDetail recipeDetail = (MenuRecipeDetail) var17.next(); + MenuRecipeDetail detailItem = new MenuRecipeDetail(); + 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.setDetailType(2); + recipeDetailV2List.add(detailItem); + dishes = (List) recipeDishes.get(recipeDetail.getDetailId()); + } while (!ObjectUtil.isNotEmpty(dishes)); + Iterator var22 = dishes.iterator(); + while (var22.hasNext()) { + MenuRecipeDishes dish = (MenuRecipeDishes) var22.next(); + MenuRecipeDishes dishesItem = (MenuRecipeDishes) BeanUtil.copyProperties(dish, MenuRecipeDishes.class, new String[0]); + dishesItem.setDetailId(detailId); + dishesItem.setId((Long) null); + recipeDishesV2List.add(dishesItem); + } + } + } + } + } + } + } + } + + public List filterMenuRecipeDetails(Map recipeTypeMap, List menuRecipeDetails, LocalDate applyDate) { + return menuRecipeDetails.stream().filter((item) -> { + Long recipeId = item.getRecipeId(); + Integer type = (Integer) recipeTypeMap.get(recipeId); + if (type == 3) { + return ObjectUtil.equal(item.getApplyWeek(), applyDate.getDayOfWeek().getValue()); + } else { + return type == 2; + } + }).collect(Collectors.toList()); + } + } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuDishesServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuDishesServiceImpl.java index 334b714..a994837 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuDishesServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuDishesServiceImpl.java @@ -196,17 +196,23 @@ public class MenuDishesServiceImpl implements IMenuDishesService { System.err.println("长度:"+materialList.size()); for (MenuDishesAddMaterialDTO i: materialList) { NutritionEntity nutritionEntity = menuDishesMapper.getNutritionEntity(i); - System.err.println(i.getMaterialId()+",开始值:"+nutritionEntity.getCalcium()); - nutritionEntity.setWeight(i.getWeight()); - nutritionEntity.setBaseWeight(100.0); - nutritionEntityList.add(nutritionEntity); + if(nutritionEntity !=null){ + System.err.println(i.getMaterialId()+",开始值:"+nutritionEntity.getCalcium()); + nutritionEntity.setWeight(i.getWeight()); + nutritionEntity.setBaseWeight(100.0); + nutritionEntityList.add(nutritionEntity); + } } NutritionEntityUtil nutritionEntityUtil = new NutritionEntityUtil(); NutritionEntity nutritionEntity = nutritionEntityUtil.countNutrition(nutritionEntityList); - - - System.err.println("最终值:"+nutritionEntity.getCalcium()); - return menuDishesMapper.addFinalNutrition(nutritionEntity); + if(nutritionEntityList !=null && nutritionEntityList.size() >0){ + System.err.println("总和:"+nutritionEntity.getCalcium()); + //计算营养成分 + nutritionEntity = countNum(nutritionEntity,menuDishesDTO.getWeight()); + System.err.println("计算后:"+nutritionEntity.getCalcium()); + return menuDishesMapper.addFinalNutrition(nutritionEntity); + } + return 1; } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuMaterialServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuMaterialServiceImpl.java index 4a33542..00bf9bb 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuMaterialServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuMaterialServiceImpl.java @@ -91,7 +91,7 @@ public class MenuMaterialServiceImpl implements IMenuMaterialService { public int updateMenuMaterial(MenuMaterial menuMaterial) { try { MenuMaterial one = menuMaterialMapper.getOne(menuMaterial); - if(one !=null){ + if(one !=null && !menuMaterial.getMaterialName().equals(one.getMaterialName())){ throw new ServiceException("食材原料名称已存在"); } return menuMaterialMapper.updateMenuMaterial(menuMaterial); diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuRecipeDetailServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuRecipeDetailServiceImpl.java index 13006c8..24edb48 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuRecipeDetailServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuRecipeDetailServiceImpl.java @@ -3,6 +3,8 @@ package com.bonus.canteen.core.menu.service.impl; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -13,18 +15,18 @@ import com.bonus.canteen.core.menu.service.IMenuRecipeDetailService; /** * 菜品计划详情信息Service业务层处理 - * + * * @author xsheng * @date 2025-04-03 */ @Service -public class MenuRecipeDetailServiceImpl implements IMenuRecipeDetailService { +public class MenuRecipeDetailServiceImpl extends ServiceImpl implements IMenuRecipeDetailService { @Autowired private MenuRecipeDetailMapper menuRecipeDetailMapper; /** * 查询菜品计划详情信息 - * + * * @param id 菜品计划详情信息主键 * @return 菜品计划详情信息 */ @@ -35,7 +37,7 @@ public class MenuRecipeDetailServiceImpl implements IMenuRecipeDetailService { /** * 查询菜品计划详情信息列表 - * + * * @param menuRecipeDetail 菜品计划详情信息 * @return 菜品计划详情信息 */ @@ -46,7 +48,7 @@ public class MenuRecipeDetailServiceImpl implements IMenuRecipeDetailService { /** * 新增菜品计划详情信息 - * + * * @param menuRecipeDetail 菜品计划详情信息 * @return 结果 */ @@ -62,7 +64,7 @@ public class MenuRecipeDetailServiceImpl implements IMenuRecipeDetailService { /** * 修改菜品计划详情信息 - * + * * @param menuRecipeDetail 菜品计划详情信息 * @return 结果 */ @@ -78,7 +80,7 @@ public class MenuRecipeDetailServiceImpl implements IMenuRecipeDetailService { /** * 批量删除菜品计划详情信息 - * + * * @param ids 需要删除的菜品计划详情信息主键 * @return 结果 */ @@ -89,7 +91,7 @@ public class MenuRecipeDetailServiceImpl implements IMenuRecipeDetailService { /** * 删除菜品计划详情信息信息 - * + * * @param id 菜品计划详情信息主键 * @return 结果 */ diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuRecipeDishesServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuRecipeDishesServiceImpl.java index e8f377a..1298a7a 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuRecipeDishesServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuRecipeDishesServiceImpl.java @@ -1,10 +1,17 @@ package com.bonus.canteen.core.menu.service.impl; import java.time.LocalDateTime; +import java.util.Collection; +import java.util.Iterator; import java.util.List; import com.bonus.canteen.core.account.service.impl.AccSubServiceImpl; import com.bonus.canteen.core.common.utils.RedisUtil; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bonus.canteen.core.menu.domain.MenuRecipeDetail; +import com.bonus.canteen.core.menu.mapper.MenuRecipeDetailMapper; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.houqin.constant.GlobalConstants; @@ -18,20 +25,22 @@ import com.bonus.canteen.core.menu.service.IMenuRecipeDishesService; /** * 菜品计划菜品关联Service业务层处理 - * + * * @author xsheng * @date 2025-04-03 */ @Service -public class MenuRecipeDishesServiceImpl implements IMenuRecipeDishesService { - private static final Logger log = LoggerFactory.getLogger(MenuRecipeDishesServiceImpl.class); + +public class MenuRecipeDishesServiceImpl extends ServiceImpl implements IMenuRecipeDishesService { + + private static final Logger log = LoggerFactory.getLogger(MenuRecipeDishesServiceImpl.class); @Autowired private MenuRecipeDishesMapper menuRecipeDishesMapper; /** * 查询菜品计划菜品关联 - * + * * @param id 菜品计划菜品关联主键 * @return 菜品计划菜品关联 */ @@ -40,9 +49,21 @@ public class MenuRecipeDishesServiceImpl implements IMenuRecipeDishesService { return menuRecipeDishesMapper.selectMenuRecipeDishesById(id); } + @Override + public boolean saveBatch(Collection entityList) { + Iterator var2 = CollUtil.split(entityList, 500).iterator(); + + while(var2.hasNext()) { + List menuRecipeDishes = (List)var2.next(); + menuRecipeDishesMapper.insertValues(menuRecipeDishes); + } + + return true; + } + /** * 查询菜品计划菜品关联列表 - * + * * @param menuRecipeDishes 菜品计划菜品关联 * @return 菜品计划菜品关联 */ @@ -53,7 +74,7 @@ public class MenuRecipeDishesServiceImpl implements IMenuRecipeDishesService { /** * 新增菜品计划菜品关联 - * + * * @param menuRecipeDishes 菜品计划菜品关联 * @return 结果 */ @@ -69,7 +90,7 @@ public class MenuRecipeDishesServiceImpl implements IMenuRecipeDishesService { /** * 修改菜品计划菜品关联 - * + * * @param menuRecipeDishes 菜品计划菜品关联 * @return 结果 */ @@ -141,7 +162,7 @@ public class MenuRecipeDishesServiceImpl implements IMenuRecipeDishesService { /** * 批量删除菜品计划菜品关联 - * + * * @param ids 需要删除的菜品计划菜品关联主键 * @return 结果 */ @@ -152,7 +173,7 @@ public class MenuRecipeDishesServiceImpl implements IMenuRecipeDishesService { /** * 删除菜品计划菜品关联信息 - * + * * @param id 菜品计划菜品关联主键 * @return 结果 */ diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuRecipeServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuRecipeServiceImpl.java index 9095642..65354c0 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuRecipeServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/service/impl/MenuRecipeServiceImpl.java @@ -390,8 +390,10 @@ public class MenuRecipeServiceImpl extends ServiceImpl 0) { throw new ServiceException(I18n.getMessage("menu_recipe_applet_bind_del", new Object[0])); } else { - this.baseMapper.delete( Wrappers.lambdaUpdate(MenuRecipe.class) - .in(MenuRecipe::getRecipeId, recipeId)); +// this.baseMapper.delete( Wrappers.lambdaUpdate(MenuRecipe.class) +// .in(MenuRecipe::getRecipeId, recipeId)); + + menuRecipeMapper.deleteRecipeByrecipeId(recipeId); List detailIdList = this.menuRecipeMapper.getDetailIdList(recipeId); if (ObjectUtil.isNotEmpty(detailIdList)) { @@ -753,6 +755,9 @@ public class MenuRecipeServiceImpl extends ServiceImpl dishesDetailList; + + public String getDishesImgUrl() { + return ObjectUtil.isNotEmpty(this.dishesImgUrl) ? SysUtil.getCutFileUrl(this.dishesImgUrl.split(",")[0]) : this.dishesImgUrl; + } + + public Long getBaseDishesId() { + return this.baseDishesId; + } + + public String getDishesName() { + return this.dishesName; + } + + public Long getDetailId() { + return this.detailId; + } + + public Long getCanteenId() { + return this.canteenId; + } + + public String getCanteenName() { + return this.canteenName; + } + + public Long getStallId() { + return this.stallId; + } + + public String getStallName() { + return this.stallName; + } + + public List getDishesDetailList() { + return this.dishesDetailList; + } + + public void setBaseDishesId(final Long baseDishesId) { + this.baseDishesId = baseDishesId; + } + + public void setDishesName(final String dishesName) { + this.dishesName = dishesName; + } + + public void setDishesImgUrl(final String dishesImgUrl) { + this.dishesImgUrl = dishesImgUrl; + } + + public void setDetailId(final Long detailId) { + this.detailId = detailId; + } + + public void setCanteenId(final Long canteenId) { + this.canteenId = canteenId; + } + + public void setCanteenName(final String canteenName) { + this.canteenName = canteenName; + } + + public void setStallId(final Long stallId) { + this.stallId = stallId; + } + + public void setStallName(final String stallName) { + this.stallName = stallName; + } + + public void setDishesDetailList(final List dishesDetailList) { + this.dishesDetailList = dishesDetailList; + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/vo/AppletWeekRecipeTypeVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/vo/AppletWeekRecipeTypeVO.java new file mode 100644 index 0000000..f8d3fb9 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/vo/AppletWeekRecipeTypeVO.java @@ -0,0 +1,41 @@ +package com.bonus.canteen.core.menu.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.List; + +@ApiModel("分类详情") +public class AppletWeekRecipeTypeVO { + @ApiModelProperty("菜品类别id") + private Long typeId; + @ApiModelProperty("菜品类别名称") + private String typeName; + @ApiModelProperty("菜品详情") + private List dishesList; + + public Long getTypeId() { + return this.typeId; + } + + public String getTypeName() { + return this.typeName; + } + + public List getDishesList() { + return this.dishesList; + } + + public void setTypeId(final Long typeId) { + this.typeId = typeId; + } + + public void setTypeName(final String typeName) { + this.typeName = typeName; + } + + public void setDishesList(final List dishesList) { + this.dishesList = dishesList; + } + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/vo/AppletWeekRecipeVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/vo/AppletWeekRecipeVO.java new file mode 100644 index 0000000..efe7369 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/vo/AppletWeekRecipeVO.java @@ -0,0 +1,41 @@ +package com.bonus.canteen.core.menu.vo; + +import com.bonus.canteen.core.menu.enums.AllocMealtimeTypeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.List; + +@ApiModel("获取一周菜谱详情") +public class AppletWeekRecipeVO { + @ApiModelProperty("餐次类型") + private Integer mealtimeType; + @ApiModelProperty("餐次名称") + private String mealtimeName; + @ApiModelProperty("分类详情") + private List typeList; + + public String getMealtimeName() { + return AllocMealtimeTypeEnum.getDescByKey(this.mealtimeType); + } + + public Integer getMealtimeType() { + return this.mealtimeType; + } + + public List getTypeList() { + return this.typeList; + } + + public void setMealtimeType(final Integer mealtimeType) { + this.mealtimeType = mealtimeType; + } + + public void setMealtimeName(final String mealtimeName) { + this.mealtimeName = mealtimeName; + } + + public void setTypeList(final List typeList) { + this.typeList = typeList; + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/vo/MenuRecipeDetailDishesVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/vo/MenuRecipeDetailDishesVO.java index 5b779ac..2658472 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/vo/MenuRecipeDetailDishesVO.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/menu/vo/MenuRecipeDetailDishesVO.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil; import com.bonus.canteen.core.menu.enums.MenuSalesTypeEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; import java.io.Serializable; @@ -12,6 +13,12 @@ public class MenuRecipeDetailDishesVO implements Serializable { private Long id; @ApiModelProperty("菜品id") private Long dishesId; + + @Getter + @ApiModelProperty("菜品基础id") + private long baseDishesId; + + @ApiModelProperty("菜品名称") private String dishesName; @ApiModelProperty("菜品编号") @@ -49,6 +56,11 @@ public class MenuRecipeDetailDishesVO implements Serializable { @ApiModelProperty("称重单位多少克(默认1kg)") private Integer unitPrice; + + public void setBaseDishesId(long baseDishesId) { + this.baseDishesId = baseDishesId; + } + public Long getSizeType() { if (ObjectUtil.isNull(this.sizeType)) { if (MenuSalesTypeEnum.PORTION_ON.key().equals(this.salesMode)) { diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/device/DoubleScreenMachineMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/device/DoubleScreenMachineMapper.xml index 6750331..2bdf54d 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/device/DoubleScreenMachineMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/device/DoubleScreenMachineMapper.xml @@ -156,4 +156,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - \ No newline at end of file + + + insert into device_recipe(id,device_id, canteen_id,stall_id, + revision) + values (#{id},#{deviceId}, #{canteenId}, #{stallId},'0') + + + + update device_recipe + + + canteen_id = #{canteenId}, + + + stall_id = #{stallId}, + + + recipe_id = #{recipeId}, + + + where device_id = #{deviceId} + + diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/AppletRecipeH5Mapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/AppletRecipeH5Mapper.xml index fff6939..169b8cb 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/AppletRecipeH5Mapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/AppletRecipeH5Mapper.xml @@ -101,7 +101,118 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where mdb.base_dishes_id = #{baseDishesId} and mrd.detail_id = #{detailId} - and md.del_flag = #{delFlag} + limit 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuDishesMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuDishesMapper.xml index b14405e..3fb78fc 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuDishesMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuDishesMapper.xml @@ -79,90 +79,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + - select id, dishes_id, base_dishes_id, meal_type, dishes_num, custom_id, inventory_id, dishes_name, alias_name, pinyin_initials, pinyin_full, bar_code, intro, cook_id, type_id, classify_id, effect_id, style_id, if_local_feature, dishes_depart, sequence, pungency_degree, sales_mode, size_type, size_json, weight, large_weight, little_weight, weight_deviation, price, unit_price, large_price, little_price, image_url, particulars, recommend, index_recommend, like_survey, like_batch, like_num, initial_score, calories, protein, fat, carbohydrate, dietary_fiber, cholesterol, calcium, sodium, purine, iron, iodine, kalium, vitamin_a, vitamin_c, vitamin_e, magnesium, zinc, glycemic_index, sort, canteen_id, shopstall_id, hide_flag, convert_flag, material_cost, gross_profit, gross_profit_rate, public_dishes, area_id, revision, create_by, create_time, update_by, update_time, remark from menu_dishes + select b.*,a.type_name + from menu_dishes b + LEFT JOIN menu_dishes_type a on a.type_id = b.type_id @@ -479,7 +420,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{weight}, #{weightDeviation}, #{imageUrl}, - #{effectId}}, + #{effectId}, #{styleId}, #{cookId}, #{classifyId}, @@ -568,5 +509,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from menu_nutrition where nutrition_id = #{materialId} - + diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuMaterialMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuMaterialMapper.xml index 17a09f1..944fab0 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuMaterialMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuMaterialMapper.xml @@ -13,7 +13,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -49,6 +52,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mm.pinyin_full, mm.image_url, mm.nutrition_id, + mm.nutrition_type, + muu.nutrition_name, mm.category_id, mmc.category_name, mm.material_type, @@ -75,7 +80,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" LEFT JOIN alloc_area aa on aa.area_id = mm.area_id LEFT JOIN menu_material_category mmc on mmc.category_id = mm.category_id LEFT JOIN drp_unit du on du.unit_id = mm.unit_id - + LEFT JOIN menu_nutrition muu on muu.nutrition_id = mm.nutrition_id - select max(id) from menu_material + select ifnull(max(id) ,0) from menu_material - + and detail_id = #{detailId} and dishes_id = #{dishesId} and price = #{price} @@ -51,12 +51,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and revision = #{revision} - + - + insert into menu_recipe_dishes @@ -151,9 +151,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from menu_recipe_dishes where id in + delete from menu_recipe_dishes where id in #{id} - \ No newline at end of file + + + INSERT INTO menu_recipe_dishes + (detail_id, dishes_id, price, size_type, supply_num, sale_num, surplus_num, + restrict_num, sale_price, recommend_flag, crby, crtime, upby, uptime, sort_num) + VALUES + + ( #{item.detailId}, #{item.dishesId},#{item.price},#{item.sizeType},#{item.supplyNum},#{item.saleNum},#{item.surplusNum}, + #{item.restrictNum},#{item.salePrice},#{item.recommendFlag} + ,#{item.crby},#{item.crtime},#{item.upby},#{item.uptime},#{item.sortNum}) + + + diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuRecipeMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuRecipeMapper.xml index 99af080..59e6303 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuRecipeMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/menu/MenuRecipeMapper.xml @@ -517,7 +517,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select DISTINCT mrd.mealtime_type, mrd.detail_id, - mdb.base_dishes_id as dishes_id, + mdb.base_dishes_id , + md.dishes_id, mdb.dishes_name, mrdd.id, mrdd.price, @@ -642,6 +643,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -666,7 +668,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + delete from menu_recipe where recipe_id = #{recipeId} +