feat(invoice): 完善发票管理权限控制和检验申请功能

- 超级管理员可以编辑操作员字段,普通用户不可编辑
- 修改权限判断逻辑,只有用户名等于 'admin' 的用户才是超级管理员
- 非超级管理员用户只能查询自己的发票数据
- 添加根据员工ID更新操作员名称功能
- 新增行时根据用户权限填充信息
- 严格检查权限,超级管理员可以删除所有记录,普通用户只能删除自己维护的记录
- 在 bargain 组件中验证患者选择
- 添加检验申请单相关API接口
- 在医生工作站中添加检验申请tab页
- 实现检验申请单的增删改查功能
- 添加公告通知已读记录相关功能
- 实现用户未读公告数量统计和标记已读功能
This commit is contained in:
2025-12-30 13:52:06 +08:00
parent 58449fc2f9
commit 49b8a975a8
18 changed files with 2983 additions and 27 deletions

View File

@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.core.system.mapper.SysNoticeReadMapper">
<resultMap type="SysNoticeRead" id="SysNoticeReadResult">
<result property="readId" column="read_id"/>
<result property="noticeId" column="notice_id"/>
<result property="userId" column="user_id"/>
<result property="readTime" column="read_time"/>
</resultMap>
<select id="selectNoticeReadById" parameterType="Long" resultMap="SysNoticeReadResult">
select read_id, notice_id, user_id, read_time
from sys_notice_read
where read_id = #{readId}
</select>
<select id="selectReadNoticeIdsByUserId" parameterType="Long" resultType="Long">
select notice_id
from sys_notice_read
where user_id = #{userId}
</select>
<select id="countReadByNoticeId" parameterType="Long" resultType="int">
select count(1)
from sys_notice_read
where notice_id = #{noticeId}
</select>
<select id="checkNoticeRead" resultType="boolean">
select count(1) > 0
from sys_notice_read
where notice_id = #{noticeId} and user_id = #{userId}
</select>
<insert id="insertNoticeRead" parameterType="SysNoticeRead">
insert into sys_notice_read (
read_id,
notice_id,
user_id,
read_time
) values (
(SELECT COALESCE(MAX(read_id), 0) + 1 FROM sys_notice_read),
#{noticeId},
#{userId},
now()
)
</insert>
<delete id="deleteNoticeReadById" parameterType="Long">
delete from sys_notice_read where read_id = #{readId}
</delete>
<delete id="deleteNoticeReadByIds" parameterType="Long">
delete from sys_notice_read where read_id in
<foreach item="readId" collection="array" open="(" separator="," close=")">
#{readId}
</foreach>
</delete>
</mapper>