| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="platform.modules.carrier.dao.IcContractDao">
- <update id="updateStatusBatch">
- update ic_contract
- SET status = #{status},terminate_time = #{terminate_time}
- WHERE
- <if test="idList.size() > 0">
- id in
- <foreach collection="idList" open="(" close=")" separator="," item="id">
- #{id}
- </foreach>
- </if>
- </update>
- <select id="findContractList" resultType="platform.modules.carrier.entity.ContractFloor"
- parameterType="platform.modules.carrier.dto.CustomSearchCondition">
- SELECT
- contract.id,
- contract.company_name,
- contract.building_name,
- contract.floor,
- contract.contract_start,
- contract.contract_end,
- contract.area,
- contract.STATUS,
- park. NAME park_name,
- (
- IF (
- contract. STATUS = 0,
- IF (
- DATE_FORMAT(NOW(), '%Y-%m-%d') <![CDATA[<]]> contract.contract_start,
- 1,
- IF (
- DATE_FORMAT(NOW(), '%Y-%m-%d') <![CDATA[>]]> contract.contract_end,
- 3,
- 2
- )
- ),
- IF (
- DATE_FORMAT(NOW(), '%Y-%m-%d') <![CDATA[>]]> contract.terminate_time,
- 4,
- IF (
- DATE_FORMAT(NOW(), '%Y-%m-%d') <![CDATA[<]]> contract.contract_start,
- 1,
- IF (
- DATE_FORMAT(NOW(), '%Y-%m-%d') <![CDATA[>]]> contract.contract_end,
- 3,
- 2
- )
- )
- )
- )
- ) state_code
- FROM
- ic_contract_floor contract
- LEFT JOIN ic_building building ON contract.building_id = building.id
- LEFT JOIN ic_park park ON park.id = building.park_id
- LEFT JOIN s_street street ON park.street_id = street.id
- WHERE
- contract.del_flag != 1
- <if test="param.street_id != null and param.street_id != '' ">
- AND street.id = #{param.street_id}
- </if>
- <if test="param.park_id != null and param.park_id != '' ">
- <choose>
- <when test="param.is_parent != null and param.is_parent != ''">
- AND (park.id = #{param.park_id} OR park.id IN (SELECT park_id FROM ic_sub_park WHERE parent_id = #{param.park_id}))
- </when>
- <otherwise>
- AND park.id = #{param.park_id}
- </otherwise>
- </choose>
- </if>
- <if test="param.building_id != null and param.building_id != '' ">
- AND building.id = #{param.building_id}
- </if>
- <if test="param.floor_id != null and param.floor_id != '' ">
- AND contract.floor_id = #{param.floor_id}
- </if>
- <if test="param.title != null and param.title != '' ">
- AND (
- contract.company_name LIKE CONCAT('%',#{param.title},'%')
- )
- </if>
- <if test="param.status != null and param.status != '' ">
- <if test="param.status == 1">
- AND contract.contract_start <![CDATA[>]]> DATE_FORMAT(NOW(), '%Y-%m-%d')
- AND (
- contract.terminate_time <![CDATA[>]]> DATE_FORMAT(NOW(), '%Y-%m-%d')
- OR ISNULL(contract.terminate_time)
- )
- </if>
- <if test="param.status == 2">
- AND contract.contract_start <![CDATA[<=]]> DATE_FORMAT(NOW(), '%Y-%m-%d')
- AND contract.contract_end <![CDATA[>=]]> DATE_FORMAT(NOW(), '%Y-%m-%d')
- AND (
- contract.terminate_time <![CDATA[>]]> DATE_FORMAT(NOW(), '%Y-%m-%d')
- OR ISNULL(contract.terminate_time)
- )
- </if>
- <if test="param.status == 3">
- AND contract.contract_end <![CDATA[<]]> DATE_FORMAT(NOW(), '%Y-%m-%d')
- AND (
- contract.terminate_time <![CDATA[>]]> DATE_FORMAT(NOW(), '%Y-%m-%d')
- OR ISNULL(contract.terminate_time)
- )
- </if>
- <if test="param.status == 4">
- AND contract.terminate_time <![CDATA[<]]> DATE_FORMAT(NOW(), '%Y-%m-%d')
- </if>
- </if>
- ORDER BY contract.create_time DESC
- </select>
- <select id="findEndContractList" resultType="platform.modules.carrier.entity.ContractFloor">
- select
- cf.company_name, cf.contract_end, cf.floor, cf.building_name, cf.area as floor_area
- from ic_contract_floor cf
- where cf.del_flag = 0
- and cf.contract_end >= now()
- <if test="demandTime != null and demandTime != ''">
- and cf.contract_end <![CDATA[ <= ]]> #{demandTime}
- </if>
- and cf.building_id = #{id}
- order by cf.contract_end asc
- </select>
- <select id="findByCheckinTime" resultType="platform.modules.carrier.entity.ContractFloor">
- select * from ic_contract_floor cf
- left join y_floor f on f.id = cf.floor_id
- where c.del_flag = 0 and cf.del_flag = 0
- and cf.floor_id = #{id}
- and f.remain_area +
- (
- SELECT
- SUM( cf.remain_area )
- FROM
- ic_contract_floor cf
- WHERE
- cf.floor_id = f.id
- AND cf.contract_end <![CDATA[ <= ]]> #{query.demandTime}
- )
- -
- (
- SELECT
- SUM( cf.remain_area )
- FROM
- ic_contract_floor cf
- WHERE
- cf.floor_id = f.id
- AND cf.contract_start <![CDATA[ <= ]]> #{query.maxCheckin}
- )
- >= #{query.minArea}
- </select>
- <select id="findNotStayYet" resultType="platform.modules.carrier.entity.ContractFloor">
- select cf.* from ic_contract_floor cf
- where cf.del_flag = 0
- <if test="floorId != null and floorId != ''">
- and cf.floor_id = #{floorId}
- </if>
- <if test="buildingId != null and buildingId != ''">
- and cf.building_id = #{buildingId}
- </if>
- and cf.contract_start >= #{demandTime}
- <if test="maxCheckin != null and maxCheckin != ''">
- and cf.contract_start <![CDATA[ <= ]]> #{maxCheckin}
- </if>
- order by cf.contract_start ASC
- </select>
- <select id="findByBuildingId" resultType="platform.modules.carrier.entity.ContractFloor">
- SELECT
- cf.id, cf.company_id, cf.company_name, cf.park_id, cf.contract_start, cf.contract_end
- FROM
- ic_contract_floor cf
- WHERE del_flag = false
- AND cf.building_id = #{id}
- AND cf.contract_end > NOW()
- AND cf.status != 4
- </select>
- <select id="findByFloorId" resultType="platform.modules.carrier.entity.ContractFloor">
- select * from ic_contract_floor cf where cf.floor_id = #{id}
- and cf.contract_end > now() AND cf.status != 4
- </select>
- </mapper>
|