فهرست منبع

fit:bug修正

zzw 3 هفته پیش
والد
کامیت
0f2a00641e
24فایلهای تغییر یافته به همراه149 افزوده شده و 50 حذف شده
  1. 3 2
      pricing/src/main/java/com/hotent/pricing/controller/hearing/item/FapHearingItemController.java
  2. 12 12
      pricing/src/main/java/com/hotent/pricing/controller/home/HomeController.java
  3. 2 2
      pricing/src/main/java/com/hotent/pricing/controller/policy/FapFeeCatalogController.java
  4. 3 2
      pricing/src/main/java/com/hotent/pricing/controller/pricing/item/FapPricingItemController.java
  5. 1 1
      pricing/src/main/java/com/hotent/pricing/controller/report/FapReportElderlyCareController.java
  6. 1 0
      pricing/src/main/java/com/hotent/pricing/controller/report/FapReportGasController.java
  7. 3 1
      pricing/src/main/java/com/hotent/pricing/dao/FapFeeStandardDao.java
  8. 1 0
      pricing/src/main/java/com/hotent/pricing/dao/FapHearingItemDao.java
  9. 4 0
      pricing/src/main/java/com/hotent/pricing/dao/FapPricingItemDao.java
  10. 1 1
      pricing/src/main/java/com/hotent/pricing/manager/FapHearingItemManager.java
  11. 3 1
      pricing/src/main/java/com/hotent/pricing/manager/FapPricingItemManager.java
  12. 44 1
      pricing/src/main/java/com/hotent/pricing/manager/impl/FapFeeStandardManagerImpl.java
  13. 11 2
      pricing/src/main/java/com/hotent/pricing/manager/impl/FapHearingItemManagerImpl.java
  14. 11 2
      pricing/src/main/java/com/hotent/pricing/manager/impl/FapPricingItemManagerImpl.java
  15. 0 1
      pricing/src/main/java/com/hotent/pricing/manager/impl/FapTaskNodeManagerImpl.java
  16. 1 1
      pricing/src/main/java/com/hotent/pricing/model/entity/policy/FapFeeStandard.java
  17. 7 4
      pricing/src/main/resources/mapper/FapFeeStandardDao.xml
  18. 10 2
      pricing/src/main/resources/mapper/FapHearingItemMapper.xml
  19. 18 10
      pricing/src/main/resources/mapper/FapPricingItemMapper.xml
  20. 1 1
      pricing/src/main/resources/mapper/FapReportElderlyCareDao.xml
  21. 1 1
      pricing/src/main/resources/mapper/FapReportGasDao.xml
  22. 2 2
      pricing/src/main/resources/mapper/FapReportIrrigationWaterDao.xml
  23. 1 1
      pricing/src/main/resources/mapper/FapReportUrbanWaterDao.xml
  24. 8 0
      pricing/src/main/resources/mapper/FapTaskNodeMapper.xml

+ 3 - 2
pricing/src/main/java/com/hotent/pricing/controller/hearing/item/FapHearingItemController.java

@@ -30,10 +30,11 @@ public class FapHearingItemController extends BaseController<FapHearingItemManag
      * 获取听证事项列表
      */
     @GetMapping("/list")
-    @ApiOperation(value = "听证事项列表", notes = "获取听证事项列表")
+    @ApiOperation(value = "听证事项列表", notes = "获取听证事项列表,支持按所属地区查看本级及下级事项")
     public CommonResult<PageList<FapHearingItem>> list(
             @ApiParam(value = "页码", example = "1") @RequestParam(defaultValue = "1") Integer pageNum,
             @ApiParam(value = "每页大小", example = "10") @RequestParam(defaultValue = "10") Integer pageSize,
+            @ApiParam(value = "所属地区", example = "山西省") @RequestParam(required = false) String regionPath,
             @ApiParam(value = "来源(本单位/外部单位)") @RequestParam(required = false) String source,
             @ApiParam(value = "类型(本级/上级委托)") @RequestParam(required = false) String itemType,
             @ApiParam(value = "听证事项名称") @RequestParam(required = false) String itemName,
@@ -44,7 +45,7 @@ public class FapHearingItemController extends BaseController<FapHearingItemManag
             @ApiParam(value = "内容ID") @RequestParam(required = false) String contentId) {
 
         PageList<FapHearingItem> result = fapHearingItemManager.queryWithConditions(
-            source, itemType, itemName, orgName, startTime, endTime, itemScope, contentId, pageNum, pageSize);
+            regionPath, source, itemType, itemName, orgName, startTime, endTime, itemScope, contentId, pageNum, pageSize);
         return CommonResult.<PageList<FapHearingItem>>ok().value(result);
     }
 

+ 12 - 12
pricing/src/main/java/com/hotent/pricing/controller/home/HomeController.java

@@ -88,12 +88,12 @@ public class HomeController {
         }
 
         // 查询定价事项(使用权限查询方法,已经过滤了"已完成"状态)
-        PageList<FapPricingItem> pricingItemPageList = pricingItemManager.queryWithConditions(
+        PageList<FapPricingItem> pricingItemPageList = pricingItemManager.queryWithConditions(null,
                 null, null, null, null, null, null, null, null,1, Integer.MAX_VALUE);
         int pricingItemCount = pricingItemPageList != null ? (int) pricingItemPageList.getTotal() : 0;
 
         // 查询听证事项(使用权限查询方法)
-        PageList<FapHearingItem> hearingItemPageList = hearingItemManager.queryWithConditions(
+        PageList<FapHearingItem> hearingItemPageList = hearingItemManager.queryWithConditions(null,
                 null, null, null, null, null, null, null, null,1, Integer.MAX_VALUE);
         int hearingItemCount = hearingItemPageList != null ? (int) hearingItemPageList.getTotal() : 0;
 
@@ -119,7 +119,7 @@ public class HomeController {
 
         // 定价事项:查询当前用户组织发起的(需要通过orgId过滤)
         String currentUserOrgId = AuthenticationUtil.getCurrentUserMainOrgId();
-        PageList<FapPricingItem> userPricingItemPageList = pricingItemManager.queryWithConditions(
+        PageList<FapPricingItem> userPricingItemPageList = pricingItemManager.queryWithConditions(null,
                 null, null, null, null, null, null, null, null,1, Integer.MAX_VALUE);
         int userPricingItemCount = 0;
         if (userPricingItemPageList != null && userPricingItemPageList.getRows() != null) {
@@ -131,7 +131,7 @@ public class HomeController {
         }
 
         // 听证事项:查询当前用户组织发起的
-        PageList<FapHearingItem> userHearingItemPageList = hearingItemManager.queryWithConditions(
+        PageList<FapHearingItem> userHearingItemPageList = hearingItemManager.queryWithConditions(null,
                 null, null, null, null, null, null, null, null,1, Integer.MAX_VALUE);
         int userHearingItemCount = 0;
         if (userHearingItemPageList != null && userHearingItemPageList.getRows() != null) {
@@ -217,7 +217,7 @@ public class HomeController {
         }
 
         // 查询定价事项(使用权限查询方法,已经过滤了"已完成"状态)
-        PageList<FapPricingItem> pricingItemPageList = pricingItemManager.queryWithConditions(
+        PageList<FapPricingItem> pricingItemPageList = pricingItemManager.queryWithConditions(null,
                 null, null, null, null, null, null, null, null,1, 10);
         if (pricingItemPageList != null && pricingItemPageList.getRows() != null) {
             for (FapPricingItem pi : pricingItemPageList.getRows()) {
@@ -232,7 +232,7 @@ public class HomeController {
         }
 
         // 查询听证事项(使用权限查询方法)
-        PageList<FapHearingItem> hearingItemPageList = hearingItemManager.queryWithConditions(
+        PageList<FapHearingItem> hearingItemPageList = hearingItemManager.queryWithConditions(null,
                 null, null, null, null, null, null, null, null,1, 10);
         if (hearingItemPageList != null && hearingItemPageList.getRows() != null) {
             for (FapHearingItem hi : hearingItemPageList.getRows()) {
@@ -295,7 +295,7 @@ public class HomeController {
         }
 
         // 查询当前用户组织发起的定价事项(使用权限查询方法)
-        PageList<FapPricingItem> pricingItemPageList = pricingItemManager.queryWithConditions(
+        PageList<FapPricingItem> pricingItemPageList = pricingItemManager.queryWithConditions(null,
                 null, null, null, null, null, null, null, null,1, 10);
         if (pricingItemPageList != null && pricingItemPageList.getRows() != null) {
             for (FapPricingItem pi : pricingItemPageList.getRows()) {
@@ -312,7 +312,7 @@ public class HomeController {
         }
 
         // 查询当前用户组织发起的听证事项(使用权限查询方法)
-        PageList<FapHearingItem> hearingItemPageList = hearingItemManager.queryWithConditions(
+        PageList<FapHearingItem> hearingItemPageList = hearingItemManager.queryWithConditions(null,
                 null, null, null, null, null, null, null, null,1, 10);
         if (hearingItemPageList != null && hearingItemPageList.getRows() != null) {
             for (FapHearingItem hi : hearingItemPageList.getRows()) {
@@ -379,7 +379,7 @@ public class HomeController {
         }
 
         // 查询定价事项(使用权限查询方法,已经过滤了"已完成"状态)
-        PageList<FapPricingItem> pricingItemPageList = pricingItemManager.queryWithConditions(
+        PageList<FapPricingItem> pricingItemPageList = pricingItemManager.queryWithConditions(null,
                 null, null, null, null, null, null, null, null,1, Integer.MAX_VALUE);
         if (pricingItemPageList != null && pricingItemPageList.getRows() != null) {
             for (FapPricingItem pi : pricingItemPageList.getRows()) {
@@ -394,7 +394,7 @@ public class HomeController {
         }
 
         // 查询听证事项(使用权限查询方法)
-        PageList<FapHearingItem> hearingItemPageList = hearingItemManager.queryWithConditions(
+        PageList<FapHearingItem> hearingItemPageList = hearingItemManager.queryWithConditions(null,
                 null, null, null, null, null, null, null, null, 1, Integer.MAX_VALUE);
         if (hearingItemPageList != null && hearingItemPageList.getRows() != null) {
             for (FapHearingItem hi : hearingItemPageList.getRows()) {
@@ -491,7 +491,7 @@ public class HomeController {
         }
 
         // 查询当前用户组织发起的定价事项(使用权限查询方法)
-        PageList<FapPricingItem> pricingItemPageList = pricingItemManager.queryWithConditions(
+        PageList<FapPricingItem> pricingItemPageList = pricingItemManager.queryWithConditions(null,
                 null, null, null, null, null, null, null, null,1, Integer.MAX_VALUE);
         if (pricingItemPageList != null && pricingItemPageList.getRows() != null) {
             for (FapPricingItem pi : pricingItemPageList.getRows()) {
@@ -508,7 +508,7 @@ public class HomeController {
         }
 
         // 查询当前用户组织发起的听证事项(使用权限查询方法)
-        PageList<FapHearingItem> hearingItemPageList = hearingItemManager.queryWithConditions(
+        PageList<FapHearingItem> hearingItemPageList = hearingItemManager.queryWithConditions(null,
                 null, null, null, null, null, null, null, null,1, Integer.MAX_VALUE);
         if (hearingItemPageList != null && hearingItemPageList.getRows() != null) {
             for (FapHearingItem hi : hearingItemPageList.getRows()) {

+ 2 - 2
pricing/src/main/java/com/hotent/pricing/controller/policy/FapFeeCatalogController.java

@@ -342,7 +342,7 @@ public class FapFeeCatalogController {
             @ApiParam(value = "页码", example = "1") @RequestParam(defaultValue = "1") Integer pageNum,
             @ApiParam(value = "每页大小", example = "10") @RequestParam(defaultValue = "10") Integer pageSize,
             @ApiParam(value = "目录ID") @RequestParam(required = false) String catalogId,
-            @ApiParam(value = "地区组织ID") @RequestParam(required = false) String region,
+            @ApiParam(value = "地区组织ID") @RequestParam(required = false) String regionId,
             @ApiParam(value = "标准状态(正常/废止/失效)") @RequestParam(required = false) String standardStatus,
             @ApiParam(value = "项目名称") @RequestParam(required = false) String projectName) {
 
@@ -351,7 +351,7 @@ public class FapFeeCatalogController {
         Org currentOrg = orgManager.getById(currentUserOrgId);
 
         PageList<Map<String, Object>> result = standardManager.getStandardListWithPermission(
-                pageNum, pageSize, catalogId, regionPathUtil.getRegionPath(region), standardStatus, projectName, currentOrg);
+                pageNum, pageSize, catalogId, regionId, standardStatus, projectName, currentOrg);
 
         return CommonResult.<PageList<Map<String, Object>>>ok().value(result);
     }

+ 3 - 2
pricing/src/main/java/com/hotent/pricing/controller/pricing/item/FapPricingItemController.java

@@ -32,10 +32,11 @@ public class FapPricingItemController extends BaseController<FapPricingItemManag
      * 获取定价事项列表
      */
     @GetMapping("/list")
-    @ApiOperation(value = "代办事项", notes = "获取定价事项列表")
+    @ApiOperation(value = "代办事项", notes = "获取定价事项列表,支持按所属地区查看本级及下级事项")
     public CommonResult<PageList<FapPricingItem>> list(
             @ApiParam(value = "页码", example = "1") @RequestParam(defaultValue = "1") Integer pageNum,
             @ApiParam(value = "每页大小", example = "10") @RequestParam(defaultValue = "10") Integer pageSize,
+            @ApiParam(value = "所属地区", example = "山西省") @RequestParam(required = false) String regionPath,
             @ApiParam(value = "类型(新增定价/调价)") @RequestParam(required = false) String itemType,
             @ApiParam(value = "定价事项名称") @RequestParam(required = false) String itemName,
             @ApiParam(value = "发起处室") @RequestParam(required = false) String orgName,
@@ -48,7 +49,7 @@ public class FapPricingItemController extends BaseController<FapPricingItemManag
             ) {
 
         PageList<FapPricingItem> result = fapPricingItemManager.queryWithConditions(
-            itemType, itemName, orgName, startTime, endTime, itemScope, contentId,id, pageNum, pageSize);
+            regionPath, itemType, itemName, orgName, startTime, endTime, itemScope, contentId,id, pageNum, pageSize);
         return CommonResult.<PageList<FapPricingItem>>ok().value(result);
     }
 

+ 1 - 1
pricing/src/main/java/com/hotent/pricing/controller/report/FapReportElderlyCareController.java

@@ -8,6 +8,7 @@ import com.hotent.pricing.model.entity.report.FapReportElderlyCare;
 import com.hotent.pricing.util.ExcelUtil;
 import com.hotent.pricing.util.OrgHierarchyUtil;
 import com.hotent.uc.manager.OrgManager;
+import com.hotent.uc.model.Org;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -107,7 +108,6 @@ public class FapReportElderlyCareController {
                 if (record.getOrgId() != null) {
                     record.setOrgName(orgService.getById(record.getOrgId()).getName());
                     record.setCountyName(orgService.getById(record.getCounty()).getName());
-
                 }
             }
         }

+ 1 - 0
pricing/src/main/java/com/hotent/pricing/controller/report/FapReportGasController.java

@@ -10,6 +10,7 @@ import com.hotent.pricing.util.ExcelUtil;
 import com.hotent.pricing.util.OrgHierarchyUtil;
 import com.hotent.pricing.util.RegionPathUtil;
 import com.hotent.uc.manager.OrgManager;
+import com.hotent.uc.model.Org;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;

+ 3 - 1
pricing/src/main/java/com/hotent/pricing/dao/FapFeeStandardDao.java

@@ -26,6 +26,7 @@ public interface FapFeeStandardDao extends BaseMapper<FapFeeStandard> {
      * @param standardStatus 标准状态
      * @param projectName 项目名称
      * @param allowedRegionIds 允许查看的地区ID列表
+     * @param drillDownRegionIds 下钻查询的地区ID列表(传入region时,查询其直属下级的标准)
      * @return 标准列表(包含地区名称、文件依据、更新信息等)
      */
     List<Map<String, Object>> getStandardListWithPermission(
@@ -34,7 +35,8 @@ public interface FapFeeStandardDao extends BaseMapper<FapFeeStandard> {
             @Param("region") String region,
             @Param("standardStatus") String standardStatus,
             @Param("projectName") String projectName,
-            @Param("allowedRegionIds") List<String> allowedRegionIds
+            @Param("allowedRegionIds") List<String> allowedRegionIds,
+            @Param("drillDownRegionIds") List<String> drillDownRegionIds
     );
 
     /**

+ 1 - 0
pricing/src/main/java/com/hotent/pricing/dao/FapHearingItemDao.java

@@ -25,6 +25,7 @@ public interface FapHearingItemDao extends BaseMapper<FapHearingItem> {
                                             @Param("startTime") String startTime,
                                             @Param("endTime") String endTime,
                                             @Param("itemScope") String itemScope,
+                                            @Param("regionOrgIds") List<String> regionOrgIds,
                                             @Param("currentUserOrgId") String currentUserOrgId,
                                             @Param("currentUserId") String currentUserId,
                                             @Param("contentId") String contentId);

+ 4 - 0
pricing/src/main/java/com/hotent/pricing/dao/FapPricingItemDao.java

@@ -21,8 +21,11 @@ public interface FapPricingItemDao extends BaseMapper<FapPricingItem> {
      * @param startTime 开始时间
      * @param endTime 结束时间
      * @param itemScope 事项范围
+     * @param regionOrgIds 地区组织ID列表
      * @param currentUserOrgId 当前用户组织ID
+     * @param currentUserId 当前用户ID
      * @param contentId 内容ID
+     * @param id 事项ID
      * @return 事项列表
      */
     List<FapPricingItem> queryWithConditions(@Param("itemType") String itemType,
@@ -31,6 +34,7 @@ public interface FapPricingItemDao extends BaseMapper<FapPricingItem> {
                                             @Param("startTime") String startTime,
                                             @Param("endTime") String endTime,
                                             @Param("itemScope") String itemScope,
+                                            @Param("regionOrgIds") List<String> regionOrgIds,
                                             @Param("currentUserOrgId") String currentUserOrgId,
                                             @Param("currentUserId") String currentUserId,
                                              @Param("contentId") String contentId,

+ 1 - 1
pricing/src/main/java/com/hotent/pricing/manager/FapHearingItemManager.java

@@ -29,7 +29,7 @@ public interface FapHearingItemManager extends BaseManager<FapHearingItem> {
     /**
      * 根据条件查询听证事项列表
      */
-    PageList<FapHearingItem> queryWithConditions(String source, String itemType, String itemName,
+    PageList<FapHearingItem> queryWithConditions(String regionPath, String source, String itemType, String itemName,
                                                 String orgName, String startTime, String endTime, String itemScope, String contentId,
                                                 Integer pageNum, Integer pageSize);
 

+ 3 - 1
pricing/src/main/java/com/hotent/pricing/manager/FapPricingItemManager.java

@@ -30,6 +30,7 @@ public interface FapPricingItemManager extends BaseManager<FapPricingItem> {
 
 	/**
 	 * 根据条件查询定价事项列表
+	 * @param regionPath 所属地区路径
 	 * @param itemType 类型(新增定价/调价)
 	 * @param itemName 定价事项名称
 	 * @param orgName 发起处室
@@ -37,11 +38,12 @@ public interface FapPricingItemManager extends BaseManager<FapPricingItem> {
 	 * @param endTime 发起结束时间
 	 * @param itemScope 事项范围(CATALOG_INTERNAL/CATALOG_EXTERNAL)
 	 * @param contentId 内容ID
+	 * @param id 事项ID
 	 * @param pageNum 页码
 	 * @param pageSize 每页大小
 	 * @return 分页结果
 	 */
-	PageList<FapPricingItem> queryWithConditions(String itemType, String itemName, String orgName, String startTime, String endTime, String itemScope, String contentId,String id, Integer pageNum, Integer pageSize);
+	PageList<FapPricingItem> queryWithConditions(String regionPath, String itemType, String itemName, String orgName, String startTime, String endTime, String itemScope, String contentId,String id, Integer pageNum, Integer pageSize);
 
 	/**
 	 * 办件跟踪/办结事项列表查询

+ 44 - 1
pricing/src/main/java/com/hotent/pricing/manager/impl/FapFeeStandardManagerImpl.java

@@ -7,16 +7,19 @@ import com.hotent.base.util.AuthenticationUtil;
 import com.hotent.pricing.dao.FapFeeStandardDao;
 import com.hotent.pricing.manager.FapFeeCatalogManager;
 import com.hotent.pricing.manager.FapFeeStandardManager;
+import com.hotent.base.util.AuthenticationUtil;
 import com.hotent.pricing.manager.FapFeeStandardHistoryManager;
 import com.hotent.pricing.model.entity.policy.FapFeeStandard;
 import com.hotent.pricing.model.entity.policy.FapFeeStandardHistory;
 import com.hotent.pricing.util.ExcelUtil;
+import com.hotent.pricing.util.OrgHierarchyUtil;
 import com.hotent.uc.manager.OrgManager;
 import com.hotent.uc.model.Org;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -38,6 +41,9 @@ public class FapFeeStandardManagerImpl extends BaseManagerImpl<FapFeeStandardDao
     @Autowired
     private FapFeeStandardHistoryManager historyManager;
 
+    @Autowired
+    private OrgHierarchyUtil orgHierarchyUtil;
+
     @Override
     public PageList<Map<String, Object>> getStandardListWithPermission(Integer pageNum, Integer pageSize,
                                                                       String catalogId, String region,
@@ -47,13 +53,50 @@ public class FapFeeStandardManagerImpl extends BaseManagerImpl<FapFeeStandardDao
         // 根据组织层级确定可查看的地区范围
         List<String> allowedRegionIds = getAllowedRegionsByOrgLevel(currentOrg);
 
+        // 下钻功能:确定基准地区ID,查询该地区及其直属下级地区的标准
+        List<String> drillDownRegionIds = new ArrayList<>();
+        String baseRegionId;
+        
+        if (region != null && !region.trim().isEmpty()) {
+            // 如果传入了regionId,使用传入的值作为基准地区
+            baseRegionId = region;
+        } else {
+            // 如果regionId为null,获取当前用户所属的地区组织
+            if (currentOrg.getOrgType() != null && currentOrg.getOrgType() == 0) {
+                baseRegionId = currentOrg.getId();
+            } else {
+                Org regionOrg = orgHierarchyUtil.getParentOrganization(currentOrg.getId());
+                if (regionOrg != null) {
+                    baseRegionId = regionOrg.getId();
+                } else {
+                    // 如果找不到地区组织,使用当前组织ID(虽然可能不是地区组织,但作为兜底)
+                    baseRegionId = currentOrg.getId();
+                }
+            }
+        }
+        
+        // 将基准地区本身加入列表
+        drillDownRegionIds.add(baseRegionId);
+        
+        // 获取基准地区的直属下级组织(orgType=0,只获取直接下级,不递归)
+        List<Org> directSubOrgs = orgManager.lambdaQuery()
+                .eq(Org::getParentId, baseRegionId)
+                .eq(Org::getOrgType, 0)
+                .list();
+        
+        if (directSubOrgs != null && !directSubOrgs.isEmpty()) {
+            for (Org subOrg : directSubOrgs) {
+                drillDownRegionIds.add(subOrg.getId());
+            }
+        }
+
         // 创建分页对象
         Page<Map<String, Object>> page = new Page<>(pageNum, pageSize);
 
         // 调用XML SQL查询(Page对象会自动处理分页,不需要再传pageNum和pageSize)
         List<Map<String, Object>> records = baseMapper.getStandardListWithPermission(page,
                                                                                     catalogId, region, standardStatus,
-                                                                                    projectName, allowedRegionIds);
+                                                                                    projectName, allowedRegionIds, drillDownRegionIds);
 
         for (Map<String, Object> record : records) {
             record.put("documentBasis", baseMapper.getStandardPolicyDocuments((String) record.get("standardId")));

+ 11 - 2
pricing/src/main/java/com/hotent/pricing/manager/impl/FapHearingItemManagerImpl.java

@@ -410,14 +410,23 @@ public class FapHearingItemManagerImpl extends BaseManagerImpl<FapHearingItemDao
 
     @Override
     @Transactional(readOnly = true)
-    public PageList<FapHearingItem> queryWithConditions(String source, String itemType, String itemName, String orgName, String startTime, String endTime, String itemScope, String contentId, Integer pageNum, Integer pageSize) {
+    public PageList<FapHearingItem> queryWithConditions(String regionPath, String source, String itemType, String itemName, String orgName, String startTime, String endTime, String itemScope, String contentId, Integer pageNum, Integer pageSize) {
         // 获取当前用户信息
         String currentUserId = ContextUtil.getCurrentUserId();
         String currentUserOrgId = AuthenticationUtil.getCurrentUserMainOrgId();
 
+        // 查询当前用户组织及其所有下级组织
+        List<String> regionOrgIds = new ArrayList<>();
+        regionOrgIds.add(currentUserOrgId);
+        // 获取当前用户组织的所有下级组织(递归获取所有层级)
+        List<Org> allSubOrgs = orgHierarchyUtil.getAllSubOrgs(currentUserOrgId);
+        for (Org subOrg : allSubOrgs) {
+            regionOrgIds.add(subOrg.getId());
+        }
+
         PageHelper.startPage(pageNum, pageSize);
         // 使用XML SQL查询
-        List<FapHearingItem> list = baseMapper.queryWithConditions(source, itemType, itemName, orgName, startTime, endTime, itemScope, currentUserOrgId, currentUserId, contentId);
+        List<FapHearingItem> list = baseMapper.queryWithConditions(source, itemType, itemName, orgName, startTime, endTime, itemScope, regionOrgIds, currentUserOrgId, currentUserId, contentId);
 
         PageInfo<FapHearingItem> pageInfo = new PageInfo<>(list);
         PageList<FapHearingItem> pageList = new PageList<>();

+ 11 - 2
pricing/src/main/java/com/hotent/pricing/manager/impl/FapPricingItemManagerImpl.java

@@ -873,10 +873,19 @@ public class FapPricingItemManagerImpl extends BaseManagerImpl<FapPricingItemDao
 
     @Override
     @Transactional(readOnly = true)
-    public PageList<FapPricingItem> queryWithConditions(String itemType, String itemName, String orgName, String startTime, String endTime, String itemScope, String contentId,String id, Integer pageNum, Integer pageSize) {
+    public PageList<FapPricingItem> queryWithConditions(String regionPath, String itemType, String itemName, String orgName, String startTime, String endTime, String itemScope, String contentId,String id, Integer pageNum, Integer pageSize) {
         // 获取当前用户信息
         String currentUserId = ContextUtil.getCurrentUserId();
         String currentUserOrgId = AuthenticationUtil.getCurrentUserMainOrgId();
+
+        // 查询当前用户组织及其所有下级组织
+        List<String> regionOrgIds = new ArrayList<>();
+        regionOrgIds.add(currentUserOrgId);
+        // 获取当前用户组织的所有下级组织(递归获取所有层级)
+        List<Org> allSubOrgs = orgHierarchyUtil.getAllSubOrgs(currentUserOrgId);
+        for (Org subOrg : allSubOrgs) {
+            regionOrgIds.add(subOrg.getId());
+        }
         PageHelper.startPage(pageNum, pageSize);
         // 使用XML SQL查询
         if (StringUtil.isNotEmpty(startTime)) {
@@ -885,7 +894,7 @@ public class FapPricingItemManagerImpl extends BaseManagerImpl<FapPricingItemDao
         if (StringUtil.isNotEmpty(endTime)) {
             endTime=endTime+" 23:59:59";
         }
-        List<FapPricingItem> list = baseMapper.queryWithConditions(itemType, itemName, orgName, startTime, endTime, itemScope, currentUserOrgId, currentUserId, contentId,id);
+        List<FapPricingItem> list = baseMapper.queryWithConditions(itemType, itemName, orgName, startTime, endTime, itemScope, regionOrgIds, currentUserOrgId, currentUserId, contentId,id);
 
         // 设置canApprove标志
         for (FapPricingItem item : list) {

+ 0 - 1
pricing/src/main/java/com/hotent/pricing/manager/impl/FapTaskNodeManagerImpl.java

@@ -215,7 +215,6 @@ public class FapTaskNodeManagerImpl extends BaseManagerImpl<FapTaskNodeDao, FapT
                 unit.setTaskStatus(SchedulingStatusEnum.TASK_JXZ.getCode());
                 unit.setCreateOrgId(fapTaskNode.getCreateOrgId());
                 unit.setCreateOrgName(fapTaskNode.getCreateOrgName());
-                unit.setTaskExecutingUnitIds(null);
 
                 // 校验每一个下发部门是否有负责人
                 Org org = orgManager.getById(orgId);

+ 1 - 1
pricing/src/main/java/com/hotent/pricing/model/entity/policy/FapFeeStandard.java

@@ -47,7 +47,7 @@ public class FapFeeStandard extends CommonModel<FapFeeStandard> {
     @TableField("region")
     @JsonProperty("region")
     private String region;
-    @TableField(exist = false)
+    @TableField("region_id")
     private String regionId;
 
 

+ 7 - 4
pricing/src/main/resources/mapper/FapFeeStandardDao.xml

@@ -51,9 +51,12 @@
             AND fs.standard_status = #{standardStatus}
         </if>
 
-        <!-- 下钻查询:如果指定了具体地区 -->
-        <if test="region != null and region != ''">
-            AND fs.region = #{region}
+        <!-- 下钻查询:如果指定了具体地区,查询其直属下级的标准 -->
+        <if test="drillDownRegionIds != null and drillDownRegionIds.size() > 0">
+            AND fs.region_id IN
+            <foreach collection="drillDownRegionIds" item="regionId" open="(" separator="," close=")">
+                #{regionId}
+            </foreach>
         </if>
 
         <!-- 项目名称模糊查询 -->
@@ -61,7 +64,7 @@
             AND catalog.project_name LIKE CONCAT('%', #{projectName}, '%')
         </if>
 
-        ORDER BY fs.update_time DESC, fs.create_time DESC
+        ORDER BY org.REGION_CODE_ ASC, org.NAME_ ASC, fs.update_time DESC, fs.create_time DESC
     </select>
 
     <!-- 查询标准关联的政策文件详细信息 -->

+ 10 - 2
pricing/src/main/resources/mapper/FapHearingItemMapper.xml

@@ -39,8 +39,16 @@
         FROM fap_hearing_item item
         LEFT JOIN uc_org org ON item.org_id = org.id_
         WHERE item.is_deleted = '0'
-        <if test="currentUserOrgId != null and currentUserOrgId != ''">
-            AND item.org_id = #{currentUserOrgId}
+        <if test="regionOrgIds != null and regionOrgIds.size() > 0">
+            AND item.org_id IN
+            <foreach collection="regionOrgIds" item="orgId" open="(" separator="," close=")">
+                #{orgId}
+            </foreach>
+        </if>
+        <if test="regionOrgIds == null or regionOrgIds.size() == 0">
+            <if test="currentUserOrgId != null and currentUserOrgId != ''">
+                AND item.org_id = #{currentUserOrgId}
+            </if>
         </if>
         <!-- 目录外事项权限控制 -->
         <if test="itemScope == 'CATALOG_EXTERNAL'">

+ 18 - 10
pricing/src/main/resources/mapper/FapPricingItemMapper.xml

@@ -37,17 +37,25 @@
         LEFT JOIN uc_org org ON item.org_id = org.id_
         WHERE item.is_deleted = '0'
         AND item.step_status != '已完成'
-        <if test="currentUserOrgId != null and currentUserOrgId != ''">
-            AND (item.org_id = #{currentUserOrgId}
-                OR EXISTS (
-                    SELECT 1 FROM fap_pricing_item_cost_audit ca
-                    WHERE ca.item_id = item.id AND ca.responsible_org_id = #{currentUserOrgId} AND ca.is_deleted = '0'
-                )
-                OR EXISTS (
-                    SELECT 1 FROM fap_pricing_item_legality_review lr
-                    WHERE lr.item_id = item.id AND lr.responsible_org_id = #{currentUserOrgId} AND lr.is_deleted = '0'
+        <if test="regionOrgIds != null and regionOrgIds.size() > 0">
+            AND item.org_id IN
+            <foreach collection="regionOrgIds" item="orgId" open="(" separator="," close=")">
+                #{orgId}
+            </foreach>
+        </if>
+        <if test="regionOrgIds == null or regionOrgIds.size() == 0">
+            <if test="currentUserOrgId != null and currentUserOrgId != ''">
+                AND (item.org_id = #{currentUserOrgId}
+                    OR EXISTS (
+                        SELECT 1 FROM fap_pricing_item_cost_audit ca
+                        WHERE ca.item_id = item.id AND ca.responsible_org_id = #{currentUserOrgId} AND ca.is_deleted = '0'
+                    )
+                    OR EXISTS (
+                        SELECT 1 FROM fap_pricing_item_legality_review lr
+                        WHERE lr.item_id = item.id AND lr.responsible_org_id = #{currentUserOrgId} AND lr.is_deleted = '0'
+                    )
                 )
-            )
+            </if>
         </if>
         <!-- 目录外事项权限控制 -->
         <if test="itemScope == 'CATALOG_EXTERNAL'">

+ 1 - 1
pricing/src/main/resources/mapper/FapReportElderlyCareDao.xml

@@ -53,7 +53,7 @@
             AND fec.institution_name LIKE CONCAT('%',#{name},'%')
         </if>
 
-        ORDER BY org.REGION_CODE_ ASC, fec.update_time DESC
+        ORDER BY org.REGION_CODE_ ASC, org.NAME_ ASC, fec.update_time DESC
     </select>
 
 </mapper>

+ 1 - 1
pricing/src/main/resources/mapper/FapReportGasDao.xml

@@ -38,7 +38,7 @@
             </foreach>
         </if>
 
-        ORDER BY org.REGION_CODE_ ASC, fg.execute_time DESC
+        ORDER BY org.REGION_CODE_ ASC, org.NAME_ ASC, fg.execute_time DESC
     </select>
 
 </mapper>

+ 2 - 2
pricing/src/main/resources/mapper/FapReportIrrigationWaterDao.xml

@@ -45,7 +45,7 @@
             AND (fiw.project_name LIKE CONCAT('%', #{projectName}, '%') OR fiw.project_name IS NULL)
         </if>
 
-        ORDER BY org.REGION_CODE_ ASC, fiw.execute_time DESC
+        ORDER BY org.REGION_CODE_ ASC, org.NAME_ ASC, fiw.execute_time DESC
     </select>
 
     <!-- 以组织表为主表查询灌溉水报表列表(不分页) -->
@@ -94,7 +94,7 @@
             AND (fiw.project_name LIKE CONCAT('%', #{projectName}, '%') OR fiw.project_name IS NULL)
         </if>
 
-        ORDER BY org.REGION_CODE_ ASC, fiw.execute_time DESC
+        ORDER BY org.REGION_CODE_ ASC, org.NAME_ ASC, fiw.execute_time DESC
         LIMIT 1
     </select>
 

+ 1 - 1
pricing/src/main/resources/mapper/FapReportUrbanWaterDao.xml

@@ -55,7 +55,7 @@
             </foreach>
         </if>
 
-        ORDER BY org.REGION_CODE_ ASC, fuw.execute_time DESC
+        ORDER BY org.REGION_CODE_ ASC, org.NAME_ ASC, fuw.execute_time DESC
     </select>
 
 </mapper>

+ 8 - 0
pricing/src/main/resources/mapper/FapTaskNodeMapper.xml

@@ -97,6 +97,10 @@
                     ELSE org_region.ID_
                 END = #{regionPath}
             )
+            <!-- 当有地区筛选但没有父任务ID时,只显示主任务(避免重复显示子任务) -->
+            <if test="parentId == null or parentId == ''">
+                AND (task.parent_id IS NULL OR task.parent_id = '')
+            </if>
         </if>
 
         <!-- 当前用户组织权限控制 -->
@@ -229,6 +233,10 @@
                     ELSE org_region.ID_
                 END = #{regionPath}
             )
+            <!-- 当有地区筛选但没有父任务ID时,只显示主任务(避免重复显示子任务) -->
+            <if test="parentId == null or parentId == ''">
+                AND (task.parent_id IS NULL OR task.parent_id = '')
+            </if>
         </if>
 
         <!-- 当前用户组织权限控制 -->