From 5ea7a5b03e72d0ef152a57590a50251b9d112222 Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Wed, 16 Jul 2025 13:39:47 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=8F=9C=E5=93=81=E5=8E=9F?= =?UTF-8?q?=E6=96=99=E5=8F=8D=E7=AE=97=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CookDishesServiceImpl.java | 41 +++++++++++++------ .../core/ims/mapper/ImsInventoryMapper.java | 4 ++ .../core/ims/vo/MaterialInventoryVO.java | 16 ++++++++ .../mapper/ims/ImsInventoryMapper.xml | 19 +++++++++ 4 files changed, 68 insertions(+), 12 deletions(-) create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/ims/vo/MaterialInventoryVO.java diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/service/impl/CookDishesServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/service/impl/CookDishesServiceImpl.java index 239d68a..17c93e6 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/service/impl/CookDishesServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/cook/service/impl/CookDishesServiceImpl.java @@ -28,7 +28,9 @@ import com.bonus.canteen.core.cook.vo.AppletDishesDetailVO; import com.bonus.canteen.core.cook.vo.AppletDishesSizeV2VO; import com.bonus.canteen.core.cook.vo.DishesConvertVO; import com.bonus.canteen.core.ims.domain.ImsUnit; +import com.bonus.canteen.core.ims.mapper.ImsInventoryMapper; import com.bonus.canteen.core.ims.mapper.ImsUnitMapper; +import com.bonus.canteen.core.ims.vo.MaterialInventoryVO; import com.bonus.canteen.core.utils.Arith; import com.bonus.canteen.core.utils.NutritionEntity; import com.bonus.canteen.core.utils.NutritionEntityUtil; @@ -70,7 +72,7 @@ public class CookDishesServiceImpl implements ICookDishesService { @Autowired private CookCollectionDishesMapper cookCollectionDishesMapper; @Autowired - private ImsUnitMapper imsUnitMapper; + private ImsInventoryMapper imsInventoryMapper; @Lazy @Resource( name = "smartCanteenTaskExecutor" @@ -649,13 +651,13 @@ public class CookDishesServiceImpl implements ICookDishesService { if (CollectionUtils.isEmpty(cookDishesMaterialModelList)) { throw new ServiceException("原料列表不能为空"); } - Iterator var21 = cookDishesMaterialModelList.iterator(); + Iterator ite10 = cookDishesMaterialModelList.iterator(); while(true) { - while (var21.hasNext()) { - CookDishesMaterialModel menuDishesMaterialModel = (CookDishesMaterialModel) var21.next(); - Iterator var26 = content.iterator(); - while (var26.hasNext()) { - DishesConvertDTO drpDishesConvertDTO = (DishesConvertDTO) var26.next(); + while (ite10.hasNext()) { + CookDishesMaterialModel menuDishesMaterialModel = (CookDishesMaterialModel) ite10.next(); + Iterator ite20 = content.iterator(); + while (ite20.hasNext()) { + DishesConvertDTO drpDishesConvertDTO = (DishesConvertDTO) ite20.next(); Long dishesId = drpDishesConvertDTO.getDishesId(); if (ObjectUtil.equal(menuDishesMaterialModel.getDishesId(), dishesId)) { menuDishesMaterialModel.setCalWeight(menuDishesMaterialModel.getWeight().multiply(new BigDecimal(drpDishesConvertDTO.getDishesNum()))); @@ -669,14 +671,13 @@ public class CookDishesServiceImpl implements ICookDishesService { drpUnit.setUnitName("公斤"); drpUnit.setRate(new BigDecimal(1000.000000)); drpUnit.setUnitId(2L); - Map collect = (Map) cookDishesMaterialModelList.stream().collect(Collectors.toMap(CookDishesMaterialModel::getMaterialId, Function.identity(), (k1, k2) -> { return k1; })); List resultList = new ArrayList(); - Iterator var29 = collect.values().iterator(); - while (var29.hasNext()) { - CookDishesMaterialModel menuDishesMaterialModel = (CookDishesMaterialModel) var29.next(); + Iterator ite30 = collect.values().iterator(); + while (ite30.hasNext()) { + CookDishesMaterialModel menuDishesMaterialModel = (CookDishesMaterialModel) ite30.next(); DishesConvertVO drpDishesConvertVO = new DishesConvertVO(); BeanUtil.copyProperties(menuDishesMaterialModel, drpDishesConvertVO, new String[0]); drpDishesConvertVO.setUnitId(drpUnit.getUnitId()); @@ -684,7 +685,23 @@ public class CookDishesServiceImpl implements ICookDishesService { drpDishesConvertVO.setTotalConvertWeight(((BigDecimal) materialTotalWeightMap.get(menuDishesMaterialModel.getMaterialId())).divide(drpUnit.getRate(), 3, RoundingMode.HALF_UP)); resultList.add(drpDishesConvertVO); } - return resultList; + List materialIdList = resultList.stream().map(DishesConvertVO::getMaterialId).collect(Collectors.toList()); + List materialInventoryVOList = this.imsInventoryMapper.selectInventoryByMaterialIdList(materialIdList, (Long)null); + Iterator ite40 = resultList.iterator(); + while(true) { + while(ite40.hasNext()) { + DishesConvertVO drpDishesConvertVO = (DishesConvertVO)ite40.next(); + Iterator ite50 = materialInventoryVOList.iterator(); + while(ite50.hasNext()) { + MaterialInventoryVO materialInventoryVO = (MaterialInventoryVO)ite50.next(); + if (ObjectUtil.equal(drpDishesConvertVO.getMaterialId(), materialInventoryVO.getMaterialId()) && ObjectUtil.equal(drpDishesConvertVO.getUnitId(), materialInventoryVO.getUnitId())) { + drpDishesConvertVO.setInventoryNum(materialInventoryVO.getInventoryNum()); + break; + } + } + } + return resultList; + } } } } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/ims/mapper/ImsInventoryMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/ims/mapper/ImsInventoryMapper.java index 1a9f1e1..dc34d9b 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/ims/mapper/ImsInventoryMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/ims/mapper/ImsInventoryMapper.java @@ -3,6 +3,8 @@ package com.bonus.canteen.core.ims.mapper; import java.util.List; import com.bonus.canteen.core.ims.domain.ImsInventory; import com.bonus.canteen.core.ims.domain.vo.ImsInventoryVO; +import com.bonus.canteen.core.ims.vo.MaterialInventoryVO; +import org.apache.ibatis.annotations.Param; /** * 库存Mapper接口 @@ -59,4 +61,6 @@ public interface ImsInventoryMapper * @return 结果 */ public int deleteImsInventoryByInventoryIds(Long[] inventoryIds); + + List selectInventoryByMaterialIdList(@Param("materialIdList") List materialIdList, @Param("warehouseId") Long warehouseId); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/ims/vo/MaterialInventoryVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/ims/vo/MaterialInventoryVO.java new file mode 100644 index 0000000..890b817 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/ims/vo/MaterialInventoryVO.java @@ -0,0 +1,16 @@ +package com.bonus.canteen.core.ims.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class MaterialInventoryVO { + @ApiModelProperty("货品id") + private Long materialId; + @ApiModelProperty("单位id") + private Long unitId; + @ApiModelProperty("库存数") + private BigDecimal inventoryNum; +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/ims/ImsInventoryMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/ims/ImsInventoryMapper.xml index 0351f79..1546a6d 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/ims/ImsInventoryMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/ims/ImsInventoryMapper.xml @@ -177,4 +177,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{inventoryId} + + \ No newline at end of file