0616bug修改
This commit is contained in:
parent
0d72b09f48
commit
734301c714
|
|
@ -192,7 +192,7 @@ public class DeviceServiceImpl implements DeviceService {
|
|||
intervalCompressVO.setStartTime(LocalTime.parse(mealTimeVO.getStartTime()));
|
||||
intervalCompressVO.setEndTime(LocalTime.parse(mealTimeVO.getEndTime()));
|
||||
for (CookMenuAndroidRecipeDetailVO menuAndroidRecipeDetailVO : menuRecipeDetailList){
|
||||
if (mealTimeVO.getMealTimeType().equals(menuAndroidRecipeDetailVO.getMealTimeType())){
|
||||
if (mealTimeVO.getMealTimeType().equals(menuAndroidRecipeDetailVO.getMealTimeType()) && date.equals(menuAndroidRecipeDetailVO.getApplyData())) {
|
||||
List<CookRecipeDetailCompressVO> recipeDetailList = recipeDishList.stream().filter(x -> x.getDetailId().equals(menuAndroidRecipeDetailVO.getDetailId())).collect(Collectors.toList());
|
||||
intervalCompressVO.setProductList(recipeDetailList);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ public class MenuDishesImportDTO implements Serializable {
|
|||
private String typeId;
|
||||
|
||||
public BigDecimal getPrice() {
|
||||
return ObjectUtil.isNull(this.price) ? BigDecimal.ZERO : this.price.multiply(BigDecimal.valueOf(100)).setScale(0, RoundingMode.DOWN);
|
||||
return ObjectUtil.isNull(this.price) ? BigDecimal.ZERO : this.price;
|
||||
}
|
||||
|
||||
public Integer getSalesMode() {
|
||||
|
|
@ -74,7 +74,7 @@ public class MenuDishesImportDTO implements Serializable {
|
|||
}
|
||||
|
||||
public BigDecimal getSpecificationOfWeighing() {
|
||||
return ObjectUtil.isNull(this.price) ? BigDecimal.ZERO : this.price.multiply(BigDecimal.valueOf(100)).setScale(0, RoundingMode.DOWN);
|
||||
return ObjectUtil.isNull(this.specificationOfWeighing) ? BigDecimal.ZERO : this.specificationOfWeighing;
|
||||
}
|
||||
|
||||
public void setSpecificationOfWeighing(BigDecimal specificationOfWeighing) {
|
||||
|
|
@ -95,7 +95,7 @@ public class MenuDishesImportDTO implements Serializable {
|
|||
}
|
||||
|
||||
public BigDecimal getWeight() {
|
||||
return ObjectUtil.isNull(this.weight) ? BigDecimal.ZERO : this.weight.setScale(0, RoundingMode.DOWN);
|
||||
return ObjectUtil.isNull(this.weight) ? BigDecimal.ZERO : this.weight;
|
||||
}
|
||||
|
||||
public String getAreaName() {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import com.bonus.canteen.core.cook.dto.AppletDishesDetailDTO;
|
|||
import com.bonus.canteen.core.cook.dto.DishesImportCheckResult;
|
||||
import com.bonus.canteen.core.cook.dto.MenuDishesImportDTO;
|
||||
import com.bonus.canteen.core.cook.vo.AppletDishesDetailVO;
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
|
|
@ -77,7 +78,7 @@ public interface ICookDishesService {
|
|||
* @param request 菜品导入请求
|
||||
* @return 是否成功
|
||||
*/
|
||||
Boolean newImportDishes(List<MenuDishesImportDTO> request);
|
||||
AjaxResult newImportDishes(List<MenuDishesImportDTO> request);
|
||||
|
||||
public AppletDishesDetailVO getDishesDetailByDishesId(AppletDishesDetailDTO dishesDetailDTO);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.stream.Stream;
|
|||
import cn.hutool.core.text.CharSequenceUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.db.handler.StringHandler;
|
||||
import com.bonus.canteen.core.common.utils.EasyExcelUtil;
|
||||
import com.bonus.canteen.core.common.utils.LogUtil;
|
||||
import com.bonus.canteen.core.cook.domain.*;
|
||||
|
|
@ -28,8 +29,10 @@ import com.bonus.canteen.core.utils.NutritionEntityUtil;
|
|||
import com.bonus.common.core.exception.ServiceException;
|
||||
import com.bonus.common.core.utils.DateUtils;
|
||||
import com.bonus.common.core.utils.StringUtils;
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.common.houqin.constant.DelFlagEnum;
|
||||
import com.bonus.common.security.utils.SecurityUtils;
|
||||
import org.codehaus.groovy.tools.StringHelper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
|
|
@ -306,7 +309,7 @@ public class CookDishesServiceImpl implements ICookDishesService {
|
|||
private boolean validateData(MenuDishesImportDTO data, List<String> sqlDishesNameList, List<String> dishesNameList,
|
||||
ImportDishesContext context, List<Integer> salesModeKeys, List<String> materialTypeKeys) {
|
||||
// 校验价格
|
||||
if (data.getPrice().compareTo(BigDecimal.ZERO) < 0) {
|
||||
if (data.getPrice().multiply(BigDecimal.valueOf(100)).compareTo(BigDecimal.ZERO) < 0) {
|
||||
data.setFailReason("菜品价格为负数");
|
||||
return false;
|
||||
}
|
||||
|
|
@ -348,12 +351,13 @@ public class CookDishesServiceImpl implements ICookDishesService {
|
|||
}
|
||||
|
||||
// 校验规格称重
|
||||
if (data.getSalesMode() == two && data.getSpecificationOfWeighing() != null &&
|
||||
data.getSpecificationOfWeighing().compareTo(BigDecimal.valueOf(50)) != 0 &&
|
||||
data.getSpecificationOfWeighing().compareTo(BigDecimal.valueOf(100)) != 0) {
|
||||
data.setFailReason("称重菜品必须填写规格称重");
|
||||
if (data.getSalesMode() == two && data.getSpecificationOfWeighing() != null) {
|
||||
BigDecimal num = data.getSpecificationOfWeighing();
|
||||
if(num.intValue() != 50 && num.intValue() != 100){
|
||||
data.setFailReason("称重菜品规格必须是50克或者100克");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 校验原料
|
||||
if (!validateMaterials(data, context.getMaterialMap(), materialTypeKeys)) {
|
||||
|
|
@ -491,21 +495,26 @@ public class CookDishesServiceImpl implements ICookDishesService {
|
|||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean newImportDishes(List<MenuDishesImportDTO> menuDishesImportDTO) {
|
||||
public AjaxResult newImportDishes(List<MenuDishesImportDTO> menuDishesImportDTO) {
|
||||
try {
|
||||
String currentTraceId = LogUtil.getCurrentTraceId();
|
||||
String username = SecurityUtils.getUsername();
|
||||
this.asyncTaskExecutor.execute(() -> {
|
||||
LogUtil.putLogTraceId(currentTraceId);
|
||||
this.importDishesDTO(menuDishesImportDTO, username);
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
});
|
||||
} catch (Exception var7) {
|
||||
throw new ServiceException("批量导入菜品发生错误");
|
||||
}
|
||||
return true;
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
private void importDishesDTO(List<MenuDishesImportDTO> menuDishesImportList, String username) {
|
||||
private AjaxResult importDishesDTO(List<MenuDishesImportDTO> menuDishesImportList, String username) {
|
||||
// try {
|
||||
// 重新组合数据
|
||||
List<CookDishes> dishesList = new ArrayList<>();
|
||||
|
|
@ -517,7 +526,7 @@ public class CookDishesServiceImpl implements ICookDishesService {
|
|||
dishes.setStallId(menuDishesImportDTO.getStallId() == null ? null : Long.valueOf(menuDishesImportDTO.getStallId()));
|
||||
dishes.setAreaId(menuDishesImportDTO.getAreaId() == null ? null : Long.valueOf(menuDishesImportDTO.getAreaId()));
|
||||
dishes.setDishesName(menuDishesImportDTO.getDishesName());
|
||||
dishes.setPrice(menuDishesImportDTO.getPrice() == null ? null : Long.valueOf(String.valueOf(menuDishesImportDTO.getPrice())));
|
||||
dishes.setPrice(menuDishesImportDTO.getPrice() == null ? null : Long.valueOf(String.valueOf(menuDishesImportDTO.getPrice().multiply(BigDecimal.valueOf(100)))));
|
||||
dishes.setWeight(menuDishesImportDTO.getWeight() == null ? null : menuDishesImportDTO.getWeight());
|
||||
dishes.setWeightDeviation(BigDecimal.ZERO);
|
||||
dishes.setTypeId(menuDishesImportDTO.getTypeId() == null ? null : Long.valueOf(menuDishesImportDTO.getTypeId()));
|
||||
|
|
@ -525,6 +534,7 @@ public class CookDishesServiceImpl implements ICookDishesService {
|
|||
dishes.setRecommend("0");
|
||||
dishes.setSalesMode(menuDishesImportDTO.getSalesMode() == null ? null : Long.valueOf(menuDishesImportDTO.getSalesMode()));
|
||||
dishes.setUnitPrice(menuDishesImportDTO.getSpecificationOfWeighing() == null ? null : Long.valueOf(String.valueOf(menuDishesImportDTO.getSpecificationOfWeighing())));
|
||||
if (!StringUtils.isBlank(menuDishesImportDTO.getMaterialNames())){
|
||||
String[] materialList = menuDishesImportDTO.getMaterialNames().replace(";", ";").split(";");
|
||||
List<CookDishesMaterial> dishesMaterialList = new ArrayList<>();
|
||||
for (String material : materialList) {
|
||||
|
|
@ -548,11 +558,31 @@ public class CookDishesServiceImpl implements ICookDishesService {
|
|||
dishesMaterialList.add(dishesMaterial);
|
||||
}
|
||||
dishes.setDishesMaterialList(dishesMaterialList);
|
||||
}
|
||||
dishesList.add(dishes);
|
||||
}
|
||||
dishesList.forEach(this::insertCookDishes);
|
||||
// dishesList.forEach(this::insertCookDishes);
|
||||
for (int i = 0; i < dishesList.size(); i++) {
|
||||
CookDishes cookDishes = dishesList.get(i);
|
||||
cookDishesMapper.insertCookDishes(cookDishes);
|
||||
//添加菜品-原料关联关系
|
||||
if (cookDishes.getDishesMaterialList() != null && !cookDishes.getDishesMaterialList().isEmpty()) {
|
||||
cookDishesMapper.insertDishesMaterial(cookDishes.getDishesMaterialList(), cookDishes.getDishesId());
|
||||
calculateNutritionalInfo(cookDishes);
|
||||
}
|
||||
}
|
||||
// dishesList.forEach(cookDishes -> {
|
||||
// cookDishesMapper.insertCookDishes(cookDishes);
|
||||
// //添加菜品-原料关联关系
|
||||
// if (cookDishes.getDishesMaterialList() != null && !cookDishes.getDishesMaterialList().isEmpty()) {
|
||||
// cookDishesMapper.insertDishesMaterial(cookDishes.getDishesMaterialList(), cookDishes.getDishesId());
|
||||
// calculateNutritionalInfo(cookDishes);
|
||||
// }
|
||||
// });
|
||||
return AjaxResult.success("批量导入菜品成功");
|
||||
}
|
||||
|
||||
@Override
|
||||
public AppletDishesDetailVO getDishesDetailByDishesId(AppletDishesDetailDTO dishesDetailDTO) {
|
||||
//AppletDishesDetailDTO dishesDetailDTO = (AppletDishesDetailDTO)JSON.parseObject(content, AppletDishesDetailDTO.class);
|
||||
dishesDetailDTO.setDelFlag(DelFlagEnum.DEL_FALSE.key());
|
||||
|
|
|
|||
|
|
@ -65,8 +65,7 @@ public class NutritionEntity {
|
|||
private Double totalWeight;
|
||||
private Double baseWeight;
|
||||
private Double vitaminD;
|
||||
private String processingMethod;
|
||||
private BigDecimal processingTime;
|
||||
private Double processingTime;
|
||||
|
||||
public Double getVitaminD() {
|
||||
return vitaminD;
|
||||
|
|
@ -76,19 +75,11 @@ public class NutritionEntity {
|
|||
this.vitaminD = vitaminD;
|
||||
}
|
||||
|
||||
public String getProcessingMethod() {
|
||||
return processingMethod;
|
||||
}
|
||||
|
||||
public void setProcessingMethod(String processingMethod) {
|
||||
this.processingMethod = processingMethod;
|
||||
}
|
||||
|
||||
public BigDecimal getProcessingTime() {
|
||||
public Double getProcessingTime() {
|
||||
return processingTime;
|
||||
}
|
||||
|
||||
public void setProcessingTime(BigDecimal processingTime) {
|
||||
public void setProcessingTime(Double processingTime) {
|
||||
this.processingTime = processingTime;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory;
|
|||
import org.springframework.util.ReflectionUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -35,6 +36,9 @@ public class NutritionEntityUtil {
|
|||
|
||||
try {
|
||||
String fieldName = field.getName();
|
||||
if ("processingMethod".equals(fieldName)) {
|
||||
continue; // Skip weight and baseWeight fields
|
||||
}
|
||||
Object temp = field.get(tempNutrition);
|
||||
double param = 0.0;
|
||||
if (temp != null && (Double)temp != -1.0) {
|
||||
|
|
@ -50,7 +54,6 @@ public class NutritionEntityUtil {
|
|||
}
|
||||
|
||||
double newValue = Arith.add(Arith.mul(param, proportion), lastValue);
|
||||
// System.err.println(fieldName+",newValue:"+newValue+" ,lastValue="+lastValue);
|
||||
declaredField.set(nutritionEntity, newValue);
|
||||
} catch (NoSuchFieldException | IllegalAccessException var21) {
|
||||
log.info("获取属性值异常 : {}", var21.getMessage());
|
||||
|
|
|
|||
|
|
@ -590,7 +590,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="bean.niacin != null">niacin = #{bean.niacin},</if>
|
||||
<if test="bean.edible != null">edible = #{bean.edible},</if>
|
||||
<if test="bean.vitaminD != null">vitamin_d = #{bean.vitaminD},</if>
|
||||
<if test="bean.processingMethod != null">processing_method = #{bean.processingMethod},</if>
|
||||
<if test="bean.processingTime != null">processing_time = #{bean.processingTime},</if>
|
||||
<if test="bean.carotene != null">carotene = #{bean.carotene},</if>
|
||||
</trim>
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<include refid="selectCookNutritionTypeVo"/>
|
||||
where nutrition_type_name = #{nutritionTypeName}
|
||||
<if test="nutritionTypeId != null and nutritionTypeId != '' "> and parent_id = #{nutritionTypeId}</if>
|
||||
limit 1
|
||||
</select>
|
||||
<select id="checkIsExistChildren" resultType="java.lang.Integer">
|
||||
select count(1) from cook_nutrition_type where parent_id in
|
||||
|
|
|
|||
Loading…
Reference in New Issue