INSERT INTO city_building_house(
building_house_id,
city_building_id,
city_building_name,
house_number,
district_name,
district_id,
house_status,
data_type,
owner_name,
owner_card,
owner_phone,
longitude,
latitude,
creator,
gmt_create,
modifier,
gmt_modified,
is_delete
) VALUES(
#{buildingHouseId},
#{cityBuildingId},
#{cityBuildingName},
#{houseNumber},
#{districtName},
#{districtId},
#{houseStatus},
#{dataType},
#{ownerName},
#{ownerCard},
#{ownerPhone},
#{longitude},
#{latitude},
#{creator},
#{gmtCreate},
#{modifier},
#{gmtModified},
#{isDelete}
)
UPDATE
city_building_house
SET
gmt_modified = #{gmtModified},
modifier = #{modifier},
is_delete = 1
WHERE
1 = 1
AND city_building_id = #{cityBuildingId}
AND house_number = #{houseNumber}
AND
building_house_id IN
#{buildingHouseIds[${index}]}
DELETE FROM
city_building_house
WHERE
building_house_id IN
#{buildingHouseIds[${index}]}
UPDATE
city_building_house
SET
city_building_name = #{cityBuildingName},
house_number = #{houseNumber},
district_name = #{districtName},
district_id = #{districtId},
house_status = #{houseStatus},
data_type = #{dataType},
owner_name = #{ownerName},
owner_card = #{ownerCard},
owner_phone = #{ownerPhone},
longitude = #{longitude},
latitude = #{latitude},
house_number = replace(house_number, #{oldHouseNumber}, #{newHouseNumber}),
gmt_modified = #{gmtModified},
modifier = #{modifier},
building_house_id = building_house_id
WHERE
1 = 1
AND building_house_id = #{buildingHouseId}
AND city_building_id = #{cityBuildingId}
DELETE
FROM
city_building_house
WHERE
id IN (
SELECT
id
FROM
(
SELECT
max(id) AS id,
count(house_number) AS ucount
FROM
city_building_house
WHERE
city_building_id = #{cityBuildingId}
GROUP BY
house_number
HAVING
ucount > 1
ORDER BY
ucount DESC
) AS tab
)
UPDATE
city_building_house
SET
gmt_modified = #{gmtModified},
modifier = #{modifier},
is_delete = 1
WHERE
1 = 1
AND
city_building_id IN
#{cityBuildingIds[${index}]}