From 876ce063e5026dc934667dedfb0b658a22b9c43d Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Wed, 21 Feb 2024 16:52:35 +0800
Subject: [PATCH] 报事报修物业人员查询优化

---
 src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.java            |    3 +
 src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java |   41 +++++++++++---------
 src/main/java/org/springblade/modules/task/vo/TaskReportForRepairsVO.java                    |   14 +++++--
 src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml             |   56 ++++++++++++++++++++--------
 4 files changed, 74 insertions(+), 40 deletions(-)

diff --git a/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.java b/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.java
index cf8d293..23b3752 100644
--- a/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.java
+++ b/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.java
@@ -46,7 +46,8 @@
 																@Param("list") List<String> list,
 																@Param("regionChildCodesList") List<String> regionChildCodesList,
 																@Param("isAdministrator") Integer isAdministrator,
-																@Param("aoiCodeList") List<String> aoiCodeList);
+																@Param("aoiCodeList") List<String> aoiCodeList,
+																@Param("gridCodeList") List<String> gridCodeList);
 
 
 	/**
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 7e42e37..65b29b2 100644
--- a/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml
+++ b/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml
@@ -208,24 +208,48 @@
             AND jtrfr.create_time BETWEEN #{vo.startTime} and #{vo.endTime}
         </if>
         <if test="isAdministrator==2">
-            <choose>
-                <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
-                    and jg.grid_code in
-                    <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
-                        #{code}
+            <!-- 物业和居民 -->
+            <if test="vo.roleType !=null and (vo.roleType == 'wy' or vo.roleType == 'inhabitant')">
+                <if test="aoiCodeList!=null and aoiCodeList.size()>0">
+                    and jda.aoi_code in
+                    <foreach collection="aoiCodeList" item="item" separator="," open="(" close=")">
+                        #{item}
                     </foreach>
-                </when>
-            </choose>
+                </if>
+
+                <if test="vo.roleType == 'wy' and vo.confirmUserId != null ">
+                    and jtrfr.confirm_user_id = #{vo.confirmUserId}
+                </if>
+            </if>
+            <!-- 网格员及其他 -->
+            <if test="vo.roleType ==null">
+                <choose>
+                    <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                        and jg.grid_code in
+                        <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                            #{code}
+                        </foreach>
+                    </when>
+                </choose>
+
+                <choose>
+                    <when test="gridCodeList !=null and gridCodeList.size()>0">
+                        and jg.grid_code in
+                        <foreach collection="gridCodeList" item="code" open="(" close=")" separator=",">
+                            #{code}
+                        </foreach>
+                    </when>
+                    <otherwise>
+                        and jg.grid_code in ('')
+                    </otherwise>
+                </choose>
+
+                <if test="vo.confirmUserId != null ">
+                    and jtrfr.confirm_user_id = #{vo.confirmUserId}
+                </if>
+
+            </if>
         </if>
-
-
-        <if test="aoiCodeList!=null and aoiCodeList.size()>0">
-            and jda.aoi_code in
-            <foreach collection="aoiCodeList" item="item" separator="," open="(" close=")">
-                #{item}
-            </foreach>
-        </if>
-
         ORDER BY jtrfr.create_time DESC
     </select>
 
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 fa0593d..ad46aff 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
@@ -19,6 +19,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import org.springblade.common.cache.SysCache;
+import org.springblade.common.param.CommonParamSet;
 import org.springblade.common.utils.SpringUtils;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.secure.utils.AuthUtil;
@@ -41,6 +42,7 @@
 import org.springblade.modules.task.service.ITaskService;
 import org.springblade.modules.task.vo.TaskReportForRepairsVO;
 import org.springblade.modules.task.vo.TaskReportStatistics;
+import org.springblade.modules.taskPlaceSelfCheck.vo.TaskPlaceSelfCheckVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -76,47 +78,48 @@
 	 */
 	@Override
 	public IPage<TaskReportForRepairsVO> selectTaskReportForRepairsPage(IPage<TaskReportForRepairsVO> page, TaskReportForRepairsVO taskReportForRepairs) {
-		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
-		Integer isAdministrator = AuthUtil.isAdministrator() == true ? 1 : 2;
+		// 公共参数设置
+		CommonParamSet commonParamSet = new CommonParamSet().invoke(TaskReportForRepairsVO.class,taskReportForRepairs);
 		taskReportForRepairs.setConfirmUserId(AuthUtil.getUserId());
-		List<String> list = new ArrayList<>();
+		List<String> addressCodeList = new ArrayList<>();
 		if (null != taskReportForRepairs.getRoleName() && !taskReportForRepairs.getRoleName().equals("")) {
-			if (taskReportForRepairs.getRoleName().equals("网格员")) {
-				// 查询对应的房屋地址code
-				list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
-			} else if (taskReportForRepairs.getRoleName().equals("居民")) {
+			 if (taskReportForRepairs.getRoleName().equals("居民")) {
 				taskReportForRepairs.setCreateUser(AuthUtil.getUserId());
 				taskReportForRepairs.setConfirmUserId(null);
+				//
+				taskReportForRepairs.setRoleType("inhabitant");
 			}
 		}
-
 		String userRole = AuthUtil.getUserRole();
 		List<String> aoiCodeList = new ArrayList<>();
-		if (userRole.contains("wygly") || userRole.contains("wyxmjl")) {
+		if (userRole.contains("wygly") || userRole.contains("wyxmjl")|| userRole.contains("wyfwry")) {
+			taskReportForRepairs.setRoleType("wy");
 			// 查询小区id
 			IPropertyDistrictUserService propertyDistrictUserService = SpringUtils.getBean(IPropertyDistrictUserService.class);
 			List<String> districtIds = propertyDistrictUserService.selectPropertyDistrictByUserId(AuthUtil.getUserId());
 			// 通过用户机构查询用户的物业公司
 			IPropertyCompanyService bean = SpringUtil.getBean(IPropertyCompanyService.class);
-			PropertyCompanyEntity one = bean.getOne(Wrappers.<PropertyCompanyEntity>lambdaQuery().eq(PropertyCompanyEntity::getDeptId, AuthUtil.getDeptId()));
-			if (one != null) {
+			PropertyCompanyEntity companyEntity = bean.getOne(Wrappers.<PropertyCompanyEntity>lambdaQuery().eq(PropertyCompanyEntity::getDeptId, AuthUtil.getDeptId()));
+			if (companyEntity != null) {
 				IPropertyCompanyDistrictService bean2 = SpringUtils.getBean(IPropertyCompanyDistrictService.class);
 				// 通过物业公司,查询小区
-				List<PropertyCompanyDistrictEntity> list2 = bean2.list(Wrappers.<PropertyCompanyDistrictEntity>lambdaQuery()
-					.eq(PropertyCompanyDistrictEntity::getPropertyCompanyId, one.getId()));
-				if (list2.size() > 0) {
-					List<String> collect = list2.stream().map(i -> i.getDistrictId()).collect(Collectors.toList());
+				List<PropertyCompanyDistrictEntity> companyDistrictEntities = bean2.list(Wrappers.<PropertyCompanyDistrictEntity>lambdaQuery()
+					.eq(PropertyCompanyDistrictEntity::getPropertyCompanyId, companyEntity.getId()));
+				if (companyDistrictEntities.size() > 0) {
+					List<String> collect = companyDistrictEntities.stream().map(i -> i.getDistrictId()).collect(Collectors.toList());
 					districtIds.addAll(collect);
 				}
 			}
 			if (districtIds.size() == 0) {
 				return page.setRecords(new ArrayList<>());
 			}
-			IDistrictService bean1 = SpringUtil.getBean(IDistrictService.class);
-			List<DistrictEntity> list1 = bean1.list(Wrappers.<DistrictEntity>lambdaQuery().in(DistrictEntity::getId, districtIds));
-			aoiCodeList = list1.stream().map(i -> i.getAoiCode()).collect(Collectors.toList());
+			IDistrictService districtService = SpringUtil.getBean(IDistrictService.class);
+			List<DistrictEntity> districtEntityList = districtService.list(Wrappers.<DistrictEntity>lambdaQuery().in(DistrictEntity::getId, districtIds));
+			aoiCodeList = districtEntityList.stream().map(i -> i.getAoiCode()).collect(Collectors.toList());
 		}
-		return page.setRecords(baseMapper.selectTaskReportForRepairsPage(page, taskReportForRepairs, list, regionChildCodesList, isAdministrator, aoiCodeList));
+
+		return page.setRecords(baseMapper.selectTaskReportForRepairsPage(page, taskReportForRepairs, addressCodeList,
+			commonParamSet.getRegionChildCodesList(), commonParamSet.getIsAdministrator(), aoiCodeList,commonParamSet.getGridCodeList()));
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/task/vo/TaskReportForRepairsVO.java b/src/main/java/org/springblade/modules/task/vo/TaskReportForRepairsVO.java
index 0e1abf8..074ff4c 100644
--- a/src/main/java/org/springblade/modules/task/vo/TaskReportForRepairsVO.java
+++ b/src/main/java/org/springblade/modules/task/vo/TaskReportForRepairsVO.java
@@ -43,10 +43,8 @@
 	 */
 	private String addressName;
 
-	/**
-	 * 角色名称
-	 */
-	private String roleName;
+	// 角色类型 wy
+	private String roleType;
 
 	@ApiModelProperty("开始时间")
 	private String startTime;
@@ -77,4 +75,12 @@
 	@ApiModelProperty("评分")
 	private List<TaskRepairAppraiseEntity> taskRepairAppraiseList;
 
+	// 角色名称
+	@ApiModelProperty(value = "角色名称", example = "")
+	private String roleName;
+
+	// 社区编号
+	@ApiModelProperty(value = "社区编号", example = "")
+	private String communityCode;
+
 }

--
Gitblit v1.9.3