Browse Source

陌生人导览,搜索网格时,网格名称为:上两级机关名称-网格名称(若无上两级只显示一级),搜索一个城市指定区的网格,会出现这个城市下所有的网格以及这个城市所属省份的直属网格,排序为,选择的在上面,城市其他区域网格在下,省直属在最下。

dev_shibei_match
wangchao 5 years ago
parent
commit
8d0f3d3eeb
  1. 2
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ListCustomerGridFormDTO.java
  2. 8
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java
  3. 151
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml

2
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ListCustomerGridFormDTO.java

@ -29,7 +29,7 @@ public class ListCustomerGridFormDTO implements Serializable{
* 当前页
* */
@Min(value = 1)
private Integer pageNo;
private Integer pageNo = 1;
/**
* 每页显示数量

8
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java

@ -149,9 +149,13 @@ public class CustomerGridServiceImpl extends BaseServiceImpl<CustomerGridDao, Cu
//行政区 - 指定行政区在前,所属城市下其余行政区在后
Map<String,Object> map = new HashMap<>();
//地区码格式 六位 [abcxyz]
//ab代表省
//cx代表市
//yz代表区
map.put("areaCode",areaCode);
map.put("cityCode",areaCode.substring(0,areaCode.length()-NumConstant.FOUR));
map.put("cityCode",areaCode.substring(NumConstant.ZERO,areaCode.length()-NumConstant.FOUR));
map.put("provinceCode",areaCode.substring(NumConstant.ZERO,areaCode.length()-NumConstant.TWO));
map.put("pageSize",listCustomerGridFormDTO.getPageSize());
map.put("pageNo",listCustomerGridFormDTO.getPageNo());

151
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml

@ -30,69 +30,120 @@
<!-- 根据城市地区码前四位匹配到城市下所有网格 -->
<select id="selectGridByCityLike" parameterType="com.epmet.dto.form.ListCustomerGridFormDTO" resultType="com.epmet.dto.result.CustomerGridForStrangerResultDTO">
SELECT
id AS grid_id,
customer_id,
grid_name
grid.id AS grid_id,
grid.customer_id,
concat( agency.fullname, '-', grid.grid_name ) AS gridName
FROM
CUSTOMER_GRID grid
LEFT JOIN (
SELECT
a1.id,
CASE
WHEN a2.ORGANIZATION_NAME IS NULL THEN
a1.ORGANIZATION_NAME ELSE concat( a2.ORGANIZATION_NAME, '-', a1.ORGANIZATION_NAME )
END AS fullname
FROM
customer_agency a1
LEFT JOIN customer_agency a2 ON a1.PID = a2.ID
AND a1.del_flag = '0'
WHERE
a1.del_flag = '0'
) agency ON grid.PID = agency.ID
WHERE
grid.del_flag = 0
AND
grid.area_code LIKE CONCAT(#{areaCode},'%')
ORDER BY
grid.customer_id,
CONVERT ( gridName USING gbk ) ASC
LIMIT #{pageNo}, #{pageSize}
</select>
<!-- 根据区县地区码匹配到该地区置顶其余区域在后这种特定排序的数据集 -->
<select id="selectRestGridWithoutGivenAreaCode" parameterType="map" resultType="com.epmet.dto.result.CustomerGridForStrangerResultDTO">
SELECT c.*
FROM
CUSTOMER_GRID
(
(
SELECT
a.id AS grid_id,
a.customer_id,
concat( agency.fullname, '-', a.grid_name ) AS gridName
FROM
CUSTOMER_GRID a
LEFT JOIN (
SELECT
a1.id,
CASE
WHEN a2.ORGANIZATION_NAME IS NULL THEN
a1.ORGANIZATION_NAME ELSE concat( a2.ORGANIZATION_NAME, '-', a1.ORGANIZATION_NAME )
END AS fullname
FROM
customer_agency a1
LEFT JOIN customer_agency a2 ON a1.PID = a2.ID
AND a1.del_flag = '0'
WHERE
a1.del_flag = '0'
) agency ON a.PID = agency.ID
WHERE
del_flag = 0
a.del_flag = 0
AND
area_code LIKE CONCAT(#{areaCode},'%')
a.area_code = #{areaCode}
ORDER BY
customer_id,
CONVERT ( grid_name USING gbk ) ASC
CONVERT ( gridName USING gbk ) ASC
LIMIT 0,999999999999
LIMIT #{pageNo}, #{pageSize}
</select>
)
<!-- 根据区县地区码匹配到该地区置顶其余区域在后这种特定排序的数据集 -->
<select id="selectRestGridWithoutGivenAreaCode" parameterType="map" resultType="com.epmet.dto.result.CustomerGridForStrangerResultDTO">
UNION
(
SELECT
b.id AS grid_id,
b.customer_id,
concat(agency.fullname , '-' ,b.grid_name) as gridName
FROM
CUSTOMER_GRID b
SELECT c.*
LEFT JOIN (
SELECT
a1.id,
CASE
WHEN a2.ORGANIZATION_NAME IS NULL THEN
a1.ORGANIZATION_NAME ELSE concat( a2.ORGANIZATION_NAME, '-', a1.ORGANIZATION_NAME )
END AS fullname
FROM
(
(
SELECT
a.id AS grid_id,
a.customer_id,
a.grid_name
FROM
CUSTOMER_GRID a
WHERE
a.del_flag = 0
AND
a.area_code = #{areaCode}
ORDER BY
CONVERT ( a.grid_name USING gbk ) ASC
)
UNION
(
SELECT
b.id AS grid_id,
b.customer_id,
b.grid_name
FROM
CUSTOMER_GRID b
WHERE
b.del_flag = 0
AND
b.area_code LIKE CONCAT(#{cityCode},'%')
AND <![CDATA[ b.area_code <> #{areaCode}
customer_agency a1
LEFT JOIN customer_agency a2 ON a1.PID = a2.ID
AND a1.del_flag = '0'
WHERE
a1.del_flag = '0'
) agency ON b.PID = agency.ID
WHERE
b.del_flag = 0
AND
(b.area_code LIKE CONCAT(#{cityCode},'%') OR b.area_code = #{provinceCode})
AND <![CDATA[ b.area_code <> #{areaCode}
]]>
ORDER BY
CONVERT ( b.grid_name USING gbk ) ASC
ORDER BY
b.area_code DESC ,CONVERT ( gridName USING gbk ) ASC
LIMIT 0,999999999999
)
) AS c
)
) AS c
LIMIT #{pageNo}, #{pageSize}
</select>

Loading…
Cancel
Save