后端最新版本同步
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
package com.openhis.web.personalization.appservice;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.personalization.dto.OrdersGroupPackageDetailQueryDto;
|
||||
import com.openhis.web.personalization.dto.OrdersGroupPackageQueryDto;
|
||||
import com.openhis.web.personalization.dto.OrdersGroupPackageSaveDto;
|
||||
import com.openhis.web.personalization.dto.OrdersGroupPackageUseDto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 组合套餐 service
|
||||
*
|
||||
* @author yangmo
|
||||
* @date 2025-04-10
|
||||
*/
|
||||
public interface IOrdersGroupPackageAppService {
|
||||
|
||||
/**
|
||||
* 保存组合套餐
|
||||
*
|
||||
* @param ordersGroupPackageSaveDto 保存组合套餐dto
|
||||
* @param packageTypeEnum 类型枚举
|
||||
* @return 结果
|
||||
*/
|
||||
R<?> saveGroupPackage(OrdersGroupPackageSaveDto ordersGroupPackageSaveDto, Integer packageTypeEnum);
|
||||
|
||||
/**
|
||||
* 查询组合套餐
|
||||
*
|
||||
* @param packageTypeEnum 类型枚举
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @return 组合套餐
|
||||
*/
|
||||
List<OrdersGroupPackageQueryDto> getGroupPackage(Integer packageTypeEnum, String searchKey);
|
||||
|
||||
/**
|
||||
* 查询组合套餐明细
|
||||
*
|
||||
* @param groupPackageId 组合套餐id
|
||||
* @return 组合套餐明细
|
||||
*/
|
||||
List<OrdersGroupPackageDetailQueryDto> getGroupPackageDetail(Long groupPackageId);
|
||||
|
||||
/**
|
||||
* 删除组合套餐
|
||||
*
|
||||
* @param groupPackageId 组合套餐id
|
||||
* @return 结果
|
||||
*/
|
||||
R<?> delGroupPackage(Long groupPackageId);
|
||||
|
||||
/**
|
||||
* 查询组合套餐,供开立医嘱使用
|
||||
*
|
||||
* @param organizationId 患者挂号对应的科室id
|
||||
* @return 组合套餐
|
||||
*/
|
||||
OrdersGroupPackageUseDto getGroupPackageForOrder(Long organizationId);
|
||||
|
||||
}
|
||||
@@ -120,13 +120,14 @@ public class ActivityDeviceAppServiceImpl implements IActivityDeviceAppService {
|
||||
.set(ActivityDevice::getRangeCode, activityDeviceDto.getRangeCode())
|
||||
.set(ActivityDevice::getStatusEnum, activityDeviceDto.getStatusEnum())
|
||||
.set(ActivityDevice::getDevActTable, activityDeviceDto.getDevActTable())
|
||||
.set(ActivityDevice::getUnitCode, activityDeviceDto.getUnitCode())
|
||||
.eq(ActivityDevice::getId, activityDeviceDto.getId()));
|
||||
return R.ok();
|
||||
} else {
|
||||
activityDevice.setDevActId(activityDeviceDto.getDevActId())
|
||||
.setDevActTable(activityDeviceDto.getDevActTable()).setItemNo(activityDeviceDto.getItemNo())
|
||||
.setQuantity(activityDeviceDto.getQuantity()).setRangeCode(activityDeviceDto.getRangeCode())
|
||||
.setTypeCode(activityDeviceDto.getTypeCode());
|
||||
.setUnitCode(activityDeviceDto.getUnitCode()).setTypeCode(activityDeviceDto.getTypeCode());
|
||||
activityDeviceService.save(activityDevice);
|
||||
}
|
||||
return R.ok(activityDevice.getId().toString());
|
||||
|
||||
@@ -0,0 +1,309 @@
|
||||
package com.openhis.web.personalization.appservice.impl;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.exception.ServiceException;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.core.common.utils.SecurityUtils;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.BindingType;
|
||||
import com.openhis.common.enums.Whether;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.template.domain.OrdersGroupPackage;
|
||||
import com.openhis.template.domain.OrdersGroupPackageDetail;
|
||||
import com.openhis.template.service.IOrdersGroupPackageDetailService;
|
||||
import com.openhis.template.service.IOrdersGroupPackageService;
|
||||
import com.openhis.web.doctorstation.appservice.IDoctorStationAdviceAppService;
|
||||
import com.openhis.web.doctorstation.dto.AdviceBaseDto;
|
||||
import com.openhis.web.personalization.appservice.IOrdersGroupPackageAppService;
|
||||
import com.openhis.web.personalization.dto.*;
|
||||
import com.openhis.web.personalization.mapper.OrdersGroupPackageAppMapper;
|
||||
|
||||
/**
|
||||
* 组合套餐 实现类
|
||||
*
|
||||
* @author yangmo
|
||||
* @date 2025-04-10
|
||||
*/
|
||||
@Service
|
||||
public class OrdersGroupPackageAppServiceImpl implements IOrdersGroupPackageAppService {
|
||||
|
||||
@Resource
|
||||
OrdersGroupPackageAppMapper ordersGroupPackageAppMapper;
|
||||
|
||||
@Resource
|
||||
IOrdersGroupPackageService ordersGroupPackageService;
|
||||
|
||||
@Resource
|
||||
IOrdersGroupPackageDetailService ordersGroupPackageDetailService;
|
||||
|
||||
@Resource
|
||||
IDoctorStationAdviceAppService iDoctorStationAdviceAppService;
|
||||
|
||||
/**
|
||||
* 保存组合套餐
|
||||
*
|
||||
* @param ordersGroupPackageSaveDto 保存组合套餐dto
|
||||
* @param packageTypeEnum 类型枚举
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public R<?> saveGroupPackage(OrdersGroupPackageSaveDto ordersGroupPackageSaveDto, Integer packageTypeEnum) {
|
||||
// 组合套餐id
|
||||
Long groupPackageId = ordersGroupPackageSaveDto.getGroupPackageId();
|
||||
|
||||
if (BindingType.PERSONAL.getValue().equals(packageTypeEnum)
|
||||
&& ordersGroupPackageSaveDto.getPractitionerId() == null) {
|
||||
throw new ServiceException("个人组套需选择人员");
|
||||
} else if (BindingType.ORGANIZATION.getValue().equals(packageTypeEnum)
|
||||
&& ordersGroupPackageSaveDto.getOrganizationId() == null) {
|
||||
throw new ServiceException("科室组套需选择科室");
|
||||
}
|
||||
// 保存主表
|
||||
OrdersGroupPackage ordersGroupPackage = new OrdersGroupPackage();
|
||||
ordersGroupPackage.setId(groupPackageId);
|
||||
ordersGroupPackage.setName(ordersGroupPackageSaveDto.getName());// 名称
|
||||
ordersGroupPackage.setPackageTypeEnum(packageTypeEnum);// 组套包类型
|
||||
ordersGroupPackage.setOrganizationId(ordersGroupPackageSaveDto.getOrganizationId()); // 科室id
|
||||
ordersGroupPackage.setPractitionerId(ordersGroupPackageSaveDto.getPractitionerId()); // 参与者id
|
||||
ordersGroupPackageService.saveOrUpdate(ordersGroupPackage);
|
||||
|
||||
// 编辑场景时,先删除原有的明细再新增
|
||||
if (groupPackageId != null) {
|
||||
ordersGroupPackageDetailService.remove(new LambdaQueryWrapper<OrdersGroupPackageDetail>()
|
||||
.eq(OrdersGroupPackageDetail::getGroupPackageId, groupPackageId));
|
||||
}
|
||||
// 保存明细表
|
||||
List<OrdersGroupPackageDetailSaveDto> detailList = ordersGroupPackageSaveDto.getDetailList();
|
||||
OrdersGroupPackageDetail ordersGroupPackageDetail;
|
||||
for (OrdersGroupPackageDetailSaveDto ordersGroupPackageDetailSaveDto : detailList) {
|
||||
ordersGroupPackageDetail = new OrdersGroupPackageDetail();
|
||||
ordersGroupPackageDetail.setGroupPackageId(ordersGroupPackage.getId()); // 组合套餐id
|
||||
ordersGroupPackageDetail.setOrderDefinitionId(ordersGroupPackageDetailSaveDto.getOrderDefinitionId()); // 医嘱定义id
|
||||
ordersGroupPackageDetail.setOrderDefinitionTable(ordersGroupPackageDetailSaveDto.getOrderDefinitionTable());// 医嘱定义表名
|
||||
ordersGroupPackageDetail.setQuantity(ordersGroupPackageDetailSaveDto.getQuantity()); // 数量
|
||||
ordersGroupPackageDetail.setUnitCode(ordersGroupPackageDetailSaveDto.getUnitCode()); // 单位
|
||||
ordersGroupPackageDetailService.save(ordersGroupPackageDetail);
|
||||
}
|
||||
|
||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"组合套餐"}));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询组合套餐
|
||||
*
|
||||
* @param packageTypeEnum 类型枚举
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @return 组合套餐
|
||||
*/
|
||||
@Override
|
||||
public List<OrdersGroupPackageQueryDto> getGroupPackage(Integer packageTypeEnum, String searchKey) {
|
||||
List<OrdersGroupPackageQueryDto> groupPackage =
|
||||
ordersGroupPackageAppMapper.getGroupPackage(packageTypeEnum, null, null, searchKey);
|
||||
for (OrdersGroupPackageQueryDto ordersGroupPackageQueryDto : groupPackage) {
|
||||
ordersGroupPackageQueryDto.setPackageTypeEnum_enumText(
|
||||
EnumUtils.getInfoByValue(BindingType.class, ordersGroupPackageQueryDto.getPackageTypeEnum()));
|
||||
}
|
||||
return groupPackage;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询组合套餐明细
|
||||
*
|
||||
* @param groupPackageId 组合套餐id
|
||||
* @return 组合套餐明细
|
||||
*/
|
||||
@Override
|
||||
public List<OrdersGroupPackageDetailQueryDto> getGroupPackageDetail(Long groupPackageId) {
|
||||
return ordersGroupPackageAppMapper.getGroupPackageDetail(List.of(groupPackageId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除组合套餐
|
||||
*
|
||||
* @param groupPackageId 组合套餐id
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public R<?> delGroupPackage(Long groupPackageId) {
|
||||
// 删除主表
|
||||
ordersGroupPackageService.removeById(groupPackageId);
|
||||
// 删除明细
|
||||
ordersGroupPackageDetailService.remove(new LambdaQueryWrapper<OrdersGroupPackageDetail>()
|
||||
.eq(OrdersGroupPackageDetail::getGroupPackageId, groupPackageId));
|
||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00005, new Object[] {"组合套餐"}));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询组合套餐,供开立医嘱使用
|
||||
*
|
||||
* @param organizationId 患者挂号对应的科室id
|
||||
* @return 组合套餐
|
||||
*/
|
||||
@Override
|
||||
public OrdersGroupPackageUseDto getGroupPackageForOrder(Long organizationId) {
|
||||
OrdersGroupPackageUseDto ordersGroupPackageUseDto = new OrdersGroupPackageUseDto();
|
||||
// 当前参参与者id
|
||||
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
||||
// 当前登录账号的科室id
|
||||
Long orgId = SecurityUtils.getLoginUser().getOrgId();
|
||||
|
||||
// 个人组套
|
||||
List<OrdersGroupPackageQueryDto> personalGroupPackage =
|
||||
ordersGroupPackageAppMapper.getGroupPackage(BindingType.PERSONAL.getValue(), null, practitionerId, null);
|
||||
if (!personalGroupPackage.isEmpty()) {
|
||||
List<OrdersGroupPackageDto> personalList = personalGroupPackage.stream().map(queryDto -> {
|
||||
OrdersGroupPackageDto dto = new OrdersGroupPackageDto();
|
||||
dto.setGroupPackageId(queryDto.getGroupPackageId());
|
||||
dto.setName(queryDto.getName());
|
||||
return dto;
|
||||
}).collect(Collectors.toList());
|
||||
List<Long> groupPackageIds =
|
||||
personalList.stream().map(OrdersGroupPackageDto::getGroupPackageId).collect(Collectors.toList());
|
||||
// 明细项
|
||||
List<OrdersGroupPackageDetailQueryDto> personalGroupPackageDetail =
|
||||
ordersGroupPackageAppMapper.getGroupPackageDetail(groupPackageIds);
|
||||
// 明细项赋值
|
||||
if (!personalGroupPackageDetail.isEmpty()) {
|
||||
// 医嘱定义id集合
|
||||
List<Long> orderDefinitionIdParamList = personalGroupPackageDetail.stream()
|
||||
.map(OrdersGroupPackageDetailQueryDto::getOrderDefinitionId).collect(Collectors.toList());
|
||||
// 医嘱下拉详细信息
|
||||
List<AdviceBaseDto> personalRecords =
|
||||
iDoctorStationAdviceAppService.getAdviceBaseInfo(null, null, null, orderDefinitionIdParamList,
|
||||
organizationId, 1, 100, Whether.NO.getValue(), List.of(1, 2, 3)).getRecords();
|
||||
// 创建AdviceBaseDto的映射,以adviceDefinitionId为key
|
||||
Map<Long, AdviceBaseDto> adviceMap = personalRecords.stream().collect(Collectors
|
||||
.toMap(AdviceBaseDto::getAdviceDefinitionId, advice -> advice, (existing, replacement) -> existing // 如果有重复key,保留第一个
|
||||
));
|
||||
// 遍历personalGroupPackageDetail,进行匹配赋值
|
||||
for (OrdersGroupPackageDetailQueryDto detail : personalGroupPackageDetail) {
|
||||
Long orderDefinitionId = detail.getOrderDefinitionId();
|
||||
if (orderDefinitionId != null) {
|
||||
AdviceBaseDto matchedAdvice = adviceMap.get(orderDefinitionId);
|
||||
if (matchedAdvice != null) {
|
||||
detail.setOrderDetailInfos(matchedAdvice);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 将明细数据按groupPackageId分组
|
||||
Map<Long, List<OrdersGroupPackageDetailQueryDto>> detailMap = personalGroupPackageDetail.stream()
|
||||
.collect(Collectors.groupingBy(OrdersGroupPackageDetailQueryDto::getGroupPackageId));
|
||||
personalList.forEach(dto -> {
|
||||
List<OrdersGroupPackageDetailQueryDto> details = detailMap.get(dto.getGroupPackageId());
|
||||
dto.setDetailList(details != null ? details : Collections.emptyList());
|
||||
});
|
||||
}
|
||||
ordersGroupPackageUseDto.setPersonalList(personalList);
|
||||
}
|
||||
// 科室组套
|
||||
List<OrdersGroupPackageQueryDto> organizationGroupPackage =
|
||||
ordersGroupPackageAppMapper.getGroupPackage(BindingType.ORGANIZATION.getValue(), orgId, null, null);
|
||||
if (!organizationGroupPackage.isEmpty()) {
|
||||
List<OrdersGroupPackageDto> organizationList = organizationGroupPackage.stream().map(queryDto -> {
|
||||
OrdersGroupPackageDto dto = new OrdersGroupPackageDto();
|
||||
dto.setGroupPackageId(queryDto.getGroupPackageId());
|
||||
dto.setName(queryDto.getName());
|
||||
return dto;
|
||||
}).collect(Collectors.toList());
|
||||
List<Long> groupPackageIds =
|
||||
organizationList.stream().map(OrdersGroupPackageDto::getGroupPackageId).collect(Collectors.toList());
|
||||
// 明细项
|
||||
List<OrdersGroupPackageDetailQueryDto> organizationGroupPackageDetail =
|
||||
ordersGroupPackageAppMapper.getGroupPackageDetail(groupPackageIds);
|
||||
// 明细项赋值
|
||||
if (!organizationGroupPackageDetail.isEmpty()) {
|
||||
// 医嘱定义id集合
|
||||
List<Long> orderDefinitionIdParamList = organizationGroupPackageDetail.stream()
|
||||
.map(OrdersGroupPackageDetailQueryDto::getOrderDefinitionId).collect(Collectors.toList());
|
||||
// 医嘱下拉详细信息
|
||||
List<AdviceBaseDto> personalRecords =
|
||||
iDoctorStationAdviceAppService.getAdviceBaseInfo(null, null, null, orderDefinitionIdParamList,
|
||||
organizationId, 1, 100, Whether.NO.getValue(), List.of(1, 2, 3)).getRecords();
|
||||
// 创建AdviceBaseDto的映射,以adviceDefinitionId为key
|
||||
Map<Long, AdviceBaseDto> adviceMap = personalRecords.stream().collect(Collectors
|
||||
.toMap(AdviceBaseDto::getAdviceDefinitionId, advice -> advice, (existing, replacement) -> existing // 如果有重复key,保留第一个
|
||||
));
|
||||
// 遍历personalGroupPackageDetail,进行匹配赋值
|
||||
for (OrdersGroupPackageDetailQueryDto detail : organizationGroupPackageDetail) {
|
||||
Long orderDefinitionId = detail.getOrderDefinitionId();
|
||||
if (orderDefinitionId != null) {
|
||||
AdviceBaseDto matchedAdvice = adviceMap.get(orderDefinitionId);
|
||||
if (matchedAdvice != null) {
|
||||
detail.setOrderDetailInfos(matchedAdvice);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 将明细数据按groupPackageId分组
|
||||
Map<Long, List<OrdersGroupPackageDetailQueryDto>> detailMap = organizationGroupPackageDetail.stream()
|
||||
.collect(Collectors.groupingBy(OrdersGroupPackageDetailQueryDto::getGroupPackageId));
|
||||
organizationList.forEach(dto -> {
|
||||
List<OrdersGroupPackageDetailQueryDto> details = detailMap.get(dto.getGroupPackageId());
|
||||
dto.setDetailList(details != null ? details : Collections.emptyList());
|
||||
});
|
||||
}
|
||||
ordersGroupPackageUseDto.setOrganizationList(organizationList);
|
||||
}
|
||||
|
||||
// 全院组套
|
||||
List<OrdersGroupPackageQueryDto> hospitalGroupPackage =
|
||||
ordersGroupPackageAppMapper.getGroupPackage(BindingType.HOSPITAL.getValue(), null, null, null);
|
||||
if (!hospitalGroupPackage.isEmpty()) {
|
||||
List<OrdersGroupPackageDto> hospitalList = hospitalGroupPackage.stream().map(queryDto -> {
|
||||
OrdersGroupPackageDto dto = new OrdersGroupPackageDto();
|
||||
dto.setGroupPackageId(queryDto.getGroupPackageId());
|
||||
dto.setName(queryDto.getName());
|
||||
return dto;
|
||||
}).collect(Collectors.toList());
|
||||
List<Long> groupPackageIds =
|
||||
hospitalList.stream().map(OrdersGroupPackageDto::getGroupPackageId).collect(Collectors.toList());
|
||||
// 明细项
|
||||
List<OrdersGroupPackageDetailQueryDto> hospitalGroupPackageDetail =
|
||||
ordersGroupPackageAppMapper.getGroupPackageDetail(groupPackageIds);
|
||||
// 明细项赋值
|
||||
if (!hospitalGroupPackageDetail.isEmpty()) {
|
||||
// 医嘱定义id集合
|
||||
List<Long> orderDefinitionIdParamList = hospitalGroupPackageDetail.stream()
|
||||
.map(OrdersGroupPackageDetailQueryDto::getOrderDefinitionId).collect(Collectors.toList());
|
||||
// 医嘱下拉详细信息
|
||||
List<AdviceBaseDto> personalRecords =
|
||||
iDoctorStationAdviceAppService.getAdviceBaseInfo(null, null, null, orderDefinitionIdParamList,
|
||||
organizationId, 1, 100, Whether.NO.getValue(), List.of(1, 2, 3)).getRecords();
|
||||
// 创建AdviceBaseDto的映射,以adviceDefinitionId为key
|
||||
Map<Long, AdviceBaseDto> adviceMap = personalRecords.stream().collect(Collectors
|
||||
.toMap(AdviceBaseDto::getAdviceDefinitionId, advice -> advice, (existing, replacement) -> existing // 如果有重复key,保留第一个
|
||||
));
|
||||
// 遍历personalGroupPackageDetail,进行匹配赋值
|
||||
for (OrdersGroupPackageDetailQueryDto detail : hospitalGroupPackageDetail) {
|
||||
Long orderDefinitionId = detail.getOrderDefinitionId();
|
||||
if (orderDefinitionId != null) {
|
||||
AdviceBaseDto matchedAdvice = adviceMap.get(orderDefinitionId);
|
||||
if (matchedAdvice != null) {
|
||||
detail.setOrderDetailInfos(matchedAdvice);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 将明细数据按groupPackageId分组
|
||||
Map<Long, List<OrdersGroupPackageDetailQueryDto>> detailMap = hospitalGroupPackageDetail.stream()
|
||||
.collect(Collectors.groupingBy(OrdersGroupPackageDetailQueryDto::getGroupPackageId));
|
||||
hospitalList.forEach(dto -> {
|
||||
List<OrdersGroupPackageDetailQueryDto> details = detailMap.get(dto.getGroupPackageId());
|
||||
dto.setDetailList(details != null ? details : Collections.emptyList());
|
||||
});
|
||||
}
|
||||
ordersGroupPackageUseDto.setHospitalList(hospitalList);
|
||||
}
|
||||
|
||||
return ordersGroupPackageUseDto;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.personalization.controller;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.common.enums.BindingType;
|
||||
import com.openhis.web.personalization.appservice.IOrdersGroupPackageAppService;
|
||||
import com.openhis.web.personalization.dto.OrdersGroupPackageSaveDto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 组合套餐 controller
|
||||
*
|
||||
* @author yangmo
|
||||
* @date 2025-04-10
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/personalization/orders-group-package")
|
||||
@Slf4j
|
||||
@AllArgsConstructor
|
||||
public class OrdersGroupPackageController {
|
||||
|
||||
private final IOrdersGroupPackageAppService ordersGroupPackageAppService;
|
||||
|
||||
/**
|
||||
* 保存个人组套
|
||||
*
|
||||
* @param ordersGroupPackageSaveDto 组合套餐保存dto
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping(value = "/save-personal")
|
||||
public R<?> savePersonal(@RequestBody OrdersGroupPackageSaveDto ordersGroupPackageSaveDto) {
|
||||
return ordersGroupPackageAppService.saveGroupPackage(ordersGroupPackageSaveDto,
|
||||
BindingType.PERSONAL.getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存科室组套
|
||||
*
|
||||
* @param ordersGroupPackageSaveDto 组合套餐保存dto
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping(value = "/save-organization")
|
||||
public R<?> saveOrganization(@RequestBody OrdersGroupPackageSaveDto ordersGroupPackageSaveDto) {
|
||||
return ordersGroupPackageAppService.saveGroupPackage(ordersGroupPackageSaveDto,
|
||||
BindingType.ORGANIZATION.getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存全院组套
|
||||
*
|
||||
* @param ordersGroupPackageSaveDto 组合套餐保存dto
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping(value = "/save-hospital")
|
||||
public R<?> saveHospital(@RequestBody OrdersGroupPackageSaveDto ordersGroupPackageSaveDto) {
|
||||
return ordersGroupPackageAppService.saveGroupPackage(ordersGroupPackageSaveDto,
|
||||
BindingType.HOSPITAL.getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询个人组套
|
||||
*
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @return 个人组套
|
||||
*/
|
||||
@GetMapping(value = "/get-personal")
|
||||
public R<?> getPersonal(@RequestParam(value = "searchKey", defaultValue = "") String searchKey) {
|
||||
return R.ok(ordersGroupPackageAppService.getGroupPackage(BindingType.PERSONAL.getValue(), searchKey));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询科室组套
|
||||
*
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @return 科室组套
|
||||
*/
|
||||
@GetMapping(value = "/get-organization")
|
||||
public R<?> getOrganization(@RequestParam(value = "searchKey", defaultValue = "") String searchKey) {
|
||||
return R.ok(ordersGroupPackageAppService.getGroupPackage(BindingType.ORGANIZATION.getValue(), searchKey));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询全院组套
|
||||
*
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @return 全院组套
|
||||
*/
|
||||
@GetMapping(value = "/get-hospital")
|
||||
public R<?> getHospital(@RequestParam(value = "searchKey", defaultValue = "") String searchKey) {
|
||||
return R.ok(ordersGroupPackageAppService.getGroupPackage(BindingType.HOSPITAL.getValue(), searchKey));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询组合套餐明细
|
||||
*
|
||||
* @param groupPackageId 组合套餐id
|
||||
* @return 组合套餐明细
|
||||
*/
|
||||
@GetMapping(value = "/get-group-package-detail")
|
||||
public R<?> getGroupPackageDetail(@RequestParam Long groupPackageId) {
|
||||
return R.ok(ordersGroupPackageAppService.getGroupPackageDetail(groupPackageId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除组合套餐
|
||||
*
|
||||
* @param groupPackageId 组合套餐id
|
||||
* @return 结果
|
||||
*/
|
||||
@DeleteMapping(value = "/group-package-detail")
|
||||
public R<?> delGroupPackage(@RequestParam Long groupPackageId) {
|
||||
return ordersGroupPackageAppService.delGroupPackage(groupPackageId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询组合套餐,供开立医嘱使用
|
||||
*
|
||||
* @param organizationId 患者挂号对应的科室id
|
||||
* @return 组合套餐
|
||||
*/
|
||||
@GetMapping(value = "/group-package-for-order")
|
||||
public R<?>
|
||||
getGroupPackageForOrder(@RequestParam(value = "organizationId", defaultValue = "0") Long organizationId) {
|
||||
return R.ok(ordersGroupPackageAppService.getGroupPackageForOrder(organizationId));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -10,6 +10,8 @@ import com.openhis.common.annotation.Dict;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 耗材诊疗绑定 dto
|
||||
*
|
||||
@@ -65,9 +67,14 @@ public class ActivityDeviceDto {
|
||||
private String activityWbStr;
|
||||
|
||||
/** 耗材数量 */
|
||||
private Integer quantity;
|
||||
private BigDecimal quantity;
|
||||
|
||||
/** 状态 */
|
||||
private Integer statusEnum;
|
||||
private String statusEnum_enumText;
|
||||
|
||||
/** 单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String unitCode;
|
||||
private String unitCode_dictText;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.personalization.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.annotation.Dict;
|
||||
import com.openhis.web.doctorstation.dto.AdviceBaseDto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 组合套餐明细查询 dto
|
||||
*
|
||||
* @author zwh
|
||||
* @date 2025-04-09
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class OrdersGroupPackageDetailQueryDto {
|
||||
|
||||
/**
|
||||
* 组合套餐id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long groupPackageId;
|
||||
|
||||
/**
|
||||
* 医嘱定义id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long orderDefinitionId;
|
||||
|
||||
/**
|
||||
* 医嘱定义表名
|
||||
*/
|
||||
private String orderDefinitionTable;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String unitCode;
|
||||
private String unitCode_dictText;
|
||||
private String unitCodeName;
|
||||
|
||||
/**
|
||||
* 医嘱名称
|
||||
*/
|
||||
private String orderDefinitionName;
|
||||
|
||||
/**
|
||||
* 医嘱详细信息
|
||||
*/
|
||||
private AdviceBaseDto orderDetailInfos;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.personalization.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 组合套餐明细保存 dto
|
||||
*
|
||||
* @author zwh
|
||||
* @date 2025-04-09
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class OrdersGroupPackageDetailSaveDto {
|
||||
|
||||
/**
|
||||
* 医嘱定义id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long orderDefinitionId;
|
||||
|
||||
/**
|
||||
* 医嘱定义表名
|
||||
*/
|
||||
private String orderDefinitionTable;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private String unitCode;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.personalization.dto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 组合套餐 dto
|
||||
*
|
||||
* @author zwh
|
||||
* @date 2025-04-09
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class OrdersGroupPackageDto {
|
||||
|
||||
/**
|
||||
* 组合套餐id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long groupPackageId;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String Name;
|
||||
|
||||
/**
|
||||
* 明细集合
|
||||
*/
|
||||
private List<OrdersGroupPackageDetailQueryDto> detailList;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.personalization.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 组合套餐查询 dto
|
||||
*
|
||||
* @author zwh
|
||||
* @date 2025-04-09
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class OrdersGroupPackageQueryDto {
|
||||
|
||||
/**
|
||||
* 组合套餐id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long groupPackageId;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String Name;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private Integer packageTypeEnum;
|
||||
private String packageTypeEnum_enumText;
|
||||
|
||||
/**
|
||||
* 科室
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long organizationId;
|
||||
private String organizationName;
|
||||
|
||||
/**
|
||||
* 参与者
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long practitionerId;
|
||||
private String practitionerName;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.personalization.dto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 组合套餐保存 dto
|
||||
*
|
||||
* @author zwh
|
||||
* @date 2025-04-09
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class OrdersGroupPackageSaveDto {
|
||||
|
||||
/**
|
||||
* 组合套餐id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long groupPackageId;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String Name;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private Integer packageTypeEnum;
|
||||
|
||||
/**
|
||||
* 科室id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long organizationId;
|
||||
|
||||
/**
|
||||
* 参与者id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long practitionerId;
|
||||
|
||||
/**
|
||||
* 明细集合
|
||||
*/
|
||||
private List<OrdersGroupPackageDetailSaveDto> detailList;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.personalization.dto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 组合套餐(人员使用) dto
|
||||
*
|
||||
* @author zwh
|
||||
* @date 2025-04-09
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class OrdersGroupPackageUseDto {
|
||||
|
||||
/**
|
||||
* 个人组套
|
||||
*/
|
||||
private List<OrdersGroupPackageDto> personalList;
|
||||
|
||||
/**
|
||||
* 科室组套
|
||||
*/
|
||||
private List<OrdersGroupPackageDto> organizationList;
|
||||
|
||||
/**
|
||||
* 全院组套
|
||||
*/
|
||||
private List<OrdersGroupPackageDto> hospitalList;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.personalization.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.openhis.web.personalization.dto.OrdersGroupPackageDetailQueryDto;
|
||||
import com.openhis.web.personalization.dto.OrdersGroupPackageQueryDto;
|
||||
|
||||
/**
|
||||
* 组合套餐 Mapper
|
||||
*
|
||||
* @author zwh
|
||||
* @date 2025-05-16
|
||||
*/
|
||||
@Repository
|
||||
public interface OrdersGroupPackageAppMapper {
|
||||
|
||||
/**
|
||||
* 查询组合套餐
|
||||
*
|
||||
* @param packageTypeEnum 类型枚举
|
||||
* @param organizationId 科室id
|
||||
* @param practitionerId 参与者id
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @return 组合套餐
|
||||
*/
|
||||
List<OrdersGroupPackageQueryDto> getGroupPackage(@Param("packageTypeEnum") Integer packageTypeEnum,
|
||||
@Param("organizationId") Long organizationId, @Param("practitionerId") Long practitionerId,
|
||||
@Param("searchKey") String searchKey);
|
||||
|
||||
/**
|
||||
* 查询组合套餐明细
|
||||
*
|
||||
* @param groupPackageIds 组合套餐id集合
|
||||
* @return 组合套餐明细
|
||||
*/
|
||||
List<OrdersGroupPackageDetailQueryDto> getGroupPackageDetail(@Param("groupPackageIds") List<Long> groupPackageIds);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user