|
@@ -1,6 +1,7 @@
|
|
|
package cn.iocoder.yudao.module.pms.controller.admin.iotlockstock;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.util.ObjUtil;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
@@ -26,8 +27,10 @@ import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import javax.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
@@ -99,12 +102,30 @@ public class IotLockStockController {
|
|
|
@PreAuthorize("@ss.hasPermission('pms:iot-lock-stock:query')")
|
|
|
public CommonResult<PageResult<IotLockStockRespVO>> getIotLockStockPage(@Valid IotLockStockPageReqVO pageReqVO) {
|
|
|
PageResult<IotLockStockDO> pageResult = iotLockStockService.getIotLockStockPage(pageReqVO);
|
|
|
+ List<IotLockStockDO> lockStockList = iotLockStockService.getIotLockStocks(pageReqVO);
|
|
|
+ // 计算符合查询条件的 库存总数量 库存总金额
|
|
|
+ BigDecimal totalQuantity;
|
|
|
+ BigDecimal totalAmount;
|
|
|
+ if (CollUtil.isNotEmpty(lockStockList)) {
|
|
|
+ totalQuantity = lockStockList.stream()
|
|
|
+ .map(IotLockStockDO::getQuantity)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+
|
|
|
+ totalAmount = lockStockList.stream()
|
|
|
+ .filter(stock -> ObjUtil.isNotEmpty(stock.getQuantity()) && ObjUtil.isNotEmpty(stock.getUnitPrice()))
|
|
|
+ .map(stock -> stock.getQuantity().multiply(stock.getUnitPrice()))
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ } else {
|
|
|
+ totalQuantity = BigDecimal.ZERO;
|
|
|
+ totalAmount = BigDecimal.ZERO;
|
|
|
+ }
|
|
|
// 拼接 工厂 成本中心 库存地点
|
|
|
Map<Long, SapOrgRespDTO> factoryMap = sapOrgApi.getSapOrgMap(
|
|
|
convertList(pageResult.getList(), IotLockStockDO::getFactoryId));
|
|
|
Map<Long, SapOrgRespDTO> costCenterMap = sapOrgApi.getSapOrgMap(
|
|
|
convertList(pageResult.getList(), IotLockStockDO::getCostCenterId));
|
|
|
- return success(new PageResult<>(IotLockStockConvert.INSTANCE.convertList(pageResult.getList(), factoryMap, costCenterMap),
|
|
|
+ return success(new PageResult<>(IotLockStockConvert.INSTANCE.convertList(pageResult.getList(), factoryMap, costCenterMap, totalQuantity, totalAmount),
|
|
|
pageResult.getTotal()));
|
|
|
}
|
|
|
|