<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.setup.dao.ibatis.SetupProjectDaoImpl">

    <!-- 字段和属性映射 -->
    <resultMap type="SetupProjectEntity" id="SetupProjectEntity-Map">
        <id  property="id" column="id" />
        <result property="name" column="name" />
        <result property="projectCode" column="projectCode" />
        <result property="projectPath" column="projectPath" />
        <result property="projectShell" column="projectShell" />
        <result property="sourceProject" column="sourceProject" />
        <result property="dbHost" column="dbHost" />
        <result property="dbPort" column="dbPort" />
        <result property="dbUser" column="dbUser" />
        <result property="dbPassword" column="dbPassword" />
        <result property="dbName" column="dbName" />
        <result property="version" column="version" />
        <result property="projectType" column="projectType" />
        <result property="projectStatus" column="projectStatus" />
        <result property="remark" column="remark" />
        <result property="updateTime" column="updateTime" />
        <result property="updateUser" column="updateUser" />
        <result property="createTime" column="createTime" />
        <result property="createUser" column="createUser" />
        <result property="orderNum" column="orderNum" />
        <result property="updateUserId" column="updateUserId" />
        <result property="createUserId" column="createUserId" />
        <result property="siteId" column="siteId" />
        <result property="siteCode" column="siteCode" />
        <result property="siteName" column="siteName" />
        <result property="areaCode" column="areaCode" />
        <result property="areaName" column="areaName" />
        <result property="clientToServerIp" column="clientToServerIp" />
        <result property="clientToServerIpStatus" column="clientToServerIpStatus" />
        <result property="innerServerIp" column="innerServerIp" />
        <result property="innerServerIpStatus" column="innerServerIpStatus" />
    </resultMap>

    <!-- 表所有列 -->
    <sql id="_columns">
        <trim suffixOverrides="," suffix="">
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))">
                a.id,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('name') or colPickMode == 1 and data.containsKey('name')))">
                a.name,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('projectCode') or colPickMode == 1 and data.containsKey('projectCode')))">
                a.projectCode,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('projectPath') or colPickMode == 1 and data.containsKey('projectPath')))">
                a.projectPath,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('projectShell') or colPickMode == 1 and data.containsKey('projectShell')))">
                a.projectShell,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('sourceProject') or colPickMode == 1 and data.containsKey('sourceProject')))">
                a.sourceProject,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('dbHost') or colPickMode == 1 and data.containsKey('dbHost')))">
                a.dbHost,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('dbPort') or colPickMode == 1 and data.containsKey('dbPort')))">
                a.dbPort,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('dbUser') or colPickMode == 1 and data.containsKey('dbUser')))">
                a.dbUser,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('dbPassword') or colPickMode == 1 and data.containsKey('dbPassword')))">
                a.dbPassword,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('dbName') or colPickMode == 1 and data.containsKey('dbName')))">
                a.dbName,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('version') or colPickMode == 1 and data.containsKey('version')))">
                a.version,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('projectType') or colPickMode == 1 and data.containsKey('projectType')))">
                a.projectType,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('projectStatus') or colPickMode == 1 and data.containsKey('projectStatus')))">
                a.projectStatus,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('remark') or colPickMode == 1 and data.containsKey('remark')))">
                a.remark,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))">
                a.updateTime,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateUser') or colPickMode == 1 and data.containsKey('updateUser')))">
                a.updateUser,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
                a.createTime,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUser') or colPickMode == 1 and data.containsKey('createUser')))">
                a.createUser,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('orderNum') or colPickMode == 1 and data.containsKey('orderNum')))">
                a.orderNum,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateUserId') or colPickMode == 1 and data.containsKey('updateUserId')))">
                a.updateUserId,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserId') or colPickMode == 1 and data.containsKey('createUserId')))">
                a.createUserId,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('siteId') or colPickMode == 1 and data.containsKey('siteId')))">
                a.siteId,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('siteCode') or colPickMode == 1 and data.containsKey('siteCode')))">
                a.siteCode,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('siteName') or colPickMode == 1 and data.containsKey('siteName')))">
                a.siteName,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('areaCode') or colPickMode == 1 and data.containsKey('areaCode')))">
                a.areaCode,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('areaName') or colPickMode == 1 and data.containsKey('areaName')))">
                a.areaName,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('clientToServerIp') or colPickMode == 1 and data.containsKey('clientToServerIp')))">
                a.clientToServerIp,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('clientToServerIpStatus') or colPickMode == 1 and data.containsKey('clientToServerIpStatus')))">
                a.clientToServerIpStatus,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('innerServerIp') or colPickMode == 1 and data.containsKey('innerServerIp')))">
                a.innerServerIp,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('innerServerIpStatus') or colPickMode == 1 and data.containsKey('innerServerIpStatus')))">
                a.innerServerIpStatus,
            </if>
        </trim>
    </sql>
    <!-- 新增 区分主键自增加还是业务插入 -->
    <insert id="insert" parameterType="SetupProjectEntity"  useGeneratedKeys="true" keyProperty="id">
        insert into mortals_xhx_setup_project
        (name,projectCode,projectPath,projectShell,sourceProject,dbHost,dbPort,dbUser,dbPassword,dbName,version,projectType,projectStatus,remark,updateTime,updateUser,createTime,createUser,orderNum,updateUserId,createUserId,siteId,siteCode,siteName,areaCode,areaName,clientToServerIp,clientToServerIpStatus,innerServerIp,innerServerIpStatus)
        VALUES
        (#{name},#{projectCode},#{projectPath},#{projectShell},#{sourceProject},#{dbHost},#{dbPort},#{dbUser},#{dbPassword},#{dbName},#{version},#{projectType},#{projectStatus},#{remark},#{updateTime},#{updateUser},#{createTime},#{createUser},#{orderNum},#{updateUserId},#{createUserId},#{siteId},#{siteCode},#{siteName},#{areaCode},#{areaName},#{clientToServerIp},#{clientToServerIpStatus},#{innerServerIp},#{innerServerIpStatus})
    </insert>

    <!-- 批量新增 -->
    <insert id="insertBatch" parameterType="paramDto">
        insert into mortals_xhx_setup_project
        (name,projectCode,projectPath,projectShell,sourceProject,dbHost,dbPort,dbUser,dbPassword,dbName,version,projectType,projectStatus,remark,updateTime,updateUser,createTime,createUser,orderNum,updateUserId,createUserId,siteId,siteCode,siteName,areaCode,areaName,clientToServerIp,clientToServerIpStatus,innerServerIp,innerServerIpStatus)
        VALUES
        <foreach collection="data.dataList" item="item" index="index" separator="," >
            (#{item.name},#{item.projectCode},#{item.projectPath},#{item.projectShell},#{item.sourceProject},#{item.dbHost},#{item.dbPort},#{item.dbUser},#{item.dbPassword},#{item.dbName},#{item.version},#{item.projectType},#{item.projectStatus},#{item.remark},#{item.updateTime},#{item.updateUser},#{item.createTime},#{item.createUser},#{item.orderNum},#{item.updateUserId},#{item.createUserId},#{item.siteId},#{item.siteCode},#{item.siteName},#{item.areaCode},#{item.areaName},#{item.clientToServerIp},#{item.clientToServerIpStatus},#{item.innerServerIp},#{item.innerServerIpStatus})
        </foreach>
    </insert>


    <!-- 根据ParamDto更新 -->
    <update id="update" parameterType="paramDto">
        update mortals_xhx_setup_project as a
        set
        <trim suffixOverrides="," suffix="">
            <if test="(colPickMode==0 and data.containsKey('name')) or (colPickMode==1 and !data.containsKey('name'))">
                a.name=#{data.name},
            </if>
            <if test="(colPickMode==0 and data.containsKey('projectCode')) or (colPickMode==1 and !data.containsKey('projectCode'))">
                a.projectCode=#{data.projectCode},
            </if>
            <if test="(colPickMode==0 and data.containsKey('projectPath')) or (colPickMode==1 and !data.containsKey('projectPath'))">
                a.projectPath=#{data.projectPath},
            </if>
            <if test="(colPickMode==0 and data.containsKey('projectShell')) or (colPickMode==1 and !data.containsKey('projectShell'))">
                a.projectShell=#{data.projectShell},
            </if>
            <if test="(colPickMode==0 and data.containsKey('sourceProject')) or (colPickMode==1 and !data.containsKey('sourceProject'))">
                a.sourceProject=#{data.sourceProject},
            </if>
            <if test="(colPickMode==0 and data.containsKey('dbHost')) or (colPickMode==1 and !data.containsKey('dbHost'))">
                a.dbHost=#{data.dbHost},
            </if>
            <if test="(colPickMode==0 and data.containsKey('dbPort')) or (colPickMode==1 and !data.containsKey('dbPort'))">
                a.dbPort=#{data.dbPort},
            </if>
            <if test="(colPickMode==0 and data.containsKey('dbUser')) or (colPickMode==1 and !data.containsKey('dbUser'))">
                a.dbUser=#{data.dbUser},
            </if>
            <if test="(colPickMode==0 and data.containsKey('dbPassword')) or (colPickMode==1 and !data.containsKey('dbPassword'))">
                a.dbPassword=#{data.dbPassword},
            </if>
            <if test="(colPickMode==0 and data.containsKey('dbName')) or (colPickMode==1 and !data.containsKey('dbName'))">
                a.dbName=#{data.dbName},
            </if>
            <if test="(colPickMode==0 and data.containsKey('version')) or (colPickMode==1 and !data.containsKey('version'))">
                a.version=#{data.version},
            </if>
            <if test="(colPickMode==0 and data.containsKey('projectType')) or (colPickMode==1 and !data.containsKey('projectType'))">
                a.projectType=#{data.projectType},
            </if>
            <if test="(colPickMode==0 and data.containsKey('projectTypeIncrement')) or (colPickMode==1 and !data.containsKey('projectTypeIncrement'))">
                a.projectType=ifnull(a.projectType,0) + #{data.projectTypeIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('projectStatus')) or (colPickMode==1 and !data.containsKey('projectStatus'))">
                a.projectStatus=#{data.projectStatus},
            </if>
            <if test="(colPickMode==0 and data.containsKey('projectStatusIncrement')) or (colPickMode==1 and !data.containsKey('projectStatusIncrement'))">
                a.projectStatus=ifnull(a.projectStatus,0) + #{data.projectStatusIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('remark')) or (colPickMode==1 and !data.containsKey('remark'))">
                a.remark=#{data.remark},
            </if>
            <if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))">
                a.updateTime=#{data.updateTime},
            </if>
            <if test="(colPickMode==0 and data.containsKey('updateUser')) or (colPickMode==1 and !data.containsKey('updateUser'))">
                a.updateUser=#{data.updateUser},
            </if>
            <if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
                a.createTime=#{data.createTime},
            </if>
            <if test="(colPickMode==0 and data.containsKey('createUser')) or (colPickMode==1 and !data.containsKey('createUser'))">
                a.createUser=#{data.createUser},
            </if>
            <if test="(colPickMode==0 and data.containsKey('orderNum')) or (colPickMode==1 and !data.containsKey('orderNum'))">
                a.orderNum=#{data.orderNum},
            </if>
            <if test="(colPickMode==0 and data.containsKey('orderNumIncrement')) or (colPickMode==1 and !data.containsKey('orderNumIncrement'))">
                a.orderNum=ifnull(a.orderNum,0) + #{data.orderNumIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('updateUserId')) or (colPickMode==1 and !data.containsKey('updateUserId'))">
                a.updateUserId=#{data.updateUserId},
            </if>
            <if test="(colPickMode==0 and data.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !data.containsKey('updateUserIdIncrement'))">
                a.updateUserId=ifnull(a.updateUserId,0) + #{data.updateUserIdIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('createUserId')) or (colPickMode==1 and !data.containsKey('createUserId'))">
                a.createUserId=#{data.createUserId},
            </if>
            <if test="(colPickMode==0 and data.containsKey('createUserIdIncrement')) or (colPickMode==1 and !data.containsKey('createUserIdIncrement'))">
                a.createUserId=ifnull(a.createUserId,0) + #{data.createUserIdIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('siteId')) or (colPickMode==1 and !data.containsKey('siteId'))">
                a.siteId=#{data.siteId},
            </if>
            <if test="(colPickMode==0 and data.containsKey('siteIdIncrement')) or (colPickMode==1 and !data.containsKey('siteIdIncrement'))">
                a.siteId=ifnull(a.siteId,0) + #{data.siteIdIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('siteCode')) or (colPickMode==1 and !data.containsKey('siteCode'))">
                a.siteCode=#{data.siteCode},
            </if>
            <if test="(colPickMode==0 and data.containsKey('siteName')) or (colPickMode==1 and !data.containsKey('siteName'))">
                a.siteName=#{data.siteName},
            </if>
            <if test="(colPickMode==0 and data.containsKey('areaCode')) or (colPickMode==1 and !data.containsKey('areaCode'))">
                a.areaCode=#{data.areaCode},
            </if>
            <if test="(colPickMode==0 and data.containsKey('areaName')) or (colPickMode==1 and !data.containsKey('areaName'))">
                a.areaName=#{data.areaName},
            </if>
            <if test="(colPickMode==0 and data.containsKey('clientToServerIp')) or (colPickMode==1 and !data.containsKey('clientToServerIp'))">
                a.clientToServerIp=#{data.clientToServerIp},
            </if>
            <if test="(colPickMode==0 and data.containsKey('clientToServerIpStatus')) or (colPickMode==1 and !data.containsKey('clientToServerIpStatus'))">
                a.clientToServerIpStatus=#{data.clientToServerIpStatus},
            </if>
            <if test="(colPickMode==0 and data.containsKey('clientToServerIpStatusIncrement')) or (colPickMode==1 and !data.containsKey('clientToServerIpStatusIncrement'))">
                a.clientToServerIpStatus=ifnull(a.clientToServerIpStatus,0) + #{data.clientToServerIpStatusIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('innerServerIp')) or (colPickMode==1 and !data.containsKey('innerServerIp'))">
                a.innerServerIp=#{data.innerServerIp},
            </if>
            <if test="(colPickMode==0 and data.containsKey('innerServerIpStatus')) or (colPickMode==1 and !data.containsKey('innerServerIpStatus'))">
                a.innerServerIpStatus=#{data.innerServerIpStatus},
            </if>
            <if test="(colPickMode==0 and data.containsKey('innerServerIpStatusIncrement')) or (colPickMode==1 and !data.containsKey('innerServerIpStatusIncrement'))">
                a.innerServerIpStatus=ifnull(a.innerServerIpStatus,0) + #{data.innerServerIpStatusIncrement},
            </if>
        </trim>
        <trim suffixOverrides="where" suffix="">
            where
            <trim prefixOverrides="and" prefix="">
                <include refid="_condition_"/>
            </trim>
        </trim>
    </update>
    <!-- 批量更新 -->
    <update id="updateBatch" parameterType="paramDto">
        update mortals_xhx_setup_project as a
        <trim prefix="set" suffixOverrides=",">
            <trim prefix="name=(case" suffix="ELSE name end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('name')) or (colPickMode==1 and !item.containsKey('name'))">
                        when a.id=#{item.id} then #{item.name}
                    </if>
                </foreach>
            </trim>
            <trim prefix="projectCode=(case" suffix="ELSE projectCode end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('projectCode')) or (colPickMode==1 and !item.containsKey('projectCode'))">
                        when a.id=#{item.id} then #{item.projectCode}
                    </if>
                </foreach>
            </trim>
            <trim prefix="projectPath=(case" suffix="ELSE projectPath end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('projectPath')) or (colPickMode==1 and !item.containsKey('projectPath'))">
                        when a.id=#{item.id} then #{item.projectPath}
                    </if>
                </foreach>
            </trim>
            <trim prefix="projectShell=(case" suffix="ELSE projectShell end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('projectShell')) or (colPickMode==1 and !item.containsKey('projectShell'))">
                        when a.id=#{item.id} then #{item.projectShell}
                    </if>
                </foreach>
            </trim>
            <trim prefix="sourceProject=(case" suffix="ELSE sourceProject end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('sourceProject')) or (colPickMode==1 and !item.containsKey('sourceProject'))">
                        when a.id=#{item.id} then #{item.sourceProject}
                    </if>
                </foreach>
            </trim>
            <trim prefix="dbHost=(case" suffix="ELSE dbHost end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('dbHost')) or (colPickMode==1 and !item.containsKey('dbHost'))">
                        when a.id=#{item.id} then #{item.dbHost}
                    </if>
                </foreach>
            </trim>
            <trim prefix="dbPort=(case" suffix="ELSE dbPort end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('dbPort')) or (colPickMode==1 and !item.containsKey('dbPort'))">
                        when a.id=#{item.id} then #{item.dbPort}
                    </if>
                </foreach>
            </trim>
            <trim prefix="dbUser=(case" suffix="ELSE dbUser end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('dbUser')) or (colPickMode==1 and !item.containsKey('dbUser'))">
                        when a.id=#{item.id} then #{item.dbUser}
                    </if>
                </foreach>
            </trim>
            <trim prefix="dbPassword=(case" suffix="ELSE dbPassword end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('dbPassword')) or (colPickMode==1 and !item.containsKey('dbPassword'))">
                        when a.id=#{item.id} then #{item.dbPassword}
                    </if>
                </foreach>
            </trim>
            <trim prefix="dbName=(case" suffix="ELSE dbName end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('dbName')) or (colPickMode==1 and !item.containsKey('dbName'))">
                        when a.id=#{item.id} then #{item.dbName}
                    </if>
                </foreach>
            </trim>
            <trim prefix="version=(case" suffix="ELSE version end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('version')) or (colPickMode==1 and !item.containsKey('version'))">
                        when a.id=#{item.id} then #{item.version}
                    </if>
                </foreach>
            </trim>
            <trim prefix="projectType=(case" suffix="ELSE projectType end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <choose>
                        <when test="(colPickMode==0 and item.containsKey('projectType')) or (colPickMode==1 and !item.containsKey('projectType'))">
                            when a.id=#{item.id} then #{item.projectType}
                        </when>
                        <when test="(colPickMode==0 and item.containsKey('projectTypeIncrement')) or (colPickMode==1 and !item.containsKey('projectTypeIncrement'))">
                            when a.id=#{item.id} then ifnull(a.projectType,0) + #{item.projectTypeIncrement}
                        </when>
                    </choose>
                </foreach>
            </trim>
            <trim prefix="projectStatus=(case" suffix="ELSE projectStatus end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <choose>
                        <when test="(colPickMode==0 and item.containsKey('projectStatus')) or (colPickMode==1 and !item.containsKey('projectStatus'))">
                            when a.id=#{item.id} then #{item.projectStatus}
                        </when>
                        <when test="(colPickMode==0 and item.containsKey('projectStatusIncrement')) or (colPickMode==1 and !item.containsKey('projectStatusIncrement'))">
                            when a.id=#{item.id} then ifnull(a.projectStatus,0) + #{item.projectStatusIncrement}
                        </when>
                    </choose>
                </foreach>
            </trim>
            <trim prefix="remark=(case" suffix="ELSE remark end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('remark')) or (colPickMode==1 and !item.containsKey('remark'))">
                        when a.id=#{item.id} then #{item.remark}
                    </if>
                </foreach>
            </trim>
            <trim prefix="updateTime=(case" suffix="ELSE updateTime end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('updateTime')) or (colPickMode==1 and !item.containsKey('updateTime'))">
                        when a.id=#{item.id} then #{item.updateTime}
                    </if>
                </foreach>
            </trim>
            <trim prefix="updateUser=(case" suffix="ELSE updateUser end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('updateUser')) or (colPickMode==1 and !item.containsKey('updateUser'))">
                        when a.id=#{item.id} then #{item.updateUser}
                    </if>
                </foreach>
            </trim>
            <trim prefix="createTime=(case" suffix="ELSE createTime end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
                        when a.id=#{item.id} then #{item.createTime}
                    </if>
                </foreach>
            </trim>
            <trim prefix="createUser=(case" suffix="ELSE createUser end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('createUser')) or (colPickMode==1 and !item.containsKey('createUser'))">
                        when a.id=#{item.id} then #{item.createUser}
                    </if>
                </foreach>
            </trim>
            <trim prefix="orderNum=(case" suffix="ELSE orderNum end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <choose>
                        <when test="(colPickMode==0 and item.containsKey('orderNum')) or (colPickMode==1 and !item.containsKey('orderNum'))">
                            when a.id=#{item.id} then #{item.orderNum}
                        </when>
                        <when test="(colPickMode==0 and item.containsKey('orderNumIncrement')) or (colPickMode==1 and !item.containsKey('orderNumIncrement'))">
                            when a.id=#{item.id} then ifnull(a.orderNum,0) + #{item.orderNumIncrement}
                        </when>
                    </choose>
                </foreach>
            </trim>
            <trim prefix="updateUserId=(case" suffix="ELSE updateUserId end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <choose>
                        <when test="(colPickMode==0 and item.containsKey('updateUserId')) or (colPickMode==1 and !item.containsKey('updateUserId'))">
                            when a.id=#{item.id} then #{item.updateUserId}
                        </when>
                        <when test="(colPickMode==0 and item.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !item.containsKey('updateUserIdIncrement'))">
                            when a.id=#{item.id} then ifnull(a.updateUserId,0) + #{item.updateUserIdIncrement}
                        </when>
                    </choose>
                </foreach>
            </trim>
            <trim prefix="createUserId=(case" suffix="ELSE createUserId end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <choose>
                        <when test="(colPickMode==0 and item.containsKey('createUserId')) or (colPickMode==1 and !item.containsKey('createUserId'))">
                            when a.id=#{item.id} then #{item.createUserId}
                        </when>
                        <when test="(colPickMode==0 and item.containsKey('createUserIdIncrement')) or (colPickMode==1 and !item.containsKey('createUserIdIncrement'))">
                            when a.id=#{item.id} then ifnull(a.createUserId,0) + #{item.createUserIdIncrement}
                        </when>
                    </choose>
                </foreach>
            </trim>
            <trim prefix="siteId=(case" suffix="ELSE siteId end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <choose>
                        <when test="(colPickMode==0 and item.containsKey('siteId')) or (colPickMode==1 and !item.containsKey('siteId'))">
                            when a.id=#{item.id} then #{item.siteId}
                        </when>
                        <when test="(colPickMode==0 and item.containsKey('siteIdIncrement')) or (colPickMode==1 and !item.containsKey('siteIdIncrement'))">
                            when a.id=#{item.id} then ifnull(a.siteId,0) + #{item.siteIdIncrement}
                        </when>
                    </choose>
                </foreach>
            </trim>
            <trim prefix="siteCode=(case" suffix="ELSE siteCode end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('siteCode')) or (colPickMode==1 and !item.containsKey('siteCode'))">
                        when a.id=#{item.id} then #{item.siteCode}
                    </if>
                </foreach>
            </trim>
            <trim prefix="siteName=(case" suffix="ELSE siteName end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('siteName')) or (colPickMode==1 and !item.containsKey('siteName'))">
                        when a.id=#{item.id} then #{item.siteName}
                    </if>
                </foreach>
            </trim>
            <trim prefix="areaCode=(case" suffix="ELSE areaCode end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('areaCode')) or (colPickMode==1 and !item.containsKey('areaCode'))">
                        when a.id=#{item.id} then #{item.areaCode}
                    </if>
                </foreach>
            </trim>
            <trim prefix="areaName=(case" suffix="ELSE areaName end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('areaName')) or (colPickMode==1 and !item.containsKey('areaName'))">
                        when a.id=#{item.id} then #{item.areaName}
                    </if>
                </foreach>
            </trim>
            <trim prefix="clientToServerIp=(case" suffix="ELSE clientToServerIp end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('clientToServerIp')) or (colPickMode==1 and !item.containsKey('clientToServerIp'))">
                        when a.id=#{item.id} then #{item.clientToServerIp}
                    </if>
                </foreach>
            </trim>
            <trim prefix="clientToServerIpStatus=(case" suffix="ELSE clientToServerIpStatus end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <choose>
                        <when test="(colPickMode==0 and item.containsKey('clientToServerIpStatus')) or (colPickMode==1 and !item.containsKey('clientToServerIpStatus'))">
                            when a.id=#{item.id} then #{item.clientToServerIpStatus}
                        </when>
                        <when test="(colPickMode==0 and item.containsKey('clientToServerIpStatusIncrement')) or (colPickMode==1 and !item.containsKey('clientToServerIpStatusIncrement'))">
                            when a.id=#{item.id} then ifnull(a.clientToServerIpStatus,0) + #{item.clientToServerIpStatusIncrement}
                        </when>
                    </choose>
                </foreach>
            </trim>
            <trim prefix="innerServerIp=(case" suffix="ELSE innerServerIp end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('innerServerIp')) or (colPickMode==1 and !item.containsKey('innerServerIp'))">
                        when a.id=#{item.id} then #{item.innerServerIp}
                    </if>
                </foreach>
            </trim>
            <trim prefix="innerServerIpStatus=(case" suffix="ELSE innerServerIpStatus end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <choose>
                        <when test="(colPickMode==0 and item.containsKey('innerServerIpStatus')) or (colPickMode==1 and !item.containsKey('innerServerIpStatus'))">
                            when a.id=#{item.id} then #{item.innerServerIpStatus}
                        </when>
                        <when test="(colPickMode==0 and item.containsKey('innerServerIpStatusIncrement')) or (colPickMode==1 and !item.containsKey('innerServerIpStatusIncrement'))">
                            when a.id=#{item.id} then ifnull(a.innerServerIpStatus,0) + #{item.innerServerIpStatusIncrement}
                        </when>
                    </choose>
                </foreach>
            </trim>
        </trim>
        where id in
        <foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
            #{item.id}
        </foreach>
    </update>
    <!-- 根据主健查询 -->
    <select id="getByKey" parameterType="paramDto" resultMap="SetupProjectEntity-Map">
        select <include refid="_columns"/>
        from mortals_xhx_setup_project as a
        where a.id=#{condition.id}
    </select>
    <!-- 根据主健删除 -->
    <delete id="deleteByKey" parameterType="paramDto">
        delete a.* from mortals_xhx_setup_project as a where a.id=#{condition.id}
    </delete>
    <!-- 根据主健删除一批,针对单一主健有效 -->
    <delete id="deleteByKeys">
        delete from mortals_xhx_setup_project where id in
        <foreach collection="array" item="item" index="index" open="(" separator="," close=")">
            #{item}
        </foreach>
    </delete>
    <!-- 根据主健列表删除一批,针对单一主健有效 -->
    <delete id="deleteByKeyList">
        delete from mortals_xhx_setup_project where id in
        <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
            #{item}
        </foreach>
    </delete>

    <!-- 根据对象列表删除一批,针对单一主健有效 -->
    <delete id="deleteByEntityList">
        delete from mortals_xhx_setup_project where id in
        <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
            #{item.id}
        </foreach>
    </delete>
    <!-- 根据paramDto删除一批 -->
    <delete id="deleteByMap" parameterType="paramDto">
        delete a.* from mortals_xhx_setup_project as a
        <trim suffixOverrides="where" suffix="">
            where
            <trim prefixOverrides="and" prefix="">
                <include refid="_condition_"/>
            </trim>
        </trim>
    </delete>
    <!-- 获取列表 -->
    <select id="getList" parameterType="paramDto" resultMap="SetupProjectEntity-Map">
        select <include refid="_columns"/>
        from mortals_xhx_setup_project as a
        <trim suffixOverrides="where" suffix="">
            where
            <trim prefixOverrides="and" prefix="">
                <include refid="_condition_"/>
            </trim>
        </trim>
        <include refid="_orderCols_"/>
    </select>



    <!-- 获取 -->
    <select id="getListCount" parameterType="paramDto" resultType="int">
        select count(1)
        from mortals_xhx_setup_project as a
        <trim suffixOverrides="where" suffix="">
            where
            <trim prefixOverrides="and" prefix="">
                <include refid="_condition_"/>
            </trim>
        </trim>
    </select>
    <!-- 条件映射 -->
    <sql id="_condition_">
        <if test="condition != null and !condition.isEmpty()">
            <!-- 条件映射-普通条件 -->
            <include refid="_condition_param_">
                <property name="_conditionParam_" value="condition"/>
                <property name="_conditionType_" value="and"/>
            </include>
            <!-- 条件映射-集合之间使用AND,集合中元素使用OR-(list[0].1 or list[0].2) and (list[1].3 or list[1].4) -->
            <if test="condition.containsKey('andConditionList') and !condition.andConditionList.isEmpty()">
                and
                <foreach collection="condition.andConditionList" open="(" close=")" index="index" item="andCondition" separator=" and ">
                    <trim prefixOverrides="or" prefix="(" suffix=")">
                        <include refid="_condition_param_">
                            <property name="_conditionParam_" value="andCondition"/>
                            <property name="_conditionType_" value="or"/>
                        </include>
                    </trim>
                </foreach>
            </if>
            <!-- 条件映射-集合之间使用OR,集合中元素使用AND-(list[0].1 and list[0].2) or (list[1].3 and list[1].4) -->
            <if test="condition.containsKey('orConditionList') and !condition.orConditionList.isEmpty()">
                and
                <foreach collection="condition.orConditionList" open="(" close=")" index="index" item="orCondition" separator=" or ">
                    <trim prefixOverrides="and" prefix="(" suffix=")">
                        <include refid="_condition_param_">
                            <property name="_conditionParam_" value="orCondition"/>
                            <property name="_conditionType_" value="and"/>
                        </include>
                    </trim>
                </foreach>
            </if>
        </if>
    </sql>
    <!-- 条件映射-代参数 -->
    <sql id="_condition_param_">
        <bind name="conditionParamRef" value="${_conditionParam_}"/>
        <if test="permissionSql != null and permissionSql != ''">
            ${permissionSql}
        </if>

        <if test="conditionParamRef.containsKey('id')">
            <if test="conditionParamRef.id != null">
                ${_conditionType_} a.id=#{${_conditionParam_}.id}
            </if>
        </if>
        <if test="conditionParamRef.containsKey('id')">
            <if test="conditionParamRef.id != null ">
                ${_conditionType_} a.id = #{${_conditionParam_}.id}
            </if>
            <if test="conditionParamRef.id == null">
                ${_conditionType_} a.id is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
            ${_conditionType_} a.id in
            <foreach collection="conditionParamRef.idList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('idNotList') and conditionParamRef.idNotList.size() > 0">
            ${_conditionType_} a.id not in
            <foreach collection="conditionParamRef.idNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('idStart') and conditionParamRef.idStart != null">
            ${_conditionType_} a.id <![CDATA[ >= ]]> #{${_conditionParam_}.idStart}
        </if>
        <if test="conditionParamRef.containsKey('idEnd') and conditionParamRef.idEnd != null">
            ${_conditionType_} a.id <![CDATA[ <= ]]> #{${_conditionParam_}.idEnd}
        </if>


        <if test="conditionParamRef.containsKey('name')">
            <if test="conditionParamRef.name != null and conditionParamRef.name != ''">
                ${_conditionType_} a.name like #{${_conditionParam_}.name}
            </if>
            <if test="conditionParamRef.name == null">
                ${_conditionType_} a.name is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('nameList') and conditionParamRef.nameList.size() > 0">
            ${_conditionType_} a.name in
            <foreach collection="conditionParamRef.nameList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('nameNotList') and conditionParamRef.nameNotList.size() > 0">
            ${_conditionType_} a.name not in
            <foreach collection="conditionParamRef.nameNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('projectCode')">
            <if test="conditionParamRef.projectCode != null and conditionParamRef.projectCode != ''">
                ${_conditionType_} a.projectCode like #{${_conditionParam_}.projectCode}
            </if>
            <if test="conditionParamRef.projectCode == null">
                ${_conditionType_} a.projectCode is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('projectCodeList') and conditionParamRef.projectCodeList.size() > 0">
            ${_conditionType_} a.projectCode in
            <foreach collection="conditionParamRef.projectCodeList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('projectCodeNotList') and conditionParamRef.projectCodeNotList.size() > 0">
            ${_conditionType_} a.projectCode not in
            <foreach collection="conditionParamRef.projectCodeNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('projectPath')">
            <if test="conditionParamRef.projectPath != null and conditionParamRef.projectPath != ''">
                ${_conditionType_} a.projectPath like #{${_conditionParam_}.projectPath}
            </if>
            <if test="conditionParamRef.projectPath == null">
                ${_conditionType_} a.projectPath is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('projectPathList') and conditionParamRef.projectPathList.size() > 0">
            ${_conditionType_} a.projectPath in
            <foreach collection="conditionParamRef.projectPathList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('projectPathNotList') and conditionParamRef.projectPathNotList.size() > 0">
            ${_conditionType_} a.projectPath not in
            <foreach collection="conditionParamRef.projectPathNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('projectShell')">
            <if test="conditionParamRef.projectShell != null and conditionParamRef.projectShell != ''">
                ${_conditionType_} a.projectShell like #{${_conditionParam_}.projectShell}
            </if>
            <if test="conditionParamRef.projectShell == null">
                ${_conditionType_} a.projectShell is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('projectShellList') and conditionParamRef.projectShellList.size() > 0">
            ${_conditionType_} a.projectShell in
            <foreach collection="conditionParamRef.projectShellList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('projectShellNotList') and conditionParamRef.projectShellNotList.size() > 0">
            ${_conditionType_} a.projectShell not in
            <foreach collection="conditionParamRef.projectShellNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('sourceProject')">
            <if test="conditionParamRef.sourceProject != null and conditionParamRef.sourceProject != ''">
                ${_conditionType_} a.sourceProject like #{${_conditionParam_}.sourceProject}
            </if>
            <if test="conditionParamRef.sourceProject == null">
                ${_conditionType_} a.sourceProject is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('sourceProjectList') and conditionParamRef.sourceProjectList.size() > 0">
            ${_conditionType_} a.sourceProject in
            <foreach collection="conditionParamRef.sourceProjectList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('sourceProjectNotList') and conditionParamRef.sourceProjectNotList.size() > 0">
            ${_conditionType_} a.sourceProject not in
            <foreach collection="conditionParamRef.sourceProjectNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('dbHost')">
            <if test="conditionParamRef.dbHost != null and conditionParamRef.dbHost != ''">
                ${_conditionType_} a.dbHost like #{${_conditionParam_}.dbHost}
            </if>
            <if test="conditionParamRef.dbHost == null">
                ${_conditionType_} a.dbHost is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('dbHostList') and conditionParamRef.dbHostList.size() > 0">
            ${_conditionType_} a.dbHost in
            <foreach collection="conditionParamRef.dbHostList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('dbHostNotList') and conditionParamRef.dbHostNotList.size() > 0">
            ${_conditionType_} a.dbHost not in
            <foreach collection="conditionParamRef.dbHostNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('dbPort')">
            <if test="conditionParamRef.dbPort != null and conditionParamRef.dbPort != ''">
                ${_conditionType_} a.dbPort like #{${_conditionParam_}.dbPort}
            </if>
            <if test="conditionParamRef.dbPort == null">
                ${_conditionType_} a.dbPort is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('dbPortList') and conditionParamRef.dbPortList.size() > 0">
            ${_conditionType_} a.dbPort in
            <foreach collection="conditionParamRef.dbPortList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('dbPortNotList') and conditionParamRef.dbPortNotList.size() > 0">
            ${_conditionType_} a.dbPort not in
            <foreach collection="conditionParamRef.dbPortNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('dbUser')">
            <if test="conditionParamRef.dbUser != null and conditionParamRef.dbUser != ''">
                ${_conditionType_} a.dbUser like #{${_conditionParam_}.dbUser}
            </if>
            <if test="conditionParamRef.dbUser == null">
                ${_conditionType_} a.dbUser is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('dbUserList') and conditionParamRef.dbUserList.size() > 0">
            ${_conditionType_} a.dbUser in
            <foreach collection="conditionParamRef.dbUserList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('dbUserNotList') and conditionParamRef.dbUserNotList.size() > 0">
            ${_conditionType_} a.dbUser not in
            <foreach collection="conditionParamRef.dbUserNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('dbPassword')">
            <if test="conditionParamRef.dbPassword != null and conditionParamRef.dbPassword != ''">
                ${_conditionType_} a.dbPassword like #{${_conditionParam_}.dbPassword}
            </if>
            <if test="conditionParamRef.dbPassword == null">
                ${_conditionType_} a.dbPassword is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('dbPasswordList') and conditionParamRef.dbPasswordList.size() > 0">
            ${_conditionType_} a.dbPassword in
            <foreach collection="conditionParamRef.dbPasswordList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('dbPasswordNotList') and conditionParamRef.dbPasswordNotList.size() > 0">
            ${_conditionType_} a.dbPassword not in
            <foreach collection="conditionParamRef.dbPasswordNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('dbName')">
            <if test="conditionParamRef.dbName != null and conditionParamRef.dbName != ''">
                ${_conditionType_} a.dbName like #{${_conditionParam_}.dbName}
            </if>
            <if test="conditionParamRef.dbName == null">
                ${_conditionType_} a.dbName is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('dbNameList') and conditionParamRef.dbNameList.size() > 0">
            ${_conditionType_} a.dbName in
            <foreach collection="conditionParamRef.dbNameList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('dbNameNotList') and conditionParamRef.dbNameNotList.size() > 0">
            ${_conditionType_} a.dbName not in
            <foreach collection="conditionParamRef.dbNameNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('version')">
            <if test="conditionParamRef.version != null and conditionParamRef.version != ''">
                ${_conditionType_} a.version like #{${_conditionParam_}.version}
            </if>
            <if test="conditionParamRef.version == null">
                ${_conditionType_} a.version is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('versionList') and conditionParamRef.versionList.size() > 0">
            ${_conditionType_} a.version in
            <foreach collection="conditionParamRef.versionList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('versionNotList') and conditionParamRef.versionNotList.size() > 0">
            ${_conditionType_} a.version not in
            <foreach collection="conditionParamRef.versionNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('projectType')">
            <if test="conditionParamRef.projectType != null ">
                ${_conditionType_} a.projectType = #{${_conditionParam_}.projectType}
            </if>
            <if test="conditionParamRef.projectType == null">
                ${_conditionType_} a.projectType is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('projectTypeList') and conditionParamRef.projectTypeList.size() > 0">
            ${_conditionType_} a.projectType in
            <foreach collection="conditionParamRef.projectTypeList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('projectTypeNotList') and conditionParamRef.projectTypeNotList.size() > 0">
            ${_conditionType_} a.projectType not in
            <foreach collection="conditionParamRef.projectTypeNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('projectTypeStart') and conditionParamRef.projectTypeStart != null">
            ${_conditionType_} a.projectType <![CDATA[ >= ]]> #{${_conditionParam_}.projectTypeStart}
        </if>
        <if test="conditionParamRef.containsKey('projectTypeEnd') and conditionParamRef.projectTypeEnd != null">
            ${_conditionType_} a.projectType <![CDATA[ <= ]]> #{${_conditionParam_}.projectTypeEnd}
        </if>

        <if test="conditionParamRef.containsKey('projectStatus')">
            <if test="conditionParamRef.projectStatus != null ">
                ${_conditionType_} a.projectStatus = #{${_conditionParam_}.projectStatus}
            </if>
            <if test="conditionParamRef.projectStatus == null">
                ${_conditionType_} a.projectStatus is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('projectStatusList') and conditionParamRef.projectStatusList.size() > 0">
            ${_conditionType_} a.projectStatus in
            <foreach collection="conditionParamRef.projectStatusList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('projectStatusNotList') and conditionParamRef.projectStatusNotList.size() > 0">
            ${_conditionType_} a.projectStatus not in
            <foreach collection="conditionParamRef.projectStatusNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('projectStatusStart') and conditionParamRef.projectStatusStart != null">
            ${_conditionType_} a.projectStatus <![CDATA[ >= ]]> #{${_conditionParam_}.projectStatusStart}
        </if>
        <if test="conditionParamRef.containsKey('projectStatusEnd') and conditionParamRef.projectStatusEnd != null">
            ${_conditionType_} a.projectStatus <![CDATA[ <= ]]> #{${_conditionParam_}.projectStatusEnd}
        </if>


        <if test="conditionParamRef.containsKey('remark')">
            <if test="conditionParamRef.remark != null and conditionParamRef.remark != ''">
                ${_conditionType_} a.remark like #{${_conditionParam_}.remark}
            </if>
            <if test="conditionParamRef.remark == null">
                ${_conditionType_} a.remark is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('remarkList') and conditionParamRef.remarkList.size() > 0">
            ${_conditionType_} a.remark in
            <foreach collection="conditionParamRef.remarkList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('remarkNotList') and conditionParamRef.remarkNotList.size() > 0">
            ${_conditionType_} a.remark not in
            <foreach collection="conditionParamRef.remarkNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('updateTime')">
            <if test="conditionParamRef.updateTime != null ">
                ${_conditionType_} a.updateTime = #{${_conditionParam_}.updateTime}
            </if>
            <if test="conditionParamRef.updateTime == null">
                ${_conditionType_} a.updateTime is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('updateTimeStart') and conditionParamRef.updateTimeStart != null and conditionParamRef.updateTimeStart!=''">
            ${_conditionType_} a.updateTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
        </if>
        <if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''">
            ${_conditionType_} a.updateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
        </if>

        <if test="conditionParamRef.containsKey('updateUser')">
            <if test="conditionParamRef.updateUser != null and conditionParamRef.updateUser != ''">
                ${_conditionType_} a.updateUser like #{${_conditionParam_}.updateUser}
            </if>
            <if test="conditionParamRef.updateUser == null">
                ${_conditionType_} a.updateUser is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('updateUserList') and conditionParamRef.updateUserList.size() > 0">
            ${_conditionType_} a.updateUser in
            <foreach collection="conditionParamRef.updateUserList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('updateUserNotList') and conditionParamRef.updateUserNotList.size() > 0">
            ${_conditionType_} a.updateUser not in
            <foreach collection="conditionParamRef.updateUserNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('createTime')">
            <if test="conditionParamRef.createTime != null ">
                ${_conditionType_} a.createTime = #{${_conditionParam_}.createTime}
            </if>
            <if test="conditionParamRef.createTime == null">
                ${_conditionType_} a.createTime is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
            ${_conditionType_} a.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
        </if>
        <if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
            ${_conditionType_} a.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
        </if>

        <if test="conditionParamRef.containsKey('createUser')">
            <if test="conditionParamRef.createUser != null and conditionParamRef.createUser != ''">
                ${_conditionType_} a.createUser like #{${_conditionParam_}.createUser}
            </if>
            <if test="conditionParamRef.createUser == null">
                ${_conditionType_} a.createUser is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('createUserList') and conditionParamRef.createUserList.size() > 0">
            ${_conditionType_} a.createUser in
            <foreach collection="conditionParamRef.createUserList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('createUserNotList') and conditionParamRef.createUserNotList.size() > 0">
            ${_conditionType_} a.createUser not in
            <foreach collection="conditionParamRef.createUserNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('orderNum')">
            <if test="conditionParamRef.orderNum != null ">
                ${_conditionType_} a.orderNum = #{${_conditionParam_}.orderNum}
            </if>
            <if test="conditionParamRef.orderNum == null">
                ${_conditionType_} a.orderNum is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('orderNumList') and conditionParamRef.orderNumList.size() > 0">
            ${_conditionType_} a.orderNum in
            <foreach collection="conditionParamRef.orderNumList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('orderNumNotList') and conditionParamRef.orderNumNotList.size() > 0">
            ${_conditionType_} a.orderNum not in
            <foreach collection="conditionParamRef.orderNumNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('orderNumStart') and conditionParamRef.orderNumStart != null">
            ${_conditionType_} a.orderNum <![CDATA[ >= ]]> #{${_conditionParam_}.orderNumStart}
        </if>
        <if test="conditionParamRef.containsKey('orderNumEnd') and conditionParamRef.orderNumEnd != null">
            ${_conditionType_} a.orderNum <![CDATA[ <= ]]> #{${_conditionParam_}.orderNumEnd}
        </if>

        <if test="conditionParamRef.containsKey('updateUserId')">
            <if test="conditionParamRef.updateUserId != null ">
                ${_conditionType_} a.updateUserId = #{${_conditionParam_}.updateUserId}
            </if>
            <if test="conditionParamRef.updateUserId == null">
                ${_conditionType_} a.updateUserId is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0">
            ${_conditionType_} a.updateUserId in
            <foreach collection="conditionParamRef.updateUserIdList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('updateUserIdNotList') and conditionParamRef.updateUserIdNotList.size() > 0">
            ${_conditionType_} a.updateUserId not in
            <foreach collection="conditionParamRef.updateUserIdNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('updateUserIdStart') and conditionParamRef.updateUserIdStart != null">
            ${_conditionType_} a.updateUserId <![CDATA[ >= ]]> #{${_conditionParam_}.updateUserIdStart}
        </if>
        <if test="conditionParamRef.containsKey('updateUserIdEnd') and conditionParamRef.updateUserIdEnd != null">
            ${_conditionType_} a.updateUserId <![CDATA[ <= ]]> #{${_conditionParam_}.updateUserIdEnd}
        </if>

        <if test="conditionParamRef.containsKey('createUserId')">
            <if test="conditionParamRef.createUserId != null ">
                ${_conditionType_} a.createUserId = #{${_conditionParam_}.createUserId}
            </if>
            <if test="conditionParamRef.createUserId == null">
                ${_conditionType_} a.createUserId is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
            ${_conditionType_} a.createUserId in
            <foreach collection="conditionParamRef.createUserIdList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('createUserIdNotList') and conditionParamRef.createUserIdNotList.size() > 0">
            ${_conditionType_} a.createUserId not in
            <foreach collection="conditionParamRef.createUserIdNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('createUserIdStart') and conditionParamRef.createUserIdStart != null">
            ${_conditionType_} a.createUserId <![CDATA[ >= ]]> #{${_conditionParam_}.createUserIdStart}
        </if>
        <if test="conditionParamRef.containsKey('createUserIdEnd') and conditionParamRef.createUserIdEnd != null">
            ${_conditionType_} a.createUserId <![CDATA[ <= ]]> #{${_conditionParam_}.createUserIdEnd}
        </if>

        <if test="conditionParamRef.containsKey('siteId')">
            <if test="conditionParamRef.siteId != null ">
                ${_conditionType_} a.siteId = #{${_conditionParam_}.siteId}
            </if>
            <if test="conditionParamRef.siteId == null">
                ${_conditionType_} a.siteId is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('siteIdList') and conditionParamRef.siteIdList.size() > 0">
            ${_conditionType_} a.siteId in
            <foreach collection="conditionParamRef.siteIdList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('siteIdNotList') and conditionParamRef.siteIdNotList.size() > 0">
            ${_conditionType_} a.siteId not in
            <foreach collection="conditionParamRef.siteIdNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('siteIdStart') and conditionParamRef.siteIdStart != null">
            ${_conditionType_} a.siteId <![CDATA[ >= ]]> #{${_conditionParam_}.siteIdStart}
        </if>
        <if test="conditionParamRef.containsKey('siteIdEnd') and conditionParamRef.siteIdEnd != null">
            ${_conditionType_} a.siteId <![CDATA[ <= ]]> #{${_conditionParam_}.siteIdEnd}
        </if>


        <if test="conditionParamRef.containsKey('siteCode')">
            <if test="conditionParamRef.siteCode != null and conditionParamRef.siteCode != ''">
                ${_conditionType_} a.siteCode like #{${_conditionParam_}.siteCode}
            </if>
            <if test="conditionParamRef.siteCode == null">
                ${_conditionType_} a.siteCode is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('siteCodeList') and conditionParamRef.siteCodeList.size() > 0">
            ${_conditionType_} a.siteCode in
            <foreach collection="conditionParamRef.siteCodeList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('siteCodeNotList') and conditionParamRef.siteCodeNotList.size() > 0">
            ${_conditionType_} a.siteCode not in
            <foreach collection="conditionParamRef.siteCodeNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('siteName')">
            <if test="conditionParamRef.siteName != null and conditionParamRef.siteName != ''">
                ${_conditionType_} a.siteName like #{${_conditionParam_}.siteName}
            </if>
            <if test="conditionParamRef.siteName == null">
                ${_conditionType_} a.siteName is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('siteNameList') and conditionParamRef.siteNameList.size() > 0">
            ${_conditionType_} a.siteName in
            <foreach collection="conditionParamRef.siteNameList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('siteNameNotList') and conditionParamRef.siteNameNotList.size() > 0">
            ${_conditionType_} a.siteName not in
            <foreach collection="conditionParamRef.siteNameNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('areaCode')">
            <if test="conditionParamRef.areaCode != null and conditionParamRef.areaCode != ''">
                ${_conditionType_} a.areaCode like #{${_conditionParam_}.areaCode}
            </if>
            <if test="conditionParamRef.areaCode == null">
                ${_conditionType_} a.areaCode is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('areaCodeList') and conditionParamRef.areaCodeList.size() > 0">
            ${_conditionType_} a.areaCode in
            <foreach collection="conditionParamRef.areaCodeList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('areaCodeNotList') and conditionParamRef.areaCodeNotList.size() > 0">
            ${_conditionType_} a.areaCode not in
            <foreach collection="conditionParamRef.areaCodeNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('areaName')">
            <if test="conditionParamRef.areaName != null and conditionParamRef.areaName != ''">
                ${_conditionType_} a.areaName like #{${_conditionParam_}.areaName}
            </if>
            <if test="conditionParamRef.areaName == null">
                ${_conditionType_} a.areaName is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('areaNameList') and conditionParamRef.areaNameList.size() > 0">
            ${_conditionType_} a.areaName in
            <foreach collection="conditionParamRef.areaNameList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('areaNameNotList') and conditionParamRef.areaNameNotList.size() > 0">
            ${_conditionType_} a.areaName not in
            <foreach collection="conditionParamRef.areaNameNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('clientToServerIp')">
            <if test="conditionParamRef.clientToServerIp != null and conditionParamRef.clientToServerIp != ''">
                ${_conditionType_} a.clientToServerIp like #{${_conditionParam_}.clientToServerIp}
            </if>
            <if test="conditionParamRef.clientToServerIp == null">
                ${_conditionType_} a.clientToServerIp is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('clientToServerIpList') and conditionParamRef.clientToServerIpList.size() > 0">
            ${_conditionType_} a.clientToServerIp in
            <foreach collection="conditionParamRef.clientToServerIpList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('clientToServerIpNotList') and conditionParamRef.clientToServerIpNotList.size() > 0">
            ${_conditionType_} a.clientToServerIp not in
            <foreach collection="conditionParamRef.clientToServerIpNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('clientToServerIpStatus')">
            <if test="conditionParamRef.clientToServerIpStatus != null ">
                ${_conditionType_} a.clientToServerIpStatus = #{${_conditionParam_}.clientToServerIpStatus}
            </if>
            <if test="conditionParamRef.clientToServerIpStatus == null">
                ${_conditionType_} a.clientToServerIpStatus is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('clientToServerIpStatusList') and conditionParamRef.clientToServerIpStatusList.size() > 0">
            ${_conditionType_} a.clientToServerIpStatus in
            <foreach collection="conditionParamRef.clientToServerIpStatusList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('clientToServerIpStatusNotList') and conditionParamRef.clientToServerIpStatusNotList.size() > 0">
            ${_conditionType_} a.clientToServerIpStatus not in
            <foreach collection="conditionParamRef.clientToServerIpStatusNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('clientToServerIpStatusStart') and conditionParamRef.clientToServerIpStatusStart != null">
            ${_conditionType_} a.clientToServerIpStatus <![CDATA[ >= ]]> #{${_conditionParam_}.clientToServerIpStatusStart}
        </if>
        <if test="conditionParamRef.containsKey('clientToServerIpStatusEnd') and conditionParamRef.clientToServerIpStatusEnd != null">
            ${_conditionType_} a.clientToServerIpStatus <![CDATA[ <= ]]> #{${_conditionParam_}.clientToServerIpStatusEnd}
        </if>


        <if test="conditionParamRef.containsKey('innerServerIp')">
            <if test="conditionParamRef.innerServerIp != null and conditionParamRef.innerServerIp != ''">
                ${_conditionType_} a.innerServerIp like #{${_conditionParam_}.innerServerIp}
            </if>
            <if test="conditionParamRef.innerServerIp == null">
                ${_conditionType_} a.innerServerIp is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('innerServerIpList') and conditionParamRef.innerServerIpList.size() > 0">
            ${_conditionType_} a.innerServerIp in
            <foreach collection="conditionParamRef.innerServerIpList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('innerServerIpNotList') and conditionParamRef.innerServerIpNotList.size() > 0">
            ${_conditionType_} a.innerServerIp not in
            <foreach collection="conditionParamRef.innerServerIpNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('innerServerIpStatus')">
            <if test="conditionParamRef.innerServerIpStatus != null ">
                ${_conditionType_} a.innerServerIpStatus = #{${_conditionParam_}.innerServerIpStatus}
            </if>
            <if test="conditionParamRef.innerServerIpStatus == null">
                ${_conditionType_} a.innerServerIpStatus is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('innerServerIpStatusList') and conditionParamRef.innerServerIpStatusList.size() > 0">
            ${_conditionType_} a.innerServerIpStatus in
            <foreach collection="conditionParamRef.innerServerIpStatusList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('innerServerIpStatusNotList') and conditionParamRef.innerServerIpStatusNotList.size() > 0">
            ${_conditionType_} a.innerServerIpStatus not in
            <foreach collection="conditionParamRef.innerServerIpStatusNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('innerServerIpStatusStart') and conditionParamRef.innerServerIpStatusStart != null">
            ${_conditionType_} a.innerServerIpStatus <![CDATA[ >= ]]> #{${_conditionParam_}.innerServerIpStatusStart}
        </if>
        <if test="conditionParamRef.containsKey('innerServerIpStatusEnd') and conditionParamRef.innerServerIpStatusEnd != null">
            ${_conditionType_} a.innerServerIpStatus <![CDATA[ <= ]]> #{${_conditionParam_}.innerServerIpStatusEnd}
        </if>

    </sql>
    <sql id="_orderCols_">
        <if test="orderColList != null and !orderColList.isEmpty()">
            order by
            <if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
                field(a.id,
                <foreach collection="conditionParamRef.idList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('projectTypeList') and conditionParamRef.projectTypeList.size() > 0">
                field(a.projectType,
                <foreach collection="conditionParamRef.projectTypeList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('projectStatusList') and conditionParamRef.projectStatusList.size() > 0">
                field(a.projectStatus,
                <foreach collection="conditionParamRef.projectStatusList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('orderNumList') and conditionParamRef.orderNumList.size() > 0">
                field(a.orderNum,
                <foreach collection="conditionParamRef.orderNumList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0">
                field(a.updateUserId,
                <foreach collection="conditionParamRef.updateUserIdList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
                field(a.createUserId,
                <foreach collection="conditionParamRef.createUserIdList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('siteIdList') and conditionParamRef.siteIdList.size() > 0">
                field(a.siteId,
                <foreach collection="conditionParamRef.siteIdList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('clientToServerIpStatusList') and conditionParamRef.clientToServerIpStatusList.size() > 0">
                field(a.clientToServerIpStatus,
                <foreach collection="conditionParamRef.clientToServerIpStatusList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('innerServerIpStatusList') and conditionParamRef.innerServerIpStatusList.size() > 0">
                field(a.innerServerIpStatus,
                <foreach collection="conditionParamRef.innerServerIpStatusList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <trim suffixOverrides=","  suffix="">
                <foreach collection="orderColList" open="" close="" index="index" item="item" separator=",">
                    a.${item.colName} ${item.sortKind}
                </foreach>
            </trim>
        </if>
        <if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()">
            order by
            <if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
                field(a.id,
                <foreach collection="conditionParamRef.idList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('projectTypeList') and conditionParamRef.projectTypeList.size() > 0">
                field(a.projectType,
                <foreach collection="conditionParamRef.projectTypeList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('projectStatusList') and conditionParamRef.projectStatusList.size() > 0">
                field(a.projectStatus,
                <foreach collection="conditionParamRef.projectStatusList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('orderNumList') and conditionParamRef.orderNumList.size() > 0">
                field(a.orderNum,
                <foreach collection="conditionParamRef.orderNumList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0">
                field(a.updateUserId,
                <foreach collection="conditionParamRef.updateUserIdList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
                field(a.createUserId,
                <foreach collection="conditionParamRef.createUserIdList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('siteIdList') and conditionParamRef.siteIdList.size() > 0">
                field(a.siteId,
                <foreach collection="conditionParamRef.siteIdList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('clientToServerIpStatusList') and conditionParamRef.clientToServerIpStatusList.size() > 0">
                field(a.clientToServerIpStatus,
                <foreach collection="conditionParamRef.clientToServerIpStatusList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('innerServerIpStatusList') and conditionParamRef.innerServerIpStatusList.size() > 0">
                field(a.innerServerIpStatus,
                <foreach collection="conditionParamRef.innerServerIpStatusList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <trim suffixOverrides=","  suffix="">
                <if test="orderCol.containsKey('id')">
                    a.id
                    <if test='orderCol.id != null and "DESC".equalsIgnoreCase(orderCol.id)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('name')">
                    a.name
                    <if test='orderCol.name != null and "DESC".equalsIgnoreCase(orderCol.name)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('projectCode')">
                    a.projectCode
                    <if test='orderCol.projectCode != null and "DESC".equalsIgnoreCase(orderCol.projectCode)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('projectPath')">
                    a.projectPath
                    <if test='orderCol.projectPath != null and "DESC".equalsIgnoreCase(orderCol.projectPath)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('projectShell')">
                    a.projectShell
                    <if test='orderCol.projectShell != null and "DESC".equalsIgnoreCase(orderCol.projectShell)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('sourceProject')">
                    a.sourceProject
                    <if test='orderCol.sourceProject != null and "DESC".equalsIgnoreCase(orderCol.sourceProject)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('dbHost')">
                    a.dbHost
                    <if test='orderCol.dbHost != null and "DESC".equalsIgnoreCase(orderCol.dbHost)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('dbPort')">
                    a.dbPort
                    <if test='orderCol.dbPort != null and "DESC".equalsIgnoreCase(orderCol.dbPort)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('dbUser')">
                    a.dbUser
                    <if test='orderCol.dbUser != null and "DESC".equalsIgnoreCase(orderCol.dbUser)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('dbPassword')">
                    a.dbPassword
                    <if test='orderCol.dbPassword != null and "DESC".equalsIgnoreCase(orderCol.dbPassword)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('dbName')">
                    a.dbName
                    <if test='orderCol.dbName != null and "DESC".equalsIgnoreCase(orderCol.dbName)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('version')">
                    a.version
                    <if test='orderCol.version != null and "DESC".equalsIgnoreCase(orderCol.version)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('projectType')">
                    a.projectType
                    <if test='orderCol.projectType != null and "DESC".equalsIgnoreCase(orderCol.projectType)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('projectStatus')">
                    a.projectStatus
                    <if test='orderCol.projectStatus != null and "DESC".equalsIgnoreCase(orderCol.projectStatus)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('remark')">
                    a.remark
                    <if test='orderCol.remark != null and "DESC".equalsIgnoreCase(orderCol.remark)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('updateTime')">
                    a.updateTime
                    <if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('updateUser')">
                    a.updateUser
                    <if test='orderCol.updateUser != null and "DESC".equalsIgnoreCase(orderCol.updateUser)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('createTime')">
                    a.createTime
                    <if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('createUser')">
                    a.createUser
                    <if test='orderCol.createUser != null and "DESC".equalsIgnoreCase(orderCol.createUser)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('orderNum')">
                    a.orderNum
                    <if test='orderCol.orderNum != null and "DESC".equalsIgnoreCase(orderCol.orderNum)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('updateUserId')">
                    a.updateUserId
                    <if test='orderCol.updateUserId != null and "DESC".equalsIgnoreCase(orderCol.updateUserId)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('createUserId')">
                    a.createUserId
                    <if test='orderCol.createUserId != null and "DESC".equalsIgnoreCase(orderCol.createUserId)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('siteId')">
                    a.siteId
                    <if test='orderCol.siteId != null and "DESC".equalsIgnoreCase(orderCol.siteId)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('siteCode')">
                    a.siteCode
                    <if test='orderCol.siteCode != null and "DESC".equalsIgnoreCase(orderCol.siteCode)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('siteName')">
                    a.siteName
                    <if test='orderCol.siteName != null and "DESC".equalsIgnoreCase(orderCol.siteName)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('areaCode')">
                    a.areaCode
                    <if test='orderCol.areaCode != null and "DESC".equalsIgnoreCase(orderCol.areaCode)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('areaName')">
                    a.areaName
                    <if test='orderCol.areaName != null and "DESC".equalsIgnoreCase(orderCol.areaName)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('clientToServerIp')">
                    a.clientToServerIp
                    <if test='orderCol.clientToServerIp != null and "DESC".equalsIgnoreCase(orderCol.clientToServerIp)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('clientToServerIpStatus')">
                    a.clientToServerIpStatus
                    <if test='orderCol.clientToServerIpStatus != null and "DESC".equalsIgnoreCase(orderCol.clientToServerIpStatus)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('innerServerIp')">
                    a.innerServerIp
                    <if test='orderCol.innerServerIp != null and "DESC".equalsIgnoreCase(orderCol.innerServerIp)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('innerServerIpStatus')">
                    a.innerServerIpStatus
                    <if test='orderCol.innerServerIpStatus != null and "DESC".equalsIgnoreCase(orderCol.innerServerIpStatus)'>DESC</if>
                    ,
                </if>
            </trim>
        </if>


    </sql>
    <sql id="_group_by_">
        <if test="groupList != null and !groupList.isEmpty()">
            GROUP BY
            <trim suffixOverrides=","  suffix="">
                <foreach collection="groupList" open="" close="" index="index" item="item" separator=",">
                    ${item}
                </foreach>
            </trim>
        </if>
    </sql>
</mapper>