Переглянути джерело

出入库详情表的数据添加
in方法和out方法的结存单价的计算

xiaomi 1 рік тому
батько
коміт
60c8c1b0f0
15 змінених файлів з 346 додано та 63 видалено
  1. 0 0
      sd-business/src/main/java/com/sd/business/a-json/InOutStorageDetailsApi.json
  2. 17 0
      sd-business/src/main/java/com/sd/business/entity/in/dto/InOutStorageDetailsDto.java
  3. 17 0
      sd-business/src/main/java/com/sd/business/entity/in/dto/InOutStorageDetailsSelectDto.java
  4. 5 5
      sd-business/src/main/java/com/sd/business/entity/in/po/InOutStorageBom.java
  5. 1 1
      sd-business/src/main/java/com/sd/business/entity/in/po/InOutStorageDetails.java
  6. 17 0
      sd-business/src/main/java/com/sd/business/entity/in/vo/InOutStorageDetailsVo.java
  7. 22 0
      sd-business/src/main/java/com/sd/business/entity/inventory/po/BalancePriceNum.java
  8. 27 0
      sd-business/src/main/java/com/sd/business/mapper/in/InOutStorageDetailsMapper.java
  9. 7 8
      sd-business/src/main/java/com/sd/business/mapper/inventory/InventoryMapper.java
  10. 46 0
      sd-business/src/main/java/com/sd/business/service/in/InOutStorageDetailsService.java
  11. 59 0
      sd-business/src/main/java/com/sd/business/service/in/impl/InOutStorageDetailsServiceImpl.java
  12. 27 0
      sd-business/src/main/java/com/sd/business/service/in/impl/InOutStorageServiceImpl.java
  13. 74 32
      sd-business/src/main/java/com/sd/business/service/inventory/impl/InventoryServiceImpl.java
  14. 23 0
      sd-business/src/main/resources/mapper/in/InOutStorageDetailsMapper.xml
  15. 4 17
      sd-business/src/main/resources/mapper/inventory/InventoryMapper.xml

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
sd-business/src/main/java/com/sd/business/a-json/InOutStorageDetailsApi.json


+ 17 - 0
sd-business/src/main/java/com/sd/business/entity/in/dto/InOutStorageDetailsDto.java

@@ -0,0 +1,17 @@
+package com.sd.business.entity.in.dto;
+
+import com.sd.business.entity.in.po.InOutStorageDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 出入库详情表新增编辑入参实体
+ *
+ * @author dk
+ * @since 2023-07-26
+ */
+@Getter
+@Setter
+public class InOutStorageDetailsDto extends InOutStorageDetails {
+
+}

+ 17 - 0
sd-business/src/main/java/com/sd/business/entity/in/dto/InOutStorageDetailsSelectDto.java

@@ -0,0 +1,17 @@
+package com.sd.business.entity.in.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 出入库详情表列表查询入参实体
+ *
+ * @author dk
+ * @since 2023-07-26
+ */
+@Getter
+@Setter
+public class InOutStorageDetailsSelectDto extends BaseSelectDto {
+
+}

+ 5 - 5
sd-business/src/main/java/com/sd/business/entity/in/po/InOutStorageBom.java

@@ -41,11 +41,11 @@ public class InOutStorageBom extends BasePo implements InOutFun {
     @DecimalMin(value = "0.01", message = "出入库数量必须大于0")
     private BigDecimal quantity;
 
+    /**
+     * 单价
+     */
+    @NotNull(message = "出入库单价不能为空")
     @DecimalMin(value = "0.01",message = "入库单价必须大于0")
-    private BigDecimal getUnitPrice;
+    private BigDecimal unitPrice;
 
-    @Override
-    public BigDecimal getUnitPrice() {
-        return null;
-    }
 }

+ 1 - 1
sd-business/src/main/java/com/sd/business/entity/in/po/InOutStorageDetails.java

@@ -33,7 +33,7 @@ public class InOutStorageDetails extends BasePo {
     /**
      * 库存id
      */
-    private Long inventoryId;
+    private Long departmentId;
 
     /**
      * 仓库id

+ 17 - 0
sd-business/src/main/java/com/sd/business/entity/in/vo/InOutStorageDetailsVo.java

@@ -0,0 +1,17 @@
+package com.sd.business.entity.in.vo;
+
+import com.sd.business.entity.in.po.InOutStorageDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 出入库详情表列表查询返回值实体
+ *
+ * @author dk
+ * @since 2023-07-26
+ */
+@Getter
+@Setter
+public class InOutStorageDetailsVo extends InOutStorageDetails {
+
+}

+ 22 - 0
sd-business/src/main/java/com/sd/business/entity/inventory/po/BalancePriceNum.java

@@ -0,0 +1,22 @@
+package com.sd.business.entity.inventory.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+@Getter
+@Setter
+public class BalancePriceNum extends BasePo {
+
+    /**
+     * 结存金额
+     */
+    private BigDecimal balancePrice;
+
+    /**
+     * 结存数量
+     */
+    private BigDecimal balanceNum;
+}

+ 27 - 0
sd-business/src/main/java/com/sd/business/mapper/in/InOutStorageDetailsMapper.java

@@ -0,0 +1,27 @@
+package com.sd.business.mapper.in;
+
+import com.sd.business.entity.in.po.InOutStorageDetails;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sd.business.entity.in.vo.InOutStorageDetailsVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 出入库详情表 Mapper 接口
+ * </p>
+ *
+ * @author dk
+ * @since 2023-07-26
+ */
+public interface InOutStorageDetailsMapper extends BaseMapper<InOutStorageDetails> {
+
+    /**
+     * 出入库详情表分页
+     */
+    Page<InOutStorageDetailsVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<InOutStorageDetails> wrapper);
+
+
+}

+ 7 - 8
sd-business/src/main/java/com/sd/business/mapper/inventory/InventoryMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.sd.business.entity.in.po.InOutStorageDetails;
+import com.sd.business.entity.inventory.po.BalancePriceNum;
 import com.sd.business.entity.inventory.po.Inventory;
 import com.sd.business.entity.inventory.vo.InventoryVo;
 import com.sd.business.entity.inventory.vo.QuantityByDepartmentVo;
@@ -42,17 +43,15 @@ public interface InventoryMapper extends BaseMapper<Inventory> {
     List<QuantityByDepartmentVo> getQuantityByDepartment();
 
     /**
-     * 根据规格id获取结存数量
+     * 根据规格id获取结存金额和结存数量
      */
-    BigDecimal getNum(@Param("bomSpecId") Long bomSpecId,Long warehouseId);
-
-    /**
-     * 根据规格id获取结存金额
-     */
-    BigDecimal getprice(@Param("bomSpecId") Long bomSpecId, Long warehouseId);
+    BalancePriceNum getPriceAndNum(@Param("bomSpecId") Long bomSpecId,
+                                   @Param("warehouseId") Long warehouseId);
 
     /**
      * 获取出入库详情表的数据
      */
-    List<InOutStorageDetails> getInOutDetails(Long warehouseId, Long departmentId, Long bomSpecId);
+    List<InOutStorageDetails> getInOutDetails(@Param("warehouseId") Long warehouseId,
+                                              @Param("departmentId") Long departmentId,
+                                              @Param("bomSpecId") Long bomSpecId);
 }

+ 46 - 0
sd-business/src/main/java/com/sd/business/service/in/InOutStorageDetailsService.java

@@ -0,0 +1,46 @@
+package com.sd.business.service.in;
+
+import com.sd.business.entity.in.po.InOutStorageDetails;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sd.business.entity.in.vo.InOutStorageDetailsVo;
+import com.sd.business.entity.in.dto.InOutStorageDetailsSelectDto;
+import com.sd.business.entity.in.dto.InOutStorageDetailsDto;
+
+
+/**
+ * <p>
+ * 出入库详情表 服务类
+ * </p>
+ *
+ * @author dk
+ * @since 2023-07-26
+ */
+public interface InOutStorageDetailsService extends BaseService<InOutStorageDetails> {
+
+    /**
+     * 出入库详情表分页
+     */
+    Page<InOutStorageDetailsVo> getPage(InOutStorageDetailsSelectDto dto);
+
+    /**
+     * 出入库详情表明细
+     */
+    InOutStorageDetailsVo detail(Long id);
+
+    /**
+     * 出入库详情表新增
+     */
+    void add(InOutStorageDetailsDto inOutStorageDetailsDto);
+
+    /**
+     * 出入库详情表编辑
+     */
+    void edit(InOutStorageDetailsDto inOutStorageDetailsDto);
+
+    /**
+     * 出入库详情表删除
+     */
+    void delete(Long id);
+
+}

+ 59 - 0
sd-business/src/main/java/com/sd/business/service/in/impl/InOutStorageDetailsServiceImpl.java

@@ -0,0 +1,59 @@
+package com.sd.business.service.in.impl;
+
+import com.sd.business.entity.in.po.InOutStorageDetails;
+import com.sd.business.mapper.in.InOutStorageDetailsMapper;
+import com.sd.business.service.in.InOutStorageDetailsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sd.business.entity.in.vo.InOutStorageDetailsVo;
+import com.sd.business.entity.in.dto.InOutStorageDetailsSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.sd.business.entity.in.dto.InOutStorageDetailsDto;
+import cn.hutool.core.bean.BeanUtil;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 出入库详情表 服务实现类
+ * </p>
+ *
+ * @author dk
+ * @since 2023-07-26
+ */
+@Service
+public class InOutStorageDetailsServiceImpl extends ServiceImpl<InOutStorageDetailsMapper, InOutStorageDetails> implements InOutStorageDetailsService {
+
+    @Override
+    public Page<InOutStorageDetailsVo> getPage(InOutStorageDetailsSelectDto dto) {
+        IWrapper<InOutStorageDetails> wrapper = getWrapper();
+        wrapper.orderByDesc("iosd", InOutStorageDetails::getId);
+        Page<InOutStorageDetailsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public InOutStorageDetailsVo detail(Long id) {
+        InOutStorageDetails InOutStorageDetails = this.getById(id);
+        InOutStorageDetailsVo result = BeanUtil.toBean(InOutStorageDetails, InOutStorageDetailsVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(InOutStorageDetailsDto inOutStorageDetailsDto) {
+        this.save(inOutStorageDetailsDto);
+    }
+
+    @Override
+    public void edit(InOutStorageDetailsDto inOutStorageDetailsDto) {
+        this.updateById(inOutStorageDetailsDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 27 - 0
sd-business/src/main/java/com/sd/business/service/in/impl/InOutStorageServiceImpl.java

@@ -13,10 +13,12 @@ import com.sd.business.entity.in.emums.InOutTypeEnum;
 import com.sd.business.entity.in.emums.OutDetailTypeEnum;
 import com.sd.business.entity.in.po.InOutStorage;
 import com.sd.business.entity.in.po.InOutStorageBom;
+import com.sd.business.entity.in.po.InOutStorageDetails;
 import com.sd.business.entity.in.vo.InOutStorageVo;
 import com.sd.business.entity.warehouse.po.Warehouse;
 import com.sd.business.mapper.in.InOutStorageMapper;
 import com.sd.business.service.in.InOutStorageBomService;
+import com.sd.business.service.in.InOutStorageDetailsService;
 import com.sd.business.service.in.InOutStorageService;
 import com.sd.business.service.inventory.InventoryService;
 import com.sd.business.util.CodeEnum;
@@ -24,6 +26,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
 
 
@@ -42,6 +46,9 @@ public class InOutStorageServiceImpl extends ServiceImpl<InOutStorageMapper, InO
     private InOutStorageBomService inOutStorageBomService;
 
     @Autowired
+    private InOutStorageDetailsService detailsService;
+
+    @Autowired
     private InventoryService inventoryService;
 
     @Override
@@ -87,6 +94,26 @@ public class InOutStorageServiceImpl extends ServiceImpl<InOutStorageMapper, InO
         this.save(inOutStorageDto);
 
         inOutStorageBomList.forEach(item -> item.setInOutStorageId(inOutStorageDto.getId()));
+        List<InOutStorageDetails> detailsList = new ArrayList<>();
+        //进行for循环
+        for (InOutStorageBom bom : inOutStorageBomList) {
+            //创建InOutStorageDetails对象
+            InOutStorageDetails details = new InOutStorageDetails();
+            //将数据进行填充
+            details.setInOutStorageId(bom.getInOutStorageId());
+            details.setInUnitPrice(bom.getUnitPrice());
+            details.setQuantity(bom.getQuantity());
+            details.setWarehouseId(inOutStorageDto.getWarehouseId());
+            details.setBomSpecId(bom.getBomSpecId());
+            details.setDepartmentId(inOutStorageDto.getDepartmentId());
+            details.setType(1L);
+            //计算入库金额
+            BigDecimal sumPrice = bom.getUnitPrice().multiply(bom.getQuantity());
+            details.setInSumPrice(sumPrice);
+            detailsList.add(details);
+        }
+        //进行数据的添加
+        detailsService.saveBatch(detailsList);
         inOutStorageBomService.saveBatch(inOutStorageBomList);
 
     }

+ 74 - 32
sd-business/src/main/java/com/sd/business/service/inventory/impl/InventoryServiceImpl.java

@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.system.utils.UserUtil;
@@ -14,6 +15,7 @@ import com.sd.business.entity.bom.vo.BomSpecVo;
 import com.sd.business.entity.in.po.InOutStorageDetails;
 import com.sd.business.entity.inventory.bo.InOutFun;
 import com.sd.business.entity.inventory.dto.InventorySelectDto;
+import com.sd.business.entity.inventory.po.BalancePriceNum;
 import com.sd.business.entity.inventory.po.Inventory;
 import com.sd.business.entity.inventory.po.InventoryBackup;
 import com.sd.business.entity.inventory.vo.InventoryVo;
@@ -21,6 +23,8 @@ import com.sd.business.entity.inventory.vo.QuantityByDepartmentVo;
 import com.sd.business.entity.inventory.vo.QuantityByWarehouseVo;
 import com.sd.business.mapper.inventory.InventoryMapper;
 import com.sd.business.service.bom.BomSpecService;
+import com.sd.business.service.in.InOutStorageDetailsService;
+import com.sd.business.service.in.InOutStorageService;
 import com.sd.business.service.inventory.InventoryService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
@@ -30,6 +34,7 @@ import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.function.Function;
@@ -51,7 +56,8 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
     private BomSpecService bomSpecService;
 
     @Autowired
-    private InventoryMapper inventoryMapper;
+    private InOutStorageDetailsService detailsService;
+
 
     @Override
     public Page<InventoryVo> getPage(InventorySelectDto dto, String tableName) {
@@ -94,22 +100,18 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
         synchronized (this) {
             List<Inventory> inventoryList = getInventoryList(departmentId, warehouseId, bomSpecIdList);
             Map<Long, Inventory> map = inventoryList.stream().collect(Collectors.toMap(Inventory::getBomSpecId, Function.identity()));
+
+
             for (InOutFun inOutFun : list) {
                 Long bomSpecId = inOutFun.getBomSpecId();
                 BigDecimal quantity = inOutFun.getQuantity();
                 BigDecimal unitPrice = inOutFun.getUnitPrice();
                 Inventory inventory = map.get(bomSpecId);
 
-                //结存数量
-                BigDecimal balanceNum = inventoryMapper.getNum(bomSpecId,warehouseId);
-                if (balanceNum == null){
-                    balanceNum = BigDecimal.ZERO;
-                }
-                //结存金额
-                BigDecimal balancePrice = inventoryMapper.getprice(bomSpecId,warehouseId);
-                if (balancePrice == null){
-                    balancePrice = BigDecimal.ZERO;
-                }
+                //根据bom规格id和仓库id获取结存金额和结存数量
+                BalancePriceNum priceAndNum = baseMapper.getPriceAndNum(bomSpecId, warehouseId);
+                BigDecimal balanceNum = priceAndNum.getBalanceNum();
+                BigDecimal balancePrice = priceAndNum.getBalancePrice();
 
                 //计算最新的结存数量和结存金额
                 balanceNum = balanceNum.add(quantity);
@@ -156,31 +158,64 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
                 }
             }
 
-            for (Inventory inventory : inventoryList) {
+            //根据仓库id和规格id获取出入详细表数据
+            List<InOutStorageDetails> detailsList = getDetailsList(warehouseId, bomSpecIdList);
+            List<InOutStorageDetails> updateList = new ArrayList<>();
+            List<InOutStorageDetails> outDetailsList = new ArrayList<>();
+            Map<Long,BigDecimal> outPriceMap = new HashMap<>();
 
-                //获取出入详情表中的信息
-                List<InOutStorageDetails> detailsList = inventoryMapper.getInOutDetails(inventory.getWarehouseId(),inventory.getDepartmentId(),inventory.getBomSpecId());
-                if (CollUtil.isEmpty(detailsList)){
-                    throw new ServiceException("库存为空");
+            for (int i = 0; i < detailsList.size(); i++) {
+                InOutStorageDetails details = detailsList.get(i);
+            }
+            for (InOutStorageDetails details : detailsList) {
+                //如果数量足够减扣
+                BigDecimal outNum = map.get(details.getBomSpecId());
+                if (details.getQuantity().compareTo(outNum) >= 0){
+                    //对数量进行减扣
+                    details.setQuantity(details.getQuantity().subtract(outNum));
+
+                    //将这次出库的金额存储到map里面
+                    BigDecimal outPrice = details.getInUnitPrice().multiply(outNum);
+                    outPriceMap.put(details.getBomSpecId(),outPrice);
+
+                    //将减扣数量后的对象修改回去
+                    updateList.add(details);
+                    //创建一个新的对象
+                    InOutStorageDetails outStorageDetails = new InOutStorageDetails();
+                    //将数据进行拷贝
+                    BeanUtils.copyProperties(details,outStorageDetails);
+                    //修改需要修改的值
+                    outStorageDetails.setQuantity(outNum);
+                    outStorageDetails.setId(null);
+                    outStorageDetails.setType(0L);
+                    //添加记录
+                    outDetailsList.add(outStorageDetails);
+                    break;
                 }
-                //按照时间进行排序后获取最早入库的数据
-                //TODO 该地方可能用循环
-                InOutStorageDetails inOutDetails = detailsList.get(0);
-                BigDecimal quantity = inOutDetails.getQuantity();
-
-                int i = inventory.getQuantity().compareTo(quantity);
-                if (i >= 0){
-
-                    inventory.setQuantity(inventory.getQuantity().subtract(map.get(inventory.getBomSpecId())));
-
+                //数量不够减扣
+                //获取剩余的数量
+                BigDecimal remainderNum = outNum.subtract(details.getQuantity());
+                if (remainderNum.compareTo(BigDecimal.ZERO) > 0){
+                    details.setQuantity(BigDecimal.ZERO);
+                    updateList.add(details);
                 }
+                //TODO 这时候需要顺延到下一条记录,暂时没想好怎么顺
+                //上面也许可以不用增强for,普通for试试
+            }
+            detailsService.updateBatchById(updateList);
+            detailsService.saveBatch(outDetailsList);
 
-
-
-
-
-
-
+            for (Inventory inventory : inventoryList) {
+                //获取之前的结存金额
+                BigDecimal balancePrice = inventory.getQuantity().multiply(inventory.getBalanceUnitPrice());
+                //减去出库金额后的结存金额
+                BigDecimal newBalancePrice = balancePrice.subtract(outPriceMap.get(inventory.getBomSpecId()));
+                //减去出库数量后的结存数量
+                inventory.setQuantity(inventory.getQuantity().subtract(map.get(inventory.getBomSpecId())));
+                //获取最后的结存单价
+                BigDecimal balanceUnitPrice = newBalancePrice.divide(inventory.getQuantity(),2,BigDecimal.ROUND_HALF_UP);
+                //将数据存入对象
+                inventory.setBalanceUnitPrice(balanceUnitPrice);
             }
             updateBatchById(inventoryList);
         }
@@ -195,5 +230,12 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
         );
     }
 
+    private List<InOutStorageDetails> getDetailsList(Long warehouseId, List<Long> bomSpecIdList) {
+        return detailsService.list(q -> q
+                .eq(InOutStorageDetails::getWarehouseId, warehouseId)
+                .in(InOutStorageDetails::getBomSpecId, bomSpecIdList)
+                .isNotNull(InOutStorageDetails::getQuantity)
+        );
+    }
 
 }

+ 23 - 0
sd-business/src/main/resources/mapper/in/InOutStorageDetailsMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sd.business.mapper.in.InOutStorageDetailsMapper">
+    <select id="getPage" resultType="com.sd.business.entity.in.vo.InOutStorageDetailsVo">
+        select
+            iosd.id,
+            iosd.in_out_storage_id,
+            iosd.type,
+            iosd.inventory_id,
+            iosd.warehouse_id,
+            iosd.bom_spec_id,
+            iosd.in_sum_price,
+            iosd.in_unit_price,
+            iosd.quantity,
+            iosd.create_user,
+            iosd.create_time,
+            iosd.update_user,
+            iosd.update_time
+        from in_out_storage_details iosd
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 4 - 17
sd-business/src/main/resources/mapper/inventory/InventoryMapper.xml

@@ -41,22 +41,9 @@
         order by d.id
     </select>
 
-    <select id="getNum" resultType="decimal">
-        select sum(ifnull(i.quantity, 0))
-        from in_out_storage_details i
-        <where>
-            <if test="bomSpecId != null">
-                and bom_spec_id = #{bomSpecId}
-            </if>
-            <if test="warehouseId != null">
-                and warehouse_id = #{warehouseId}
-            </if>
-            and type = 1
-        </where>
-    </select>
-
-    <select id="getprice" resultType="decimal">
-        select sum(ifnull(i.in_sum_price, 0))
+    <select id="getPriceAndNum" resultType="com.sd.business.entity.inventory.po.BalancePriceNum">
+        select sum(ifnull(i.in_sum_price, 0)) balancePrice
+              ,sum(ifnull(i.quantity, 0)) balanceNum
         from in_out_storage_details i
         <where>
             <if test="bomSpecId != null">
@@ -87,7 +74,7 @@
             and type = 1
             and quantity > 0
         </where>
-        order by i.create
+        order by i.create_time
     </select>
 
 </mapper>

Деякі файли не було показано, через те що забагато файлів було змінено