xiejun
2023-12-04 351151bc16c8bcbd747b237fb0bfa8e76107cb78
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
@@ -37,7 +37,9 @@
        <result column="CODERULEOID" property="codeRuleOid"/>
        <result column="CODEKEYATTRREPEATOID" property="codeKeyAttrRepeatOid"/>
        <result column="CODERESEMBLERULEOID" property="codeResembleRuleOid"/>
        <result column="ISPARTICIPATECHECK" property="isParticipateCheck"/>
        <result column="TENANT_ID" property="tenantId"/>
        <result column="TOTAL" property="total"/>
    </resultMap>
    <sql id="tableName">
@@ -45,9 +47,9 @@
    </sql>
    <select id="selectPlCodeClassifyPage" resultMap="plCodeClassifyResultMap">
        select * from PL_CODE_CLASSIFY where is_deleted = 0
        select * from PL_CODE_CLASSIFY where
        <if test="tenantId != null and tenantId != ''">
            and tenant_id = #{tenantId}
            tenant_id = #{tenantId}
        </if>
    </select>
@@ -87,23 +89,25 @@
               codeclassify0.TENANT_ID             as tenantId ,
               coderuleoid.name                    as codeRuleOidName,
               codekeyattrrepeatoid.name           as codeKeyAttrRepeatOidName,
               coderesembleruleoid.name            as codeResembleRuleOidName
               coderesembleruleoid.name            as codeResembleRuleOidName,
               codeclassify0.ISPARTICIPATECHECK   as isParticipateCheck
        from pl_code_classify codeclassify0
                 left join pl_code_rule coderuleoid
                           on codeclassify0.codeRuleOid = coderuleoid.oid
                 left join pl_code_keyattrrepeat codekeyattrrepeatoid
                           on codeclassify0.codeKeyAttrRepeatOid = codekeyattrrepeatoid.oid
                 left join pl_code_resemblerule coderesembleruleoid
                           on codeclassify0.codeResembleRuleOid = coderesembleruleoid.oid
             left join pl_code_rule coderuleoid
                       on codeclassify0.codeRuleOid = coderuleoid.oid
             left join pl_code_keyattrrepeat codekeyattrrepeatoid
                       on codeclassify0.codeKeyAttrRepeatOid = codekeyattrrepeatoid.oid
             left join pl_code_resemblerule coderesembleruleoid
                       on codeclassify0.codeResembleRuleOid = coderesembleruleoid.oid
        <where>
             1=1
            <if test="oid != null and oid != ''">
                codeclassify0.parentcodeclassifyoid = '${oid}'
               and  codeclassify0.parentcodeclassifyoid = ${oid}
            </if>
            <if test="oid = null">
                codeclassify0.parentcodeclassifyoid is null
               and codeclassify0.parentcodeclassifyoid is null
            </if>
            <if test="tenantId != null and tenantId != ''">
                codeclassify0.tenant_id = #{tenantId}
               and  codeclassify0.tenant_id = #{tenantId}
            </if>
        </where>
        order by lastmodifytime asc
@@ -129,6 +133,7 @@
               codeclassify0.CODERESEMBLERULEOID as coderesembleruleoid,
               codeclassify0.LCSTATUS as lcstatus,
               codeclassify0.TS as ts,
               codeclassify0.ISPARTICIPATECHECK   as isParticipateCheck,
               coderuleoid.name as codeRuleOidName,
               codekeyattrrepeatoid.name as codeKeyAttrRepeatOidName,
               coderesembleruleoid.name as codeResembleRuleOidName,
@@ -153,10 +158,13 @@
                           on codeclassify0.codeResembleRuleOid = coderesembleruleoid.oid
            START WITH
            <if test="oid != null ">
                codeclassify0.parentCodeClassifyOid = '${oid}'
                codeclassify0.parentCodeClassifyOid = #{oid}
            </if>
            <if test="oid == null ">
                codeclassify0.parentCodeClassifyOid is null
            </if>
            <if test="tenantId != null and tenantId != ''">
                and  codeclassify0.tenant_id = #{tenantId}
            </if>
        CONNECT BY PRIOR codeclassify0.OID = codeclassify0.parentCodeClassifyOid
    </select>
@@ -177,8 +185,14 @@
    </select>
    <select id="selectAllLevelParentByOid" resultType="java.util.HashMap">
        select oid,
               level from pl_code_classify start with oid= #{oid} connect by prior PARENTCODECLASSIFYOID = oid
            select b.oid as oid,level from
                pl_code_classify  b
                    join (select oid
                          from  pl_code_classify
                                    start with oid = #{oid}
                          connect by oid = prior PARENTCODECLASSIFYOID) a on b.oid = a.OID
                start with b.PARENTCODECLASSIFYOID is null
            connect by prior b.oid = b.PARENTCODECLASSIFYOID
    </select>
    <select id="getIdPathToNamePathByParentId"  resultMap="plCodeClassifyResultMap">
@@ -201,8 +215,9 @@
        codeclassify0.CODERESEMBLERULEOID   as coderesembleruleoid,
        codeclassify0.LCSTATUS              as lcstatus,
        codeclassify0.TS                    as ts,
        codeclassify0.namePath                 as namepath,
        codeclassify0.idPath                 as idpath
        codeclassify0.namePath              as namepath,
        codeclassify0.idPath                as idpath,
        codeclassify0.ISPARTICIPATECHECK   as isParticipateCheck
        from (select plcodeclassify.*,
                SYS_CONNECT_BY_PATH(name, '#')   as namePath,
                SYS_CONNECT_BY_PATH(id, '#')   as idPath
@@ -231,7 +246,8 @@
               codeclassify0.CODERESEMBLERULEOID   as coderesembleruleoid,
               codeclassify0.LCSTATUS              as lcstatus,
               codeclassify0.TS                    as ts,
               codeclassify0.paths                 as paths
               codeclassify0.paths                 as paths,
               codeclassify0.ISPARTICIPATECHECK   as isParticipateCheck
        from (select plcodeclassify.*,
                <choose>
                     <when test='fieldName=="name"'>
@@ -241,7 +257,6 @@
                        SYS_CONNECT_BY_PATH(id, '#')   as paths
                    </otherwise>
                </choose>
        from pl_code_classify  plcodeclassify
                  START WITH parentCodeClassifyOid is null
              CONNECT BY PRIOR OID = parentCodeClassifyOid) codeclassify0
@@ -266,7 +281,7 @@
    </select>
    <select id="selectCodeClassifyDOByTree" resultMap="plCodeClassifyResultMap">
        select codeclassify0.OWNER                 as owner,
        select codeclassify0.OWNER          as owner,
        codeclassify0.BTMTYPEID             as btmtypeid,
        codeclassify0.CREATOR               as creator,
        codeclassify0.CREATETIME            as createtime,
@@ -285,7 +300,8 @@
        codeclassify0.CODERESEMBLERULEOID   as coderesembleruleoid,
        codeclassify0.LCSTATUS              as lcstatus,
        codeclassify0.TS                    as ts,
        codeclassify0.TENANT_ID             as tenantId ,
        codeclassify0.TENANT_ID             as tenantId,
        codeclassify0.ISPARTICIPATECHECK   as isParticipateCheck,
        coderuleoid.name                    as codeRuleOidName,
        codekeyattrrepeatoid.name           as codeKeyAttrRepeatOidName,
        coderesembleruleoid.name            as codeResembleRuleOidName
@@ -307,7 +323,7 @@
        <if test="tenantId != null and tenantId != ''">
            and codeclassify0.tenant_id = #{tenantId}
        </if>
        order by lastmodifytime desc
        order by id asc
    </select>
    <select id="selectClassifyByKeyAndReseRel" resultMap="plCodeClassifyResultMap">
@@ -348,7 +364,8 @@
        codeclassify0.TENANT_ID             as tenantId ,
        coderuleoid.name                    as codeRuleOidName,
        codekeyattrrepeatoid.name           as codeKeyAttrRepeatOidName,
        coderesembleruleoid.name            as codeResembleRuleOidName
        coderesembleruleoid.name            as codeResembleRuleOidName,
        codeclassify0.ISPARTICIPATECHECK   as isParticipateCheck
        from pl_code_classify codeclassify0
        left join pl_code_rule coderuleoid
        on codeclassify0.codeRuleOid = coderuleoid.oid
@@ -363,7 +380,6 @@
        <if test="parentOid == null or parentOid == ''">
            and codeclassify0.parentcodeclassifyoid is null
        </if>
        <if test="tenantId != null and tenantId != ''">
            and codeclassify0.tenant_id = #{tenantId}
        </if>
@@ -371,7 +387,7 @@
    </select>
    <select id="getRMLibByName" resultMap="plCodeClassifyResultMap">
        select codeclassify0.OWNER                 as owner,
        select codeclassify0.OWNER          as owner,
        codeclassify0.BTMTYPEID             as btmtypeid,
        codeclassify0.CREATOR               as creator,
        codeclassify0.CREATETIME            as createtime,
@@ -391,6 +407,7 @@
        codeclassify0.LCSTATUS              as lcstatus,
        codeclassify0.TS                    as ts,
        codeclassify0.TENANT_ID             as tenantId ,
        codeclassify0.ISPARTICIPATECHECK   as isParticipateCheck,
        coderuleoid.name                    as codeRuleOidName,
        codekeyattrrepeatoid.name           as codeKeyAttrRepeatOidName,
        coderesembleruleoid.name            as codeResembleRuleOidName
@@ -410,7 +427,7 @@
            </foreach>
        </if>
        <if test="tenantId != null and tenantId != ''">
            codeclassify0.tenant_id = #{tenantId}
            and codeclassify0.tenant_id = #{tenantId}
        </if>
        order by id asc
    </select>
@@ -436,6 +453,7 @@
        codeclassify0.LCSTATUS              as lcstatus,
        codeclassify0.TS                    as ts,
        codeclassify0.TENANT_ID             as tenantId ,
        codeclassify0.ISPARTICIPATECHECK   as isParticipateCheck,
        coderuleoid.name                    as codeRuleOidName,
        codekeyattrrepeatoid.name           as codeKeyAttrRepeatOidName,
        coderesembleruleoid.name            as codeResembleRuleOidName
@@ -450,11 +468,56 @@
        <if test="desc != null">
            and  codeclassify0.DESCRIPTION = #{desc}
        </if>
        <if test="tenantId != null and tenantId != ''">
          and  codeclassify0.tenant_id = #{tenantId}
        </if>
        order by id asc
    </select>
    <!--获取所有下级节点,不要动这个方法sql-->
    <select id="selectAllClassifyByOid" resultMap="plCodeClassifyResultMap">
        select codeclassify0.OWNER          as owner,
        codeclassify0.BTMTYPEID             as btmtypeid,
        codeclassify0.CREATOR               as creator,
        codeclassify0.CREATETIME            as createtime,
        codeclassify0.LASTMODIFIER          as lastmodifier,
        codeclassify0.DESCRIPTION           as description,
        codeclassify0.ORDERNUM              as ordernum,
        codeclassify0.CODERULEOID           as coderuleoid,
        codeclassify0.OID                   as oid,
        codeclassify0.BTMNAME               as btmname,
        codeclassify0.BTMTYPENAME           as btmtypename,
        codeclassify0.CODEKEYATTRREPEATOID  as codekeyattrrepeatoid,
        codeclassify0.PARENTCODECLASSIFYOID as parentcodeclassifyoid,
        codeclassify0.NAME                  as name,
        codeclassify0.LASTMODIFYTIME        as lastmodifytime,
        codeclassify0.ID                    as id,
        codeclassify0.CODERESEMBLERULEOID   as coderesembleruleoid,
        codeclassify0.LCSTATUS              as lcstatus,
        codeclassify0.TS                    as ts,
        codeclassify0.TENANT_ID             as tenantId ,
        codeclassify0.ISPARTICIPATECHECK   as isParticipateCheck,
        coderuleoid.name                    as codeRuleOidName,
        codekeyattrrepeatoid.name           as codeKeyAttrRepeatOidName,
        coderesembleruleoid.name            as codeResembleRuleOidName
        from pl_code_classify codeclassify0
        left join pl_code_rule coderuleoid
        on codeclassify0.codeRuleOid = coderuleoid.oid
        left join pl_code_keyattrrepeat codekeyattrrepeatoid
        on codeclassify0.codeKeyAttrRepeatOid = codekeyattrrepeatoid.oid
        left join pl_code_resemblerule coderesembleruleoid
        on codeclassify0.codeResembleRuleOid = coderesembleruleoid.oid
        start with  codeclassify0.oid=#{oid}
        <if test="tenantId != null and tenantId != ''">
            and  codeclassify0.tenant_id = #{tenantId}
        </if>
        connect by prior  codeclassify0.oid=codeclassify0.PARENTCODECLASSIFYOID
    </select>
    <select id="selectStartWithCurrentOid" resultMap="plCodeClassifyResultMap">
        select * from <include refid="tableName"/>
        start with oid = #{oid}
        connect by prior oid = parentcodeclassifyoid;
    </select>
    <select id="selectAllParenClassifytByOid" resultMap="plCodeClassifyResultMap">
@@ -477,7 +540,8 @@
        codeclassify0.CODERESEMBLERULEOID   as coderesembleruleoid,
        codeclassify0.LCSTATUS              as lcstatus,
        codeclassify0.TS                    as ts,
        codeclassify0.TENANT_ID             as tenantId ,
        codeclassify0.TENANT_ID             as tenantId,
        codeclassify0.ISPARTICIPATECHECK   as isParticipateCheck,
        coderuleoid.name                    as codeRuleOidName,
        codekeyattrrepeatoid.name           as codeKeyAttrRepeatOidName,
        coderesembleruleoid.name            as codeResembleRuleOidName
@@ -492,13 +556,7 @@
         <if test="tenantId != null and tenantId != ''">
           and  codeclassify0.tenant_id = #{tenantId}
          </if>
            connect by prior PARENTCODECLASSIFYOID = codeclassify0.oid
    </select>
    <select id="selectStartWithCurrentOid" resultMap="plCodeClassifyResultMap">
        select * from <include refid="tableName"/>
                          start with oid = #{oid}
        connect by prior oid = parentcodeclassifyoid;
            connect by prior codeclassify0.PARENTCODECLASSIFYOID = codeclassify0.oid
    </select>
    <update id="batchUpdateLcStatus" parameterType="java.util.List">
@@ -513,4 +571,35 @@
        </foreach>
        ;END;
    </update>
    <select id="selectAllParents" resultMap="plCodeClassifyResultMap">
        select * from PL_CODE_CLASSIFY p
            start with p.OID =#{oid}
        connect by p.oid = prior p.PARENTCODECLASSIFYOID
    </select>
    <select id="selectLeafByParentClassifyOid" resultType="com.vci.ubcs.code.entity.CodeClassify">
        select *
            from (
                select
                    oid,
                    name,
                    id,
                    level lvl,
                    isparticipatecheck,
                    nvl((select 'N'
                        from PL_CODE_CLASSIFY pcc1
                        where pcc.oid = pcc1.PARENTCODECLASSIFYOID
                            and rownum &lt; 2),'Y') is_leaf
                from PL_CODE_CLASSIFY pcc
                start with pcc.PARENTCODECLASSIFYOID = #{topOid}
                connect by pcc.PARENTCODECLASSIFYOID = prior oid
            ) plcls
        where
        is_leaf = 'Y'
        and isparticipatecheck = 0
        and oid != #{currentOid}
    </select>
</mapper>