当前菜谱bind

This commit is contained in:
sxu 2025-05-29 13:51:22 +08:00
parent d62a462c9a
commit d9bfcc0c30
3 changed files with 130 additions and 53 deletions

View File

@ -2,6 +2,8 @@ package com.bonus.canteen.core.cook.mapper;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List; import java.util.List;
import com.bonus.canteen.core.cook.domain.CookAppRecipe;
import com.bonus.canteen.core.cook.domain.CookRecipe; import com.bonus.canteen.core.cook.domain.CookRecipe;
import com.bonus.canteen.core.cook.dto.CookRecipeDTO; import com.bonus.canteen.core.cook.dto.CookRecipeDTO;
import com.bonus.canteen.core.cook.dto.CookRecipeDetailDTO; import com.bonus.canteen.core.cook.dto.CookRecipeDetailDTO;
@ -59,6 +61,20 @@ public interface CookRecipeMapper {
*/ */
public int updateCookRecipe(CookRecipeDTO cookRecipeDTO); public int updateCookRecipe(CookRecipeDTO cookRecipeDTO);
List<Integer> getDeviceIdByDevivce(@Param("canteenId")String canteenId, @Param("stallId")String stallId);
List<String> getDeviceSnByIds(@Param("list") List<Integer> deviceInfoList);
boolean checkIfAlreadyBind(CookAppRecipe appRecipe);
List<Long> selectRecipeInSameShop(@Param("stallId") Long stallId, @Param("bindType") Integer bindType, @Param("mealLineId") Long mealLineId);
void deleteBind(CookAppRecipe appRecipe);
int insertBind(CookAppRecipe appRecipe);
void updateRecipeByCanteenStallMeal(@Param("recipeId")String recipeId, @Param("canteenId")String canteenId, @Param("stallId")String stallId, @Param("deviceIds")List<Integer> deviceIds);
/** /**
* 删除菜品计划信息 * 删除菜品计划信息
* *

View File

@ -308,65 +308,65 @@ public class CookRecipeServiceImpl implements ICookRecipeService {
} }
public void bindCookRecipe(CookRecipeBindDTO cookRecipeDTO) { public void bindCookRecipe(CookRecipeBindDTO cookRecipeDTO) {
// CookRecipe menuRecipe = this.cookRecipeMapper.selectCookRecipeByRecipeId(cookRecipeDTO.getRecipeId()); CookRecipe menuRecipe = this.cookRecipeMapper.selectCookRecipeByRecipeId(cookRecipeDTO.getRecipeId());
// List<Integer> deviceInfoList = new ArrayList<>(); List<Integer> deviceInfoList = new ArrayList<>();
// if(cookRecipeDTO.getStallId() !=null){ if(cookRecipeDTO.getStallId() !=null){
// deviceInfoList = this.cookRecipeMapper.getDeviceIdByDevivce(null, String.valueOf(cookRecipeDTO.getStallId())); deviceInfoList = this.cookRecipeMapper.getDeviceIdByDevivce(null, String.valueOf(cookRecipeDTO.getStallId()));
// if(deviceInfoList == null || deviceInfoList.isEmpty() || deviceInfoList.size() == 0){ if(deviceInfoList == null || deviceInfoList.isEmpty() || deviceInfoList.size() == 0){
// throw new ServiceException("该食堂档口下没有设备信息"); throw new ServiceException("该食堂档口下没有设备信息");
// } }
// } }
// List<String> deviceSnList = this.cookRecipeMapper.getDeviceSnByIds(deviceInfoList); List<String> deviceSnList = this.cookRecipeMapper.getDeviceSnByIds(deviceInfoList);
// CookRecipeSortEnum sortEnum = CookRecipeSortEnum.getBindTypeMap().get(cookRecipeDTO.getBindType()); CookRecipeSortEnum sortEnum = CookRecipeSortEnum.getBindTypeMap().get(cookRecipeDTO.getBindType());
// CookAppRecipe mar = new CookAppRecipe(); CookAppRecipe mar = new CookAppRecipe();
// mar.setRecipeId(cookRecipeDTO.getRecipeId()); mar.setRecipeId(cookRecipeDTO.getRecipeId());
// mar.setMealLineId(cookRecipeDTO.getMealLineId()); mar.setMealLineId(cookRecipeDTO.getMealLineId());
// mar.setBindType(cookRecipeDTO.getBindType()); mar.setBindType(cookRecipeDTO.getBindType());
// List<Integer> deviceTypeList = cookRecipeMapper.getDeviceIdByDevivce(null, String.valueOf(menuRecipe.getStallId())); List<Integer> deviceTypeList = cookRecipeMapper.getDeviceIdByDevivce(null, String.valueOf(menuRecipe.getStallId()));
// if (ObjectUtil.isEmpty(sortEnum)) { if (ObjectUtil.isEmpty(sortEnum)) {
// throw new ServiceException("bingType值异常"); throw new ServiceException("bingType值异常");
// } else { } else {
// List<Integer> deviceTypes = sortEnum.getDeviceType(); List<Integer> deviceTypes = sortEnum.getDeviceType();
// if (cookRecipeDTO.getHandleType().equals(1)) { if (cookRecipeDTO.getHandleType().equals(1)) {
// boolean exists; boolean exists;
// if (CookBindTypeEnum.RESERVE.key().equals(cookRecipeDTO.getBindType())) { // if (CookBindTypeEnum.RESERVE.key().equals(cookRecipeDTO.getBindType())) {
// exists = this.checkCanteenIfReserve(menuRecipe.getCanteenId(), menuRecipe.getStallId()); // exists = this.checkCanteenIfReserve(menuRecipe.getCanteenId(), menuRecipe.getStallId());
// if (!exists) { // if (!exists) {
// throw new ServiceException("不支持预订餐"); // throw new ServiceException("不支持预订餐");
// } // }
// } // }
// exists = this.cookRecipeMapper.exists(mar); exists = this.cookRecipeMapper.checkIfAlreadyBind(mar);
// if (exists) { if (exists) {
// throw new ServiceException("菜谱已被使用,请勿重复绑定"); throw new ServiceException("菜谱已被使用,请勿重复绑定");
// } }
// List<Long> sourceRecipeList = this.cookRecipeMapper.selectRecipeInSameShop(menuRecipe.getStallId(), null, cookRecipeDTO.getBindType(), content.getMealLineId()); List<Long> sourceRecipeList = this.cookRecipeMapper.selectRecipeInSameShop(menuRecipe.getStallId(), cookRecipeDTO.getBindType(), cookRecipeDTO.getMealLineId());
// if (ObjectUtil.isNotEmpty(sourceRecipeList)) { if (ObjectUtil.isNotEmpty(sourceRecipeList)) {
// mar.setRecipeIds(sourceRecipeList); mar.setRecipeIds(sourceRecipeList);
// this.cookRecipeMapper.delete(mar); this.cookRecipeMapper.deleteBind(mar);
// } }
// CookAppRecipe appRecipe = new CookAppRecipe(); CookAppRecipe appRecipe = new CookAppRecipe();
// appRecipe.setRecipeId(cookRecipeDTO.getRecipeId()); appRecipe.setRecipeId(cookRecipeDTO.getRecipeId());
// appRecipe.setBindType(cookRecipeDTO.getBindType()); appRecipe.setBindType(cookRecipeDTO.getBindType());
// appRecipe.setMealLineId(cookRecipeDTO.getMealLineId()); appRecipe.setMealLineId(cookRecipeDTO.getMealLineId());
// appRecipe.setBindTime(LocalDateTime.now()); appRecipe.setBindTime(LocalDateTime.now());
// this.cookRecipeMapper.insert(appRecipe); this.cookRecipeMapper.insertBind(appRecipe);
// if (ObjectUtil.isNotEmpty(deviceTypes) && deviceTypeList!= null && !deviceTypeList.isEmpty()) { if (ObjectUtil.isNotEmpty(deviceTypes) && deviceTypeList!= null && !deviceTypeList.isEmpty()) {
// this.cookRecipeMapper.updateRecipeByCanteeStallMeal(String.valueOf(cookRecipeDTO.getRecipeId()), String.valueOf(menuRecipe.getCanteenId()), String.valueOf(menuRecipe.getStallId()),deviceTypeList); this.cookRecipeMapper.updateRecipeByCanteenStallMeal(String.valueOf(cookRecipeDTO.getRecipeId()), String.valueOf(menuRecipe.getCanteenId()), String.valueOf(menuRecipe.getStallId()),deviceTypeList);
// } }
// MqUtil.sendDataChange(menuRecipe, LeMqConstant.DataChangeType.ADD, LeMqConstant.Topic.DATA_CHANGE_RECIPE_RELEASE); MqUtil.sendDataChange(menuRecipe, LeMqConstant.DataChangeType.ADD, LeMqConstant.Topic.DATA_CHANGE_RECIPE_RELEASE);
// } else { } else {
// mar.setRecipeIds(Collections.singletonList(mar.getRecipeId())); mar.setRecipeIds(Collections.singletonList(mar.getRecipeId()));
// this.cookRecipeMapper.delete(mar); this.cookRecipeMapper.deleteBind(mar);
// if (ObjectUtil.isNotEmpty(deviceTypes) && deviceTypeList!= null && !deviceTypeList.isEmpty()) { if (ObjectUtil.isNotEmpty(deviceTypes) && deviceTypeList!= null && !deviceTypeList.isEmpty()) {
// this.cookRecipeMapper.updateRecipeByCanteeStallMeal("-1", String.valueOf(menuRecipe.getCanteenId()), String.valueOf(menuRecipe.getStallId()), deviceTypeList); this.cookRecipeMapper.updateRecipeByCanteenStallMeal("-1", String.valueOf(menuRecipe.getCanteenId()), String.valueOf(menuRecipe.getStallId()), deviceTypeList);
// } }
// } }
// //发送mq //发送mq
// for (String deviceSn : deviceSnList){ for (String deviceSn : deviceSnList){
// DeviceMqPersonalUpdateMessageDTO bean = new DeviceMqPersonalUpdateMessageDTO().setUpdatePerson(0,cookRecipeDTO.getHandleType().equals(1) ? "update" : "del"); DeviceMqPersonalUpdateMessageDTO bean = new DeviceMqPersonalUpdateMessageDTO().setUpdatePerson(0,cookRecipeDTO.getHandleType().equals(1) ? "update" : "del");
// MqUtil.pushToSingleDevice(bean, LeMqConstant.Topic.DEVICE_UPDATE_MENU_CONFIG_V4, deviceSn); MqUtil.pushToSingleDevice(bean, LeMqConstant.Topic.DEVICE_UPDATE_MENU_CONFIG_V4, deviceSn);
// } }
// } }
} }
/** /**

View File

@ -188,6 +188,67 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where recipe_id = #{recipeId} where recipe_id = #{recipeId}
</update> </update>
<select id="getDeviceIdByDevivce" parameterType="string" resultType="integer">
select a.device_id
from device_info a
LEFT JOIN cook_recipe_bind_device b on a.device_id = b.device_id
where b.stall_id = #{stallId}
</select>
<select id="getDeviceSnByIds" resultType="java.lang.String">
select device_sn
from device_info
where device_id in
<foreach collection="list" item="deviceId" separator="," open="(" close=")">
#{deviceId}
</foreach>
</select>
<select id="checkIfAlreadyBind" resultType="boolean">
select count(1) > 0 from cook_recipe_bind_app
where recipe_id = #{recipeId}
<if test="mealLineId !=null">
and meal_line_id = #{mealLineId}
</if>
and bind_type = #{bindType}
</select>
<select id="selectRecipeInSameShop" resultType="java.lang.Long">
select mar.recipe_id
from cook_recipe_bind_app mar
inner join cook_recipe mr on mar.recipe_id = mr.recipe_id
where mar.bind_type = #{bindType}
and mr.stall_id = #{stallId}
<if test="mealLineId !=null">
and mar.meal_line_id= #{mealLineId}
</if>
</select>
<delete id="deleteBind" parameterType="com.bonus.canteen.core.cook.domain.CookAppRecipe">
delete from cook_recipe_bind_app where recipe_id in
<foreach collection="recipeIds" item="recipeId" separator="," open="(" close=")">
#{recipeId}
</foreach>
<if test="mealLineId != null">
and meal_line_id = #{mealLineId}
</if>
and bind_type = #{bindType}
</delete>
<insert id="insertBind" parameterType="com.bonus.canteen.core.cook.domain.CookAppRecipe">
insert into cook_recipe_bind_app (recipe_id,bind_type,bind_time,meal_line_id)
values (#{recipeId},#{bindType},now(),#{mealLineId})
</insert>
<update id="updateRecipeByCanteenStallMeal">
update cook_recipe_bind_device set recipe_id = #{ recipeId}
where canteen_id = #{canteenId} and stall_id = #{stallId}
and device_id in
<foreach collection="deviceIds" separator="," open="(" close=")" item="item">
#{item}
</foreach>
</update>
<delete id="deleteCookRecipeByRecipeId" parameterType="Long"> <delete id="deleteCookRecipeByRecipeId" parameterType="Long">
update cook_recipe set del_flag = '2' where recipe_id = #{recipeId} update cook_recipe set del_flag = '2' where recipe_id = #{recipeId}
</delete> </delete>