Преглед на файлове

1.资产项目查询优化

GouGengquan преди 7 месеца
родител
ревизия
35d3926102

+ 3 - 2
biz-base/src/main/java/com/dayou/controller/AssetsProjectController.java

@@ -2,6 +2,7 @@ package com.dayou.controller;
 
 import cn.dev33.satoken.annotation.SaCheckLogin;
 import cn.dev33.satoken.stp.StpUtil;
+import com.dayou.dto.AssetsProjectQueryDTO;
 import com.dayou.result.Result;
 import com.dayou.vo.AssetsProjectVO;
 import lombok.extern.slf4j.Slf4j;
@@ -31,8 +32,8 @@ public class AssetsProjectController {
     * 资产项目基本信息表列表
     */
     @GetMapping("/page")
-    public Result<Page<AssetsProjectVO>> page(Page page){
-        Page<AssetsProjectVO> pages=assetsProjectService.getAssetsProject(page, StpUtil.getLoginIdAsLong());
+    public Result<Page<AssetsProjectVO>> page(Page page, AssetsProjectQueryDTO dto){
+        Page<AssetsProjectVO> pages=assetsProjectService.getAssetsProject(page, dto);
         return Result.build(pages);
     }
 

+ 3 - 2
dao/src/main/java/com/dayou/mapper/AssetsProjectMapper.java

@@ -1,6 +1,7 @@
 package com.dayou.mapper;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dayou.dto.AssetsProjectQueryDTO;
 import com.dayou.entity.AssetsProject;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dayou.vo.AssetsProjectVO;
@@ -19,9 +20,9 @@ public interface AssetsProjectMapper extends BaseMapper<AssetsProject> {
     /**
      * 获取资产项目列表
      * @param page 分页
-     * @param createUserId 创建者id
+     * @param dto 资产项目查询dto
      * @return Page<AssetsProjectVO>
      */
-    Page<AssetsProjectVO> getAssetsProject(@Param("page") Page page, @Param("createUserId") Long createUserId);
+    Page<AssetsProjectVO> getAssetsProject(@Param("page") Page page, @Param("dto") AssetsProjectQueryDTO dto);
 
 }

+ 11 - 1
dao/src/main/resources/mapper/AssetsProjectMapper.xml

@@ -37,7 +37,17 @@
         LEFT JOIN user ON user.id = project.create_user_id
         LEFT JOIN sys_dict_data AS dict_data ON dict_data.id = project.project_type_id
         WHERE project.delete_status = 0
-        AND project.create_user_id = #{createUserId}
+        AND project.create_user_id = #{dto.createUserId}
+        # 查询进行中项目:项目下未完成的测算表或报告数量需大于0
+        <if test="dto.schedule != null and dto.schedule == 0">
+            AND ((SELECT COUNT(assets_report.id) FROM assets_report WHERE project_id = project.id AND progress != 'FINISHED' AND project.delete_status = 0 ) > 0
+            OR (SELECT COUNT(assets_calculate.id) FROM assets_calculate WHERE project_id = project.id AND progress != 'FINISHED' AND project.delete_status = 0 ) > 0)
+        </if>
+        # 查询已完成项目:项目下未完成的测算表以及报告数量需等于0
+        <if test="dto.schedule != null and dto.schedule == 1">
+            AND ((SELECT COUNT(assets_report.id) FROM assets_report WHERE project_id = project.id AND progress != 'FINISHED' AND project.delete_status = 0 ) = 0
+            AND (SELECT COUNT(assets_calculate.id) FROM assets_calculate WHERE project_id = project.id AND progress != 'FINISHED' AND project.delete_status = 0 ) = 0)
+        </if>
         ORDER BY project.create_time DESC
     </select>
 

+ 18 - 0
domain/src/main/java/com/dayou/dto/AssetsProjectQueryDTO.java

@@ -0,0 +1,18 @@
+package com.dayou.dto;
+
+import lombok.Data;
+
+@Data
+public class AssetsProjectQueryDTO {
+
+    /**
+     * 创建者id
+     */
+    private Long createUserId;
+
+    /**
+     * 项目状态(0:进行中、1:已完成)
+     */
+    private Integer schedule;
+
+}

+ 3 - 2
service/src/main/java/com/dayou/service/AssetsProjectService.java

@@ -1,4 +1,5 @@
 package com.dayou.service;
+import com.dayou.dto.AssetsProjectQueryDTO;
 import com.dayou.entity.AssetsProject;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -18,10 +19,10 @@ public interface AssetsProjectService extends IService<AssetsProject> {
         /**
          * 获取资产项目列表
          * @param page 分页
-         * @param createUserId 创建者id
+         * @param dto 资产项目查询dto
          * @return Page<AssetsProjectVO>
          */
-        Page<AssetsProjectVO> getAssetsProject(Page page, Long createUserId);
+        Page<AssetsProjectVO> getAssetsProject(Page page, AssetsProjectQueryDTO dto);
 
         AssetsProject detail(Long id);
 

+ 5 - 3
service/src/main/java/com/dayou/service/impl/AssetsProjectServiceImpl.java

@@ -1,6 +1,7 @@
 package com.dayou.service.impl;
 
 import cn.dev33.satoken.stp.StpUtil;
+import com.dayou.dto.AssetsProjectQueryDTO;
 import com.dayou.entity.AssetsProject;
 import com.dayou.mapper.AssetsProjectMapper;
 import com.dayou.service.AssetsProjectService;
@@ -36,12 +37,13 @@ public class AssetsProjectServiceImpl extends ServiceImpl<AssetsProjectMapper, A
     /**
      * 获取资产项目列表
      * @param page 分页
-     * @param createUserId 创建者id
+     * @param dto 资产项目查询dto
      * @return Page<AssetsProjectVO>
      */
     @Override
-    public Page<AssetsProjectVO> getAssetsProject(Page page, Long createUserId) {
-        return assetsProjectMapper.getAssetsProject(page, createUserId);
+    public Page<AssetsProjectVO> getAssetsProject(Page page, AssetsProjectQueryDTO dto) {
+        dto.setCreateUserId(StpUtil.getLoginIdAsLong());
+        return assetsProjectMapper.getAssetsProject(page, dto);
     }
 
     @Override