From 25da36be2318c1247592dce7d499d0b985c80fe0 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期日, 03 十二月 2023 23:07:03 +0800 Subject: [PATCH] 历史数据导入时,赋默认值报空指针异常bug修复 --- Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml | 166 +++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 130 insertions(+), 36 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 f84bca4..049f925 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 @@ -37,13 +37,20 @@ <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"> pl_code_classify </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 != ''"> + tenant_id = #{tenantId} + </if> </select> <select id="selectAllLevelChildOid" resultType="java.util.HashMap"> @@ -82,26 +89,28 @@ 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 id asc + order by lastmodifytime asc </select> <select id="selectAllLevelChildHasPath" resultMap="plCodeClassifyResultMap"> @@ -124,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, @@ -148,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> @@ -172,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"> @@ -196,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 @@ -205,7 +225,6 @@ START WITH oid = #{parentId} CONNECT BY PRIOR OID = parentCodeClassifyOid) codeclassify0 </select> - <select id="selectByFieldNamePath" resultMap="plCodeClassifyResultMap"> select codeclassify0.OWNER as owner, @@ -227,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"'> @@ -237,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 @@ -262,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, @@ -281,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 @@ -344,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 @@ -359,14 +380,14 @@ <if test="parentOid == null or parentOid == ''"> and codeclassify0.parentcodeclassifyoid is null </if> - <if test="tenantId != null and tenantId != ''"> - codeclassify0.tenant_id = #{tenantId} + and codeclassify0.tenant_id = #{tenantId} </if> order by id asc </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, @@ -386,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 @@ -405,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> @@ -431,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 @@ -445,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> + + <!--鑾峰彇鎵�鏈変笅绾ц妭鐐�,涓嶈鍔ㄨ繖涓柟娉晄ql--> + <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"> @@ -472,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 @@ -487,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"> @@ -508,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 < 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> -- Gitblit v1.9.3