73 门诊医生排班管理

This commit is contained in:
HuangXinQuan
2026-02-03 17:36:29 +08:00
parent 4c14d802c4
commit a434dfdfff
25 changed files with 1635 additions and 353 deletions

View File

@@ -43,6 +43,22 @@ public interface IDiagTreatMAppService {
R<?> getDiseaseTreatmentPage(DiagnosisTreatmentSelParam DiagnosisTreatmentSelParam, String searchKey,
Integer pageNo, Integer pageSize, HttpServletRequest request);
/**
* 获取挂号项目列表医保类型为13
*
* @param orgId 科室ID
* @return 挂号项目列表
*/
R<?> getRegistrationItems(Long orgId);
/**
* 获取诊查项目列表医保类型为02
*
* @param orgId 科室ID
* @return 诊查项目列表
*/
R<?> getClinicItems(Long orgId);
/**
* 根据id查询诊疗详情
*

View File

@@ -186,10 +186,24 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
public R<?> getDiseaseTreatmentPage(DiagnosisTreatmentSelParam DiagnosisTreatmentSelParam, String searchKey,
Integer pageNo, Integer pageSize, HttpServletRequest request) {
// 临时保存ybType值并从参数对象中移除避免HisQueryUtils构建yb_type条件
String ybTypeValue = null;
if (DiagnosisTreatmentSelParam != null && StringUtils.isNotEmpty(DiagnosisTreatmentSelParam.getYbType())) {
ybTypeValue = DiagnosisTreatmentSelParam.getYbType();
DiagnosisTreatmentSelParam.setYbType(null); // 临时移除防止HisQueryUtils处理
}
// 构建查询条件
QueryWrapper<DiagnosisTreatmentDto> queryWrapper = HisQueryUtils.buildQueryWrapper(DiagnosisTreatmentSelParam,
searchKey, new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request);
// 如果需要按医保类型过滤如挂号费类型13添加带表别名的条件
if (ybTypeValue != null) {
queryWrapper.eq("T2.yb_type", ybTypeValue);
// 恢复参数对象中的值
DiagnosisTreatmentSelParam.setYbType(ybTypeValue);
}
// 分页查询
IPage<DiagnosisTreatmentDto> diseaseTreatmentPage
= activityDefinitionManageMapper.getDiseaseTreatmentPage(new Page<DiagnosisTreatmentDto>(pageNo, pageSize), queryWrapper);
@@ -211,6 +225,86 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
return R.ok(diseaseTreatmentPage);
}
/**
* 获取挂号项目列表医保类型为13
*
* @param orgId 科室ID
* @return 挂号项目列表
*/
@Override
public R<?> getRegistrationItems(Long orgId) {
// 构建查询条件只查询医保类型为13挂号费的项目
QueryWrapper<DiagnosisTreatmentDto> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("T2.yb_type", "13"); // 使用T2表的yb_type字段避免歧义
queryWrapper.eq("T1.delete_flag", "0"); // 只查询未删除的记录
queryWrapper.eq("T2.instance_table", "wor_activity_definition"); // 确保关联正确
// 如果提供了科室ID则过滤该科室的项目
if (orgId != null) {
queryWrapper.eq("T1.org_id", orgId); // 使用机构ID进行过滤
}
// 分页查询,设置一个较大的页大小以获取所有挂号项目
IPage<DiagnosisTreatmentDto> diseaseTreatmentPage
= activityDefinitionManageMapper.getDiseaseTreatmentPage(new Page<DiagnosisTreatmentDto>(1, 100), queryWrapper);
diseaseTreatmentPage.getRecords().forEach(e -> {
// 医保标记枚举类回显赋值
e.setYbFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbFlag()));
// 医保对码标记枚举类回显赋值
e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag()));
// 类型枚举类回显赋值
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(ActivityType.class, e.getTypeEnum()));
// 状态枚举类回显赋值
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, e.getStatusEnum()));
// 划价标记
e.setPricingFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getPricingFlag()));
});
// 返回挂号项目列表
return R.ok(diseaseTreatmentPage);
}
/**
* 获取诊查项目列表医保类型为02
*
* @param orgId 科室ID
* @return 诊查项目列表
*/
@Override
public R<?> getClinicItems(Long orgId) {
// 构建查询条件只查询医保类型为02诊查费的项目
QueryWrapper<DiagnosisTreatmentDto> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("T2.yb_type", "02"); // 使用T2表的yb_type字段避免歧义
queryWrapper.eq("T1.delete_flag", "0"); // 只查询未删除的记录
queryWrapper.eq("T2.instance_table", "wor_activity_definition"); // 确保关联正确
// 如果提供了科室ID则过滤该科室的项目
if (orgId != null) {
queryWrapper.eq("T1.org_id", orgId); // 使用机构ID进行过滤
}
// 分页查询,设置一个较大的页大小以获取所有诊查项目
IPage<DiagnosisTreatmentDto> diseaseTreatmentPage
= activityDefinitionManageMapper.getDiseaseTreatmentPage(new Page<DiagnosisTreatmentDto>(1, 100), queryWrapper);
diseaseTreatmentPage.getRecords().forEach(e -> {
// 医保标记枚举类回显赋值
e.setYbFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbFlag()));
// 医保对码标记枚举类回显赋值
e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag()));
// 类型枚举类回显赋值
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(ActivityType.class, e.getTypeEnum()));
// 状态枚举类回显赋值
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, e.getStatusEnum()));
// 划价标记
e.setPricingFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getPricingFlag()));
});
// 返回诊查项目列表
return R.ok(diseaseTreatmentPage);
}
/**
* 根据id查询诊疗详情
*

View File

@@ -154,4 +154,26 @@ public class DiagnosisTreatmentController {
public R<?> validateActivityEdit(Long activityId) {
return diagTreatMAppService.validateActivityEdit(activityId);
}
/**
* 获取挂号项目列表医保类型为13
*
* @param orgId 科室ID
* @return 挂号项目列表
*/
@GetMapping("/registration-items")
public R<?> getRegistrationItems(@RequestParam(required = false) Long orgId) {
return diagTreatMAppService.getRegistrationItems(orgId);
}
/**
* 获取诊查项目列表医保类型为02
*
* @param orgId 科室ID
* @return 诊查项目列表
*/
@GetMapping("/clinic-items")
public R<?> getClinicItems(@RequestParam(required = false) Long orgId) {
return diagTreatMAppService.getClinicItems(orgId);
}
}

View File

@@ -19,6 +19,9 @@ public class DiagnosisTreatmentSelParam {
/** 类型 */
private Integer typeEnum;
/** 医保类型 */
private String ybType;
/** 医保对码标记 */
private Integer ybMatchFlag;