From 6e9f2c5ade8802645fd4e0b718ae14d40066b4d5 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 15 Dec 2023 18:17:21 +0800
Subject: [PATCH] 管理后台优化

---
 src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java              |    2 
 src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml                       |   67 +++++-------
 src/main/java/org/springblade/modules/article/mapper/ArticleCommentMapper.xml                |    1 
 src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java               |   11 +-
 src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java |   14 +-
 src/main/java/org/springblade/modules/grid/mapper/GridmanMapper.xml                          |    3 
 src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml                       |   17 +++
 src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml                           |  145 ++++++++++------------------
 src/main/java/org/springblade/modules/article/service/impl/ArticleServiceImpl.java           |    3 
 src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml             |    6 
 10 files changed, 122 insertions(+), 147 deletions(-)

diff --git a/src/main/java/org/springblade/modules/article/mapper/ArticleCommentMapper.xml b/src/main/java/org/springblade/modules/article/mapper/ArticleCommentMapper.xml
index 63b1422..ae74e98 100644
--- a/src/main/java/org/springblade/modules/article/mapper/ArticleCommentMapper.xml
+++ b/src/main/java/org/springblade/modules/article/mapper/ArticleCommentMapper.xml
@@ -80,6 +80,7 @@
             <if test="noticeComment.phone != null ">and bu.phone like concat('%',#{noticeComment.phone},'%')</if>
             <if test="noticeComment.name != null ">and bu.name like concat('%',#{noticeComment.name},'%')</if>
             <if test="noticeComment.title != null ">and ja.title  like concat('%',#{noticeComment.title},'%') </if>
+            and  jac.user_id is not null
         </where>
     </select>
 
diff --git a/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml b/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml
index 5f37093..c88e9ba 100644
--- a/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml
+++ b/src/main/java/org/springblade/modules/article/mapper/ArticleMapper.xml
@@ -101,6 +101,14 @@
                 and jpd.event_type = #{article.eventType}
             </if>
 
+            <if test="article.type != null">
+                and ja.type = #{article.type}
+            </if>
+
+            <if test="article.type == null">
+                and ja.type = 0
+            </if>
+
             <if test="article.districtId != null and article.districtId != ''">
                 and (ja.article_range like concat('%',#{article.districtId},'%')
                 or ja.article_range is null)
@@ -132,6 +140,14 @@
             and ja.publish = 1
             <if test="article.articleType != null and article.articleType != ''">
                 and ja.article_type = #{article.articleType}
+            </if>
+
+            <if test="article.type != null">
+                and ja.type = #{article.type}
+            </if>
+
+            <if test="article.type == null">
+                and ja.type = 0
             </if>
 
             <if test="article.districtId != null and article.districtId != ''">
@@ -169,6 +185,7 @@
             AND CONCAT(title,source_name)
             LIKE CONCAT ('%', #{article.keyword},'%')
         </if>
+        <if test="article.type != null ">and type = #{article.type}</if>
 
         and is_deleted = 0
         order by id desc
diff --git a/src/main/java/org/springblade/modules/article/service/impl/ArticleServiceImpl.java b/src/main/java/org/springblade/modules/article/service/impl/ArticleServiceImpl.java
index b305a62..4c90d65 100644
--- a/src/main/java/org/springblade/modules/article/service/impl/ArticleServiceImpl.java
+++ b/src/main/java/org/springblade/modules/article/service/impl/ArticleServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.lettuce.core.dynamic.annotation.Param;
 import org.springblade.modules.article.entity.Article;
 import org.springblade.modules.article.mapper.ArticleMapper;
 import org.springblade.modules.article.service.ArticleService;
@@ -27,7 +28,7 @@
 	 */
 	@Override
 	public IPage<Article> selectArticlePage(IPage<Article> page, ArticleVO article) {
-		return page.setRecords(baseMapper.selectArticlePage(page,article));
+		return page.setRecords(baseMapper.selectArticlePage(page, article));
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/grid/mapper/GridmanMapper.xml b/src/main/java/org/springblade/modules/grid/mapper/GridmanMapper.xml
index 90a7c4e..d912f9c 100644
--- a/src/main/java/org/springblade/modules/grid/mapper/GridmanMapper.xml
+++ b/src/main/java/org/springblade/modules/grid/mapper/GridmanMapper.xml
@@ -55,6 +55,9 @@
                  LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
         WHERE jg.community_code = #{code}
           AND jg.is_deleted = 0
+        <if test="userId!=null">
+          and jgm.user_id= #{userId}
+        </if>
     </select>
 
     <select id="getCompanyStatistics" resultType="java.lang.Integer">
diff --git a/src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java b/src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java
index 7935a7a..c1e7ffe 100644
--- a/src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java
+++ b/src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java
@@ -187,7 +187,7 @@
 			objectObjectHashMap.put("gridStatistics", gridStatistics);
 			objectObjectHashMap.put("companyStatistics", companyStatistics);
 		} else {
-			Integer gridStatistics = baseMapper.getGridStatistics(code, AuthUtil.getUserId());
+			Integer gridStatistics = baseMapper.getGridStatistics(code, null);
 			Integer companyStatistics = baseMapper.getCompanyStatistics(code, null);
 			objectObjectHashMap.put("gridStatistics", gridStatistics);
 			objectObjectHashMap.put("companyStatistics", companyStatistics);
diff --git a/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml b/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml
index 6c35a85..98c0d5d 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml
@@ -206,41 +206,33 @@
 
 
     <select id="getHouseStatisticsOne" resultType="java.lang.Integer">
-        SELECT
+     SELECT
         count( 1 )
         FROM
-        jczz_house jh
-        WHERE
-        jh.is_deleted = 0
-        AND
-        EXISTS (
-        SELECT
+        (
+        SELECT DISTINCT
         jda.building_code
         FROM
-        jczz_doorplate_address jda
+        jczz_house jh
+        LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
         WHERE
-        jh.house_code = jda.address_code
-        AND jda.nei_code = #{code}
-        AND jda.building_code IS NOT NULL
-
+        jda.nei_code = #{code}
+        AND jh.is_deleted = 0
         <if test="userId != null">
-            AND EXISTS (
-            SELECT
-            *
-            FROM
-            jczz_grid jg
-            LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
-            LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
-            WHERE
-            jgm.user_id = #{userId}
-            AND jh.house_code = jgr.house_code
-            AND jg.is_deleted = 0
-            )
-        </if>
-
-        GROUP BY
-        jda.building_code
+        AND jda.address_code IN (
+        SELECT DISTINCT
+        jgr.house_code
+        FROM
+        jczz_grid jg
+        LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
+        LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
+        WHERE
+        jgm.user_id = #{userId}
+        AND jg.is_deleted = 0
         )
+        </if>
+        ) a
+
     </select>
 
 
@@ -248,75 +240,55 @@
         SELECT
         count( 1 )
         FROM
-        jczz_house jh
-        WHERE
-        jh.is_deleted = 0
-        AND
-        EXISTS (
-        SELECT
+        (
+        SELECT DISTINCT
         jda.address_code
         FROM
-        jczz_doorplate_address jda
+        jczz_house jh
+        LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
         WHERE
-        jh.house_code = jda.address_code
-        AND jda.nei_code = #{code}
-        AND jda.building_code IS NOT NULL
-
+        jda.nei_code = #{code}
+        AND jh.is_deleted = 0
         <if test="userId != null">
-            AND EXISTS (
-            SELECT
-            *
+            AND jda.address_code IN (
+            SELECT DISTINCT
+            jgr.house_code
             FROM
             jczz_grid jg
             LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
             LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
             WHERE
             jgm.user_id = #{userId}
-            AND jh.house_code = jgr.house_code
             AND jg.is_deleted = 0
             )
         </if>
-
-        GROUP BY
-        jda.address_code
-        )
+        ) a
 
     </select>
 
 
     <select id="getHouseStatisticsThree" resultType="java.lang.Integer">
         SELECT
-        count(1)
+        count( 1 )
         FROM
         jczz_household jhh
-        LEFT JOIN jczz_house jh ON jhh.house_code = jh.house_code
+        LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jhh.house_code
         WHERE
-        jh.is_deleted = 0
+        jda.nei_code =  #{code}
         AND jhh.is_deleted = 0
-        AND jhh.house_code IN (
-        SELECT
-        jda.address_code
-        FROM
-        jczz_doorplate_address jda
-        WHERE
-        jh.house_code = jda.address_code
-        AND jda.nei_code = #{code}
         <if test="userId != null">
-            AND EXISTS (
-            SELECT
-            *
-            FROM
-            jczz_grid jg
-            LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
-            LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
-            WHERE
-            jgm.user_id = #{userId}
-            AND jh.house_code = jgr.house_code
-            AND jg.is_deleted = 0
-            )
-        </if>
+        AND jda.address_code IN (
+        SELECT
+        jgr.house_code
+        FROM
+        jczz_grid jg
+        LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
+        LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
+        WHERE
+        jgm.user_id = #{userId}
+        AND jg.is_deleted = 0
         )
-
+        </if>
     </select>
 
 
@@ -324,38 +296,29 @@
         SELECT
         count( 1 )
         FROM
-        jczz_house jh
-        WHERE
-        jh.is_deleted = 0
-        AND
-        EXISTS (
-        SELECT
+        (
+        SELECT DISTINCT
         jda.unit_code
         FROM
-        jczz_doorplate_address jda
+        jczz_house jh
+        LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
         WHERE
-        jh.house_code = jda.address_code
-        AND jda.nei_code = #{code}
-        AND jda.building_code IS NOT NULL
-
+        jda.nei_code = #{code}
+        AND jh.is_deleted = 0
         <if test="userId != null">
-            AND EXISTS (
-            SELECT
-            *
+            AND jda.address_code IN (
+            SELECT DISTINCT
+            jgr.house_code
             FROM
             jczz_grid jg
             LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
             LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
             WHERE
             jgm.user_id = #{userId}
-            AND jh.house_code = jgr.house_code
             AND jg.is_deleted = 0
             )
         </if>
-
-        GROUP BY
-        jda.unit_code
-        )
+        ) a
 
 
     </select>
diff --git a/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml b/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml
index e6eecf3..b08e12d 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml
@@ -243,21 +243,15 @@
 
 
     <select id="getHouseHoldStatistics" resultType="java.util.Map">
-
-        SELECT
-        a.gender,
-        count( a.gender ) numbers
-        FROM
-        (
         SELECT
         CASE
-
         WHEN
         jh.gender = 1 THEN
         '男'
         WHEN jh.gender = 0 THEN
         '女' ELSE '未知'
-        END AS gender
+        END AS gender,
+        count( 1 ) numbers
         FROM
         jczz_household jh
         LEFT JOIN jczz_doorplate_address jda ON jh.house_code = jda.address_code
@@ -265,22 +259,23 @@
         jda.nei_code = #{code}
         AND jh.is_deleted = 0
         <if test="userId != null">
-            AND EXISTS (
-            SELECT
-            *
-            FROM
-            jczz_grid jg
-            LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
-            LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
-            WHERE
-            jgm.user_id = #{userId}
-            AND jh.house_code = jgr.house_code
-            AND jg.is_deleted = 0
-            )
+        AND jda.address_code IN (
+        SELECT
+        jgr.house_code
+        FROM
+        jczz_grid jg
+        LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
+        LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
+        WHERE
+        jgm.user_id = #{userId}
+        AND jh.house_code = jgr.house_code
+        AND jg.is_deleted = 0
+        )
         </if>
-        ) a
         GROUP BY
-        a.gender
+        gender
+
+
     </select>
     <select id="getHouseHoldStatisticsAge" resultType="java.util.Map">
 
@@ -300,24 +295,20 @@
         WHERE
             jda.nei_code =  #{code}
           AND jh.is_deleted = 0
-        GROUP BY
-                age
         <if test="userId != null">
-            AND EXISTS (
-            SELECT
-            *
-            FROM
-            jczz_grid jg
-            LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
-            LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
-            WHERE
-            jgm.user_id = #{userId}
-            AND jh.house_code = jgr.house_code
-            AND jg.is_deleted = 0
-            )
+        AND jda.address_code IN (
+        SELECT
+        distinct jgr.house_code
+        FROM
+        jczz_grid jg
+        LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
+        LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
+        WHERE
+        jgm.user_id = #{userId}
+        AND jg.is_deleted = 0
+        )
         </if>
-        ORDER BY
-            age
+        GROUP BY age
     </select>
 
 
diff --git a/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
index 070d0b2..68aac06 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
@@ -31,7 +31,6 @@
 import org.springblade.modules.property.entity.PropertyCompanyEntity;
 import org.springblade.modules.property.service.IPropertyCompanyService;
 import org.springblade.modules.system.entity.Dept;
-import org.springblade.modules.system.entity.UserDept;
 import org.springblade.modules.system.mapper.DeptMapper;
 import org.springblade.modules.system.service.IDeptService;
 import org.springblade.modules.system.service.IRegionService;
@@ -201,16 +200,16 @@
 		queryWrapper.eq("is_deleted",0).eq("id", dept.getParentId());
 		Dept parentDept = getOne(queryWrapper);
 		// 如果父机构为物业公司
-		if (parentDept.getDeptName().equals("物业公司")){
+		if (parentDept != null && parentDept.getDeptName().equals("物业公司")) {
 			// 查询当前
 			QueryWrapper<Dept> wrapper = new QueryWrapper<>();
-			wrapper.eq("is_deleted",0)
-				.eq("dept_name",dept.getDeptName());
+			wrapper.eq("is_deleted", 0)
+				.eq("dept_name", dept.getDeptName());
 			Dept one = getOne(wrapper);
-			if (null!=one){
+			if (null != one) {
 				dept.setId(one.getId());
 				flag = updateById(dept);
-			}else {
+			} else {
 				flag = save(dept);
 			}
 			//保存物业公司信息
diff --git a/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml b/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml
index b5da0f1..13a1782 100644
--- a/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml
+++ b/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml
@@ -74,7 +74,6 @@
         LEFT JOIN jczz_doorplate_address jda ON jtrfr.address_code = jda.address_code
         WHERE
         jda.nei_code = #{code}
-        AND jda.unit_code IS NOT NULL
         AND jtrfr.is_deleted = 0
         <if test="status != null">
             and jtrfr.confirm_flag = #{status}
@@ -84,16 +83,15 @@
         </if>
 
         <if test="userId != null">
-            AND EXISTS (
+            AND jda.address_code in (
             SELECT
-            *
+            jgr.house_code
             FROM
             jczz_grid jg
             LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
             LEFT JOIN jczz_grid_range jgr ON jgr.grid_id = jg.id
             WHERE
             jgm.user_id = #{userId}
-            AND jtrfr.address_code = jgr.house_code
             AND jg.is_deleted = 0
             )
         </if>
diff --git a/src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java b/src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java
index db6077d..4bf1d63 100644
--- a/src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java
+++ b/src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java
@@ -65,6 +65,8 @@
 			if (taskReportForRepairs.getRoleName().equals("网格员")) {
 				// 查询对应的房屋地址code
 				list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
+			} else if(taskReportForRepairs.getRoleName().equals("居民")){
+				taskReportForRepairs.setCreateUser(AuthUtil.getUserId());
 			}
 		}
 		return page.setRecords(baseMapper.selectTaskReportForRepairsPage(page, taskReportForRepairs,list));
@@ -169,21 +171,21 @@
 	public Object getReportForStatistics(String code, String roleType) {
 		Map<String, Object> objectObjectHashMap = new HashMap<>();
 		if (roleType.equals("1")) {
-			Integer result = baseMapper.getReportForStatistics(code, AuthUtil.getUserId(), 1,null);
 			Integer result1 = baseMapper.getReportForStatistics(code, AuthUtil.getUserId(), null,null);
+			Integer result = baseMapper.getReportForStatistics(code, AuthUtil.getUserId(), 1,null);
 			// result 总数  result1 已处理  result2 处理率  result3 公共维修  result4 居家维修  result5 矛盾纠纷  result6 投诉举报
-			objectObjectHashMap.put("result", result);
-			objectObjectHashMap.put("result1", result1);
+			objectObjectHashMap.put("result", result1);
+			objectObjectHashMap.put("result1", result);
 			objectObjectHashMap.put("result2", result1.equals(0) ? 0 : BigDecimal.valueOf(result).divide(BigDecimal.valueOf(result1), 2, BigDecimal.ROUND_HALF_UP));
 			objectObjectHashMap.put("result3",   baseMapper.getReportForStatistics(code, AuthUtil.getUserId(), null,1));
 			objectObjectHashMap.put("result4",   baseMapper.getReportForStatistics(code, AuthUtil.getUserId(), null,2));
 			objectObjectHashMap.put("result5",   baseMapper.getReportForStatistics(code, AuthUtil.getUserId(), null,3));
 			objectObjectHashMap.put("result6",   baseMapper.getReportForStatistics(code, AuthUtil.getUserId(), null,4));
 		} else {
-			Integer result = baseMapper.getReportForStatistics(code, null, 1,null);
 			Integer result1 = baseMapper.getReportForStatistics(code, null, null,null);
-			objectObjectHashMap.put("result", result);
-			objectObjectHashMap.put("result1", result1);
+			Integer result = baseMapper.getReportForStatistics(code, null, 1,null);
+			objectObjectHashMap.put("result", result1);
+			objectObjectHashMap.put("result1", result);
 			objectObjectHashMap.put("result2", result1.equals(0) ? 0 : BigDecimal.valueOf(result).divide(BigDecimal.valueOf(result1), 2, BigDecimal.ROUND_HALF_UP));
 			objectObjectHashMap.put("result3",   baseMapper.getReportForStatistics(code,null,null,1));
 			objectObjectHashMap.put("result4",   baseMapper.getReportForStatistics(code, null, null,2));

--
Gitblit v1.9.3