Commit ebae257f authored by lixuan's avatar lixuan

feat: 需求

parent b9f20ac9
Pipeline #147341 failed with stages
in 0 seconds
...@@ -9,9 +9,11 @@ import com.ruoyi.system.domain.fieldchangerecord.vo.FieldChangeAffectedHouseReso ...@@ -9,9 +9,11 @@ import com.ruoyi.system.domain.fieldchangerecord.vo.FieldChangeAffectedHouseReso
import com.ruoyi.system.domain.fieldchangerecord.vo.FieldChangeRecordQuery; import com.ruoyi.system.domain.fieldchangerecord.vo.FieldChangeRecordQuery;
import com.ruoyi.system.domain.fieldchangerecord.vo.FieldChangeRecordVO; import com.ruoyi.system.domain.fieldchangerecord.vo.FieldChangeRecordVO;
import com.ruoyi.system.domain.fieldchangerecord.vo.FieldChangeSummaryRow; import com.ruoyi.system.domain.fieldchangerecord.vo.FieldChangeSummaryRow;
import com.ruoyi.system.domain.grid.GridRegion;
import com.ruoyi.system.domain.grid.GridRegionUser; import com.ruoyi.system.domain.grid.GridRegionUser;
import com.ruoyi.system.domain.grid.GridRegionUserExample; import com.ruoyi.system.domain.grid.GridRegionUserExample;
import com.ruoyi.system.mapper.fieldchangerecord.DataFieldChangeRecordQueryMapper; import com.ruoyi.system.mapper.fieldchangerecord.DataFieldChangeRecordQueryMapper;
import com.ruoyi.system.mapper.grid.GridRegionMapper;
import com.ruoyi.system.mapper.grid.GridRegionUserMapper; import com.ruoyi.system.mapper.grid.GridRegionUserMapper;
import com.ruoyi.system.service.fieldchangerecord.DataFieldChangeRecordService; import com.ruoyi.system.service.fieldchangerecord.DataFieldChangeRecordService;
import com.ruoyi.system.service.house.impl.HouseResourceServiceImpl; import com.ruoyi.system.service.house.impl.HouseResourceServiceImpl;
...@@ -19,7 +21,10 @@ import org.springframework.stereotype.Service; ...@@ -19,7 +21,10 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -33,6 +38,7 @@ import java.util.stream.Collectors; ...@@ -33,6 +38,7 @@ import java.util.stream.Collectors;
* <li>涉及房源接口只按时间、操作类型、网格过滤,不按字段过滤;</li> * <li>涉及房源接口只按时间、操作类型、网格过滤,不按字段过滤;</li>
* <li>调用 Mapper 查询;</li> * <li>调用 Mapper 查询;</li>
* <li>回填 {@code fieldLabel} / {@code valueType}(从 {@link FieldCode} 反查)。</li> * <li>回填 {@code fieldLabel} / {@code valueType}(从 {@link FieldCode} 反查)。</li>
* <li>涉及房源分页按当前页批量回填网格名称。</li>
* </ul> * </ul>
* *
* <p>网格权限白名单与 HR 侧 {@code dataCollection} 完全一致。为避免循环依赖, * <p>网格权限白名单与 HR 侧 {@code dataCollection} 完全一致。为避免循环依赖,
...@@ -46,10 +52,14 @@ public class DataFieldChangeRecordServiceImpl implements DataFieldChangeRecordSe ...@@ -46,10 +52,14 @@ public class DataFieldChangeRecordServiceImpl implements DataFieldChangeRecordSe
private final GridRegionUserMapper gridRegionUserMapper; private final GridRegionUserMapper gridRegionUserMapper;
private final GridRegionMapper gridRegionMapper;
public DataFieldChangeRecordServiceImpl(DataFieldChangeRecordQueryMapper queryMapper, public DataFieldChangeRecordServiceImpl(DataFieldChangeRecordQueryMapper queryMapper,
GridRegionUserMapper gridRegionUserMapper) { GridRegionUserMapper gridRegionUserMapper,
GridRegionMapper gridRegionMapper) {
this.queryMapper = queryMapper; this.queryMapper = queryMapper;
this.gridRegionUserMapper = gridRegionUserMapper; this.gridRegionUserMapper = gridRegionUserMapper;
this.gridRegionMapper = gridRegionMapper;
} }
@Override @Override
...@@ -108,7 +118,9 @@ public class DataFieldChangeRecordServiceImpl implements DataFieldChangeRecordSe ...@@ -108,7 +118,9 @@ public class DataFieldChangeRecordServiceImpl implements DataFieldChangeRecordSe
Page<FieldChangeAffectedHouseResourceVO> page = new Page<>( Page<FieldChangeAffectedHouseResourceVO> page = new Page<>(
query.getPageNum() == null ? 1 : query.getPageNum(), query.getPageNum() == null ? 1 : query.getPageNum(),
query.getPageSize() == null ? 20 : query.getPageSize()); query.getPageSize() == null ? 20 : query.getPageSize());
return queryMapper.selectAffectedHouseResources(page, query); IPage<FieldChangeAffectedHouseResourceVO> result = queryMapper.selectAffectedHouseResources(page, query);
enrichAffectedHouseResourceGridNames(result.getRecords());
return result;
} }
@Override @Override
...@@ -192,4 +204,40 @@ public class DataFieldChangeRecordServiceImpl implements DataFieldChangeRecordSe ...@@ -192,4 +204,40 @@ public class DataFieldChangeRecordServiceImpl implements DataFieldChangeRecordSe
} }
} }
} }
private void enrichAffectedHouseResourceGridNames(List<FieldChangeAffectedHouseResourceVO> list) {
if (CollectionUtils.isEmpty(list)) {
return;
}
Set<String> codes = new HashSet<>();
for (FieldChangeAffectedHouseResourceVO vo : list) {
addGridCode(codes, vo.getTwo());
addGridCode(codes, vo.getThree());
addGridCode(codes, vo.getFour());
}
if (codes.isEmpty()) {
return;
}
List<GridRegion> regions = gridRegionMapper.selectByCodes(codes);
if (CollectionUtils.isEmpty(regions)) {
return;
}
Map<String, String> nameByCode = regions.stream()
.filter(r -> r.getWgCode() != null && r.getWgName() != null)
.collect(Collectors.toMap(
GridRegion::getWgCode,
GridRegion::getWgName,
(oldValue, newValue) -> oldValue));
for (FieldChangeAffectedHouseResourceVO vo : list) {
vo.setWgName2(nameByCode.get(vo.getTwo()));
vo.setWgName3(nameByCode.get(vo.getThree()));
vo.setWgName4(nameByCode.get(vo.getFour()));
}
}
private void addGridCode(Set<String> codes, String code) {
if (code != null && !code.isEmpty()) {
codes.add(code);
}
}
} }
...@@ -34,11 +34,8 @@ ...@@ -34,11 +34,8 @@
<result property="houseResourceName" column="house_resource_name"/> <result property="houseResourceName" column="house_resource_name"/>
<result property="hrType" column="hr_type"/> <result property="hrType" column="hr_type"/>
<result property="two" column="two"/> <result property="two" column="two"/>
<result property="wgName2" column="wg_name2"/>
<result property="three" column="three"/> <result property="three" column="three"/>
<result property="wgName3" column="wg_name3"/>
<result property="four" column="four"/> <result property="four" column="four"/>
<result property="wgName4" column="wg_name4"/>
<result property="latestOperationTime" column="latest_operation_time"/> <result property="latestOperationTime" column="latest_operation_time"/>
<result property="changeRecordCount" column="change_record_count"/> <result property="changeRecordCount" column="change_record_count"/>
<result property="insertCount" column="insert_count"/> <result property="insertCount" column="insert_count"/>
...@@ -236,11 +233,8 @@ ...@@ -236,11 +233,8 @@
CONCAT(IFNULL(hr.address, ''), IFNULL(hr.house_number, '')) AS house_resource_name, CONCAT(IFNULL(hr.address, ''), IFNULL(hr.house_number, '')) AS house_resource_name,
hr.type AS hr_type, hr.type AS hr_type,
hr.two, hr.two,
g2.wg_name AS wg_name2,
hr.three, hr.three,
g3.wg_name AS wg_name3,
hr.four, hr.four,
g4.wg_name AS wg_name4,
a.latest_operation_time, a.latest_operation_time,
a.change_record_count, a.change_record_count,
a.insert_count, a.insert_count,
...@@ -258,9 +252,6 @@ ...@@ -258,9 +252,6 @@
GROUP BY u.house_resource_id GROUP BY u.house_resource_id
) a ) a
INNER JOIN house_resource hr ON hr.id = a.house_resource_id AND hr.delete_flag = 0 INNER JOIN house_resource hr ON hr.id = a.house_resource_id AND hr.delete_flag = 0
LEFT JOIN grid_region g2 ON g2.wg_code = hr.two AND g2.is_valid = '1'
LEFT JOIN grid_region g3 ON g3.wg_code = hr.three AND g3.is_valid = '1'
LEFT JOIN grid_region g4 ON g4.wg_code = hr.four AND g4.is_valid = '1'
ORDER BY a.latest_operation_time DESC, a.house_resource_id DESC ORDER BY a.latest_operation_time DESC, a.house_resource_id DESC
</select> </select>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment