From a28c894d35b5ca697bfe455c2d584c7f28ec3722 Mon Sep 17 00:00:00 2001 From: lige <bestlige@outlook.com> Date: 星期五, 15 十二月 2023 15:51:59 +0800 Subject: [PATCH] 优化项目列表 --- ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjProjectMapper.java | 18 ++++++++++++++++++ ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjProjectService.java | 3 +++ ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java | 33 ++++++++++++++++++++------------- ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjProjectServiceImpl.java | 5 +++++ 4 files changed, 46 insertions(+), 13 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java index a6687df..8f87e6b 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java @@ -66,27 +66,34 @@ public AjaxResult getlist(@RequestParam(required = false) @ApiParam(value = "椤圭洰鍚嶇О") String proName, @RequestParam(required = false) @ApiParam(value = "妫�鏌ョ被鍒�") String checkType, @RequestParam(required = false) @ApiParam(value = "閮ㄩ棬id") String deptId) { - LambdaQueryWrapper<TjProject> wq0 = new LambdaQueryWrapper<>(); - wq0.eq(TjProject::getProParentId, 0); - if(null !=proName){ - wq0.like(TjProject::getProName,proName); - } - if(null !=checkType){ - wq0.like(TjProject::getProCheckType,checkType); - } - if(null !=deptId){ - wq0.like(TjProject::getDeptId,deptId); - } +// LambdaQueryWrapper<TjProject> wq0 = new LambdaQueryWrapper<>(); +// wq0.eq(TjProject::getProParentId, 0); +// if(null !=proName){ +// wq0.like(TjProject::getProName,proName); +// } +// if(null !=checkType){ +// wq0.like(TjProject::getProCheckType,checkType); +// } +// if(null !=deptId){ +// wq0.like(TjProject::getDeptId,deptId); +// } +// +// List<TjProject> tjProjects = tjProjectService.list(wq0); - List<TjProject> tjProjects = tjProjectService.list(wq0); + //涓婇潰鐨勬崲sql + final List<TjProject> tjProjects = tjProjectService.getProBySqlAndName(proName, checkType, deptId); + if (tjProjects != null) { for (TjProject project : tjProjects) { LambdaQueryWrapper<TjProject> wq1 = new LambdaQueryWrapper<>(); wq1.eq(TjProject::getProParentId, project.getProId()); + if(null !=proName) { + wq1.like(TjProject::getProName, proName); + } List<TjProject> projectList = tjProjectService.list(wq1); project.setTjProjectList(projectList); - //鏍规嵁姣忎釜椤圭洰鐨刣eptId鎷垮埌name 2023/2/7 + SysDept sysDept = deptService.selectDeptById(project.getDeptId()); if (sysDept!=null){ project.setDeptName(sysDept.getDeptName()); diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjProjectMapper.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjProjectMapper.java index 1a3fd1f..0d20f6b 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjProjectMapper.java +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjProjectMapper.java @@ -103,4 +103,22 @@ @Select("SELECT c.* FROM tj_package a LEFT JOIN tj_package_project b ON a.pac_id=b.pac_id LEFT JOIN " + "tj_project c ON b.pro_id=c.pro_id WHERE a.pac_id=#{pacId} and c.deleted=0") List<TjProject> getTjParentProjectListByPacId(String pacId); + + @Select("SELECT DISTINCT d.* from (\n" + + "\tSELECT * FROM `tj_project` a\n" + + "\twhere a.pro_parent_id=0 \n" + + "\tand (case WHEN #{proName} is NOt NULL THEN a.pro_name like concat('%',#{proName},'%') ELSE 1=1 END)\n" + + "\tand (case WHEN #{checkType} is NOt NULL THEN a.pro_check_type=#{checkType} ELSE 1=1 END)\n" + + "\tand (case WHEN #{deptId} is NOt NULL THEN a.dept_id=#{deptId} ELSE 1=1 END)\n" + + "UNION \n" + + "\tSELECT b.* FROM `tj_project` b JOIN(\n" + + "\tSELECT * FROM `tj_project` a\n" + + "\twhere a.pro_parent_id!=0\n" + + "\tand (case WHEN #{proName} is NOt NULL THEN a.pro_name like concat('%',#{proName},'%') ELSE 1=1 END)\n" + + "\tand (case WHEN #{checkType} is NOt NULL THEN a.pro_check_type=#{checkType} ELSE 1=1 END)\n" + + "\tand (case WHEN #{deptId} is NOt NULL THEN a.dept_id=#{deptId} ELSE 1=1 END)\n" + + ") c\n" + + "on c.pro_parent_id=b.pro_id\n" + + ") d\n") + List<TjProject> getProBySqlAndName(@Param("proName")String proName,@Param("checkType")String checkType,@Param("deptId")String deptId); } diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjProjectService.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjProjectService.java index 37b455b..2ef8bbd 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjProjectService.java +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjProjectService.java @@ -100,4 +100,7 @@ */ public List<com.ltkj.hosp.treeUtil.TreeSelect> buildProjectTreeSelect(List<TjProject> projects); + + List<TjProject> getProBySqlAndName(String proName,String checkType,String deptId); + } diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjProjectServiceImpl.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjProjectServiceImpl.java index eb31836..24cb385 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjProjectServiceImpl.java +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjProjectServiceImpl.java @@ -186,6 +186,11 @@ return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); } + @Override + public List<TjProject> getProBySqlAndName(String proName, String checkType, String deptId) { + return tjProjectMapper.getProBySqlAndName(proName,checkType,deptId); + } + /** * 閫掑綊鍒楄〃 */ -- Gitblit v1.8.0