文件记录-文件分发流程

This commit is contained in:
YBP
2026-03-10 10:45:35 +08:00
parent a5adb55409
commit 4ddfc2ceeb
26 changed files with 729 additions and 231 deletions

View File

@@ -9,4 +9,27 @@
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="checkUserAdminPermission" resultType="boolean">
SELECT COUNT(*) > 0
FROM t_rcd_ctgr rc
INNER JOIN t_rcd_perm rp ON rc.id = rp.src_id
WHERE rc.id = #{categoryId} and rp.perm = '管理员'
AND ( <!-- 检查用户是否有指定分类的管理员权限 -->
( rp.tgt_id = #{userId} AND rp.tgt_tp = '用户')
OR
(rp.tgt_tp = '部门' AND rp.tgt_id IN
<foreach collection="userDepts" item="deptId" open="(" separator="," close=")">
#{deptId}
</foreach>
)
OR
(rp.tgt_tp = '角色' AND rp.tgt_id IN
<foreach collection="userRoles" item="roleId" open="(" separator="," close=")">
#{roleId}
</foreach>
)
)
</select>
</mapper>

View File

@@ -5,35 +5,56 @@
<!-- 主键 -->
</resultMap>
<!--
多表关联分页查询:以 t_rcd_rcd 为主表,保证行数 1:1。
通过标量子查询获取 businessType='文件提交' 的申请信息,
即使同一 recordRecord 有多条 recordApplyDetail也只取一条ROWNUM = 1不产生重复行。
注意使用达梦DM数据库兼容语法不支持 LIMIT改用 AND ROWNUM = 1。
-->
<select id="selectRecordWithApplyPage" resultType="com.zt.plat.module.qms.resource.record.dal.dataobject.recordrecord.RecordRecordDO">
SELECT DISTINCT trr.ID,trr.CTGR_ID,trr.CD,trr.BSN_TP,trr.FORM_KY,trr.NAME,trr.VER,
trr.CRNT_FLG,
trr.MKE_DT,
trr.CNF_FLG,
trr.CNF_LVL,
trr.CNF_WY,
trr.CNF_KY,
trr.PMNT,
trr.SBM_FLG,
trr.RCD_STS,
trr.EXPR_DT,
trr.EFCT_DT,
trr.EXPR_STS,
trr.CNL_FLG,
trr.FORM_DAT,
trr.DAT_COLT_ID,
trr.SRC_URL,
trr.SYS_DEPT_CD,
trr.RMK,
trr.COLT_FLG,
trr.MAIN_ID,
trr.CREATE_TIME,
trr.OPTN_FLG,
trr.TENANT_ID
SELECT trr.ID, trr.CTGR_ID AS categoryId, trr.CD AS code, trr.BSN_TP AS businessType,
trr.FORM_KY AS formKey, trr.NAME, trr.VER AS version,
trr.CRNT_FLG AS currentFlag,
trr.MKE_DT AS makeDate,
trr.CNF_FLG AS confidentialFlag,
trr.CNF_LVL AS confidentialLevel,
trr.CNF_WY AS confidentialWay,
trr.CNF_KY AS confidentialKey,
trr.PMNT AS permanently,
trr.SBM_FLG AS submitFlag,
trr.RCD_STS AS recordStatus,
trr.EXPR_DT AS expirationDate,
trr.EFCT_DT AS effectiveDate,
trr.EXPR_STS AS expirationStatus,
trr.CNL_FLG AS cancelFlag,
trr.FORM_DAT AS formData,
trr.DAT_COLT_ID AS dataCollectionId,
trr.SRC_URL AS sourceUrl,
trr.SYS_DEPT_CD AS systemDepartmentCode,
trr.RMK AS remark,
trr.COLT_FLG AS collectionFlag,
trr.MAIN_ID AS mainId,
trr.OPTN_FLG AS operationFlag,
trr.CREATE_TIME AS createTime,
trr.TENANT_ID,
(SELECT tra.ID
FROM t_rcd_apl_dtl trad
INNER JOIN t_rcd_apl tra ON trad.APL_ID = tra.ID AND tra.BSN_TP = '文件提交'
WHERE trad.DOC_ID = trr.ID
AND ROWNUM = 1) AS applyId,
(SELECT tra.FLW_INSC_ID
FROM t_rcd_apl_dtl trad
INNER JOIN t_rcd_apl tra ON trad.APL_ID = tra.ID AND tra.BSN_TP = '文件提交'
WHERE trad.DOC_ID = trr.ID
AND ROWNUM = 1) AS flowInstanceId,
(SELECT tra.BSN_STS
FROM t_rcd_apl_dtl trad
INNER JOIN t_rcd_apl tra ON trad.APL_ID = tra.ID AND tra.BSN_TP = '文件提交'
WHERE trad.DOC_ID = trr.ID
AND ROWNUM = 1) AS applyBusinessStatus
FROM t_rcd_rcd trr
INNER JOIN t_rcd_apl_dtl trad ON trr.ID = trad.DOC_ID
INNER JOIN t_rcd_apl tra ON trad.APL_ID = tra.ID
<where>
trr.deleted = 0
<if test="reqVO.categoryId != null">
AND trr.CTGR_ID = #{reqVO.categoryId}
</if>