fix(yb): 修复医保模块编译错误

- IYbHttpUtils: 新增 queryYbCatalogue, upload9101, threePartSearch, yb5205SpecialDiseaseDrugRecordSearch, ybToReverse 方法声明
- IYbDao: 新增 reconcileGeneralLedgerDetail, getFinancialSettlement3209AParam, paymentCompareYbSettle(List), getFinancial3203APage 方法声明
- IYbManager: 新增 getPreSettleInfo(4参数) 重载方法声明
- YbController: 修复 Sign 导入冲突(domain.Sign vs dto.Sign)
- domain pom: 新增 spring-web provided 依赖(支持 MultipartFile/ResponseEntity 类型)
This commit is contained in:
2026-06-20 23:44:25 +08:00
parent d9a61e3cfa
commit e4f7b30442
5 changed files with 345 additions and 15 deletions

View File

@@ -22,25 +22,29 @@ import com.healthlink.his.clinical.service.IConditionDefinitionService;
import com.healthlink.his.common.constant.CommonConstants;
import com.healthlink.his.financial.domain.Contract;
import com.healthlink.his.financial.service.IContractService;
import com.healthlink.his.web.ybmanage.dto.*;
import com.healthlink.his.web.ybmanage.dto.Financial3202WebParam;
import com.healthlink.his.web.ybmanage.dto.FinancialHand3201WebParam;
import com.healthlink.his.web.ybmanage.dto.FinancialHand3203AWebParam;
import com.healthlink.his.web.ybmanage.dto.Yb2401InpatientRegParamDto;
import com.healthlink.his.web.ybmanage.dto.Yb5205SpecialDiseaseWebParam;
import com.healthlink.his.web.ybmanage.service.IYbService;
import com.healthlink.his.yb.domain.FinancialApplyRecord;
import com.healthlink.his.yb.domain.InfoPerson;
import com.healthlink.his.yb.domain.InpatientDischarge;
import com.healthlink.his.yb.domain.InpatientReg;
import com.healthlink.his.yb.domain.Sign;
import com.healthlink.his.yb.dto.*;
import com.healthlink.his.yb.dto.Catalogue1312Output;
import com.healthlink.his.yb.dto.Clinic2208UnSetlInfoOutput;
import com.healthlink.his.yb.dto.Financial3203AWebParam;
import com.healthlink.his.yb.dto.Info1101Output;
import com.healthlink.his.yb.dto.PatientInfoDto;
import com.healthlink.his.yb.dto.Result;
import com.healthlink.his.yb.dto.Settlement3201WebParam;
import com.healthlink.his.yb.dto.Settlement3202WebParam;
import com.healthlink.his.yb.dto.Settlement3209AWebParam;
import com.healthlink.his.yb.dto.Yb2401InputInpatientMdtrtInfo;
import com.healthlink.his.yb.dto.Yb2402InputParam;
import com.healthlink.his.yb.dto.Yb2403InputParam;
import com.healthlink.his.yb.dto.Yb2404InputInpatient;
import com.healthlink.his.yb.dto.Yb2405InputInpatient;
import com.healthlink.his.yb.dto.Yb2601InputParam;
import com.healthlink.his.yb.dto.Yb5205InputSpecialDisease;
import com.healthlink.his.yb.dto.Yb5205OutputSpecialDisease;
import com.healthlink.his.yb.service.IPerinfoService;
import com.healthlink.his.yb.service.YbDao;
import com.healthlink.his.yb.service.YbHttpUtils;
import com.healthlink.his.yb.service.IYbDao;
import com.healthlink.his.yb.service.IYbHttpUtils;
import com.healthlink.his.yb.util.CommonConstant;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -76,9 +80,9 @@ public class YbController {
private static final Logger log = LoggerFactory.getLogger(YbController.class);
@Autowired
YbDao ybDao;
IYbDao ybDao;
@Autowired
YbHttpUtils ybHttpUtils;
IYbHttpUtils ybHttpUtils;
@Autowired
IPatientService patientService;
@Autowired

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
@@ -100,6 +100,12 @@
</exclusion>
</exclusions>
</dependency>
<!-- Spring Web (for MultipartFile/ResponseEntity in service interfaces) -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,123 @@
package com.healthlink.his.yb.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.healthlink.his.financial.domain.Contract;
import com.healthlink.his.yb.domain.ClinicReg;
import com.healthlink.his.yb.domain.FinancialApplyRecord;
import com.healthlink.his.yb.domain.InpatientDischarge;
import com.healthlink.his.yb.domain.InpatientReg;
import com.healthlink.his.yb.domain.InpatientSettle;
import com.healthlink.his.yb.dto.Sign;
import com.healthlink.his.yb.dto.*;
import com.healthlink.his.yb.enums.YbMdtrtCertType;
import com.healthlink.his.yb.enums.YbMedType;
import com.healthlink.his.yb.model.Clinic2207OrderModel;
import com.healthlink.his.yb.model.Clinic2207OrderParam;
import com.healthlink.his.financial.model.PaymentedItemModel;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 医保数据访问接口
*/
public interface IYbDao {
// === 基础方法 ===
Info1101ReadcardParam getReadCard(String certType, String certNo);
void saveReadcardAndPerinfo(Info1101ReadcardParam readcard, Info1101Output perInfo);
Sign getSignParam(String id, String mac, String ip);
PatientInfoDto getPatent(Info1101Output perInfo);
// === 挂号相关 ===
ClinicReg getReg(YbMdtrtCertType ybMdtrtCertTypeLong, String busiCardInfo, Long encounterId, YbMedType medType, Integer tenantId);
void saveReg(ClinicReg2201Output regResult);
void UpdateRegByMdtrtId(ClinicReg regResult);
ClinicReg getUnReg(Long encounterId, Integer tenantId);
ClinicReg get2202Reg(Long id, Integer tenantId);
ClinicReg2201Output getClinicRegByEncounterId(Long encounterId);
void saveUnReg(ClinicReg2201Output regResult);
// === 门诊结算相关 ===
Clinic2203MedicalParam getClinicMedical2203Param(Long encounterId, Integer tenantId, ClinicReg2201Output reg2201Output, com.healthlink.his.yb.enums.YbMedType ybMedType);
Clinic2204OrderParam getClinicOrder2204Param(Integer tenantId, List<PaymentedItemModel> paymentedItemList, ClinicReg2201Output reg2201Output);
Clinic2206OrderParam getClinicOrder2206Param(BigDecimal payFee, ClinicReg2201Output reg, String chrgBchno, String busiCardInfo);
Clinic2205OrderParam getClinic2205OrderParam(Long encounterId, String chrgBchno);
Clinic2207OrderParam getClinicOrder2207(Long encounterId, Integer tenantId, String psnSetlWay, String chrgBchno, String medType);
Clinic2208UnSetlInfoParam getClinicOrder2208(Integer tenantId, String settleId);
void saveClinic2207OrderResult(String paymentNo, Clinic2207OrderParam clinicOrder2207, Clinic2207OrderModel clinic2207OrderResult);
void saveClinic2207Record(Clinic2207OrderParam clinicOrder2207, Clinic2207OrderModel clinic2206OrderResult);
void saveClinic2207Record(String paymentNo, Clinic2207OrderParam clinicOrder2207, Clinic2207OrderModel clinic2206OrderResult);
void saveClinicOrder2206Param(Clinic2206OrderParam clinic2206OrderParam, Clinic2206OrderOutput clinic2206OrderResult, Clinic2203MedicalParam medical2203Param, Clinic2204OrderParam clinic2204OrderParam, Clinic2204OrderResult clinic2204OrderResult);
void saveUnSettleRecord(String settleId, Clinic2208UnSetlInfoParam clinicOrder2207, Clinic2208UnSetlInfoOutput clinic2208UnSetlInfoOutput);
void saveSign(Sign signParam, Sign9001Result signResult);
// === 目录审核相关 ===
MedicalDirectory3301Param getMedicalDirectory3301Param(String tableName, Long id);
MedicalDirectory3301Param getMedicalDirectory3301ParamMedication(String categoryCode, String busNo, String name, String ybNo);
MedicalDirectory3302Param getMedicalDirectory3302Param(String tableName, Long id);
MedicalDirectory3302Param getMedicalDirectory3302ParamMedication(String categoryCode, String busNo, String ybNo);
void saveDirectoryHistory(String tableName, Long id, Integer s, MedicalDirectory3301Param medicalDirectory3301Param);
void saveDirectoryHistory(String tableName, Long id, Integer s, MedicalDirectory3302Param medicalDirectory3302Param);
// === 对账相关 ===
Financial3201Param getFinancial3201Param(Settlement3201WebParam reconciliation3201Param);
void saveReconcileGeneralLedger(Financial3201Output financial3201Output, Financial3201Param financial3201Param);
List<Financial3202FileParam> paymentCompareYbSettle(Settlement3202WebParam settlement3202WebParam);
List<Financial3202FileParam> paymentCompareYbSettle(List<String> settlementIdList);
FinancialSettlement3202Param getFinancialSettlement3202Param(List<String> settlementIdList, BigDecimal a, BigDecimal b);
FinancialSettlement3209AParam getFinancialSettlement3209AParam(Settlement3209AWebParam settlement3209AWebParam);
List<Settlement3201DetailDto> reconcileGeneralLedgerDetail(Settlement3201WebParam settlement3201WebParam);
// === 清算相关 ===
Clearing3205AParma getClearing3205AParma(Clearing3205AWebParma clearing3205AWebParma);
Financial3203AParam getFinancial3203AParam(Financial3203AWebParam financial3203AWebParam);
Financial3203AParam getFinancial3203AParam(List<Financial3202FileParam> financial3202FileParams, String beginTime, String endTime, String clrType, String clrOptins);
Financial3203AParam getFinancial3203AParamForTime(Financial3203AParam financial3203AParam, String beginTime, String endTime);
Financial3203AParam getInitFinancial3203AParam(List<Financial3202FileParam> financial3202FileParams);
void save3203AFinancialClearingApplycation(Financial3203AParam financial3203AParam, String s);
void save3204AFinancialClearingApplycation(String clrAppyEvtId, String clrOptins);
FinancialApplyRecord getFinancial3204ParamByClrAppyEvtId(String clrAppyEvtId);
Page<FinancialApplyRecord> getFinancial3203APage(String searchKey, Integer pageNo, Integer pageSize, jakarta.servlet.http.HttpServletRequest request);
// === 库存相关 ===
MedicalInventory3501Param getMedicalInventory3501Param(Long id, Integer talentId);
MedicalInventory3502Param getMedicalInventory3502Param(Long id, String invChgType, Integer talentId);
Medical3503Param getMedical3503Param(Long id, Integer talentId);
Medical3505Param getMedical3505Param(Long id, String ListType, Integer talentId);
Medical3506Param getMedical3506Param(Long id, String ListType, Integer talentId);
Medical3507Param getMedical3507Param(Long id, String invDataType);
MedicalPurchase3504Param getMedicalPurchase3504Param(Long id, Integer talentId);
void saveInventoryCheckRecord(MedicalInventory3501Param medicalInventory3501Param, String resultMessage);
void saveInventoryChangeRecord(MedicalInventory3502Param medicalInventory3502Param, String resultMessage);
void saveInventoryPurchaseRecord(Medical3503Param medical3503Param, String resultMessage);
void saveInventoryPurchaseReturnRecord(MedicalPurchase3504Param medicalPurchase3504Param, String resultMessage);
void saveInventorySaleRecord(Medical3505Param medical3505Param, String retRslt);
void saveInventorySaleReturnRecord(Medical3506Param medical3506Param, String retRslt);
void saveInventoryDelRecord(Medical3507Param medical3507Param);
// === 住院相关 ===
void save2401InpatientReg(InpatientReg inpatientReg);
void save2402InpatientDscg(InpatientDischarge inpatientReg);
void save2403InputInpatient(Yb2403InputParam yb2403InputParam);
void updateInpatientRegById(InpatientReg inpatientReg);
Yb2401InputInpatientMdtrtInfo getYb2401InputInpatientMdtrtInfo(Long encounterId);
Yb2402InputParam getYb2402InputInpatientDscgInfo(Long encounterId, Contract contract);
Yb2403InputParam getYb2403InputParam(Long encounterId);
Yb2404InputInpatient getYb2404InputInpatient(Long encounterId);
Yb2405InputInpatient getYb2405InputInpatient(Long encounterId);
// === 费用明细相关 ===
Yb2301InputFeeDetailModel getYb2301FeeDetailParam(Long encounterId, List<Long> chargeItemIds);
Yb2302InputInpatient getYb2302InpatientParam(Long chargeItemId);
Yb2303InputInpatient getYb2303InpatientPram(Long encounterId, List<Long> chargeItemIds);
Yb2304InputInpatient getYb2304InpatientParam(PaymentInpatientDto paymentDto);
Yb2305InputInpatient getYb2305InpatientParam(InpatientSettle inpatientSettle);
void save2301YbFeeDetail(List<Yb2301OutputResult> yb2301OutputResults, List<Yb2301InputFeeDetail> feedetail, Long encounterId);
void save2303InpatientPreSettle(Yb2303OutputSetInfo yb2303OutputSetInfo);
// === 特病相关 ===
Yb5205InputSpecialDisease yb5205SpecialDiseaseDrugRecordSearch(Long patientId, Date begntime, Date endtime);
}

View File

@@ -0,0 +1,103 @@
package com.healthlink.his.yb.service;
import com.healthlink.his.financial.domain.Contract;
import com.healthlink.his.yb.domain.ClinicReg;
import com.healthlink.his.yb.domain.InpatientReg;
import com.healthlink.his.yb.dto.Sign;
import com.healthlink.his.yb.dto.*;
import com.healthlink.his.yb.model.Clinic2207OrderModel;
import com.healthlink.his.yb.model.Clinic2207OrderParam;
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;
import tools.jackson.databind.JsonNode;
import java.util.List;
/**
* 医保HTTP工具接口
*/
public interface IYbHttpUtils {
// === 基础方法 ===
Info1101Output getPerInfo(Info1101ReadcardParam readcard);
Sign9001Result sign(Sign signParam, Contract contract);
FileResult queryCatalog(CatalogFileInput catalogFileInput);
String downLoadFile(FileResult fileResult);
// === 挂号相关 ===
ClinicReg2201Output reg(ClinicReg reg, Contract contract);
ClinicReg2201Output cancelReg(ClinicReg reg, Contract contract);
// === 门诊结算相关 ===
Result upload2203Record(Clinic2203MedicalParam medical2203Param, Contract contract);
Clinic2204OrderResult upload2204Record(Clinic2204OrderParam clinic2204OrderParam, Contract contract);
Clinic2206OrderOutput upload2206Record(Clinic2206OrderParam clinic2206OrderParam, Contract contract);
Clinic2207OrderModel settle(Clinic2207OrderParam clinicOrder2207, Contract contract);
void unPreSettle(Clinic2205OrderParam clinic2205OrderParam, Contract contract);
Clinic2208UnSetlInfoOutput unSettle(Clinic2208UnSetlInfoParam clinicOrder2208, Contract contract);
// === 目录审核相关 ===
Result directoryCheck(MedicalDirectory3301ListParam medicalDirectory3301ListParam);
Result directoryUnCheck(MedicalDirectory3302Param medicalDirectory3302Param);
// === 对账相关 ===
Result reconcileGeneralLedger(Financial3201Param financial3201Param);
FinancialSettlement3202Result reconcileGeneralLedgerDetail(FinancialSettlement3202Param financial3202Param);
// === 清算相关 ===
String applyFinancialClearing(Financial3203AParam financial3203AParam);
Result cancelFinancialClearing(Financial3204Param financial3204Param);
Clearing3205AResult getFinancialClearingStatus(Clearing3205AParma clearing3205AParma);
Result getClrOptins(Clearing3206AParam clearing3206AParam);
// === 库存相关 ===
Result uploadInventoryCount(MedicalInventory3501Param medicalInventory3501Param);
Result updateInventoryCount(MedicalInventory3502Param medicalInventory3502Param);
Result procurement(Medical3503Param medical3503Param);
Result cancelProcurement(MedicalPurchase3504Param medicalPurchase3504Param);
Result merchandise(Medical3505Param medical3505Param, Contract contract);
Result cancelMerchandise(Medical3506Param medical3506Param, Contract contract);
Result deleteGoodsInfo(Medical3507Param medical3507Param);
MedicalInventory3511Output querySalesInfo(MedicalInventory3511Param medicalInventory3511Param);
Result query3512(MedicalInventory3512Param inventory3512Param, Contract contract);
Result query3513(MedicalInventory3513Param inventory3513Param, Contract contract);
// === 住院相关 ===
InpatientReg inpatientReg(JsonNode jsonObject, String contractNo);
Yb2402InputParam inpatientCheckOut(Yb2402InputParam yb2402InputInpatientDscgInfo, String contractNo);
void cancelInpatientCheckOut(Yb2405InputInpatient yb2405InputInpatient, String contractNo);
void updateInpatientInfo(Yb2403InputParam yb2403InputInpatient, String contractNo);
void cancelInpatientReg(Yb2404InputInpatient yb2404InputInpatient, String contractNo);
// === 住院结算相关 ===
Yb2303OutputSetInfo inpatientPreSettle(Yb2303InputInpatient yb2303InputInpatient);
Yb2304OutputSetlInfo inpatientSettle(Contract contract, Yb2304InputInpatient yb2304InpatientParam);
Yb2305OutputSetlInfo inpatientUnSettle(Contract contract, Yb2305InputInpatient yb2305InpatientParam);
void cancel2302FeeDetailUp(Yb2302InpatientParam yb2302InpatientParam, Contract contract);
// === 费用明细相关 ===
Yb3101OutputResult yb3101PreMidAnalysis(Yb3101InputData data);
void yb3103PreMidFeedback(Yb3103InputData data);
// === 费用上传相关 ===
void yb4101Up(Yb4101AInputData yb4101AInputData, Contract contract);
void yb4102Up(Yb4102InputStastInfo yb4102InputStastInfo);
// === 电子病历相关 ===
void emrUp(Yb4401InputDto yb4401InputDto);
// === 目录查询相关 ===
List<Catalogue1312Output> queryYbCatalogue(Catalogue1312QueryParam catalogue1312QueryParam);
// === 文件上传相关 ===
ResponseEntity<String> upload9101(MultipartFile file, String filename);
// === 三方查询相关 ===
List<FinancialSettlement3209AResult> threePartSearch(FinancialSettlement3209AParam financialSettlement3209AParam);
// === 特病查询相关 ===
List<Yb5205OutputSpecialDisease> yb5205SpecialDiseaseDrugRecordSearch(Yb5205InputSpecialDisease yb5205InputSpecialDisease);
// === 冲销相关 ===
void ybToReverse(Yb2601InputParam toReverse, Contract contract);
}

View File

@@ -0,0 +1,94 @@
package com.healthlink.his.yb.service;
import com.core.common.core.domain.R;
import com.healthlink.his.administration.domain.Organization;
import com.healthlink.his.administration.domain.Patient;
import com.healthlink.his.administration.domain.Organization;
import com.healthlink.his.administration.domain.Practitioner;
import com.healthlink.his.administration.domain.Practitioner;
import com.healthlink.his.financial.domain.Contract;
import com.healthlink.his.financial.model.PaymentResult;
import com.healthlink.his.financial.model.PaymentedItemModel;
import com.healthlink.his.yb.domain.ClinicReg;
import com.healthlink.his.yb.domain.InpatientSettle;
import com.healthlink.his.yb.dto.*;
import com.healthlink.his.yb.enums.YbMdtrtCertType;
import com.healthlink.his.yb.enums.YbMedType;
import com.healthlink.his.yb.model.*;
import com.healthlink.his.yb.dto.*;
import java.util.Date;
import java.util.List;
/**
* 医保服务接口
*/
public interface IYbManager {
R<?> getPerInfo(String certType, String certNo);
ClinicReg2201Output createRegWithMedType(Contract contract, YbMdtrtCertType ybMdtrtCertTypeLong,
String busiCardInfo, Long encounterId, YbMedType medType);
R<?> cancelReg(CancelRegPaymentModel cancelRegPaymentDto);
R<?> cancelRegById(ClinicReg clinicReg);
Clinic2206OrderOutput getPreSettleInfo(OutpatientRegistrationModel cancelRegPaymentModel,
Patient patient, Organization organization, Practitioner doctor);
Clinic2206OrderOutput preSettle(Contract contract, Long encounterId, YbMdtrtCertType ybMdtrtCertType,
String busiCardInfo, ClinicReg2201Output reg2201Output, String payWay,
List<PaymentedItemModel> paymentedItemList, YbMedType ybMedType);
R<?> unSettle(String settleId);
R<?> directoryCheck(String tableName, Long id);
R<?> directoryCheckMedication(String categoryCode, String busNo, String name, String ybNo);
R<?> directoryUnCheck(String tableName, Long id);
R<?> reconcileGeneralLedger(Settlement3201WebParam settlement3201WebParam);
R<?> reconcileGeneralLedgerDetail(Settlement3202WebParam settlement3202WebParam);
R<?> threePartSearch(Settlement3209AWebParam settlement3209AWebParam);
R<?> applyFinancialClearing(Financial3203AWebParam financial3203AWebParam);
R<?> cancelFinancialClearing(String clrAppyEvtId, String clrOptins);
R<?> getFinancialClearingStatus(Clearing3205AWebParma clearing3205AWebParma);
R<?> uploadInventoryCount(MedicalInventory3501Param medicalInventory3501Param, Date stocktakingTime);
R<?> updateInventoryCount(MedicalInventory3502Param medicalInventory3502Param);
R<?> procurement(Medical3503Param medical3503Param);
R<?> cancelProcurement(MedicalPurchase3504Param medicalPurchase3504Param);
R<?> merchandise(Medical3505Param medical3505Param, Contract contract);
R<?> cancelMerchandise(Medical3506Param medical3506Param, Contract contract);
R<?> deleteGoodsInfo(Long id, String listType);
Clinic2207OrderModel settle(Contract contract, String chrgBchno, String busiCardInfo,
YbMdtrtCertType ybMdtrtCertType, Integer minpacuntDrugTracCnt, Integer mcsTracCnt);
PaymentResult settle(Contract contract, String chrgBchno);
ClinicReg2201Output getClinicRegByEncounterId(Long encounterId);
void unPreSettle(Long encounterId, String s);
Yb2303OutputSetInfo preSettleInpatient(PrePaymentDto prePaymentDto);
Yb2304OutputSetlInfo inpatientSettle(Contract contract, PaymentInpatientDto paymentDto);
Yb2305OutputSetlInfo inpatientUnSettle(Contract contract, InpatientSettle inpatientSettle);
void hospitalAdmission();
}