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

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

View File

@@ -32,6 +32,9 @@ public class SysNotice extends BaseEntity {
/** 公告状态0正常 1关闭 */
private String status;
/** 发布状态0未发布 1已发布 */
private String publishStatus;
public Long getNoticeId() {
return noticeId;
}
@@ -75,6 +78,14 @@ public class SysNotice extends BaseEntity {
this.status = status;
}
public String getPublishStatus() {
return publishStatus;
}
public void setPublishStatus(String publishStatus) {
this.publishStatus = publishStatus;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("noticeId", getNoticeId())

View File

@@ -0,0 +1,61 @@
package com.core.system.domain;
import com.core.common.core.domain.BaseEntity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
/**
* 公告/通知已读记录 sys_notice_read
*
* @author system
*/
public class SysNoticeRead extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 阅读ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long readId;
/** 公告/通知ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long noticeId;
/** 用户ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long userId;
/** 阅读时间 */
private String readTime;
public Long getReadId() {
return readId;
}
public void setReadId(Long readId) {
this.readId = readId;
}
public Long getNoticeId() {
return noticeId;
}
public void setNoticeId(Long noticeId) {
this.noticeId = noticeId;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getReadTime() {
return readTime;
}
public void setReadTime(String readTime) {
this.readTime = readTime;
}
}

View File

@@ -10,6 +10,7 @@
<result property="noticeType" column="notice_type"/>
<result property="noticeContent" column="notice_content"/>
<result property="status" column="status"/>
<result property="publishStatus" column="publish_status"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
@@ -21,8 +22,9 @@
select notice_id,
notice_title,
notice_type,
cast(notice_content as char) as notice_content,
convert_from(notice_content, 'UTF8') as notice_content,
status,
publish_status,
create_by,
create_time,
update_by,
@@ -48,11 +50,19 @@
<if test="createBy != null and createBy != ''">
AND create_by like concat('%', #{createBy}, '%')
</if>
<if test="status != null and status != ''">
AND status = #{status}
</if>
<if test="publishStatus != null and publishStatus != ''">
AND publish_status = #{publishStatus}
</if>
</where>
order by create_time desc
</select>
<insert id="insertNotice" parameterType="SysNotice">
insert into sys_notice (
notice_id,
<if test="noticeTitle != null and noticeTitle != '' ">notice_title,</if>
<if test="noticeType != null and noticeType != '' ">notice_type,</if>
<if test="noticeContent != null and noticeContent != '' ">notice_content,</if>
@@ -61,9 +71,10 @@
<if test="createBy != null and createBy != ''">create_by,</if>
create_time
)values(
(SELECT COALESCE(MAX(notice_id), 0) + 1 FROM sys_notice),
<if test="noticeTitle != null and noticeTitle != ''">#{noticeTitle},</if>
<if test="noticeType != null and noticeType != ''">#{noticeType},</if>
<if test="noticeContent != null and noticeContent != ''">#{noticeContent},</if>
<if test="noticeContent != null and noticeContent != ''">cast(#{noticeContent} as bytea),</if>
<if test="status != null and status != ''">#{status},</if>
<if test="remark != null and remark != ''">#{remark},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
@@ -76,8 +87,9 @@
<set>
<if test="noticeTitle != null and noticeTitle != ''">notice_title = #{noticeTitle},</if>
<if test="noticeType != null and noticeType != ''">notice_type = #{noticeType},</if>
<if test="noticeContent != null">notice_content = #{noticeContent},</if>
<if test="noticeContent != null">notice_content = cast(#{noticeContent} as bytea),</if>
<if test="status != null and status != ''">status = #{status},</if>
<if test="publishStatus != null and publishStatus != ''">publish_status = #{publishStatus},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
update_time = now()
</set>