221,222,223,224,227,228,229,230,231
This commit is contained in:
@@ -118,6 +118,7 @@ public class DoctorScheduleAppServiceImpl implements IDoctorScheduleAppService {
|
||||
newSchedule.setIsStopped(doctorSchedule.getIsStopped() != null ? doctorSchedule.getIsStopped() : false);
|
||||
newSchedule.setStopReason(doctorSchedule.getStopReason() != null ? doctorSchedule.getStopReason() : "");
|
||||
newSchedule.setDeptId(doctorSchedule.getDeptId());
|
||||
newSchedule.setRegType(doctorSchedule.getRegType() != null ? doctorSchedule.getRegType() : 0);
|
||||
newSchedule.setDoctorId(doctorSchedule.getDoctorId());
|
||||
|
||||
// 不设置id字段,让数据库自动生成
|
||||
@@ -183,6 +184,7 @@ public class DoctorScheduleAppServiceImpl implements IDoctorScheduleAppService {
|
||||
newSchedule.setIsStopped(doctorSchedule.getIsStopped() != null ? doctorSchedule.getIsStopped() : false);
|
||||
newSchedule.setStopReason(doctorSchedule.getStopReason() != null ? doctorSchedule.getStopReason() : "");
|
||||
newSchedule.setDeptId(doctorSchedule.getDeptId());
|
||||
newSchedule.setRegType(doctorSchedule.getRegType() != null ? doctorSchedule.getRegType() : 0);
|
||||
newSchedule.setDoctorId(doctorSchedule.getDoctorId());
|
||||
|
||||
// 不设置id字段,让数据库自动生成
|
||||
@@ -213,14 +215,48 @@ public class DoctorScheduleAppServiceImpl implements IDoctorScheduleAppService {
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public R<?> updateDoctorSchedule(DoctorSchedule doctorSchedule) {
|
||||
if (ObjectUtil.isEmpty(doctorSchedule) || ObjectUtil.isEmpty(doctorSchedule.getId())) {
|
||||
return R.fail("医生排班ID不能为空");
|
||||
}
|
||||
// 注意:此为核心更新,暂未处理号源池和号源槽的同步更新
|
||||
|
||||
int result = doctorScheduleMapper.updateDoctorSchedule(doctorSchedule);
|
||||
return result > 0 ? R.ok(result) : R.fail("更新排班信息失败");
|
||||
if (result <= 0) {
|
||||
return R.fail("更新排班信息失败");
|
||||
}
|
||||
|
||||
// 同步更新号源池,避免查询联表时医生/诊室等字段看起来“未更新”
|
||||
boolean needSyncPool = doctorSchedule.getDoctorId() != null
|
||||
|| doctorSchedule.getDoctor() != null
|
||||
|| doctorSchedule.getClinic() != null
|
||||
|| doctorSchedule.getStartTime() != null
|
||||
|| doctorSchedule.getEndTime() != null
|
||||
|| doctorSchedule.getLimitNumber() != null
|
||||
|| doctorSchedule.getStopReason() != null
|
||||
|| doctorSchedule.getRegType() != null
|
||||
|| doctorSchedule.getRegisterFee() != null;
|
||||
|
||||
if (needSyncPool) {
|
||||
schedulePoolService.lambdaUpdate()
|
||||
.eq(SchedulePool::getScheduleId, doctorSchedule.getId())
|
||||
.set(doctorSchedule.getDoctorId() != null, SchedulePool::getDoctorId, doctorSchedule.getDoctorId())
|
||||
.set(doctorSchedule.getDoctor() != null, SchedulePool::getDoctorName, doctorSchedule.getDoctor())
|
||||
.set(doctorSchedule.getClinic() != null, SchedulePool::getClinicRoom, doctorSchedule.getClinic())
|
||||
.set(doctorSchedule.getStartTime() != null, SchedulePool::getStartTime, doctorSchedule.getStartTime())
|
||||
.set(doctorSchedule.getEndTime() != null, SchedulePool::getEndTime, doctorSchedule.getEndTime())
|
||||
.set(doctorSchedule.getLimitNumber() != null, SchedulePool::getTotalQuota,
|
||||
doctorSchedule.getLimitNumber())
|
||||
.set(doctorSchedule.getStopReason() != null, SchedulePool::getStopReason, doctorSchedule.getStopReason())
|
||||
.set(doctorSchedule.getRegType() != null, SchedulePool::getRegType, String.valueOf(doctorSchedule.getRegType()))
|
||||
.set(doctorSchedule.getRegisterFee() != null, SchedulePool::getFee, doctorSchedule.getRegisterFee() / 100.0)
|
||||
.set(doctorSchedule.getRegisterFee() != null, SchedulePool::getInsurancePrice,
|
||||
doctorSchedule.getRegisterFee() / 100.0)
|
||||
.update();
|
||||
}
|
||||
|
||||
return R.ok(result);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -53,7 +53,6 @@ public class DoctorScheduleController {
|
||||
|
||||
/*
|
||||
* 新增医生排班(带具体日期)
|
||||
*
|
||||
* */
|
||||
@PostMapping("/add-with-date")
|
||||
public R<?> addDoctorScheduleWithDate(@RequestBody DoctorSchedule doctorSchedule) {
|
||||
@@ -77,7 +76,7 @@ public class DoctorScheduleController {
|
||||
* */
|
||||
@DeleteMapping("/delete/{doctorScheduleId}")
|
||||
public R<?> removeDoctorSchedule(@PathVariable Integer doctorScheduleId){
|
||||
return R.ok(doctorScheduleAppService.removeDoctorSchedule(doctorScheduleId));
|
||||
return doctorScheduleAppService.removeDoctorSchedule(doctorScheduleId);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
package com.openhis.web.basedatamanage.appservice.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.utils.AssignSeqUtil;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.core.common.utils.StringUtils;
|
||||
import com.openhis.administration.domain.Organization;
|
||||
import com.openhis.administration.mapper.OrganizationMapper;
|
||||
import com.openhis.administration.service.IOrganizationService;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
@@ -35,12 +37,15 @@ public class OrganizationAppServiceImpl implements IOrganizationAppService {
|
||||
@Resource
|
||||
private AssignSeqUtil assignSeqUtil;
|
||||
|
||||
@Resource
|
||||
private OrganizationMapper organizationMapper;
|
||||
|
||||
@Override
|
||||
public Page<OrganizationDto> getOrganizationTree(Integer pageNo, Integer pageSize, String name, Integer typeEnum,
|
||||
List<String> classEnumList,
|
||||
String sortField, String sortOrder, HttpServletRequest request) {
|
||||
|
||||
// 使用Page对象进行分页查询
|
||||
// 使用 Page 对象进行分页查询
|
||||
Page<Organization> page = new Page<>(pageNo, pageSize);
|
||||
|
||||
// 创建查询条件
|
||||
@@ -54,7 +59,7 @@ public class OrganizationAppServiceImpl implements IOrganizationAppService {
|
||||
queryWrapper.eq(Organization::getTypeEnum, typeEnum);
|
||||
}
|
||||
if (classEnumList != null && !classEnumList.isEmpty()) {
|
||||
// 使用OR条件来匹配class_enum字段中包含任一值的记录
|
||||
// 使用 OR 条件来匹配 class_enum 字段中包含任一值的记录
|
||||
queryWrapper.and(wrapper -> {
|
||||
for (int i = 0; i < classEnumList.size(); i++) {
|
||||
String classEnum = classEnumList.get(i);
|
||||
@@ -63,18 +68,18 @@ public class OrganizationAppServiceImpl implements IOrganizationAppService {
|
||||
wrapper.and(subWrapper -> {
|
||||
subWrapper.eq(Organization::getClassEnum, classEnum) // 精确匹配
|
||||
.or() // 或者
|
||||
.likeRight(Organization::getClassEnum, classEnum + ",") // 以"值,"开头
|
||||
.likeRight(Organization::getClassEnum, classEnum + ",") // 以"值,"开头
|
||||
.or() // 或者
|
||||
.likeLeft(Organization::getClassEnum, "," + classEnum) // 以",值"结尾
|
||||
.or() // 或者
|
||||
.like(Organization::getClassEnum, "," + classEnum + ","); // 在中间,被逗号包围
|
||||
});
|
||||
} else {
|
||||
// 后续条件使用OR连接
|
||||
// 后续条件使用 OR 连接
|
||||
wrapper.or(subWrapper -> {
|
||||
subWrapper.eq(Organization::getClassEnum, classEnum) // 精确匹配
|
||||
.or() // 或者
|
||||
.likeRight(Organization::getClassEnum, classEnum + ",") // 以"值,"开头
|
||||
.likeRight(Organization::getClassEnum, classEnum + ",") // 以"值,"开头
|
||||
.or() // 或者
|
||||
.likeLeft(Organization::getClassEnum, "," + classEnum) // 以",值"结尾
|
||||
.or() // 或者
|
||||
@@ -88,7 +93,7 @@ public class OrganizationAppServiceImpl implements IOrganizationAppService {
|
||||
// 执行分页查询
|
||||
Page<Organization> resultPage = organizationService.page(page, queryWrapper);
|
||||
|
||||
// 将查询结果转为DTO并构建树结构
|
||||
// 将查询结果转为 DTO 并构建树结构
|
||||
List<Organization> organizationList = resultPage.getRecords();
|
||||
List<OrganizationDto> orgTree = buildTree(organizationList);
|
||||
|
||||
@@ -109,7 +114,7 @@ public class OrganizationAppServiceImpl implements IOrganizationAppService {
|
||||
* @return tree
|
||||
*/
|
||||
private List<OrganizationDto> buildTree(List<Organization> records) {
|
||||
// 按b_no的层级排序,确保父节点先处理
|
||||
// 按 b_no 的层级排序,确保父节点先处理
|
||||
List<Organization> sortedRecords = records.stream()
|
||||
.sorted(Comparator.comparingInt(r -> r.getBusNo().split("\\.").length)).collect(Collectors.toList());
|
||||
|
||||
@@ -131,7 +136,7 @@ public class OrganizationAppServiceImpl implements IOrganizationAppService {
|
||||
// 根节点
|
||||
tree.add(node);
|
||||
} else {
|
||||
// 获取父节点的b_no(去掉最后一部分)
|
||||
// 获取父节点的 b_no(去掉最后一部分)
|
||||
String parentBNo = String.join(".", Arrays.copyOf(parts, parts.length - 1));
|
||||
OrganizationDto parent = nodeMap.get(parentBNo);
|
||||
|
||||
@@ -149,7 +154,7 @@ public class OrganizationAppServiceImpl implements IOrganizationAppService {
|
||||
/**
|
||||
* 机构信息详情
|
||||
*
|
||||
* @param orgId 机构信息id
|
||||
* @param orgId 机构信息 id
|
||||
* @return 机构信息详情
|
||||
*/
|
||||
@Override
|
||||
@@ -159,7 +164,7 @@ public class OrganizationAppServiceImpl implements IOrganizationAppService {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00006, new Object[] { "机构信息" }));
|
||||
}
|
||||
|
||||
// 转换为DTO对象,确保数据格式一致
|
||||
// 转换为 DTO 对象,确保数据格式一致
|
||||
OrganizationDto organizationDto = new OrganizationDto();
|
||||
BeanUtils.copyProperties(organization, organizationDto);
|
||||
organizationDto
|
||||
@@ -181,7 +186,7 @@ public class OrganizationAppServiceImpl implements IOrganizationAppService {
|
||||
@Override
|
||||
public R<?> addOrEditOrganization(OrganizationDto organizationDto) {
|
||||
|
||||
// 新增organization信息
|
||||
// 新增 organization 信息
|
||||
Organization organization = new Organization();
|
||||
BeanUtils.copyProperties(organizationDto, organization);
|
||||
|
||||
@@ -191,9 +196,9 @@ public class OrganizationAppServiceImpl implements IOrganizationAppService {
|
||||
} else {
|
||||
// 活动标识:有效
|
||||
organization.setActiveFlag(AccountStatus.ACTIVE.getValue());
|
||||
// 采番bus_no三位
|
||||
// 采番 bus_no 三位
|
||||
String code = assignSeqUtil.getSeq(AssignSeqEnum.ORGANIZATION_BUS_NO.getPrefix(), 3);
|
||||
// 如果传了上级科室 把当前的code拼到后边
|
||||
// 如果传了上级科室 把当前的 code 拼到后边
|
||||
if (StringUtils.isNotEmpty(organization.getBusNo())) {
|
||||
organization.setBusNo(String.format(CommonConstants.Common.MONTAGE_FORMAT, organization.getBusNo(),
|
||||
CommonConstants.Common.POINT, code));
|
||||
@@ -203,7 +208,7 @@ public class OrganizationAppServiceImpl implements IOrganizationAppService {
|
||||
// 生成待发送的机构信息
|
||||
organizationService.save(organization);
|
||||
}
|
||||
// 返回机构id
|
||||
// 返回机构 id
|
||||
return R.ok(organization.getId(),
|
||||
MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[] { "机构信息更新添加" }));
|
||||
}
|
||||
@@ -211,7 +216,7 @@ public class OrganizationAppServiceImpl implements IOrganizationAppService {
|
||||
/**
|
||||
* 删除机构
|
||||
*
|
||||
* @param orgIds 机构信息id
|
||||
* @param orgIds 机构信息 id
|
||||
* @return 操作结果
|
||||
*/
|
||||
@Override
|
||||
@@ -232,7 +237,7 @@ public class OrganizationAppServiceImpl implements IOrganizationAppService {
|
||||
/**
|
||||
* 机构启用
|
||||
*
|
||||
* @param orgId 机构信息id
|
||||
* @param orgId 机构信息 id
|
||||
* @return 操作结果
|
||||
*/
|
||||
@Override
|
||||
@@ -247,7 +252,7 @@ public class OrganizationAppServiceImpl implements IOrganizationAppService {
|
||||
/**
|
||||
* 机构停用
|
||||
*
|
||||
* @param orgId 机构信息id
|
||||
* @param orgId 机构信息 id
|
||||
* @return 操作结果
|
||||
*/
|
||||
@Override
|
||||
@@ -299,38 +304,27 @@ public class OrganizationAppServiceImpl implements IOrganizationAppService {
|
||||
*/
|
||||
@Override
|
||||
public R<?> getRegisterOrganizations(Integer pageNo, Integer pageSize, String name, String orgName) {
|
||||
// 使用Page对象进行分页查询
|
||||
// 使用 Page 对象进行分页查询
|
||||
Page<Organization> page = new Page<>(pageNo != null ? pageNo : 1, pageSize != null ? pageSize : 10);
|
||||
|
||||
// 创建查询条件,只查询register_flag为1的组织机构
|
||||
LambdaQueryWrapper<Organization> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(Organization::getRegisterFlag, 1); // 只获取挂号科室
|
||||
queryWrapper.eq(Organization::getDeleteFlag, "0"); // 确保未删除
|
||||
// 使用 Mapper 方法关联查询 sys_tenant 表获取租户名称
|
||||
IPage<Organization> resultPage = organizationMapper.selectRegisterOrganizationsWithTenant(
|
||||
page,
|
||||
1, // register_flag = 1
|
||||
"0", // delete_flag = '0'
|
||||
name,
|
||||
orgName
|
||||
);
|
||||
|
||||
// 添加名称过滤条件
|
||||
if (StringUtils.isNotEmpty(name)) {
|
||||
queryWrapper.like(Organization::getName, name);
|
||||
}
|
||||
|
||||
// 如果有机构名称筛选
|
||||
if (StringUtils.isNotEmpty(orgName)) {
|
||||
// 这里假设 orgName 是父机构名称,如果需要更复杂的关联查询可在此扩展
|
||||
// 当前逻辑暂保持与原逻辑一致的过滤方式或根据需求调整
|
||||
}
|
||||
|
||||
// 按编码排序
|
||||
queryWrapper.orderByAsc(Organization::getBusNo);
|
||||
|
||||
// 执行分页查询
|
||||
Page<Organization> resultPage = organizationService.page(page, queryWrapper);
|
||||
|
||||
// 转换为DTO对象并设置字典文本
|
||||
// 转换为 DTO 对象并设置字典文本
|
||||
List<OrganizationDto> organizationDtoList = resultPage.getRecords().stream().map(org -> {
|
||||
OrganizationDto dto = new OrganizationDto();
|
||||
BeanUtils.copyProperties(org, dto);
|
||||
dto.setTypeEnum_dictText(EnumUtils.getInfoByValue(OrganizationType.class, dto.getTypeEnum()));
|
||||
dto.setClassEnum_dictText(formatClassEnumDictText(dto.getClassEnum()));
|
||||
dto.setActiveFlag_dictText(EnumUtils.getInfoByValue(AccountStatus.class, dto.getActiveFlag()));
|
||||
// 设置租户名称
|
||||
dto.setOrgName(org.getTenantName());
|
||||
return dto;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
|
||||
@@ -8,7 +8,6 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -60,18 +59,20 @@ public class OrganizationDto {
|
||||
private Integer displayOrder;
|
||||
|
||||
/** 子集合 */
|
||||
@ToString.Exclude
|
||||
private List<OrganizationDto> children = new ArrayList<>();
|
||||
|
||||
|
||||
/** 挂号科室标记 */
|
||||
private Integer registerFlag;
|
||||
|
||||
|
||||
/** 科室位置 */
|
||||
private String location;
|
||||
|
||||
|
||||
/** 科室简介 */
|
||||
private String intro;
|
||||
|
||||
|
||||
/** 备注 */
|
||||
private String remark;
|
||||
|
||||
/** 租户名称 */
|
||||
private String orgName;
|
||||
}
|
||||
|
||||
@@ -280,24 +280,19 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取诊查项目列表(医保类型为02)
|
||||
* 获取诊查项目列表(医保类型为02,返回全量数据)
|
||||
*
|
||||
* @param orgId 科室ID
|
||||
* @param orgId 科室ID(兼容保留,不参与过滤)
|
||||
* @return 诊查项目列表
|
||||
*/
|
||||
@Override
|
||||
public R<?> getClinicItems(Long orgId) {
|
||||
// 构建查询条件,只查询医保类型为02(诊查费)的项目
|
||||
// 构建查询条件,只查询医保类型为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);
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
is_stopped,
|
||||
stop_reason,
|
||||
dept_id,
|
||||
reg_type,
|
||||
doctor_id
|
||||
<if test="createTime != null">, create_time</if>
|
||||
<if test="updateTime != null">, update_time</if>
|
||||
@@ -43,6 +44,7 @@
|
||||
#{isStopped},
|
||||
#{stopReason},
|
||||
#{deptId},
|
||||
#{regType},
|
||||
#{doctorId}
|
||||
<if test="createTime != null">, #{createTime}</if>
|
||||
<if test="updateTime != null">, #{updateTime}</if>
|
||||
@@ -68,6 +70,7 @@
|
||||
<if test="isStopped != null">is_stopped = #{isStopped},</if>
|
||||
<if test="stopReason != null">stop_reason = #{stopReason},</if>
|
||||
<if test="deptId != null">dept_id = #{deptId},</if>
|
||||
<if test="regType != null">reg_type = #{regType},</if>
|
||||
<if test="doctorId != null">doctor_id = #{doctorId},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime}</if>
|
||||
</set>
|
||||
@@ -97,12 +100,16 @@
|
||||
ds.is_stopped AS is_stopped,
|
||||
ds.stop_reason AS stop_reason,
|
||||
ds.dept_id AS dept_id,
|
||||
ds.reg_type AS reg_type,
|
||||
sp.doctor_id AS doctor_id,
|
||||
sp.schedule_date AS schedule_date
|
||||
FROM adm_doctor_schedule ds
|
||||
LEFT JOIN adm_schedule_pool sp ON sp.schedule_id = ds.id
|
||||
AND sp.delete_flag = '0'
|
||||
LEFT JOIN adm_organization org ON ds.dept_id = org.id
|
||||
AND org.delete_flag = '0'
|
||||
WHERE ds.dept_id = #{deptId}
|
||||
AND ds.delete_flag = '0'
|
||||
AND sp.schedule_date BETWEEN #{startDate}::date AND #{endDate}::date
|
||||
ORDER BY sp.schedule_date, ds.time_period
|
||||
</select>
|
||||
@@ -129,12 +136,16 @@
|
||||
ds.is_stopped AS is_stopped,
|
||||
ds.stop_reason AS stop_reason,
|
||||
ds.dept_id AS dept_id,
|
||||
ds.reg_type AS reg_type,
|
||||
sp.doctor_id AS doctor_id,
|
||||
sp.schedule_date AS schedule_date
|
||||
FROM adm_doctor_schedule ds
|
||||
INNER JOIN adm_schedule_pool sp ON sp.schedule_id = ds.id
|
||||
AND sp.delete_flag = '0'
|
||||
LEFT JOIN adm_organization org ON ds.dept_id = org.id
|
||||
AND org.delete_flag = '0'
|
||||
WHERE sp.schedule_date = #{today}::date
|
||||
AND ds.delete_flag = '0'
|
||||
AND (ds.is_stopped = false OR ds.is_stopped IS NULL)
|
||||
ORDER BY ds.time_period
|
||||
</select>
|
||||
@@ -161,12 +172,16 @@
|
||||
ds.is_stopped AS is_stopped,
|
||||
ds.stop_reason AS stop_reason,
|
||||
ds.dept_id AS dept_id,
|
||||
ds.reg_type AS reg_type,
|
||||
sp.doctor_id AS doctor_id,
|
||||
sp.schedule_date AS schedule_date
|
||||
FROM adm_doctor_schedule ds
|
||||
INNER JOIN adm_schedule_pool sp ON sp.schedule_id = ds.id
|
||||
AND sp.delete_flag = '0'
|
||||
LEFT JOIN adm_organization org ON ds.dept_id = org.id
|
||||
AND org.delete_flag = '0'
|
||||
WHERE sp.schedule_date = #{today}::date
|
||||
AND ds.delete_flag = '0'
|
||||
AND sp.doctor_id = #{doctorId}
|
||||
AND (ds.is_stopped = false OR ds.is_stopped IS NULL)
|
||||
ORDER BY ds.time_period
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.openhis.administration.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.HisBaseEntity;
|
||||
@@ -91,4 +92,8 @@ public class Organization extends HisBaseEntity {
|
||||
|
||||
/** 备注 */
|
||||
private String remark;
|
||||
|
||||
/** 租户名称(从 sys_tenant 表关联查询,非数据库字段) */
|
||||
@TableField(exist = false)
|
||||
private String tenantName;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.openhis.administration.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.openhis.administration.domain.Organization;
|
||||
import com.openhis.administration.dto.OrgDataDto;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@@ -9,7 +11,7 @@ import org.springframework.stereotype.Repository;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 机构管理Mapper接口
|
||||
* 机构管理 Mapper 接口
|
||||
*
|
||||
* @author system
|
||||
* @date 2025-02-20
|
||||
@@ -25,5 +27,21 @@ public interface OrganizationMapper extends BaseMapper<Organization> {
|
||||
**/
|
||||
List<OrgDataDto> searchOrgDataByHealth();
|
||||
|
||||
|
||||
}
|
||||
/**
|
||||
* 分页查询挂号科室列表,关联租户表获取租户名称
|
||||
* @param page 分页对象
|
||||
* @param registerFlag 挂号标记
|
||||
* @param deleteFlag 删除标记
|
||||
* @param name 机构名称
|
||||
* @param orgName 机构名称筛选
|
||||
* @return 分页结果
|
||||
*/
|
||||
@InterceptorIgnore(tenantLine = "true")
|
||||
IPage<Organization> selectRegisterOrganizationsWithTenant(
|
||||
IPage<Organization> page,
|
||||
@Param("registerFlag") Integer registerFlag,
|
||||
@Param("deleteFlag") String deleteFlag,
|
||||
@Param("name") String name,
|
||||
@Param("orgName") String orgName
|
||||
);
|
||||
}
|
||||
|
||||
@@ -72,6 +72,9 @@ public class DoctorSchedule extends HisBaseEntity {
|
||||
/** 关联科室id */
|
||||
private Long deptId;
|
||||
|
||||
/** 号别:0=普通,1=专家 */
|
||||
private Integer regType;
|
||||
|
||||
/** 医生ID - 不映射到数据库表字段,仅作传输使用 */
|
||||
private Long doctorId;
|
||||
|
||||
|
||||
@@ -61,6 +61,9 @@ public class DoctorScheduleWithDateDto {
|
||||
/** 关联科室ID */
|
||||
private Long deptId;
|
||||
|
||||
/** 号别:0=普通,1=专家 */
|
||||
private Integer regType;
|
||||
|
||||
/** 医生姓名 */
|
||||
private String doctorName;
|
||||
|
||||
|
||||
@@ -14,5 +14,54 @@
|
||||
GROUP BY heal.offered_org_id)
|
||||
</select>
|
||||
|
||||
<!-- 分页查询挂号科室列表,关联租户表获取租户名称 -->
|
||||
<select id="selectRegisterOrganizationsWithTenant" resultType="com.openhis.administration.domain.Organization">
|
||||
SELECT
|
||||
org.id,
|
||||
org.bus_no,
|
||||
org.name,
|
||||
org.active_flag,
|
||||
org.type_enum,
|
||||
org.class_enum,
|
||||
org.py_str,
|
||||
org.wb_str,
|
||||
org.yb_no,
|
||||
org.yb_name,
|
||||
org.caty,
|
||||
org.display_order,
|
||||
org.medins_id,
|
||||
org.medins_admdvs,
|
||||
org.medins_type,
|
||||
org.medins_lv,
|
||||
org.def_doctor_id,
|
||||
org.register_flag,
|
||||
org.location,
|
||||
org.intro,
|
||||
org.remark,
|
||||
org.tenant_id,
|
||||
org.delete_flag,
|
||||
org.create_by,
|
||||
org.create_time,
|
||||
org.update_by,
|
||||
org.update_time,
|
||||
st.tenant_name AS tenantName
|
||||
FROM adm_organization org
|
||||
LEFT JOIN sys_tenant st ON org.tenant_id = st.id
|
||||
<where>
|
||||
<if test="registerFlag != null">
|
||||
AND org.register_flag = #{registerFlag}
|
||||
</if>
|
||||
<if test="deleteFlag != null">
|
||||
AND org.delete_flag = #{deleteFlag}
|
||||
</if>
|
||||
<if test="name != null and name != ''">
|
||||
AND org.name LIKE CONCAT('%', #{name}, '%')
|
||||
</if>
|
||||
<if test="orgName != null and orgName != ''">
|
||||
AND st.tenant_name = #{orgName}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY org.bus_no ASC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user