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. 83
      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) @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<>(); Map<String,Object> map = new HashMap<>();
//地区码格式 六位 [abcxyz]
//ab代表省
//cx代表市
//yz代表区
map.put("areaCode",areaCode); 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("pageSize",listCustomerGridFormDTO.getPageSize());
map.put("pageNo",listCustomerGridFormDTO.getPageNo()); map.put("pageNo",listCustomerGridFormDTO.getPageNo());

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

@ -30,18 +30,32 @@
<!-- 根据城市地区码前四位匹配到城市下所有网格 --> <!-- 根据城市地区码前四位匹配到城市下所有网格 -->
<select id="selectGridByCityLike" parameterType="com.epmet.dto.form.ListCustomerGridFormDTO" resultType="com.epmet.dto.result.CustomerGridForStrangerResultDTO"> <select id="selectGridByCityLike" parameterType="com.epmet.dto.form.ListCustomerGridFormDTO" resultType="com.epmet.dto.result.CustomerGridForStrangerResultDTO">
SELECT SELECT
id AS grid_id, grid.id AS grid_id,
customer_id, grid.customer_id,
grid_name concat( agency.fullname, '-', grid.grid_name ) AS gridName
FROM FROM
CUSTOMER_GRID 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 WHERE
del_flag = 0 grid.del_flag = 0
AND AND
area_code LIKE CONCAT(#{areaCode},'%') grid.area_code LIKE CONCAT(#{areaCode},'%')
ORDER BY ORDER BY
customer_id, grid.customer_id,
CONVERT ( grid_name USING gbk ) ASC CONVERT ( gridName USING gbk ) ASC
LIMIT #{pageNo}, #{pageSize} LIMIT #{pageNo}, #{pageSize}
</select> </select>
@ -49,10 +63,7 @@
<!-- 根据区县地区码匹配到该地区置顶其余区域在后这种特定排序的数据集 --> <!-- 根据区县地区码匹配到该地区置顶其余区域在后这种特定排序的数据集 -->
<select id="selectRestGridWithoutGivenAreaCode" parameterType="map" resultType="com.epmet.dto.result.CustomerGridForStrangerResultDTO"> <select id="selectRestGridWithoutGivenAreaCode" parameterType="map" resultType="com.epmet.dto.result.CustomerGridForStrangerResultDTO">
SELECT c.* SELECT c.*
FROM FROM
( (
@ -60,15 +71,34 @@
SELECT SELECT
a.id AS grid_id, a.id AS grid_id,
a.customer_id, a.customer_id,
a.grid_name concat( agency.fullname, '-', a.grid_name ) AS gridName
FROM FROM
CUSTOMER_GRID a 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 WHERE
a.del_flag = 0 a.del_flag = 0
AND AND
a.area_code = #{areaCode} a.area_code = #{areaCode}
ORDER BY ORDER BY
CONVERT ( a.grid_name USING gbk ) ASC CONVERT ( gridName USING gbk ) ASC
LIMIT 0,999999999999
) )
@ -78,18 +108,39 @@
SELECT SELECT
b.id AS grid_id, b.id AS grid_id,
b.customer_id, b.customer_id,
b.grid_name concat(agency.fullname , '-' ,b.grid_name) as gridName
FROM FROM
CUSTOMER_GRID b CUSTOMER_GRID b
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 b.PID = agency.ID
WHERE WHERE
b.del_flag = 0 b.del_flag = 0
AND AND
b.area_code LIKE CONCAT(#{cityCode},'%') (b.area_code LIKE CONCAT(#{cityCode},'%') OR b.area_code = #{provinceCode})
AND <![CDATA[ b.area_code <> #{areaCode} AND <![CDATA[ b.area_code <> #{areaCode}
]]> ]]>
ORDER BY ORDER BY
CONVERT ( b.grid_name USING gbk ) ASC b.area_code DESC ,CONVERT ( gridName USING gbk ) ASC
LIMIT 0,999999999999
) )
) AS c ) AS c

Loading…
Cancel
Save