版本更新

This commit is contained in:
Zhang.WH
2025-10-16 17:17:24 +08:00
parent d23a594a4b
commit f515bb8fbb
600 changed files with 7881 additions and 35954 deletions

View File

@@ -152,4 +152,6 @@ public class ChargeItem extends HisBaseEntity {
*/
private Integer tcmFlag;
/** 执行id */
private Long procedureId;
}

View File

@@ -29,4 +29,14 @@ public interface EncounterDiagnosisMapper extends BaseMapper<EncounterDiagnosis>
*/
void deleteTcmByEncounterId(@Param("encounterId") Long encounterId);
/**
* 根据就诊id定义id等查询就诊诊断
*
* @param encounterId 就诊id
* @param conditionDefId 定义id
* @param tenantId 租户
* @return 查询结果
*/
EncounterDiagnosis getEncounterDiagnosisByEncounterConDefId(@Param("encounterId") Long encounterId,
@Param("conditionDefId") Long conditionDefId, @Param("tenantId") Integer tenantId);
}

View File

@@ -1,5 +1,7 @@
package com.openhis.administration.service;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.ChargeItemDefinition;
@@ -17,8 +19,8 @@ public interface IChargeItemDefinitionService extends IService<ChargeItemDefinit
* 获取定价分页列表
*
* @param chargeItemDefinition 定价查询条件
* @param pageNo 页码
* @param pageSize 页面大小
* @param pageNo 页码
* @param pageSize 页面大小
* @return 定价分页列表
*/
Page<ChargeItemDefinition> getPage(ChargeItemDefinition chargeItemDefinition, Integer pageNo, Integer pageSize);
@@ -42,11 +44,28 @@ public interface IChargeItemDefinitionService extends IService<ChargeItemDefinit
/**
* 通过服务管理新增费用定价
*
* @param healthcareService 服务管理
* @param healthcareService 服务管理
* @param chargeItemDefinition 费用定价
* @return 新增结果
*/
boolean addChargeItemDefinitionByHealthcareService(HealthcareService healthcareService, ChargeItemDefinition chargeItemDefinition);
boolean addChargeItemDefinitionByHealthcareService(HealthcareService healthcareService,
ChargeItemDefinition chargeItemDefinition);
/**
* 创建费用定价和详情
*
* @param chargeName 名称
* @param typeCode 财务类别
* @param ybCode 医保类别
* @param unitCode 包装单位
* @param purchasePrice 购入价
* @param retailPrice 零售价
* @param maximumRetailPrice 最高零售价
* @param orgId 机构ID
* @param instanceTable 关联表
* @param instanceId 关联ID
*/
void addChargeItemDefinitionAndDetail(String chargeName, String typeCode, String ybCode, String unitCode,
BigDecimal purchasePrice, BigDecimal retailPrice, BigDecimal maximumRetailPrice, Long orgId,
String instanceTable, Long instanceId);
}

View File

@@ -101,4 +101,19 @@ public interface IChargeItemService extends IService<ChargeItem> {
*/
List<ChargeItemDefInfo> getChargeItemDefInfoByIds(List<Long> chargeItemIds);
/**
* 根据执行id查询收费项目信息
*
* @param procedureIdList 执行id列表
* @return 收费项目信息
*/
List<ChargeItem> getChargeItemByProcedureId(List<Long> procedureIdList);
/**
* 根据执行id列表更新账单状态为待收费
*
* @param procedureIdList 执行id列表
*/
void updatePlannedChargeStatus(List<Long> procedureIdList);
}

View File

@@ -1,11 +1,11 @@
package com.openhis.administration.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.EncounterDiagnosis;
import com.openhis.common.enums.ybenums.YbIptDiseTypeCode;
import java.util.List;
/**
* 就诊诊断管理Service接口
*
@@ -68,4 +68,15 @@ public interface IEncounterDiagnosisService extends IService<EncounterDiagnosis>
* @return 主诊断
*/
EncounterDiagnosis getMainDiagnosis(List<EncounterDiagnosis> list);
/**
* 根据就诊id定义id等查询就诊诊断
*
* @param encounterId 就诊id
* @param conditionDefId 定义id
* @param tenantId 租户
* @return 查询结果
*/
EncounterDiagnosis getEncounterDiagnosisByEncounterConDefId(Long encounterId, Long conditionDefId,
Integer tenantId);
}

View File

@@ -1,16 +1,27 @@
package com.openhis.administration.service.impl;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
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.core.common.utils.DateUtils;
import com.openhis.administration.domain.ChargeItemDefDetail;
import com.openhis.administration.domain.ChargeItemDefinition;
import com.openhis.administration.domain.HealthcareService;
import com.openhis.administration.mapper.ChargeItemDefinitionMapper;
import com.openhis.administration.service.IChargeItemDefDetailService;
import com.openhis.administration.service.IChargeItemDefinitionService;
import com.openhis.common.constant.CommonConstants;
import com.openhis.common.enums.ConditionCode;
import com.openhis.common.enums.DelFlag;
import com.openhis.common.enums.PublicationStatus;
import com.openhis.common.enums.Whether;
/**
* 费用定价管理Service业务层处理
@@ -22,6 +33,9 @@ import com.openhis.common.enums.DelFlag;
public class ChargeItemDefinitionServiceImpl extends ServiceImpl<ChargeItemDefinitionMapper, ChargeItemDefinition>
implements IChargeItemDefinitionService {
@Autowired
private IChargeItemDefDetailService chargeItemDefDetailService;
/**
* 获取分页列表
*
@@ -96,4 +110,48 @@ public class ChargeItemDefinitionServiceImpl extends ServiceImpl<ChargeItemDefin
}
}
/**
* 创建费用定价和详情
*
* @param chargeName 名称
* @param typeCode 财务类别
* @param ybCode 医保类别
* @param unitCode 包装单位
* @param purchasePrice 购入价
* @param retailPrice 零售价
* @param maximumRetailPrice 最高零售价
* @param orgId 机构ID
* @param instanceTable 关联表
* @param instanceId 关联ID
*/
@Override
public void addChargeItemDefinitionAndDetail(String chargeName, String typeCode, String ybCode, String unitCode,
BigDecimal purchasePrice, BigDecimal retailPrice, BigDecimal maximumRetailPrice, Long orgId,
String instanceTable, Long instanceId) {
// 费用定价主表
ChargeItemDefinition chargeItemDefinition = new ChargeItemDefinition().setChargeName(chargeName)
.setStatusEnum(PublicationStatus.ACTIVE.getValue()).setOrgId(orgId).setInstanceTable(instanceTable)
.setInstanceId(instanceId).setEffectiveStart(DateUtils.getNowDate()).setTypeCode(typeCode).setYbType(ybCode)
.setConditionFlag(Whether.YES.getValue()).setPrice(retailPrice);
this.save(chargeItemDefinition);
List<ChargeItemDefDetail> chargeItemDefDetailList = new ArrayList<>();
// 购入价子表(购入价不一定存在)
if (purchasePrice != null) {
ChargeItemDefDetail defDetailPurchase =
new ChargeItemDefDetail().setDefinitionId(chargeItemDefinition.getId())
.setConditionCode(ConditionCode.PURCHASE.getCode()).setAmount(purchasePrice);
chargeItemDefDetailList.add(defDetailPurchase);
}
// 零售价子表
ChargeItemDefDetail defDetailRetail = new ChargeItemDefDetail().setDefinitionId(chargeItemDefinition.getId())
.setConditionCode(ConditionCode.UNIT.getCode()).setConditionValue(unitCode).setAmount(retailPrice);
chargeItemDefDetailList.add(defDetailRetail);
// 最高零售价子表
ChargeItemDefDetail defDetailMaximumRetail =
new ChargeItemDefDetail().setDefinitionId(chargeItemDefinition.getId())
.setConditionCode(ConditionCode.LIMIT.getCode()).setAmount(maximumRetailPrice);
chargeItemDefDetailList.add(defDetailMaximumRetail);
chargeItemDefDetailService.saveBatch(chargeItemDefDetailList);
}
}

View File

@@ -94,7 +94,8 @@ public class ChargeItemServiceImpl extends ServiceImpl<ChargeItemMapper, ChargeI
@Override
public void updateRefundChargeStatus(List<Long> chargeItemIdList) {
baseMapper.update(new ChargeItem().setStatusEnum(ChargeItemStatus.REFUNDING.getValue()),
new LambdaUpdateWrapper<ChargeItem>().in(ChargeItem::getId, chargeItemIdList));
new LambdaUpdateWrapper<ChargeItem>().in(ChargeItem::getId, chargeItemIdList).eq(ChargeItem::getDeleteFlag,
DelFlag.NO.getCode()));
}
/**
@@ -107,7 +108,8 @@ public class ChargeItemServiceImpl extends ServiceImpl<ChargeItemMapper, ChargeI
public void updatePaymentStatus(List<Long> chargeItemIdList, Integer value) {
baseMapper.update(
new ChargeItem().setStatusEnum(value).setPerformerId(SecurityUtils.getLoginUser().getPractitionerId()),
new LambdaUpdateWrapper<ChargeItem>().in(ChargeItem::getId, chargeItemIdList));
new LambdaUpdateWrapper<ChargeItem>().in(ChargeItem::getId, chargeItemIdList).eq(ChargeItem::getDeleteFlag,
DelFlag.NO.getCode()));
}
/**
@@ -149,7 +151,8 @@ public class ChargeItemServiceImpl extends ServiceImpl<ChargeItemMapper, ChargeI
*/
@Override
public List<ChargeItem> getChargeItemInfoByReqId(List<Long> requestIdList) {
return baseMapper.selectList(new LambdaQueryWrapper<ChargeItem>().in(ChargeItem::getServiceId, requestIdList));
return baseMapper.selectList(new LambdaQueryWrapper<ChargeItem>().in(ChargeItem::getServiceId, requestIdList)
.eq(ChargeItem::getDeleteFlag, DelFlag.NO.getCode()));
}
/**
@@ -173,4 +176,30 @@ public class ChargeItemServiceImpl extends ServiceImpl<ChargeItemMapper, ChargeI
public List<ChargeItemDefInfo> getChargeItemDefInfoByIds(List<Long> chargeItemIds) {
return baseMapper.getChargeItemDefInfoByIds(chargeItemIds);
}
/**
* 根据执行id查询收费项目信息
*
* @param procedureIdList 执行id列表
* @return 收费项目信息
*/
@Override
public List<ChargeItem> getChargeItemByProcedureId(List<Long> procedureIdList) {
return baseMapper.selectList(new LambdaQueryWrapper<ChargeItem>()
.in(ChargeItem::getProcedureId, procedureIdList).eq(ChargeItem::getDeleteFlag, DelFlag.NO.getCode()));
}
/**
* 根据执行id列表更新账单状态为待收费
*
* @param procedureIdList 执行id列表
*/
@Override
public void updatePlannedChargeStatus(List<Long> procedureIdList) {
for (Long procedureId : procedureIdList) {
baseMapper.update(new ChargeItem().setStatusEnum(ChargeItemStatus.PLANNED.getValue()),
new LambdaUpdateWrapper<ChargeItem>().eq(ChargeItem::getProcedureId, procedureId)
.eq(ChargeItem::getDeleteFlag, DelFlag.NO.getCode()));
}
}
}

View File

@@ -6,8 +6,6 @@ import java.util.stream.Collectors;
import javax.annotation.Resource;
import com.openhis.common.enums.Whether;
import com.openhis.common.enums.ybenums.YbIptDiseTypeCode;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -16,6 +14,8 @@ import com.openhis.administration.domain.EncounterDiagnosis;
import com.openhis.administration.mapper.EncounterDiagnosisMapper;
import com.openhis.administration.service.IEncounterDiagnosisService;
import com.openhis.clinical.mapper.ConditionMapper;
import com.openhis.common.enums.Whether;
import com.openhis.common.enums.ybenums.YbIptDiseTypeCode;
/**
* 就诊诊断管理Service业务层处理
@@ -86,6 +86,7 @@ public class EncounterDiagnosisServiceImpl extends ServiceImpl<EncounterDiagnosi
/**
* 查询 EncounterDiagnosis
*
* @param diaIdList 诊断主键id
* @return 诊断集合
*/
@@ -104,25 +105,41 @@ public class EncounterDiagnosisServiceImpl extends ServiceImpl<EncounterDiagnosi
*/
@Override
public List<EncounterDiagnosis> getDiagnosisList(Long encounterId, YbIptDiseTypeCode ybIptDiseTypeCode) {
LambdaQueryWrapper<EncounterDiagnosis> queryWrapper = new LambdaQueryWrapper<EncounterDiagnosis>().eq(EncounterDiagnosis::getEncounterId, encounterId);
if(ybIptDiseTypeCode!=null){
queryWrapper.eq(EncounterDiagnosis::getIptDiseTypeCode,ybIptDiseTypeCode.getValue());
LambdaQueryWrapper<EncounterDiagnosis> queryWrapper =
new LambdaQueryWrapper<EncounterDiagnosis>().eq(EncounterDiagnosis::getEncounterId, encounterId);
if (ybIptDiseTypeCode != null) {
queryWrapper.eq(EncounterDiagnosis::getIptDiseTypeCode, ybIptDiseTypeCode.getValue());
}
return baseMapper.selectList(queryWrapper);
}
/**
* 在诊断中筛选主诊断
*
* @param list 诊断集合
* @return 主诊断
*/
@Override
public EncounterDiagnosis getMainDiagnosis(List<EncounterDiagnosis> list) {
for (EncounterDiagnosis encounterDiagnosis : list) {
if(Whether.YES.getValue()==encounterDiagnosis.getMaindiseFlag()){
if (Whether.YES.getValue() == encounterDiagnosis.getMaindiseFlag()) {
return encounterDiagnosis;
}
}
return null;
}
/**
* 根据就诊id定义id等查询就诊诊断
*
* @param encounterId 就诊id
* @param conditionDefId 定义id
* @param tenantId 租户
* @return 查询结果
*/
@Override
public EncounterDiagnosis getEncounterDiagnosisByEncounterConDefId(Long encounterId, Long conditionDefId,
Integer tenantId) {
return baseMapper.getEncounterDiagnosisByEncounterConDefId(encounterId, conditionDefId, tenantId);
}
}