From 5b1489deefbbe839ab14646b1dab4a1286b9a41e Mon Sep 17 00:00:00 2001 From: yuxc <653031404@qq.com> Date: 星期二, 20 六月 2023 17:35:07 +0800 Subject: [PATCH] 1、将xml中的/符号改为#以防止后续问题。 2、对查询返回值缺少的问题进行了处理。 --- Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml | 212 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 205 insertions(+), 7 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml index b77a539..027e480 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml @@ -47,14 +47,14 @@ <select id="selectAllLevelChildOid" resultType="java.util.HashMap"> select oid, level from PL_CODE_CLASSIFY - START WITH parentCodeClassifyOid = #{oid}CONNECT BY + START WITH parentCodeClassifyOid = #{oid} CONNECT BY PRIOR OID = parentCodeClassifyOid </select> <select id="checkHasChild" resultType="java.lang.Boolean"> - select count(oid) + <![CDATA[select count(oid) from PL_CODE_CLASSIFY - where parentCodeClassifyOid = #{oid} + where parentCodeClassifyOid = #{oid}]]> </select> <select id="selectCodeClassifyVOByTree" resultMap="plCodeClassifyResultMap"> @@ -122,7 +122,14 @@ codekeyattrrepeatoid.name as codeKeyAttrRepeatOidName, coderesembleruleoid.name as codeResembleRuleOidName, level as datalevel, - SYS_CONNECT_BY_PATH(codeclassify0.id, '#') as path + <choose> + <when test='fieldInPath=="name"'> + SYS_CONNECT_BY_PATH(codeclassify0.name, '#') as path + </when> + <otherwise> + SYS_CONNECT_BY_PATH(codeclassify0.id, '#') as path + </otherwise> + </choose> from pl_code_classify codeclassify0 left join pl_code_rule coderuleoid on codeclassify0.codeRuleOid = coderuleoid.oid @@ -134,23 +141,214 @@ <if test="oid != null "> codeclassify0.parentCodeClassifyOid = '${oid}' </if> - <if test="oid = null "> + <if test="oid == null "> codeclassify0.parentCodeClassifyOid is null </if> CONNECT BY PRIOR codeclassify0.OID = codeclassify0.parentCodeClassifyOid </select> + <select id="selectByIdRel" resultMap="plCodeClassifyResultMap"> + select pc.*, + pk.name codeKeyAttrRepeatOidName, + pr.name codeResembleRuleOidName, + pu.name coderuleoidName + from pl_code_classify pc + left join pl_code_keyattrrepeat pk + on pc.codekeyattrrepeatoid = pk.oid + left join pl_code_resemblerule pr + on pc.coderesembleruleoid = pr.oid + left join pl_code_rule pu + on pc.coderuleoid = pu.oid + where pc.oid = #{oid} + </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 oid, + level from pl_code_classify start with oid= #{oid} connect by prior PARENTCODECLASSIFYOID = oid + </select> + + + <select id="getIdPathToNamePathByParentId" 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.namePath as namepath, + codeclassify0.idPath as idpath + from (select plcodeclassify.*, + SYS_CONNECT_BY_PATH(name, '#') as namePath, + SYS_CONNECT_BY_PATH(id, '#') as idPath + from pl_code_classify plcodeclassify + START WITH parentCodeClassifyOid is null + CONNECT BY PRIOR OID = parentCodeClassifyOid) codeclassify0 + where codeclassify0.paths =#{fieldPath} + </select> + + + <select id="selectByFieldNamePath" 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.paths as paths + from (select plcodeclassify.*, + <choose> + <when test='fieldName=="name"'> + SYS_CONNECT_BY_PATH(name, '#') as paths + </when> + <otherwise> + 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 + where codeclassify0.paths =#{fieldPath} </select> <select id="selectByFieldPath" resultType="java.util.HashMap"> select * - from (select oid, SYS_CONNECT_BY_PATH(id, '/') as paths + from (select oid, SYS_CONNECT_BY_PATH(id, '#') as paths from pl_code_classify START WITH parentCodeClassifyOid is null CONNECT BY PRIOR OID = parentCodeClassifyOid) a where a.paths = #{fieldPath} </select> + <select id="selectAllLevelParents" resultType="java.util.HashMap"> + select oid, id, name, btmtypeid, btmtypename + from PL_CODE_CLASSIFY + where btmtypeid is not null + start with oid = #{oid} + connect by prior PARENTCODECLASSIFYOID = oid + </select> + + <select id="selectCodeClassifyDOByTree" 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, + 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 + where codeclassify0.lcstatus = #{lcstatus} + <if test="parentcodeclassifyoid != null and parentcodeclassifyoid != ''"> + and codeclassify0.parentcodeclassifyoid = #{parentcodeclassifyoid} + </if> + <if test="parentcodeclassifyoid == null or parentcodeclassifyoid == ''"> + and codeclassify0.parentcodeclassifyoid is null + and codeclassify0.id = #{id} + </if> + order by id asc + </select> + + <select id="selectCodeClassifyDOByTree" 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, + 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 + where codeclassify0.lcstatus = #{lcstatus} + <if test="parentcodeclassifyoid != null and parentcodeclassifyoid != ''"> + and codeclassify0.parentcodeclassifyoid = #{parentcodeclassifyoid} + </if> + <if test="parentcodeclassifyoid == null or parentcodeclassifyoid == ''"> + and codeclassify0.parentcodeclassifyoid is null + and codeclassify0.id = #{id} + </if> + order by id asc + </select> + + <select id="selectClassifyByKeyAndReseRel" resultMap="plCodeClassifyResultMap"> + SELECT PCC.*, + PCK.NAME AS CODEKEYATTRREPEATOIDNAME, + PCR.NAME AS CODERESEMBLERULEOIDNAME, + PCE.NAME CODERULEOIDNAME + FROM PL_CODE_CLASSIFY PCC + LEFT JOIN PL_CODE_KEYATTRREPEAT PCK + ON PCC.CODEKEYATTRREPEATOID = PCK.OID + LEFT JOIN PL_CODE_RESEMBLERULE PCR + ON PCC.CODERESEMBLERULEOID = PCR.OID + LEFT JOIN PL_CODE_RULE PCE + ON PCC.CODERULEOID = PCE.OID + WHERE PCC.OID IN (${oids}) + </select> + </mapper> -- Gitblit v1.9.3