diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageSection/StorageSectionApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageSection/StorageSectionApplicationService.java index 0a17bb062..83cfb1af9 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageSection/StorageSectionApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageSection/StorageSectionApplicationService.java @@ -21,6 +21,7 @@ import com.mhd.system.service.ISysDictTypeService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.List; /** * 库区ApplicationService @@ -42,11 +43,32 @@ public class StorageSectionApplicationService { */ public List queryList(StorageSectionDO storageSectionDO) { + //设置查询数据权限 + applyQueryDataPermission(storageSectionDO); + return storageSectionDomainService.queryList(storageSectionDO); + } + + /** + * 库区面积合计:与 /list 相同的数据权限和筛选条件,SQL 直接 SUM(库区面积), + * 保证合计数与列表中各行库区面积之和一致 + */ + public BigDecimal sumStorageRegion(StorageSectionDO storageSectionDO) { + //与 /list 共用同一数据权限,保证合计与列表口径一致 + applyQueryDataPermission(storageSectionDO); + return storageSectionDomainService.sumStorageRegion(storageSectionDO); + } + + /** + * @description 设置查询数据权限(queryList 与 sumStorageRegion 共用) + * @author ZhouGY + * @param storageSectionDO + */ + private void applyQueryDataPermission(StorageSectionDO storageSectionDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); if (loginUser != null && loginUser.getUserPo() != null) { Long userOrganizationId = loginUser.getUserPo().getOrganizationId(); Long frontendOrganizationId = storageSectionDO.getOrganizationId(); // 前端传递的 organizationId - + // 数据权限:根据 organizationId 来设置查询权限 // 当前登录用户的 organizationId 为 2827 时,可查全部组织数据;其他组织只能查自己 if (userOrganizationId != null && userOrganizationId == 2827L) { @@ -91,7 +113,6 @@ public class StorageSectionApplicationService { } } } - return storageSectionDomainService.queryList(storageSectionDO); } diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageSection/repository/facade/IStorageSectionService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageSection/repository/facade/IStorageSectionService.java index 925dfb501..2d26a4299 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageSection/repository/facade/IStorageSectionService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageSection/repository/facade/IStorageSectionService.java @@ -5,6 +5,7 @@ import com.mhd.basic.domain.storageSection.entity.StorageSection; import com.mhd.basic.domain.storageSection.repository.po.StorageSectionPO; import com.mhd.basic.domain.storageSection.repository.todo.StorageSectionDO; +import java.math.BigDecimal; import java.util.List; /** @@ -20,6 +21,11 @@ public interface IStorageSectionService extends IService */ public List queryList(StorageSectionDO storageSectionDO); + /** + * 库区面积合计(与 queryList 相同筛选条件) + */ + public BigDecimal sumStorageRegion(StorageSectionDO storageSectionDO); + /** * 新增库区 */ diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageSection/repository/mapper/StorageSectionMapper.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageSection/repository/mapper/StorageSectionMapper.java index 46153810f..82196f40e 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageSection/repository/mapper/StorageSectionMapper.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageSection/repository/mapper/StorageSectionMapper.java @@ -1,5 +1,6 @@ package com.mhd.basic.domain.storageSection.repository.mapper; +import java.math.BigDecimal; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mhd.basic.domain.storageSection.entity.StorageSection; @@ -19,4 +20,9 @@ public interface StorageSectionMapper extends BaseMapper */ public List queryList(StorageSectionDO storageSectionDO); + /** + * 库区面积合计(与 queryList 相同筛选条件) + */ + public BigDecimal sumStorageRegion(StorageSectionDO storageSectionDO); + } diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageSection/repository/persistence/StorageSectionImpl.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageSection/repository/persistence/StorageSectionImpl.java index 2f6e3fcfb..5f1f0baae 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageSection/repository/persistence/StorageSectionImpl.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/storageSection/repository/persistence/StorageSectionImpl.java @@ -10,6 +10,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @@ -33,6 +34,15 @@ public class StorageSectionImpl extends ServiceImpl order by a.storage_name asc, a.create_time desc + + + \ No newline at end of file