获取菜品原料反算接口
This commit is contained in:
parent
efe60fb315
commit
5ea7a5b03e
|
|
@ -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<Long, CookDishesMaterialModel> collect = (Map) cookDishesMaterialModelList.stream().collect(Collectors.toMap(CookDishesMaterialModel::getMaterialId, Function.identity(), (k1, k2) -> {
|
||||
return k1;
|
||||
}));
|
||||
List<DishesConvertVO> 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<Long> materialIdList = resultList.stream().map(DishesConvertVO::getMaterialId).collect(Collectors.toList());
|
||||
List<MaterialInventoryVO> 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<MaterialInventoryVO> selectInventoryByMaterialIdList(@Param("materialIdList") List<Long> materialIdList, @Param("warehouseId") Long warehouseId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -177,4 +177,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
#{inventoryId}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="selectInventoryByMaterialIdList" resultType="com.bonus.canteen.core.ims.vo.MaterialInventoryVO">
|
||||
SELECT
|
||||
material_id,
|
||||
unit_id,
|
||||
sum(material_num) inventoryNum
|
||||
FROM
|
||||
ims_inventory
|
||||
where
|
||||
material_id in
|
||||
<foreach collection="materialIdList" item="materialId" separator="," open="(" close=")">
|
||||
#{materialId}
|
||||
</foreach>
|
||||
<if test="warehouseId != null">
|
||||
and warehouse_id = #{warehouseId}
|
||||
</if>
|
||||
group by
|
||||
material_id, unit_id
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue