feat(home): 添加医生专属患者统计和菜单跳转功能
- 在HomeStatisticsDto中新增我的患者数量和待写病历数量字段 - 实现医生患者查询功能,支持按租户隔离数据 - 更新首页统计服务,为医生用户提供专属患者统计数据 - 添加菜单名称点击跳转功能,支持路由导航和外部链接打开 - 修复首页统计数据显示,确保医生看到正确的患者数量 - 添加医保日结结算相关实体、服务和前端页面 - 配置前端路由控制器,支持Vue Router History模式
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
package com.openhis.yb.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.core.common.core.domain.BaseEntity;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 日结医保结算实体类
|
||||
*
|
||||
* @author
|
||||
* @date 2026-02-02
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("yb_day_end_settlement")
|
||||
public class DayEndMedicalInsuranceSettlement extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 结算单号
|
||||
*/
|
||||
@TableField("settlement_no")
|
||||
private String settlementNo;
|
||||
|
||||
/**
|
||||
* 结算日期
|
||||
*/
|
||||
@TableField("settlement_date")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date settlementDate;
|
||||
|
||||
/**
|
||||
* 结算类型 (daily, weekly, monthly)
|
||||
*/
|
||||
@TableField("settlement_type")
|
||||
private String settlementType;
|
||||
|
||||
/**
|
||||
* 医保类型 (城镇职工, 城乡居民等)
|
||||
*/
|
||||
@TableField("insurance_type")
|
||||
private String insuranceType;
|
||||
|
||||
/**
|
||||
* 总人次
|
||||
*/
|
||||
@TableField("total_visits")
|
||||
private Integer totalVisits;
|
||||
|
||||
/**
|
||||
* 总金额
|
||||
*/
|
||||
@TableField("total_amount")
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
/**
|
||||
* 医保统筹支付金额
|
||||
*/
|
||||
@TableField("insurance_pay_amount")
|
||||
private BigDecimal insurancePayAmount;
|
||||
|
||||
/**
|
||||
* 个人账户支付金额
|
||||
*/
|
||||
@TableField("account_pay_amount")
|
||||
private BigDecimal accountPayAmount;
|
||||
|
||||
/**
|
||||
* 个人自付金额
|
||||
*/
|
||||
@TableField("personal_pay_amount")
|
||||
private BigDecimal personalPayAmount;
|
||||
|
||||
/**
|
||||
* 医保基金支付总额
|
||||
*/
|
||||
@TableField("fund_pay_sum_amount")
|
||||
private BigDecimal fundPaySumAmount;
|
||||
|
||||
/**
|
||||
* 状态 (0正常 1停用)
|
||||
*/
|
||||
@TableField("status")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 操作员
|
||||
*/
|
||||
@TableField("operator")
|
||||
private String operator;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@TableField("remark")
|
||||
private String remark;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.openhis.yb.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.openhis.yb.domain.DayEndMedicalInsuranceSettlement;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* 日结医保结算Mapper接口
|
||||
*
|
||||
* @author
|
||||
* @date 2026-02-02
|
||||
*/
|
||||
@Mapper
|
||||
@Repository
|
||||
public interface DayEndMedicalInsuranceSettlementMapper extends BaseMapper<DayEndMedicalInsuranceSettlement> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.openhis.yb.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.openhis.yb.domain.DayEndMedicalInsuranceSettlement;
|
||||
import com.core.common.core.domain.PageResult;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 日结医保结算Service接口
|
||||
*
|
||||
* @author
|
||||
* @date 2026-02-02
|
||||
*/
|
||||
public interface IDayEndMedicalInsuranceSettlementService extends IService<DayEndMedicalInsuranceSettlement> {
|
||||
|
||||
/**
|
||||
* 查询日结医保结算
|
||||
*
|
||||
* @param id 日结医保结算ID
|
||||
* @return 日结医保结算
|
||||
*/
|
||||
DayEndMedicalInsuranceSettlement selectDayEndMedicalInsuranceSettlementById(Long id);
|
||||
|
||||
/**
|
||||
* 查询日结医保结算列表
|
||||
*
|
||||
* @param dayEndMedicalInsuranceSettlement 日结医保结算
|
||||
* @return 日结医保结算集合
|
||||
*/
|
||||
List<DayEndMedicalInsuranceSettlement> selectDayEndMedicalInsuranceSettlementList(DayEndMedicalInsuranceSettlement dayEndMedicalInsuranceSettlement);
|
||||
|
||||
/**
|
||||
* 新增日结医保结算
|
||||
*
|
||||
* @param dayEndMedicalInsuranceSettlement 日结医保结算
|
||||
* @return 结果
|
||||
*/
|
||||
int insertDayEndMedicalInsuranceSettlement(DayEndMedicalInsuranceSettlement dayEndMedicalInsuranceSettlement);
|
||||
|
||||
/**
|
||||
* 修改日结医保结算
|
||||
*
|
||||
* @param dayEndMedicalInsuranceSettlement 日结医保结算
|
||||
* @return 结果
|
||||
*/
|
||||
int updateDayEndMedicalInsuranceSettlement(DayEndMedicalInsuranceSettlement dayEndMedicalInsuranceSettlement);
|
||||
|
||||
/**
|
||||
* 批量删除日结医保结算
|
||||
*
|
||||
* @param ids 需要删除的日结医保结算ID
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteDayEndMedicalInsuranceSettlementByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 删除日结医保结算信息
|
||||
*
|
||||
* @param id 日结医保结算ID
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteDayEndMedicalInsuranceSettlementById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询日结医保结算列表
|
||||
*
|
||||
* @param dayEndMedicalInsuranceSettlement 日结医保结算
|
||||
* @param pageNum 页码
|
||||
* @param pageSize 页面大小
|
||||
* @return 分页结果
|
||||
*/
|
||||
PageResult<DayEndMedicalInsuranceSettlement> selectDayEndMedicalInsuranceSettlementPage(DayEndMedicalInsuranceSettlement dayEndMedicalInsuranceSettlement, int pageNum, int pageSize);
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
package com.openhis.yb.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.core.common.core.domain.PageResult;
|
||||
import com.openhis.yb.domain.DayEndMedicalInsuranceSettlement;
|
||||
import com.openhis.yb.mapper.DayEndMedicalInsuranceSettlementMapper;
|
||||
import com.openhis.yb.service.IDayEndMedicalInsuranceSettlementService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 日结医保结算Service业务层处理
|
||||
*
|
||||
* @author
|
||||
* @date 2026-02-02
|
||||
*/
|
||||
@Service
|
||||
public class DayEndMedicalInsuranceSettlementServiceImpl extends ServiceImpl<DayEndMedicalInsuranceSettlementMapper, DayEndMedicalInsuranceSettlement> implements IDayEndMedicalInsuranceSettlementService {
|
||||
|
||||
@Autowired
|
||||
private DayEndMedicalInsuranceSettlementMapper dayEndMedicalInsuranceSettlementMapper;
|
||||
|
||||
/**
|
||||
* 查询日结医保结算
|
||||
*
|
||||
* @param id 日结医保结算ID
|
||||
* @return 日结医保结算
|
||||
*/
|
||||
@Override
|
||||
public DayEndMedicalInsuranceSettlement selectDayEndMedicalInsuranceSettlementById(Long id) {
|
||||
return dayEndMedicalInsuranceSettlementMapper.selectById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询日结医保结算列表
|
||||
*
|
||||
* @param dayEndMedicalInsuranceSettlement 日结医保结算
|
||||
* @return 日结医保结算
|
||||
*/
|
||||
@Override
|
||||
public List<DayEndMedicalInsuranceSettlement> selectDayEndMedicalInsuranceSettlementList(DayEndMedicalInsuranceSettlement dayEndMedicalInsuranceSettlement) {
|
||||
LambdaQueryWrapper<DayEndMedicalInsuranceSettlement> lqw = Wrappers.lambdaQuery();
|
||||
lqw.like(dayEndMedicalInsuranceSettlement.getSettlementNo() != null, DayEndMedicalInsuranceSettlement::getSettlementNo, dayEndMedicalInsuranceSettlement.getSettlementNo());
|
||||
lqw.eq(dayEndMedicalInsuranceSettlement.getSettlementDate() != null, DayEndMedicalInsuranceSettlement::getSettlementDate, dayEndMedicalInsuranceSettlement.getSettlementDate());
|
||||
lqw.eq(dayEndMedicalInsuranceSettlement.getSettlementType() != null, DayEndMedicalInsuranceSettlement::getSettlementType, dayEndMedicalInsuranceSettlement.getSettlementType());
|
||||
lqw.eq(dayEndMedicalInsuranceSettlement.getInsuranceType() != null, DayEndMedicalInsuranceSettlement::getInsuranceType, dayEndMedicalInsuranceSettlement.getInsuranceType());
|
||||
lqw.eq(dayEndMedicalInsuranceSettlement.getStatus() != null, DayEndMedicalInsuranceSettlement::getStatus, dayEndMedicalInsuranceSettlement.getStatus());
|
||||
lqw.orderByDesc(DayEndMedicalInsuranceSettlement::getCreateTime);
|
||||
return dayEndMedicalInsuranceSettlementMapper.selectList(lqw);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增日结医保结算
|
||||
*
|
||||
* @param dayEndMedicalInsuranceSettlement 日结医保结算
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertDayEndMedicalInsuranceSettlement(DayEndMedicalInsuranceSettlement dayEndMedicalInsuranceSettlement) {
|
||||
return dayEndMedicalInsuranceSettlementMapper.insert(dayEndMedicalInsuranceSettlement);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改日结医保结算
|
||||
*
|
||||
* @param dayEndMedicalInsuranceSettlement 日结医保结算
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateDayEndMedicalInsuranceSettlement(DayEndMedicalInsuranceSettlement dayEndMedicalInsuranceSettlement) {
|
||||
return dayEndMedicalInsuranceSettlementMapper.updateById(dayEndMedicalInsuranceSettlement);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除日结医保结算
|
||||
*
|
||||
* @param ids 需要删除的日结医保结算ID
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteDayEndMedicalInsuranceSettlementByIds(Long[] ids) {
|
||||
return dayEndMedicalInsuranceSettlementMapper.deleteBatchIds(Arrays.asList(ids));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除日结医保结算信息
|
||||
*
|
||||
* @param id 日结医保结算ID
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteDayEndMedicalInsuranceSettlementById(Long id) {
|
||||
return dayEndMedicalInsuranceSettlementMapper.deleteById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询日结医保结算列表
|
||||
*
|
||||
* @param dayEndMedicalInsuranceSettlement 日结医保结算
|
||||
* @param pageNum 页码
|
||||
* @param pageSize 页面大小
|
||||
* @return 分页结果
|
||||
*/
|
||||
@Override
|
||||
public PageResult<DayEndMedicalInsuranceSettlement> selectDayEndMedicalInsuranceSettlementPage(DayEndMedicalInsuranceSettlement dayEndMedicalInsuranceSettlement, int pageNum, int pageSize) {
|
||||
LambdaQueryWrapper<DayEndMedicalInsuranceSettlement> lqw = Wrappers.lambdaQuery();
|
||||
lqw.like(dayEndMedicalInsuranceSettlement.getSettlementNo() != null, DayEndMedicalInsuranceSettlement::getSettlementNo, dayEndMedicalInsuranceSettlement.getSettlementNo());
|
||||
lqw.eq(dayEndMedicalInsuranceSettlement.getSettlementDate() != null, DayEndMedicalInsuranceSettlement::getSettlementDate, dayEndMedicalInsuranceSettlement.getSettlementDate());
|
||||
lqw.eq(dayEndMedicalInsuranceSettlement.getSettlementType() != null, DayEndMedicalInsuranceSettlement::getSettlementType, dayEndMedicalInsuranceSettlement.getSettlementType());
|
||||
lqw.eq(dayEndMedicalInsuranceSettlement.getInsuranceType() != null, DayEndMedicalInsuranceSettlement::getInsuranceType, dayEndMedicalInsuranceSettlement.getInsuranceType());
|
||||
lqw.eq(dayEndMedicalInsuranceSettlement.getStatus() != null, DayEndMedicalInsuranceSettlement::getStatus, dayEndMedicalInsuranceSettlement.getStatus());
|
||||
lqw.orderByDesc(DayEndMedicalInsuranceSettlement::getCreateTime);
|
||||
|
||||
Page<DayEndMedicalInsuranceSettlement> page = new Page<>(pageNum, pageSize);
|
||||
Page<DayEndMedicalInsuranceSettlement> result = dayEndMedicalInsuranceSettlementMapper.selectPage(page, lqw);
|
||||
|
||||
return PageResult.<DayEndMedicalInsuranceSettlement>builder()
|
||||
.rows(result.getRecords())
|
||||
.total(result.getTotal())
|
||||
.build();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user