소스 검색

项目分页-建设规模统计

qianxb 1 년 전
부모
커밋
1503a1abe7

+ 2 - 2
src/main/java/org/springblade/modules/project/controller/ProjectInfoController.java

@@ -37,8 +37,8 @@ public class ProjectInfoController extends BladeController {
     @PostMapping("/page")
     @ApiOperationSupport(order = 2)
     @Operation(summary = "分页", description = "分页查询项目")
-    public R<IPage<ProjectInfoVO>> page(@RequestBody ProjectInfoPageDTO dto) {
-        IPage<ProjectInfoVO> page =  projectInfoService.page2(dto);
+    public R<PageVO<ProjectInfoVO>> page(@RequestBody ProjectInfoPageDTO dto) {
+        PageVO<ProjectInfoVO> page =  projectInfoService.page2(dto);
         return R.data(page);
     }
 

+ 2 - 1
src/main/java/org/springblade/modules/project/mapper/ProjectInfoMapper.java

@@ -52,7 +52,7 @@ public interface ProjectInfoMapper extends BaseMapper<ProjectInfo> {
 
     List<ProjectPlanProgressVO> getAllProgressByProjectId(@Param("id") Long id);
 
-    IPage<ProjectInfoVO> page(IPage<ProjectInfoVO> page,@Param("dto") ProjectInfoPageDTO dto);
+    PageVO<ProjectInfoVO> page(PageVO<ProjectInfoVO> page,@Param("dto") ProjectInfoPageDTO dto);
 
     List<DataProjectStatVO2> dataProjectStat(@Param("dto") DataStatDTO dto);
 
@@ -66,4 +66,5 @@ public interface ProjectInfoMapper extends BaseMapper<ProjectInfo> {
 
     List<InvestPlanWarningVO> getAllYearPlan();
 
+    Long getBuildTotal(@Param("dto") ProjectInfoPageDTO dto);
 }

+ 19 - 0
src/main/java/org/springblade/modules/project/mapper/ProjectInfoMapper.xml

@@ -99,5 +99,24 @@
         from d_project_invest_plan pip
         where is_deleted = 0
     </select>
+    <select id="getBuildTotal" resultType="java.lang.Long">
+        select ifnull(sum(build_scale),0)
+        from d_project_info dpi where is_deleted = 0 and build_scale_unit = 1
+        <if test="dto.projectStage != null">
+            and project_stage = #{dto.projectStage}
+        </if>
+        <if test="dto.projectType != null">
+            and project_type = #{dto.projectType}
+        </if>
+        <if test="dto.searchValue != null and dto.searchValue != ''">
+            and name like concat('%', #{dto.searchValue}),'%')
+        </if>
+        <if test="dto.startYear != null">
+            and start_year &gt;= #{dto.startYear}
+        </if>
+        <if test="dto.endYear != null ">
+            and end_year &lt;= #{dto.endYear}
+        </if>
+    </select>
 
 </mapper>

+ 14 - 0
src/main/java/org/springblade/modules/project/pojo/vo/PageVO.java

@@ -0,0 +1,14 @@
+package org.springblade.modules.project.pojo.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Data;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2024/4/15 9:40
+ **/
+@Data
+public class PageVO<T> extends Page<T> {
+    private Long buildTotal;
+}

+ 1 - 1
src/main/java/org/springblade/modules/project/service/IProjectInfoService.java

@@ -15,7 +15,7 @@ import org.springblade.modules.project.pojo.vo.*;
 public interface IProjectInfoService extends BaseService<ProjectInfo> {
     void add(ProjectInfoDTO dto);
 
-    IPage<ProjectInfoVO> page2(ProjectInfoPageDTO dto);
+    PageVO<ProjectInfoVO> page2(ProjectInfoPageDTO dto);
 
     ProjectInfoDetailVO detail(Long id);
 

+ 6 - 3
src/main/java/org/springblade/modules/project/service/impl/ProjectInfoServiceImpl.java

@@ -105,9 +105,12 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
     }
 
     @Override
-    public IPage<ProjectInfoVO> page2(ProjectInfoPageDTO dto) {
-        IPage<ProjectInfoVO> page = new Page<>(dto.getCurrent(),dto.getSize());
-        IPage<ProjectInfoVO> iPage = baseMapper.page(page, dto);
+    public PageVO<ProjectInfoVO> page2(ProjectInfoPageDTO dto) {
+        PageVO<ProjectInfoVO> page = new PageVO();
+        PageVO<ProjectInfoVO> iPage = baseMapper.page(page, dto);
+        //获取所有建设规模
+        Long buildTotal = baseMapper.getBuildTotal(dto);
+        iPage.setBuildTotal(buildTotal);
         List<ProjectInfoVO> records = iPage.getRecords();
         if (records != null && records.size() != 0){
             for (ProjectInfoVO vo : records) {