代码提交 费用定价修改
This commit is contained in:
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||||
|
*/
|
||||||
|
package com.core.common.enums;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定价类型
|
||||||
|
*
|
||||||
|
* @author zxy
|
||||||
|
* @date 2025-02-21
|
||||||
|
*/
|
||||||
|
public enum DefinitionTypeEnum {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 药品
|
||||||
|
*/
|
||||||
|
MEDICATION("1", "药品"),
|
||||||
|
/**
|
||||||
|
* 耗材
|
||||||
|
*/
|
||||||
|
DEVICE("2", "耗材"),
|
||||||
|
/**
|
||||||
|
* 手术
|
||||||
|
*/
|
||||||
|
ACTIVITY("3", "手术");
|
||||||
|
|
||||||
|
private final String code;
|
||||||
|
private final String info;
|
||||||
|
|
||||||
|
DefinitionTypeEnum(String code, String info) {
|
||||||
|
this.code = code;
|
||||||
|
this.info = info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getInfo() {
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,197 @@
|
|||||||
|
/*
|
||||||
|
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||||
|
*/
|
||||||
|
package com.openhis.web.datadictionary.assembler;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.openhis.administration.domain.ChargeItemDefApp;
|
||||||
|
import com.openhis.administration.domain.ChargeItemDefinition;
|
||||||
|
import com.openhis.administration.domain.DeviceDefinition;
|
||||||
|
import com.openhis.medication.domain.MedicationDefinition;
|
||||||
|
import com.openhis.web.datadictionary.dto.ChargeItemDefPageDto;
|
||||||
|
import com.openhis.web.datadictionary.dto.ItemDefSearchParam;
|
||||||
|
import com.openhis.workflow.domain.ActivityDefinition;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 费用定价dto转换器
|
||||||
|
*
|
||||||
|
* @author zxy
|
||||||
|
* @date 2025-02-21
|
||||||
|
*/
|
||||||
|
public class ItemDefinitionAssembler {
|
||||||
|
// /**
|
||||||
|
// * 装配【费用定价分页列表DTO】分页 药品
|
||||||
|
// *
|
||||||
|
// * @param chargeItemDefinitionPage 【费用定价管理Entity实体】分页
|
||||||
|
// * @param chargeItemDefAppList 【费用定价管理子表Entity实体】列表
|
||||||
|
// * @param medicationDefinitionList【药品定义管理Entity实体】列表
|
||||||
|
// * @return 【费用定价分页列表DTO】分页
|
||||||
|
// */
|
||||||
|
// public static Page<ChargeItemDefPageDto> assembleMedDefinitionDto(
|
||||||
|
// Page<ChargeItemDefinition> chargeItemDefinitionPage, List<ChargeItemDefApp> chargeItemDefAppList,
|
||||||
|
// List<MedicationDefinition> medicationDefinitionList, ItemDefSearchParam itemDefSearchParam) {
|
||||||
|
//
|
||||||
|
// // 将查询到的【药品基本信息管理】列表,作成以ID为Key的Map
|
||||||
|
// Map<Long, MedicationDefinition> medicationDefinitionMap = medicationDefinitionList.stream()
|
||||||
|
// .collect(Collectors.toMap(MedicationDefinition::getId, Function.identity()));
|
||||||
|
//
|
||||||
|
// // 将查询到的【患者管理】列表,作成以ID为Key的Map
|
||||||
|
// Map<Long, ChargeItemDefApp> chargeItemDefAppMap =
|
||||||
|
// chargeItemDefAppList.stream().collect(Collectors.toMap(ChargeItemDefApp::getId, Function.identity()));
|
||||||
|
//
|
||||||
|
// // 定义【入库单据分页列表DTO】的分页,传入【页码】、【行数】、及上面分页的【总数】
|
||||||
|
// Page<ChargeItemDefPageDto> returnPage = new Page<>(chargeItemDefinitionPage.getCurrent(),
|
||||||
|
// chargeItemDefinitionPage.getSize(), chargeItemDefinitionPage.getTotal());
|
||||||
|
//
|
||||||
|
// // 将【供应申请管理】的分页转化为返回【入库单据分页列表DTO】的分页
|
||||||
|
// returnPage.setRecords(chargeItemDefinitionPage.getRecords().stream().map(entity -> {
|
||||||
|
// // 定义【入库单据分页列表DTO】
|
||||||
|
// ChargeItemDefPageDto dto = new ChargeItemDefPageDto();
|
||||||
|
// ChargeItemDefApp chargeItemDefApp =
|
||||||
|
// chargeItemDefAppMap.getOrDefault(entity.getInstanceId(), new ChargeItemDefApp());
|
||||||
|
// MedicationDefinition medicationDefinition =
|
||||||
|
// medicationDefinitionMap.getOrDefault(entity.getInstanceId(), new MedicationDefinition());
|
||||||
|
// // 从主表COPY需要的字段
|
||||||
|
// dto.setId(entity.getId());
|
||||||
|
// dto.setConditionLotnumber(chargeItemDefApp.getConditionLotnumber());
|
||||||
|
// dto.setPyCode(medicationDefinition.getPyCode());
|
||||||
|
// dto.setTypeEnum(medicationDefinition.getCategoryCode());
|
||||||
|
// return dto;
|
||||||
|
// }).collect(Collectors.toList()));
|
||||||
|
// // 模糊查询项目名称/项目编码/助记码
|
||||||
|
// if (itemDefSearchParam.getSearchKey() != null) {
|
||||||
|
// returnPage.setRecords(returnPage.getRecords().stream()
|
||||||
|
// .filter(e -> e.getChargeName().contains(itemDefSearchParam.getSearchKey())
|
||||||
|
// || e.getTitle().contains(itemDefSearchParam.getSearchKey())
|
||||||
|
// || e.getPyCode().contains(itemDefSearchParam.getSearchKey()))
|
||||||
|
// .collect(Collectors.toList()));
|
||||||
|
// }
|
||||||
|
// // 精确查询收费项目
|
||||||
|
// if (itemDefSearchParam.getChargeItem() != null) {
|
||||||
|
// returnPage.setRecords(returnPage.getRecords().stream()
|
||||||
|
// .filter(e -> e.getTypeEnum().equals(itemDefSearchParam.getChargeItem())).collect(Collectors.toList()));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 返回【入库单据分页列表DTO】分页
|
||||||
|
// return returnPage;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 装配【费用定价分页列表DTO】分页 器具
|
||||||
|
// *
|
||||||
|
// * @param chargeItemDefinitionPage 【费用定价管理Entity实体】分页
|
||||||
|
// * @param chargeItemDefAppList 【费用定价管理子表Entity实体】列表
|
||||||
|
// * @param medicationDefinitionList【药品定义管理Entity实体】列表
|
||||||
|
// * @return 【费用定价分页列表DTO】分页
|
||||||
|
// */
|
||||||
|
// public static Page<ChargeItemDefPageDto> assembleDevDefinitionDto(
|
||||||
|
// Page<ChargeItemDefinition> chargeItemDefinitionPage, List<ChargeItemDefApp> chargeItemDefAppList,
|
||||||
|
// List<DeviceDefinition> medicationDefinitionList, ItemDefSearchParam itemDefSearchParam) {
|
||||||
|
//
|
||||||
|
// // 将查询到的【药品基本信息管理】列表,作成以ID为Key的Map
|
||||||
|
// Map<Long, DeviceDefinition> deviceDefinitionMap =
|
||||||
|
// medicationDefinitionList.stream().collect(Collectors.toMap(DeviceDefinition::getId, Function.identity()));
|
||||||
|
//
|
||||||
|
// // 将查询到的【患者管理】列表,作成以ID为Key的Map
|
||||||
|
// Map<Long, ChargeItemDefApp> chargeItemDefAppMap =
|
||||||
|
// chargeItemDefAppList.stream().collect(Collectors.toMap(ChargeItemDefApp::getId, Function.identity()));
|
||||||
|
//
|
||||||
|
// // 定义【入库单据分页列表DTO】的分页,传入【页码】、【行数】、及上面分页的【总数】
|
||||||
|
// Page<ChargeItemDefPageDto> returnPage = new Page<>(chargeItemDefinitionPage.getCurrent(),
|
||||||
|
// chargeItemDefinitionPage.getSize(), chargeItemDefinitionPage.getTotal());
|
||||||
|
//
|
||||||
|
// // 将【供应申请管理】的分页转化为返回【入库单据分页列表DTO】的分页
|
||||||
|
// returnPage.setRecords(chargeItemDefinitionPage.getRecords().stream().map(entity -> {
|
||||||
|
// // 定义【入库单据分页列表DTO】
|
||||||
|
// ChargeItemDefPageDto dto = new ChargeItemDefPageDto();
|
||||||
|
// ChargeItemDefApp chargeItemDefApp =
|
||||||
|
// chargeItemDefAppMap.getOrDefault(entity.getInstanceId(), new ChargeItemDefApp());
|
||||||
|
// DeviceDefinition deviceDefinition =
|
||||||
|
// deviceDefinitionMap.getOrDefault(entity.getInstanceId(), new DeviceDefinition());
|
||||||
|
// // 从主表COPY需要的字段
|
||||||
|
// dto.setId(entity.getId());
|
||||||
|
// dto.setConditionLotnumber(chargeItemDefApp.getConditionLotnumber());
|
||||||
|
// dto.setPyCode(deviceDefinition.getPyCode());
|
||||||
|
// dto.setTypeEnum(deviceDefinition.getDeviceClass());
|
||||||
|
// return dto;
|
||||||
|
// }).collect(Collectors.toList()));
|
||||||
|
// // 模糊查询项目名称/项目编码/助记码
|
||||||
|
// if (itemDefSearchParam.getSearchKey() != null) {
|
||||||
|
// returnPage.setRecords(returnPage.getRecords().stream()
|
||||||
|
// .filter(e -> e.getChargeName().contains(itemDefSearchParam.getSearchKey())
|
||||||
|
// || e.getTitle().contains(itemDefSearchParam.getSearchKey())
|
||||||
|
// || e.getPyCode().contains(itemDefSearchParam.getSearchKey()))
|
||||||
|
// .collect(Collectors.toList()));
|
||||||
|
// }
|
||||||
|
// // 精确查询收费项目
|
||||||
|
// if (itemDefSearchParam.getChargeItem() != null) {
|
||||||
|
// returnPage.setRecords(returnPage.getRecords().stream()
|
||||||
|
// .filter(e -> e.getTypeEnum().equals(itemDefSearchParam.getChargeItem())).collect(Collectors.toList()));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 返回【入库单据分页列表DTO】分页
|
||||||
|
// return returnPage;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 装配【费用定价分页列表DTO】分页 诊疗
|
||||||
|
// *
|
||||||
|
// * @param chargeItemDefinitionPage 【费用定价管理Entity实体】分页
|
||||||
|
// * @param chargeItemDefAppList 【费用定价管理子表Entity实体】列表
|
||||||
|
// * @param medicationDefinitionList【药品定义管理Entity实体】列表
|
||||||
|
// * @return 【费用定价分页列表DTO】分页
|
||||||
|
// */
|
||||||
|
// public static Page<ChargeItemDefPageDto> assembleProDefinitionDto(
|
||||||
|
// Page<ChargeItemDefinition> chargeItemDefinitionPage, List<ChargeItemDefApp> chargeItemDefAppList,
|
||||||
|
// List<ActivityDefinition> medicationDefinitionList, ItemDefSearchParam itemDefSearchParam) {
|
||||||
|
//
|
||||||
|
// // 将查询到的【药品基本信息管理】列表,作成以ID为Key的Map
|
||||||
|
// Map<Long, ActivityDefinition> activityDefinitionMap =
|
||||||
|
// medicationDefinitionList.stream().collect(Collectors.toMap(ActivityDefinition::getId, Function.identity()));
|
||||||
|
//
|
||||||
|
// // 将查询到的【患者管理】列表,作成以ID为Key的Map
|
||||||
|
// Map<Long, ChargeItemDefApp> chargeItemDefAppMap =
|
||||||
|
// chargeItemDefAppList.stream().collect(Collectors.toMap(ChargeItemDefApp::getId, Function.identity()));
|
||||||
|
//
|
||||||
|
// // 定义【入库单据分页列表DTO】的分页,传入【页码】、【行数】、及上面分页的【总数】
|
||||||
|
// Page<ChargeItemDefPageDto> returnPage = new Page<>(chargeItemDefinitionPage.getCurrent(),
|
||||||
|
// chargeItemDefinitionPage.getSize(), chargeItemDefinitionPage.getTotal());
|
||||||
|
//
|
||||||
|
// // 将【供应申请管理】的分页转化为返回【入库单据分页列表DTO】的分页
|
||||||
|
// returnPage.setRecords(chargeItemDefinitionPage.getRecords().stream().map(entity -> {
|
||||||
|
// // 定义【入库单据分页列表DTO】
|
||||||
|
// ChargeItemDefPageDto dto = new ChargeItemDefPageDto();
|
||||||
|
// ChargeItemDefApp chargeItemDefApp =
|
||||||
|
// chargeItemDefAppMap.getOrDefault(entity.getInstanceId(), new ChargeItemDefApp());
|
||||||
|
// ActivityDefinition deviceDefinition =
|
||||||
|
// activityDefinitionMap.getOrDefault(entity.getInstanceId(), new ActivityDefinition());
|
||||||
|
// // 从主表COPY需要的字段
|
||||||
|
// dto.setId(entity.getId());
|
||||||
|
// dto.setConditionLotnumber(chargeItemDefApp.getConditionLotnumber());
|
||||||
|
// dto.setPyCode(deviceDefinition.getPyCode());
|
||||||
|
// dto.setTypeEnum(deviceDefinition.getTypeEnum().toString());
|
||||||
|
// return dto;
|
||||||
|
// }).collect(Collectors.toList()));
|
||||||
|
// // 模糊查询项目名称/项目编码/助记码
|
||||||
|
// if (itemDefSearchParam.getSearchKey() != null) {
|
||||||
|
// returnPage.setRecords(returnPage.getRecords().stream()
|
||||||
|
// .filter(e -> e.getChargeName().contains(itemDefSearchParam.getSearchKey())
|
||||||
|
// || e.getTitle().contains(itemDefSearchParam.getSearchKey())
|
||||||
|
// || e.getPyCode().contains(itemDefSearchParam.getSearchKey()))
|
||||||
|
// .collect(Collectors.toList()));
|
||||||
|
// }
|
||||||
|
// // 精确查询收费项目
|
||||||
|
// if (itemDefSearchParam.getChargeItem() != null) {
|
||||||
|
// returnPage.setRecords(returnPage.getRecords().stream()
|
||||||
|
// .filter(e -> e.getTypeEnum().equals(itemDefSearchParam.getChargeItem())).collect(Collectors.toList()));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 返回【入库单据分页列表DTO】分页
|
||||||
|
// return returnPage;
|
||||||
|
// }
|
||||||
|
}
|
||||||
@@ -55,7 +55,7 @@ public class DiseaseManagementController {
|
|||||||
void AddDisease(DiseaseInDto diseaseInDto) {
|
void AddDisease(DiseaseInDto diseaseInDto) {
|
||||||
ConditionDefinition conditionDefinition = new ConditionDefinition();
|
ConditionDefinition conditionDefinition = new ConditionDefinition();
|
||||||
BeanUtils.copyProperties(diseaseInDto,conditionDefinition);
|
BeanUtils.copyProperties(diseaseInDto,conditionDefinition);
|
||||||
iConditionDefinitionService.AddDisease(conditionDefinition);
|
// iConditionDefinitionService.AddDisease(conditionDefinition);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 新增医保病种目录
|
// 新增医保病种目录
|
||||||
|
|||||||
@@ -0,0 +1,200 @@
|
|||||||
|
/*
|
||||||
|
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||||
|
*/
|
||||||
|
package com.openhis.web.datadictionary.controller;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
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.enums.DefinitionTypeEnum;
|
||||||
|
import com.core.common.utils.MessageUtils;
|
||||||
|
import com.core.common.utils.bean.BeanUtils;
|
||||||
|
import com.openhis.administration.domain.ChargeItemDefApp;
|
||||||
|
import com.openhis.administration.domain.ChargeItemDefinition;
|
||||||
|
import com.openhis.administration.service.IChargeItemDefAppService;
|
||||||
|
import com.openhis.administration.service.IChargeItemDefinitionService;
|
||||||
|
import com.openhis.administration.service.IDeviceDefinitionService;
|
||||||
|
import com.openhis.common.constant.PromptMsgConstant;
|
||||||
|
import com.openhis.medication.service.IMedicationDefinitionService;
|
||||||
|
import com.openhis.web.datadictionary.dto.ChargeItemDefPageDto;
|
||||||
|
import com.openhis.web.datadictionary.dto.ItemDefSearchParam;
|
||||||
|
import com.openhis.web.datadictionary.dto.ItemDefinitionDto;
|
||||||
|
import com.openhis.web.datadictionary.mapper.ChargeItemDefSearchMapper;
|
||||||
|
import com.openhis.workflow.service.IActivityDefinitionService;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目定价
|
||||||
|
*
|
||||||
|
* @author zxy
|
||||||
|
* @date 2025-02-21
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/dict-manager/definition")
|
||||||
|
@Slf4j
|
||||||
|
public class ItemDefinitionController {
|
||||||
|
|
||||||
|
@Autowired(required = false)
|
||||||
|
private IChargeItemDefinitionService chargeItemDefinitionService;
|
||||||
|
@Autowired(required = false)
|
||||||
|
private IChargeItemDefAppService chargeItemDefAppService;
|
||||||
|
@Autowired(required = false)
|
||||||
|
private ChargeItemDefSearchMapper chargeItemDefSearchMapper;
|
||||||
|
@Autowired(required = false)
|
||||||
|
private IMedicationDefinitionService medicationDefinitionService;
|
||||||
|
@Autowired(required = false)
|
||||||
|
private IDeviceDefinitionService deviceDefinitionService;
|
||||||
|
@Autowired(required = false)
|
||||||
|
private IActivityDefinitionService activityDefinitionService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目定价列表
|
||||||
|
*
|
||||||
|
* @param itemDefSearchParam 查询条件
|
||||||
|
* @param pageNo 当前页码
|
||||||
|
* @param pageSize 查询条数
|
||||||
|
* @param request 请求数据
|
||||||
|
* @return 项目定价列表
|
||||||
|
*/
|
||||||
|
@GetMapping(value = "/item-definition-page")
|
||||||
|
public R<?> getDefinitionPage(ItemDefSearchParam itemDefSearchParam,
|
||||||
|
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
|
||||||
|
// region
|
||||||
|
/// todo: 代码未测试
|
||||||
|
// 获取定价查询条件
|
||||||
|
// ChargeItemDefinition chargeItemDefinition = new ChargeItemDefinition();
|
||||||
|
// BeanUtils.copyProperties(itemDefSearchParam, chargeItemDefinition);
|
||||||
|
|
||||||
|
// ====================================================================================
|
||||||
|
|
||||||
|
// 查询【费用定价管理】分页列表
|
||||||
|
// Page<ChargeItemDefinition> chargeItemDefinitionPage =
|
||||||
|
// chargeItemDefinitionMapper.getPage(itemDefSearchParam, pageNo, pageSize);
|
||||||
|
// if (chargeItemDefinitionPage.getRecords() != null) {
|
||||||
|
// List<ChargeItemDefApp> chargeItemDefAppList = chargeItemDefAppService.listByIds(chargeItemDefinitionPage
|
||||||
|
// .getRecords().stream().filter(e -> e.getInstanceTable().equals("adm_charge_item_def_app"))
|
||||||
|
// .map(ChargeItemDefinition::getInstanceId).collect(Collectors.toList()));
|
||||||
|
// // 通过 DefinitionType 区分药品定价/器具定价/手术定价
|
||||||
|
// if (DefinitionTypeEnum.MEDICATION.getCode().equals(itemDefSearchParam.getDefinitionType())) {
|
||||||
|
// // 获取药品定价列表
|
||||||
|
// List<MedicationDefinition> medicationList =
|
||||||
|
// medicationDefinitionService.listByIds(chargeItemDefinitionPage.getRecords().stream()
|
||||||
|
// .filter(e -> e.getInstanceTable().equals("med_medication_definition"))
|
||||||
|
// .map(ChargeItemDefinition::getInstanceId).collect(Collectors.toList()));
|
||||||
|
//
|
||||||
|
// return R.ok(ItemDefinitionAssembler.assembleMedDefinitionDto(chargeItemDefinitionPage,
|
||||||
|
// chargeItemDefAppList, medicationList, itemDefSearchParam));
|
||||||
|
// } else if (DefinitionTypeEnum.DEVICE.getCode().equals(itemDefSearchParam.getDefinitionType())) {
|
||||||
|
// // 获取器具定价列表
|
||||||
|
// List<DeviceDefinition> deviceDefinitionList = deviceDefinitionService.listByIds(chargeItemDefinitionPage
|
||||||
|
// .getRecords().stream().filter(e -> e.getInstanceTable().equals("adm_device_definition"))
|
||||||
|
// .map(ChargeItemDefinition::getInstanceId).collect(Collectors.toList()));
|
||||||
|
//
|
||||||
|
// return R.ok(ItemDefinitionAssembler.assembleDevDefinitionDto(chargeItemDefinitionPage,
|
||||||
|
// chargeItemDefAppList, deviceDefinitionList, itemDefSearchParam));
|
||||||
|
// } else if (DefinitionTypeEnum.ACTIVITY.getCode().equals(itemDefSearchParam.getDefinitionType())) {
|
||||||
|
// List<ActivityDefinition> activityDefinitionList =
|
||||||
|
// activityDefinitionService.listByIds(chargeItemDefinitionPage.getRecords().stream()
|
||||||
|
// .filter(e -> e.getInstanceTable().equals("wor_activity_definition"))
|
||||||
|
// .map(ChargeItemDefinition::getInstanceId).collect(Collectors.toList()));
|
||||||
|
//
|
||||||
|
// return R.ok(ItemDefinitionAssembler.assembleProDefinitionDto(chargeItemDefinitionPage,
|
||||||
|
// chargeItemDefAppList, activityDefinitionList, itemDefSearchParam));
|
||||||
|
// } else {
|
||||||
|
// return R.ok(new Page<ChargeItemDefPageDto>());
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// return R.ok(new Page<ChargeItemDefPageDto>());
|
||||||
|
// }
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
IPage<ChargeItemDefPageDto> chargeItemDefinitionPage = new Page<>();
|
||||||
|
List<ChargeItemDefPageDto> chargeItemDefinitionList;
|
||||||
|
|
||||||
|
// TODO: 待测试
|
||||||
|
// 跳过的数量
|
||||||
|
int skipCount = 0;
|
||||||
|
if (pageNo > 0) {
|
||||||
|
skipCount = (pageNo - 1) * pageSize;
|
||||||
|
}
|
||||||
|
// 通过 DefinitionType 区分药品定价/器具定价/手术定价
|
||||||
|
if (DefinitionTypeEnum.MEDICATION.getCode().equals(itemDefSearchParam.getDefinitionType())) {
|
||||||
|
chargeItemDefinitionList =
|
||||||
|
chargeItemDefSearchMapper.getMedList(itemDefSearchParam, pageNo, pageSize, skipCount);
|
||||||
|
chargeItemDefinitionPage.setSize(pageSize);
|
||||||
|
chargeItemDefinitionPage.setCurrent(pageNo);
|
||||||
|
if (chargeItemDefinitionList.size() > 0) {
|
||||||
|
chargeItemDefinitionPage.setTotal(chargeItemDefinitionList.get(0).getTotalCount());
|
||||||
|
chargeItemDefinitionPage.setRecords(chargeItemDefinitionList);
|
||||||
|
} else {
|
||||||
|
chargeItemDefinitionPage.setTotal(0);
|
||||||
|
chargeItemDefinitionPage.setRecords(new ArrayList<>());
|
||||||
|
}
|
||||||
|
return R.ok(chargeItemDefinitionPage);
|
||||||
|
} else if (DefinitionTypeEnum.DEVICE.getCode().equals(itemDefSearchParam.getDefinitionType())) {
|
||||||
|
chargeItemDefinitionList =
|
||||||
|
chargeItemDefSearchMapper.getDevList(itemDefSearchParam, pageNo, pageSize, skipCount);
|
||||||
|
chargeItemDefinitionPage.setSize(pageSize);
|
||||||
|
chargeItemDefinitionPage.setCurrent(pageNo);
|
||||||
|
if (chargeItemDefinitionList.size() > 0) {
|
||||||
|
chargeItemDefinitionPage.setTotal(chargeItemDefinitionList.get(0).getTotalCount());
|
||||||
|
chargeItemDefinitionPage.setRecords(chargeItemDefinitionList);
|
||||||
|
} else {
|
||||||
|
chargeItemDefinitionPage.setTotal(0);
|
||||||
|
chargeItemDefinitionPage.setRecords(new ArrayList<>());
|
||||||
|
}
|
||||||
|
return R.ok(chargeItemDefinitionPage);
|
||||||
|
} else if (DefinitionTypeEnum.ACTIVITY.getCode().equals(itemDefSearchParam.getDefinitionType())) {
|
||||||
|
chargeItemDefinitionList =
|
||||||
|
chargeItemDefSearchMapper.getActList(itemDefSearchParam, pageNo, pageSize, skipCount);
|
||||||
|
chargeItemDefinitionPage.setSize(pageSize);
|
||||||
|
chargeItemDefinitionPage.setCurrent(pageNo);
|
||||||
|
if (chargeItemDefinitionList.size() > 0) {
|
||||||
|
chargeItemDefinitionPage.setTotal(chargeItemDefinitionList.get(0).getTotalCount());
|
||||||
|
chargeItemDefinitionPage.setRecords(chargeItemDefinitionList);
|
||||||
|
} else {
|
||||||
|
chargeItemDefinitionPage.setTotal(0);
|
||||||
|
chargeItemDefinitionPage.setRecords(new ArrayList<>());
|
||||||
|
}
|
||||||
|
return R.ok(chargeItemDefinitionPage);
|
||||||
|
} else {
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改项目定价
|
||||||
|
*
|
||||||
|
* @param itemDefinitionDto 修改内容
|
||||||
|
* @return 修改结果
|
||||||
|
*/
|
||||||
|
@PutMapping(value = "/item-definition")
|
||||||
|
public R<?> edit(@Validated @RequestBody ItemDefinitionDto itemDefinitionDto) {
|
||||||
|
// 更新adm_charge_item_definition信息
|
||||||
|
ChargeItemDefinition chargeItemDefinition = new ChargeItemDefinition();
|
||||||
|
BeanUtils.copyProperties(itemDefinitionDto, chargeItemDefinition);
|
||||||
|
if (!chargeItemDefinitionService.updateById(chargeItemDefinition)) {
|
||||||
|
return R.fail();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新收费项目adm_charge_item_def_app
|
||||||
|
ChargeItemDefApp chargeItemDefApp = new ChargeItemDefApp();
|
||||||
|
BeanUtils.copyProperties(itemDefinitionDto, chargeItemDefApp);
|
||||||
|
chargeItemDefApp.setDefinitionId(itemDefinitionDto.getId());
|
||||||
|
chargeItemDefApp.setId(itemDefinitionDto.getItemId());
|
||||||
|
return chargeItemDefAppService.updateChargeItemDefApp(chargeItemDefApp)
|
||||||
|
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"费用定价"}))
|
||||||
|
: R.fail(PromptMsgConstant.Common.M00007, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,90 @@
|
|||||||
|
/*
|
||||||
|
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||||
|
*/
|
||||||
|
package com.openhis.web.datadictionary.dto;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 费用定价分页Dto
|
||||||
|
*
|
||||||
|
* @author zxy
|
||||||
|
* @date 2025-02-21
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class ChargeItemDefPageDto {
|
||||||
|
|
||||||
|
/** ID */
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/** 费用定价子表主键 */
|
||||||
|
private Long itemId;
|
||||||
|
|
||||||
|
/** 名称 */
|
||||||
|
private String chargeName;
|
||||||
|
|
||||||
|
/** 项目编号 */
|
||||||
|
private String itemNo;
|
||||||
|
|
||||||
|
/** 规格 */
|
||||||
|
private String totalVolume;
|
||||||
|
|
||||||
|
/** 状态 */
|
||||||
|
private Integer statusEnum;
|
||||||
|
|
||||||
|
/** 单位 */
|
||||||
|
private String unitCode;
|
||||||
|
|
||||||
|
/** 拆零比 */
|
||||||
|
private BigDecimal partPercent;
|
||||||
|
|
||||||
|
/** 指导价 */
|
||||||
|
private BigDecimal conditionYbCode;
|
||||||
|
|
||||||
|
/** 批次号 */
|
||||||
|
private String conditionLotnumber;
|
||||||
|
|
||||||
|
/** 价格 */
|
||||||
|
private BigDecimal price;
|
||||||
|
|
||||||
|
/** 有效时间开始 */
|
||||||
|
private Date effectiveStart;
|
||||||
|
|
||||||
|
/** 有效时间结束 */
|
||||||
|
private Date effectiveEnd;
|
||||||
|
|
||||||
|
/** 拆零最小单位 */
|
||||||
|
private String partMinUnitCode;
|
||||||
|
|
||||||
|
/** 拆零指导价 */
|
||||||
|
private BigDecimal partConditionPrice;
|
||||||
|
|
||||||
|
/** 拆零价格 */
|
||||||
|
private BigDecimal partPrice;
|
||||||
|
|
||||||
|
/** 条件价格 */
|
||||||
|
private BigDecimal amount;
|
||||||
|
|
||||||
|
/** 调价说明 */
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
/** 优先级 */
|
||||||
|
private Integer priority;
|
||||||
|
|
||||||
|
/** 条件规则 */
|
||||||
|
private Integer conditionRuleId;
|
||||||
|
|
||||||
|
/** 创建时间 */
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
/** 调价时间 */
|
||||||
|
private Date updateTime;
|
||||||
|
|
||||||
|
/** 总条数 */
|
||||||
|
private Integer totalCount;
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||||
|
*/
|
||||||
|
package com.openhis.web.datadictionary.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目定价查询dto
|
||||||
|
*
|
||||||
|
* @author zxy
|
||||||
|
* @date 2025-02-21
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class ItemDefSearchParam {
|
||||||
|
|
||||||
|
/** 定价类型 */
|
||||||
|
private String DefinitionType;
|
||||||
|
/** 定价项目 */
|
||||||
|
private String chargeItem;
|
||||||
|
/** 模糊搜索条件 */
|
||||||
|
private String searchKey;
|
||||||
|
/** 状态 */
|
||||||
|
private Integer statusEnum;
|
||||||
|
}
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
/*
|
||||||
|
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||||
|
*/
|
||||||
|
package com.openhis.web.datadictionary.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收费项目保存dto
|
||||||
|
*
|
||||||
|
* @author zxy
|
||||||
|
* @date 2025-02-21
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class ItemDefinitionDto {
|
||||||
|
|
||||||
|
/** ID */
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/** 子表ID */
|
||||||
|
private Long itemId;
|
||||||
|
|
||||||
|
/** 名称 */
|
||||||
|
private String chargeName;
|
||||||
|
|
||||||
|
/** 标题 */
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
/** 状态 */
|
||||||
|
private Integer statusEnum;
|
||||||
|
|
||||||
|
/** 机构编码 */
|
||||||
|
private String orgCode;
|
||||||
|
|
||||||
|
/** 描述 */
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
/** 代码 */
|
||||||
|
private String instanceTable;
|
||||||
|
|
||||||
|
/** 关联项目 */
|
||||||
|
private Long instanceId;
|
||||||
|
|
||||||
|
/** 有效时间开始 */
|
||||||
|
private Date effectiveStart;
|
||||||
|
|
||||||
|
/** 有效时间结束 */
|
||||||
|
private Date effectiveEnd;
|
||||||
|
|
||||||
|
/** 财务类别 */
|
||||||
|
private String typeCode;
|
||||||
|
|
||||||
|
/** 医保类别 */
|
||||||
|
private Integer ybType;
|
||||||
|
|
||||||
|
/** 是否使用详细价格规则 */
|
||||||
|
private Integer conditionFlag;
|
||||||
|
|
||||||
|
/** 基础价格 */
|
||||||
|
private BigDecimal price;
|
||||||
|
|
||||||
|
/** 条件规则 */
|
||||||
|
private Long conditionRuleId;
|
||||||
|
|
||||||
|
/** 批次号 */
|
||||||
|
private String conditionLotnumber;
|
||||||
|
|
||||||
|
/** 医保相关价格 */
|
||||||
|
private String conditionYbCode;
|
||||||
|
|
||||||
|
/** 采购售卖条件 */
|
||||||
|
private String conditionInoutCode;
|
||||||
|
|
||||||
|
/** 条件类型 */
|
||||||
|
private String conditionUnitCode;
|
||||||
|
|
||||||
|
/** 条件 */
|
||||||
|
private String conditionCode;
|
||||||
|
|
||||||
|
/** 优先级 */
|
||||||
|
private Integer priority;
|
||||||
|
|
||||||
|
/** 价格 */
|
||||||
|
private BigDecimal amount;
|
||||||
|
|
||||||
|
/** 名称拼音码 */
|
||||||
|
private String pyCode;
|
||||||
|
|
||||||
|
/** 类型 */
|
||||||
|
private String typeEnum;
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
package com.openhis.web.datadictionary.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.openhis.administration.domain.ChargeItemDefinition;
|
||||||
|
import com.openhis.web.datadictionary.dto.ChargeItemDefPageDto;
|
||||||
|
import com.openhis.web.datadictionary.dto.ItemDefSearchParam;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 费用定价管理Mapper接口
|
||||||
|
*
|
||||||
|
* @author system
|
||||||
|
* @date 2025-02-20
|
||||||
|
*/
|
||||||
|
@Repository
|
||||||
|
public interface ChargeItemDefSearchMapper extends BaseMapper<ChargeItemDefinition> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 药品费用定价分页查询
|
||||||
|
*
|
||||||
|
* @param itemDefSearchParam 查询条件
|
||||||
|
* @param pageNo 页码
|
||||||
|
* @param pageSize 页面大小
|
||||||
|
* @param skipCount 跳过条数
|
||||||
|
* @return 分页查询
|
||||||
|
*/
|
||||||
|
List<ChargeItemDefPageDto> getMedList(@Param("itemDefSearchParam") ItemDefSearchParam itemDefSearchParam,
|
||||||
|
@Param("pageNo") Integer pageNo, @Param("pageSize") Integer pageSize, @Param("skipCount") Integer skipCount);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 器具费用定价分页查询
|
||||||
|
*
|
||||||
|
* @param itemDefSearchParam 查询条件
|
||||||
|
* @param pageNo 页码
|
||||||
|
* @param pageSize 页面大小
|
||||||
|
* @param skipCount 跳过条数
|
||||||
|
* @return 分页查询
|
||||||
|
*/
|
||||||
|
List<ChargeItemDefPageDto> getDevList(@Param("itemDefSearchParam") ItemDefSearchParam itemDefSearchParam,
|
||||||
|
@Param("pageNo") Integer pageNo, @Param("pageSize") Integer pageSize, @Param("skipCount") int skipCount);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动费用定价分页查询
|
||||||
|
*
|
||||||
|
* @param itemDefSearchParam 查询条件
|
||||||
|
* @param pageNo 页码
|
||||||
|
* @param pageSize 页面大小
|
||||||
|
* @param skipCount 跳过条数
|
||||||
|
* @return 分页查询
|
||||||
|
*/
|
||||||
|
List<ChargeItemDefPageDto> getActList(@Param("itemDefSearchParam") ItemDefSearchParam itemDefSearchParam,
|
||||||
|
@Param("pageNo") Integer pageNo, @Param("pageSize") Integer pageSize, @Param("skipCount") int skipCount);
|
||||||
|
}
|
||||||
@@ -0,0 +1,238 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.openhis.web.datadictionary.mapper.ChargeItemDefSearchMapper">
|
||||||
|
|
||||||
|
<select id="getMedList" resultType="com.openhis.web.datadictionary.dto.ChargeItemDefPageDto">
|
||||||
|
SELECT
|
||||||
|
T5.id,
|
||||||
|
T5.charge_name,
|
||||||
|
T5.status_enum,
|
||||||
|
T5.description,
|
||||||
|
T5.effective_start,
|
||||||
|
T5.effective_end,
|
||||||
|
T5.instance_table,
|
||||||
|
T5.price,
|
||||||
|
T5.create_time,
|
||||||
|
T5.update_time,
|
||||||
|
T5.item_id,
|
||||||
|
T5.condition_rule_id,
|
||||||
|
T5.condition_lotnumber,
|
||||||
|
T5.condition_yb_code,
|
||||||
|
T5.priority,
|
||||||
|
T5.amount,
|
||||||
|
T5.item_no,
|
||||||
|
T5.py_str,
|
||||||
|
T5.wb_str,
|
||||||
|
T5.unit_code,
|
||||||
|
T5.category_code,
|
||||||
|
T5.total_volume,
|
||||||
|
T5.lot_number,
|
||||||
|
COUNT(1) OVER() AS TOTAL_COUNT
|
||||||
|
FROM (
|
||||||
|
SELECT
|
||||||
|
T1.id,
|
||||||
|
T1.charge_name,
|
||||||
|
T1.status_enum,
|
||||||
|
T1.description,
|
||||||
|
T1.effective_start,
|
||||||
|
T1.effective_end,
|
||||||
|
T1.instance_table,
|
||||||
|
T1.price,
|
||||||
|
T1.create_time,
|
||||||
|
T1.update_time,
|
||||||
|
T2.id AS item_id,
|
||||||
|
T2.condition_rule_id,
|
||||||
|
T2.condition_lotnumber,
|
||||||
|
T2.condition_yb_code,
|
||||||
|
T2.priority,
|
||||||
|
T2.amount,
|
||||||
|
T3.bus_no AS item_no,
|
||||||
|
T3.py_str,
|
||||||
|
T3.wb_str,
|
||||||
|
T3.unit_code,
|
||||||
|
T3.category_code,
|
||||||
|
T4.total_volume,
|
||||||
|
T4.lot_number
|
||||||
|
FROM
|
||||||
|
adm_charge_item_definition T1
|
||||||
|
LEFT JOIN adm_charge_item_def_app T2
|
||||||
|
ON T1.id = T2.definition_id
|
||||||
|
LEFT JOIN med_medication_definition T3
|
||||||
|
ON T1.instance_id = T3.id
|
||||||
|
LEFT JOIN med_medication T4
|
||||||
|
ON T3.id = T4.medication_def_id) T5
|
||||||
|
<where>
|
||||||
|
T5.instance_table = 'med_medication_definition'
|
||||||
|
<if test="itemDefSearchParam.getSearchKey() != null">
|
||||||
|
AND T5.charge_name LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
|
||||||
|
OR T5.code LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
|
||||||
|
OR T5.py_code LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="itemDefSearchParam.getStatusEnum() != null">
|
||||||
|
AND T5.status_enum = #{itemDefSearchParam.statusEnum}
|
||||||
|
</if>
|
||||||
|
<if test="itemDefSearchParam.getCategoryCode() != null">
|
||||||
|
AND T5.category_code = #{itemDefSearchParam.chargeItem}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
ORDER BY T5.create_time DESC
|
||||||
|
<!-- 拼接页码 -->
|
||||||
|
<if test="skipCount != null and pageSize != null and pageSize > 0">
|
||||||
|
LIMIT #{pageSize} OFFSET #{skipCount}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getDevList" resultType="com.openhis.web.datadictionary.dto.ChargeItemDefPageDto">
|
||||||
|
SELECT
|
||||||
|
T5.id,
|
||||||
|
T5.charge_name,
|
||||||
|
T5.status_enum,
|
||||||
|
T5.description,
|
||||||
|
T5.effective_start,
|
||||||
|
T5.effective_end,
|
||||||
|
T5.instance_table,
|
||||||
|
T5.price,
|
||||||
|
T5.create_time,
|
||||||
|
T5.update_time,
|
||||||
|
T5.item_id,
|
||||||
|
T5.condition_rule_id,
|
||||||
|
T5.condition_lotnumber,
|
||||||
|
T5.condition_yb_code,
|
||||||
|
T5.priority,
|
||||||
|
T5.amount,
|
||||||
|
T5.item_no,
|
||||||
|
T5.py_code,
|
||||||
|
T5.wb_code,
|
||||||
|
T5.unit_code,
|
||||||
|
T5.category_code,
|
||||||
|
T5.lot_number,
|
||||||
|
COUNT(1) OVER() AS TOTAL_COUNT
|
||||||
|
FROM (
|
||||||
|
SELECT
|
||||||
|
T1.id,
|
||||||
|
T1.charge_name,
|
||||||
|
T1.status_enum,
|
||||||
|
T1.description,
|
||||||
|
T1.effective_start,
|
||||||
|
T1.effective_end,
|
||||||
|
T1.instance_table,
|
||||||
|
T1.price,
|
||||||
|
T1.create_time,
|
||||||
|
T1.update_time,
|
||||||
|
T2.id AS item_id,
|
||||||
|
T2.condition_rule_id,
|
||||||
|
T2.condition_lotnumber,
|
||||||
|
T2.condition_yb_code,
|
||||||
|
T2.priority,
|
||||||
|
T2.amount,
|
||||||
|
T3.code AS item_no,
|
||||||
|
T3.py_code,
|
||||||
|
T3.wb_code,
|
||||||
|
T3.unit_code AS unit_code,
|
||||||
|
T3.device_class AS category_code,
|
||||||
|
T4.lot_number
|
||||||
|
FROM
|
||||||
|
adm_charge_item_definition T1
|
||||||
|
LEFT JOIN adm_charge_item_def_app T2
|
||||||
|
ON T1.id = T2.definition_id
|
||||||
|
LEFT JOIN adm_device_definition T3
|
||||||
|
ON T1.instance_id = T3.id
|
||||||
|
LEFT JOIN adm_device T4
|
||||||
|
ON T3.id = T4.def_id) T5
|
||||||
|
<where>
|
||||||
|
T5.instance_table = 'adm_device_definition'
|
||||||
|
<if test="itemDefSearchParam.getSearchKey() != null">
|
||||||
|
AND T5.charge_name LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
|
||||||
|
OR T5.code LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
|
||||||
|
OR T5.py_code LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="itemDefSearchParam.getStatusEnum() != null">
|
||||||
|
AND T5.status_enum = #{itemDefSearchParam.statusEnum}
|
||||||
|
</if>
|
||||||
|
<if test="itemDefSearchParam.getCategoryCode() != null">
|
||||||
|
AND T5.category_code = #{itemDefSearchParam.chargeItem}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
ORDER BY T5.create_time DESC
|
||||||
|
<!-- 拼接页码 -->
|
||||||
|
<if test="skipCount != null and pageSize != null and pageSize > 0">
|
||||||
|
LIMIT #{pageSize} OFFSET #{skipCount}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getActList" resultType="com.openhis.web.datadictionary.dto.ChargeItemDefPageDto">
|
||||||
|
SELECT
|
||||||
|
T5.id,
|
||||||
|
T5.charge_name,
|
||||||
|
T5.status_enum,
|
||||||
|
T5.description,
|
||||||
|
T5.effective_start,
|
||||||
|
T5.effective_end,
|
||||||
|
T5.instance_table,
|
||||||
|
T5.price,
|
||||||
|
T5.create_time,
|
||||||
|
T5.update_time,
|
||||||
|
T5.item_id,
|
||||||
|
T5.condition_rule_id,
|
||||||
|
T5.condition_lotnumber,
|
||||||
|
T5.condition_yb_code,
|
||||||
|
T5.priority,
|
||||||
|
T5.amount,
|
||||||
|
T5.item_no,
|
||||||
|
T5.py_code,
|
||||||
|
T5.wb_code,
|
||||||
|
T5.unit_code,
|
||||||
|
T5.category_code,
|
||||||
|
COUNT(1) OVER() AS TOTAL_COUNT
|
||||||
|
FROM (
|
||||||
|
SELECT
|
||||||
|
T1.id,
|
||||||
|
T1.charge_name,
|
||||||
|
T1.status_enum,
|
||||||
|
T1.description,
|
||||||
|
T1.effective_start,
|
||||||
|
T1.effective_end,
|
||||||
|
T1.instance_table,
|
||||||
|
T1.price,
|
||||||
|
T1.create_time,
|
||||||
|
T1.update_time,
|
||||||
|
T2.id AS item_id,
|
||||||
|
T2.condition_rule_id,
|
||||||
|
T2.condition_lotnumber,
|
||||||
|
T2.condition_yb_code,
|
||||||
|
T2.priority,
|
||||||
|
T2.amount,
|
||||||
|
T3.code AS item_no,
|
||||||
|
T3.py_code,
|
||||||
|
T3.wb_code,
|
||||||
|
T3.permitted_unit AS unit_code,
|
||||||
|
T3.type_enum AS category_code
|
||||||
|
FROM
|
||||||
|
adm_charge_item_definition T1
|
||||||
|
LEFT JOIN adm_charge_item_def_app T2
|
||||||
|
ON T1.id = T2.definition_id
|
||||||
|
LEFT JOIN wor_activity_definition T3
|
||||||
|
ON T1.instance_id = T3.id) T5
|
||||||
|
<where>
|
||||||
|
T5.instance_table = 'wor_activity_definition'
|
||||||
|
<if test="itemDefSearchParam.getSearchKey() != null">
|
||||||
|
AND T5.charge_name LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
|
||||||
|
OR T5.code LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
|
||||||
|
OR T5.py_code LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="itemDefSearchParam.getStatusEnum() != null">
|
||||||
|
AND T5.status_enum = #{itemDefSearchParam.statusEnum}
|
||||||
|
</if>
|
||||||
|
<if test="itemDefSearchParam.getCategoryCode() != null">
|
||||||
|
AND T5.category_code = #{itemDefSearchParam.chargeItem}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
ORDER BY T5.create_time DESC
|
||||||
|
<!-- 拼接页码 -->
|
||||||
|
<if test="skipCount != null and pageSize != null and pageSize > 0">
|
||||||
|
LIMIT #{pageSize} OFFSET #{skipCount}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
@@ -11,4 +11,27 @@ import com.openhis.administration.domain.ChargeItemDefApp;
|
|||||||
*/
|
*/
|
||||||
public interface IChargeItemDefAppService extends IService<ChargeItemDefApp> {
|
public interface IChargeItemDefAppService extends IService<ChargeItemDefApp> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新项目定价
|
||||||
|
*
|
||||||
|
* @param chargeItemDefApp 更新内容
|
||||||
|
* @return 更新结果
|
||||||
|
*/
|
||||||
|
boolean updateChargeItemDefApp(ChargeItemDefApp chargeItemDefApp);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增费用定价
|
||||||
|
*
|
||||||
|
* @param chargeItemDefApp 新增内容
|
||||||
|
* @return 新增结果
|
||||||
|
*/
|
||||||
|
boolean addChargeItemDefApp(ChargeItemDefApp chargeItemDefApp);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除费用定价
|
||||||
|
*
|
||||||
|
* @param id 费用定价id
|
||||||
|
* @return 新增结果
|
||||||
|
*/
|
||||||
|
boolean deleteChargeItemDefApp(Long id);
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.openhis.administration.service;
|
package com.openhis.administration.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.openhis.administration.domain.ChargeItemDefinition;
|
import com.openhis.administration.domain.ChargeItemDefinition;
|
||||||
|
|
||||||
@@ -11,4 +12,29 @@ import com.openhis.administration.domain.ChargeItemDefinition;
|
|||||||
*/
|
*/
|
||||||
public interface IChargeItemDefinitionService extends IService<ChargeItemDefinition> {
|
public interface IChargeItemDefinitionService extends IService<ChargeItemDefinition> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取定价分页列表
|
||||||
|
*
|
||||||
|
* @param chargeItemDefinition 定价查询条件
|
||||||
|
* @param pageNo 页码
|
||||||
|
* @param pageSize 页面大小
|
||||||
|
* @return 定价分页列表
|
||||||
|
*/
|
||||||
|
Page<ChargeItemDefinition> getPage(ChargeItemDefinition chargeItemDefinition, Integer pageNo, Integer pageSize);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增费用定价
|
||||||
|
*
|
||||||
|
* @param chargeItemDefinition 新增内容
|
||||||
|
* @return 新增结果
|
||||||
|
*/
|
||||||
|
boolean addChargeItemDefinition(ChargeItemDefinition chargeItemDefinition);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除费用定价
|
||||||
|
*
|
||||||
|
* @param id 费用定价id
|
||||||
|
* @return 新增结果
|
||||||
|
*/
|
||||||
|
boolean deleteChargeItemDefinition(Long id);
|
||||||
}
|
}
|
||||||
@@ -14,6 +14,58 @@ import com.openhis.administration.service.IChargeItemDefAppService;
|
|||||||
* @date 2025-02-20
|
* @date 2025-02-20
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class ChargeItemDefAppServiceImpl extends ServiceImpl<ChargeItemDefAppMapper, ChargeItemDefApp> implements IChargeItemDefAppService {
|
public class ChargeItemDefAppServiceImpl extends ServiceImpl<ChargeItemDefAppMapper, ChargeItemDefApp>
|
||||||
|
implements IChargeItemDefAppService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新项目定价
|
||||||
|
*
|
||||||
|
* @param chargeItemDefApp 更新内容
|
||||||
|
* @return 更新结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean updateChargeItemDefApp(ChargeItemDefApp chargeItemDefApp) {
|
||||||
|
// 更新样例 一切以实际为主
|
||||||
|
if (chargeItemDefApp.getId() != null) {
|
||||||
|
// 获取更新前收费项目,避免更新导致数据库崩溃
|
||||||
|
if (baseMapper.selectById(chargeItemDefApp.getId()) == null) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return baseMapper.updateById(chargeItemDefApp) > 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增费用定价
|
||||||
|
*
|
||||||
|
* @param chargeItemDefApp 新增内容
|
||||||
|
* @return 新增结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean addChargeItemDefApp(ChargeItemDefApp chargeItemDefApp) {
|
||||||
|
//此判断是为了避免插入时主键重复
|
||||||
|
if (chargeItemDefApp.getId() != null) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return baseMapper.insert(chargeItemDefApp) > 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除费用定价
|
||||||
|
*
|
||||||
|
* @param id 费用定价id
|
||||||
|
* @return 新增结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean deleteChargeItemDefApp(Long id) {
|
||||||
|
if (baseMapper.selectById(id) == null) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return baseMapper.deleteById(id) > 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -2,10 +2,13 @@ package com.openhis.administration.service.impl;
|
|||||||
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.openhis.administration.domain.ChargeItemDefinition;
|
import com.openhis.administration.domain.ChargeItemDefinition;
|
||||||
import com.openhis.administration.mapper.ChargeItemDefinitionMapper;
|
import com.openhis.administration.mapper.ChargeItemDefinitionMapper;
|
||||||
import com.openhis.administration.service.IChargeItemDefinitionService;
|
import com.openhis.administration.service.IChargeItemDefinitionService;
|
||||||
|
import com.openhis.common.enums.DelFlag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 费用定价管理Service业务层处理
|
* 费用定价管理Service业务层处理
|
||||||
@@ -14,6 +17,60 @@ import com.openhis.administration.service.IChargeItemDefinitionService;
|
|||||||
* @date 2025-02-20
|
* @date 2025-02-20
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class ChargeItemDefinitionServiceImpl extends ServiceImpl<ChargeItemDefinitionMapper, ChargeItemDefinition> implements IChargeItemDefinitionService {
|
public class ChargeItemDefinitionServiceImpl extends ServiceImpl<ChargeItemDefinitionMapper, ChargeItemDefinition>
|
||||||
|
implements IChargeItemDefinitionService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分页列表
|
||||||
|
*
|
||||||
|
* @param chargeItemDefinition 查询条件
|
||||||
|
* @param pageNo 页码
|
||||||
|
* @param pageSize 页面大小
|
||||||
|
* @return 分页列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Page<ChargeItemDefinition> getPage(ChargeItemDefinition chargeItemDefinition, Integer pageNo,
|
||||||
|
Integer pageSize) {
|
||||||
|
|
||||||
|
LambdaQueryWrapper<ChargeItemDefinition> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(ChargeItemDefinition::getDeleteFlag, DelFlag.NO.getValue());
|
||||||
|
|
||||||
|
//拼接查询条件
|
||||||
|
if (chargeItemDefinition.getStatusEnum() != null) {
|
||||||
|
queryWrapper.eq(ChargeItemDefinition::getStatusEnum, chargeItemDefinition.getStatusEnum());
|
||||||
|
}
|
||||||
|
|
||||||
|
return baseMapper.selectPage(new Page<>(pageNo, pageSize), queryWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增费用定价
|
||||||
|
*
|
||||||
|
* @param chargeItemDefinition 新增内容
|
||||||
|
* @return 新增结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean addChargeItemDefinition(ChargeItemDefinition chargeItemDefinition) {
|
||||||
|
//此判断是为了避免插入时主键重复
|
||||||
|
if (chargeItemDefinition.getId() != null) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return baseMapper.insert(chargeItemDefinition) > 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除费用定价
|
||||||
|
*
|
||||||
|
* @param id 费用定价id
|
||||||
|
* @return 新增结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean deleteChargeItemDefinition(Long id) {
|
||||||
|
if (baseMapper.selectById(id) == null) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return baseMapper.deleteById(id) > 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user