提交merge1.3

This commit is contained in:
2025-12-27 15:30:25 +08:00
parent 8c607c8749
commit 088861f66e
1245 changed files with 220442 additions and 77616 deletions

View File

@@ -8,7 +8,11 @@ import com.openhis.yb.domain.InpatientDischarge;
import com.openhis.yb.domain.InpatientReg;
/**
<<<<<<< HEAD
* TODO:请概括描述当前接口的主要用途和注意事项
=======
* 出院办理服务接口
>>>>>>> v1.3
*
* @author SunJQ
* @date 2025-07-31
@@ -17,4 +21,8 @@ import com.openhis.yb.domain.InpatientReg;
public interface IInpatientDischargeService extends IService<InpatientDischarge> {
<<<<<<< HEAD
=======
InpatientDischarge getByMdtrtId(String mdtrtId);
>>>>>>> v1.3
}

View File

@@ -4,5 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.yb.domain.InfoPerson;
import com.openhis.yb.domain.InpatientFeeDetail;
import java.util.List;
public interface IInpatientFeeDetailService extends IService<InpatientFeeDetail> {
/**
* 获取住院费用明细列表
* @param mdtrtId 医保就诊id
* @return 集合
*/
List<InpatientFeeDetail> getFeeDetailList(String mdtrtId);
}

View File

@@ -0,0 +1,11 @@
package com.openhis.yb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.yb.domain.InpatientPreSettle;
import com.openhis.yb.domain.InpatientSettle;
import java.util.List;
public interface IInpatientPreSettleService extends IService<InpatientPreSettle> {
}

View File

@@ -22,4 +22,18 @@ public interface IInpatientRegService extends IService<InpatientReg> {
* @return 医保住院挂号信息
*/
InpatientReg getInpatientRegByIptNo(String busNo);
/**
* 根据mdtrtId查询住院挂号信息
* @param mdtrtId 业务流水号
* @return 医保住院挂号信息
*/
InpatientReg getInpatientRegByMdtrtId(String mdtrtId);
/**
* 根据encounterId查询住院挂号信息
* @param mdtrtId 业务流水号
* @return 医保住院挂号信息
*/
InpatientReg getInpatientRegByEncounterId(String mdtrtId);
}

View File

@@ -1,14 +1,24 @@
package com.openhis.yb.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.yb.domain.InpatientSettle;
public interface IInpatientSettleService extends IService<InpatientSettle> {
/**
* 根据医保结算id找到住院结算id
*
* @param ybSettleIds
* @return
*/
InpatientSettle getBySettleId(String ybSettleIds);
/**
* 根据就诊id查询到患者结算信息集合
*
* @param mdtrtId
* @return
*/
List<InpatientSettle> getByMdtrtId(String mdtrtId);
}

View File

@@ -16,6 +16,7 @@ import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.NotNull;
import com.core.common.enums.DelFlag;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -161,6 +162,8 @@ public class YbDao {
@Autowired
private IInpatientFeeDetailService inpatientFeeDetailService;
@Autowired
private IInpatientPreSettleService inpatientPreSettleService;
@Autowired
private YbParamBuilderUtil ybUtil;
@Autowired
private IMedicationDispenseService medicationDispenseService;
@@ -1249,7 +1252,7 @@ public class YbDao {
public PatientInfoDto getPatent(Info1101Output perInfo) {
// 查患者信息
Patient patient =
iPatientService.getOne(new LambdaQueryWrapper<Patient>().eq(Patient::getIdCard, perInfo.getCertno()));
iPatientService.getOne(new LambdaQueryWrapper<Patient>().eq(Patient::getIdCard, perInfo.getCertno()).last(YbCommonConstants.sqlConst.LIMIT1));
if (patient == null) {
patient = new Patient();
// 处理性别字段
@@ -2186,7 +2189,7 @@ public class YbDao {
chargeItemBaseInfoDtosList.add(chargeItemBaseInfoDto);
}
}
// 计算医疗总费用
// 计算医疗总费用(这里总费用的计算方式很多种现在用的是最老笨的除了这个还可以去2303和2302去取值)
BigDecimal medfee_sumamt = BigDecimal.ZERO;
for (ChargeItemBaseInfoDto chargeItemBaseInfoDto : chargeItemBaseInfoDtosList) {
medfee_sumamt = medfee_sumamt.add(chargeItemBaseInfoDto.getTotalPrice());
@@ -2516,8 +2519,8 @@ public class YbDao {
}
// 拼装参数
yb2402InputParam.setYb2402InputInpatientDiseInfo(yb2402InputInpatientDiseInfos);
yb2402InputParam.setYb2402InputInpatientDscgInfo(yb2402InputInpatientDscgInfo);
yb2402InputParam.setDiseinfo(yb2402InputInpatientDiseInfos);
yb2402InputParam.setDscginfo(yb2402InputInpatientDscgInfo);
return yb2402InputParam;
}
@@ -2860,4 +2863,104 @@ public class YbDao {
inpatientRegInfoUpdateRecordeService.save(inpatientRegInfoUpdateRecorde);
}
<<<<<<< HEAD
=======
public void updateInpatientRegById(InpatientReg inpatientReg) {
inpatientRegService.updateById(inpatientReg);
}
public void save2301YbFeeDetail(List<Yb2301OutputResult> yb2301OutputResults,List<Yb2301InputFeeDetail> feedetail,Long encounterId) {
List<InpatientFeeDetail> feeDetailList = new ArrayList<>();
InpatientFeeDetail inpatientFeeDetail;
for (Yb2301OutputResult yb2301OutputResult : yb2301OutputResults) {
Optional<Yb2301InputFeeDetail> first = feedetail.stream().filter(yb2301InputFeeDetail -> yb2301InputFeeDetail.getFeedetlSn().equals(yb2301OutputResult.getFeedetlSn())).findFirst();
if (!first.isPresent()) {
continue;
}
Yb2301InputFeeDetail yb2301InputFeeDetail = first.get();
inpatientFeeDetail = new InpatientFeeDetail();
inpatientFeeDetail.setFeedetlSn(yb2301OutputResult.getFeedetlSn())
.setDetItemFeeSumamt(yb2301OutputResult.getDetItemFeeSumamt())
.setInitFeedetlSn(yb2301InputFeeDetail.getInitFeedetlSn())
.setMdtrtId(yb2301InputFeeDetail.getMdtrtId())
.setDrordNo(yb2301InputFeeDetail.getDrordNo())
.setPsnNo(yb2301InputFeeDetail.getPsnNo())
.setMedType(yb2301InputFeeDetail.getMedType())
.setFeeOcurTime(yb2301InputFeeDetail.getFeeOcurTime())
.setMedinsListCodg(yb2301InputFeeDetail.getMedinsListCodg())
.setDetItemFeeSumamt(yb2301OutputResult.getDetItemFeeSumamt())
.setCnt(yb2301InputFeeDetail.getCnt())
.setPric(yb2301InputFeeDetail.getPric())
.setBilgDeptCodg(yb2301InputFeeDetail.getBilgDeptCodg())
.setBilgDeptName(yb2301InputFeeDetail.getBilgDeptName())
.setBilgDrCodg(yb2301InputFeeDetail.getBilgDrCodg())
.setBilgDrName(yb2301InputFeeDetail.getBilgDrName())
.setPricUplmtAmt(yb2301OutputResult.getPricUplmtAmt())
.setSelfpayProp(yb2301OutputResult.getSelfpayProp())
.setFulamtOwnpayAmt(yb2301OutputResult.getFulamtOwnpayAmt())
.setOverlmtAmt(yb2301OutputResult.getOverlmtAmt())
.setPreselfpayAmt(yb2301OutputResult.getPreselfpayAmt())
.setInscpScpAmt(yb2301OutputResult.getInscpScpAmt())
.setChrgitmLv(yb2301OutputResult.getChrgitmLv())
.setMedChrgitmType(yb2301OutputResult.getMedChrgitmType())
.setBasMednFlag(yb2301OutputResult.getBasMednFlag())
.setHiNegoDrugFlag(yb2301OutputResult.getHiNegoDrugFlag())
.setChldMedcFlag(yb2301OutputResult.getChldMedcFlag())
.setListSpItemFlag(yb2301OutputResult.getListSpItemFlag())
.setLmtUsedFlag(yb2301OutputResult.getLmtUsedFlag())
.setDrtReimFlag(yb2301OutputResult.getDrtReimFlag())
.setEncounterId(encounterId);
//
feeDetailList.add(inpatientFeeDetail);
}
inpatientFeeDetailService.saveBatch(feeDetailList);
}
public void save2303InpatientPreSettle(Yb2303OutputSetInfo yb2303OutputSetInfo) {
InpatientPreSettle inpatientPreSettle = new InpatientPreSettle();
inpatientPreSettle.setPsnNo(yb2303OutputSetInfo.getPsnNo())
.setPsnName(yb2303OutputSetInfo.getPsnName())
.setPsnCertType(yb2303OutputSetInfo.getPsnCertType())
.setCertno(yb2303OutputSetInfo.getCertno())
.setGend(yb2303OutputSetInfo.getGend())
.setNaty(yb2303OutputSetInfo.getNaty())
.setBrdy(yb2303OutputSetInfo.getBrdy())
.setAge(yb2303OutputSetInfo.getAge())
.setPsnType(yb2303OutputSetInfo.getPsnType())
.setCvlservFlag(yb2303OutputSetInfo.getCvlservFlag())
.setSetlTime(yb2303OutputSetInfo.getSetlTime())
.setMedType(yb2303OutputSetInfo.getMedType())
.setActPayDedc(yb2303OutputSetInfo.getActPayDedc())
.setHifpPay(yb2303OutputSetInfo.getHifpPay())
.setPoolPropSelfpay(yb2303OutputSetInfo.getPoolPropSelfpay())
.setCvlservPay(yb2303OutputSetInfo.getCvlservPay())
.setHifesPay(yb2303OutputSetInfo.getHifesPay())
.setHifmiPay(yb2303OutputSetInfo.getHifmiPay())
.setHifobPay(yb2303OutputSetInfo.getHifobPay())
.setMafPay(yb2303OutputSetInfo.getMafPay())
.setOthPay(yb2303OutputSetInfo.getOthPay())
.setFundPaySumamt(yb2303OutputSetInfo.getFundPaySumamt())
.setPsnPartAmt(yb2303OutputSetInfo.getPsnPartAmt())
.setAcctPay(yb2303OutputSetInfo.getAcctPay())
.setPsnCashPay(yb2303OutputSetInfo.getPsnCashPay())
.setHospPartAmt(yb2303OutputSetInfo.getHospPartAmt())
.setBalc(yb2303OutputSetInfo.getBalc())
.setAcctMulaidPay(yb2303OutputSetInfo.getAcctMulaidPay())
.setMedinsSetlId(yb2303OutputSetInfo.getMedinsSetlId())
.setClrOptins(yb2303OutputSetInfo.getClrOptins())
.setClrWay(yb2303OutputSetInfo.getClrWay())
.setClrType(yb2303OutputSetInfo.getClrType())
.setHifdmPay(yb2303OutputSetInfo.getHifdmPay());
//inpatientPreSettle.setInputParam(JSON.toJSONString(yb2303OutputSetInfo));
inpatientPreSettle.setOutputResult(JSON.toJSONString(yb2303OutputSetInfo));
inpatientPreSettleService.save(inpatientPreSettle);
}
>>>>>>> v1.3
}

View File

@@ -11,8 +11,11 @@ import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
<<<<<<< HEAD
import com.openhis.yb.domain.InpatientDischarge;
import com.openhis.yb.domain.InpatientReg;
=======
>>>>>>> v1.3
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
@@ -50,6 +53,7 @@ import com.openhis.financial.domain.Contract;
import com.openhis.financial.service.IContractService;
import com.openhis.financial.service.impl.ContractServiceImpl;
import com.openhis.yb.domain.ClinicReg;
import com.openhis.yb.domain.InpatientReg;
import com.openhis.yb.dto.*;
import com.openhis.yb.model.Clinic2207OrderModel;
import com.openhis.yb.model.Clinic2207OrderParam;
@@ -589,10 +593,10 @@ public class YbHttpUtils {
return result;
}
public Result merchandise(Medical3505Param medical3505Param) {
public Result merchandise(Medical3505Param medical3505Param, Contract contract) {
// 发送请求
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/merchandise",
medical3505Param, null);
medical3505Param, contract);
if (StringUtils.isEmpty(s)) {
throw new ServiceException("未接收到医保返回参数");
}
@@ -607,10 +611,10 @@ public class YbHttpUtils {
return result;
}
public Result cancelMerchandise(Medical3506Param medical3506Param) {
public Result cancelMerchandise(Medical3506Param medical3506Param, Contract contract) {
// 发送请求
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/cancel-merchandise",
medical3506Param, null);
medical3506Param, contract);
if (StringUtils.isEmpty(s)) {
throw new ServiceException("未接收到医保返回参数");
}
@@ -708,6 +712,42 @@ public class YbHttpUtils {
return result;
}
public Result query3512(MedicalInventory3512Param inventory3512Param, Contract contract) {
// 发送请求
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/query-3512-info",
inventory3512Param, contract);
if (StringUtils.isEmpty(s)) {
throw new ServiceException("未接收到医保返回参数");
}
// 参数处理
ObjectMapper mapper = new ObjectMapper();
Result result = null;
try {
result = mapper.readValue(s, Result.class);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public Result query3513(MedicalInventory3513Param inventory3513Param, Contract contract) {
// 发送请求
String s = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/query-3513-info",
inventory3513Param, contract);
if (StringUtils.isEmpty(s)) {
throw new ServiceException("未接收到医保返回参数");
}
// 参数处理
ObjectMapper mapper = new ObjectMapper();
Result result = null;
try {
result = mapper.readValue(s, Result.class);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* 发送http请求2025/05/02经测试若以自带的工具类发送请求失败故使用原peis系统中成功调用的写法重新封装
*
@@ -722,8 +762,8 @@ public class YbHttpUtils {
baseParam.setBaseInfo(ybParamBuilderUtil.getBaseInfo(parseObject(JSON.toJSONString(o)), contract)).setData(o);
logger.info("【请求路径】:" + url + ";【入参】: " + JSON.toJSONString(baseParam));
// 创建Http请求
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(30000).setConnectionRequestTimeout(30000)
.setSocketTimeout(30000).build();
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(300000)
.setConnectionRequestTimeout(300000).setSocketTimeout(300000).build();
CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(requestConfig).build();
CloseableHttpResponse response = null;
// 发送请求
@@ -1095,6 +1135,7 @@ public class YbHttpUtils {
Result result = null;
try {
result = mapper.readValue(resultString, Result.class);
<<<<<<< HEAD
if (result == null) {
throw new ServiceException("未接收到医保返回参数");
} else if (result.getCode() == 200) {
@@ -1107,6 +1148,20 @@ public class YbHttpUtils {
logger.error(e.getMessage(), e);
}
return null;
=======
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
if (result == null) {
throw new ServiceException("未接收到医保返回参数");
} else if (result.getCode() == 200) {
System.out.println(result.getResult().toString());
return JSON.parseObject(JSON.toJSONString(result.getResult()), FileResult.class);
} else {
return new FileResult().setErrMsg(result.getMessage());
}
>>>>>>> v1.3
}
/**
@@ -1115,7 +1170,11 @@ public class YbHttpUtils {
* @param fileResult
* @return
*/
<<<<<<< HEAD
public FileResult downLoadFile(FileResult fileResult) {
=======
public String downLoadFile(FileResult fileResult) {
>>>>>>> v1.3
String resultString =
httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/download", fileResult, null);
if (StringUtils.isEmpty(resultString)) {
@@ -1131,7 +1190,11 @@ public class YbHttpUtils {
throw new ServiceException("未接收到医保返回参数");
} else if (result.getCode() == 200) {
System.out.println(result.getResult().toString());
<<<<<<< HEAD
return JSON.parseObject(JSON.toJSONString(result.getResult()), FileResult.class);
=======
return result.getResult().toString();
>>>>>>> v1.3
} else {
throw new ServiceException(result.getMessage());
}
@@ -1144,6 +1207,7 @@ public class YbHttpUtils {
/**
* 【2401】住院办理
*
<<<<<<< HEAD
* @param yb2401InputInpatientMdtrtInfo 入參
* @return 結果
*/
@@ -1151,6 +1215,15 @@ public class YbHttpUtils {
String resultString =
httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/inpatient-reg",
yb2401InputInpatientMdtrtInfo, contractServiceImpl.getContract(yb2401InputInpatientMdtrtInfo.getMdtrtareaAdmvs()));
=======
* @param jsonObject 入參
* @return 結果
*/
public InpatientReg inpatientReg(JSONObject jsonObject, String contractNo) {
String resultString =
httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/inpatient-reg", jsonObject,
contractServiceImpl.getContract(contractNo));
>>>>>>> v1.3
if (StringUtils.isEmpty(resultString)) {
throw new ServiceException("未接收到医保返回参数");
}
@@ -1174,10 +1247,56 @@ public class YbHttpUtils {
return null;
}
<<<<<<< HEAD
public InpatientDischarge inpatientCheckOut(Contract contract,Yb2402InputParam yb2402InputInpatientDscgInfo) {
String resultString =
httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/discharge-patient",
yb2402InputInpatientDscgInfo, contract);
=======
/**
* 【2404】住院办理撤销
*
* @param yb2404InputInpatient 入參
* @return 結果
*/
public void cancelInpatientReg(Yb2404InputInpatient yb2404InputInpatient, String contractNo) {
String resultString =
httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/cancel-inpatient-reg",
yb2404InputInpatient, contractServiceImpl.getContract(contractNo));
if (StringUtils.isEmpty(resultString)) {
throw new ServiceException("未接收到医保返回参数");
}
System.out.println("【2404】返回参数:" + JSON.toJSONString(resultString));
logger.info("【2404】返回参数:" + resultString);
ObjectMapper mapper = new ObjectMapper();
Result result = null;
try {
result = mapper.readValue(resultString, Result.class);
if (result == null) {
throw new ServiceException("未接收到医保返回参数");
} else if (result.getCode() == 200) {
System.out.println(result.getResult().toString());
} else {
throw new ServiceException(result.getMessage());
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
throw new ServiceException(e.getMessage());
}
}
/**
* 【2402】出院办理
*
* @param yb2402InputInpatientDscgInfo 参数
* @param contractNo 合同编号
* @return 结果
*/
public Yb2402InputParam inpatientCheckOut(Yb2402InputParam yb2402InputInpatientDscgInfo, String contractNo) {
String resultString =
httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/discharge-patient",
yb2402InputInpatientDscgInfo, iContractService.getContract(contractNo));
>>>>>>> v1.3
if (StringUtils.isEmpty(resultString)) {
throw new ServiceException("未接收到医保返回参数");
}
@@ -1191,7 +1310,11 @@ public class YbHttpUtils {
throw new ServiceException("未接收到医保返回参数");
} else if (result.getCode() == 200) {
System.out.println(result.getResult().toString());
<<<<<<< HEAD
return JSON.parseObject(result.getResult().toString(), InpatientDischarge.class);
=======
return JSON.parseObject(result.getResult().toString(), Yb2402InputParam.class);
>>>>>>> v1.3
} else {
throw new ServiceException(result.getMessage());
}
@@ -1201,10 +1324,55 @@ public class YbHttpUtils {
return null;
}
<<<<<<< HEAD
public void updateInpatientInfo(Yb2403InputParam yb2405InputInpatient) {
String resultString =
httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/change-inpatient-info",
yb2405InputInpatient, null);
=======
/**
* 【2405】出院办理撤销
*
* @param yb2405InputInpatient 入參
* @return 結果
*/
public void cancelInpatientCheckOut(Yb2405InputInpatient yb2405InputInpatient, String contractNo) {
String resultString =
httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/cancel-discharge-patient",
yb2405InputInpatient, contractServiceImpl.getContract(contractNo));
if (StringUtils.isEmpty(resultString)) {
throw new ServiceException("未接收到医保返回参数");
}
System.out.println("【2404】返回参数:" + JSON.toJSONString(resultString));
logger.info("【2404】返回参数:" + resultString);
ObjectMapper mapper = new ObjectMapper();
Result result = null;
try {
result = mapper.readValue(resultString, Result.class);
if (result == null) {
throw new ServiceException("未接收到医保返回参数");
} else if (result.getCode() == 200) {
System.out.println(result.getResult().toString());
} else {
throw new ServiceException(result.getMessage());
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
throw new ServiceException(e.getMessage());
}
}
/**
* 【2403】 更改住院信息
*
* @param yb2403InputInpatient 参数
* @param contractNo 结果
*/
public void updateInpatientInfo(Yb2403InputParam yb2403InputInpatient, String contractNo) {
String resultString =
httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/change-inpatient-info",
yb2403InputInpatient, iContractService.getContract(contractNo));
>>>>>>> v1.3
if (StringUtils.isEmpty(resultString)) {
throw new ServiceException("未接收到医保返回参数");
}
@@ -1224,6 +1392,153 @@ public class YbHttpUtils {
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
<<<<<<< HEAD
}
}
=======
throw new ServiceException(e.getMessage());
}
}
public void emrUp(Yb4401InputDto yb4401InputDto) {
String resultString =
httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/emr-up", yb4401InputDto, null);
if (StringUtils.isEmpty(resultString)) {
throw new ServiceException("未接收到医保返回参数");
}
System.out.println("【4401】返回参数:" + JSON.toJSONString(resultString));
logger.info("【4401】返回参数:" + resultString);
ObjectMapper mapper = new ObjectMapper();
Result result = null;
try {
result = mapper.readValue(resultString, Result.class);
if (result == null) {
throw new ServiceException("未接收到医保返回参数");
} else if (result.getCode() == 200) {
System.out.println(result.getResult().toString());
return;
} else {
throw new ServiceException(result.getMessage());
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
throw new ServiceException(e.getMessage());
}
}
/**
* 【2601】冲正交易
*
* @param toReverse 冲正参数
* @param contract 省市医保
*/
public void ybToReverse(Yb2601InputParam toReverse, Contract contract) {
String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/to-reverse",
toReverse, contract);
if (StringUtils.isEmpty(resultString)) {
throw new ServiceException("未接收到医保返回参数");
}
System.out.println("【4401】返回参数:" + JSON.toJSONString(resultString));
logger.info("【4401】返回参数:" + resultString);
ObjectMapper mapper = new ObjectMapper();
Result result = null;
try {
result = mapper.readValue(resultString, Result.class);
if (result == null) {
throw new ServiceException("未接收到医保返回参数");
} else if (result.getCode() == 200) {
System.out.println(result.getResult().toString());
return;
} else {
throw new ServiceException(result.getMessage());
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
throw new ServiceException(e.getMessage());
}
}
public void yb4101Up(Yb4101AInputData yb4101AInputData, Contract contract) {
String resultString = httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/setl-up",
yb4101AInputData, contract);
if (StringUtils.isEmpty(resultString)) {
throw new ServiceException("未接收到医保返回参数");
}
System.out.println("【4101A】返回参数:" + JSON.toJSONString(resultString));
logger.info("【4101A】返回参数:" + resultString);
ObjectMapper mapper = new ObjectMapper();
Result result = null;
try {
result = mapper.readValue(resultString, Result.class);
if (result == null) {
throw new ServiceException("未接收到医保返回参数");
} else if (result.getCode() == 200) {
System.out.println(result.getResult().toString());
return;
} else {
throw new ServiceException(result.getMessage());
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
throw new ServiceException(e.getMessage());
}
}
public void yb4102Up(Yb4102InputStastInfo yb4102InputStastInfo) {
String resultString =
httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/setl-status-up",
yb4102InputStastInfo, null);
if (StringUtils.isEmpty(resultString)) {
throw new ServiceException("未接收到医保返回参数");
}
System.out.println("【4102】返回参数:" + JSON.toJSONString(resultString));
logger.info("【4102】返回参数:" + resultString);
ObjectMapper mapper = new ObjectMapper();
Result result = null;
try {
result = mapper.readValue(resultString, Result.class);
if (result == null) {
throw new ServiceException("未接收到医保返回参数");
} else if (result.getCode() == 200) {
System.out.println(result.getResult().toString());
return;
} else {
throw new ServiceException(result.getMessage());
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
throw new ServiceException(e.getMessage());
}
}
public void cancel2302FeeDetailUp(Yb2302InpatientParam yb2302InpatientParam, Contract contract) {
String resultString =
httpPost(SecurityUtils.getLoginUser().getOptionJson().getString("ybUrl") + "/cancel-2302-fee-detail",
yb2302InpatientParam, contract);
if (StringUtils.isEmpty(resultString)) {
throw new ServiceException("未接收到医保返回参数");
}
System.out.println("【2302】返回参数:" + JSON.toJSONString(resultString));
logger.info("【2302】返回参数:" + resultString);
ObjectMapper mapper = new ObjectMapper();
Result result = null;
try {
result = mapper.readValue(resultString, Result.class);
if (result == null) {
throw new ServiceException("未接收到医保返回参数");
} else if (result.getCode() == 200) {
System.out.println(result.getResult().toString());
return;
} else {
throw new ServiceException(result.getMessage());
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
throw new ServiceException(e.getMessage());
}
}
>>>>>>> v1.3
}

View File

@@ -4,8 +4,12 @@
package com.openhis.yb.service;
import java.math.BigDecimal;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -700,9 +704,9 @@ public class YbManager {
* @param medical3505Param 发药详细信息
* @return 结果
*/
public R<?> merchandise(Medical3505Param medical3505Param) {
public R<?> merchandise(Medical3505Param medical3505Param, Contract contract) {
Result result = ybHttpService.merchandise(medical3505Param);
Result result = ybHttpService.merchandise(medical3505Param, contract);
Medical3505Result medical3505Result =
JSON.parseObject(JSON.toJSONString(result.getResult()), Medical3505Result.class);
if ("1".equals(medical3505Result.getRetRslt())) {
@@ -717,10 +721,11 @@ public class YbManager {
* 【3506】商品销售退货
*
* @param medical3506Param 退货详细信息
* @param contract 合同信息
* @return 结果
*/
public R<?> cancelMerchandise(Medical3506Param medical3506Param) {
Result result = ybHttpService.cancelMerchandise(medical3506Param);
public R<?> cancelMerchandise(Medical3506Param medical3506Param, Contract contract) {
Result result = ybHttpService.cancelMerchandise(medical3506Param, contract);
Medical3505Result medical3505Result =
JSON.parseObject(JSON.toJSONString(result.getResult()), Medical3505Result.class);
if ("1".equals(medical3505Result.getRetRslt())) {
@@ -915,28 +920,62 @@ public class YbManager {
Yb2301InputFeeDetail yb2301InputFeeDetail;
List<Yb2301InputFeeDetail> yb2301InputFeeDetailList = new ArrayList();
// int i = 1;
for (ChargeItemBaseInfoDto chargeItemBaseInfoDto : chargeItemBaseInfoDtosList) {
yb2301InputFeeDetail = new Yb2301InputFeeDetail();
yb2301InputFeeDetail.setFeedetlSn(chargeItemBaseInfoDto.getBusNo()).setMdtrtId(inpatientReg.getMdtrtId())
.setPsnNo(inpatientReg.getPsnNo()).setMedType(String.valueOf(encounter.getYbClassEnum()))
.setFeeOcurTime(chargeItemBaseInfoDto.getEnteredDate()).setMedListCodg(chargeItemBaseInfoDto.getYbNo())
.setMedinsListCodg(chargeItemBaseInfoDto.getBaseBusNo())
.setDetItemFeeSumamt(chargeItemBaseInfoDto.getTotalPrice())
.setCnt(chargeItemBaseInfoDto.getQuantityValue()).setPric(chargeItemBaseInfoDto.getUnitPrice())
.setBilgDeptName(chargeItemBaseInfoDto.getDeptName()).setBilgDrName(chargeItemBaseInfoDto.getDoctName())
.setBilgDeptCodg(chargeItemBaseInfoDto.getDeptYbNo())
.setBilgDrCodg(chargeItemBaseInfoDto.getDoctYbNo());
BigDecimal quantity = BigDecimal.ZERO;
// 分组分类
Map<String, List<ChargeItemBaseInfoDto>> groupByTable =
chargeItemBaseInfoDtosList.stream().collect(Collectors.groupingBy(ChargeItemBaseInfoDto::getServiceTable));
for (Map.Entry<String, List<ChargeItemBaseInfoDto>> stringListEntry : groupByTable.entrySet()) {
Map<Long, List<ChargeItemBaseInfoDto>> groupById =
stringListEntry.getValue().stream().collect(Collectors.groupingBy(ChargeItemBaseInfoDto::getServiceId));
for (Map.Entry<Long, List<ChargeItemBaseInfoDto>> longListEntry : groupById.entrySet()) {
quantity = BigDecimal.ZERO;
for (ChargeItemBaseInfoDto chargeItemBaseInfoDto : longListEntry.getValue()) {
quantity = quantity.add(chargeItemBaseInfoDto.getQuantityValue());
}
yb2301InputFeeDetailList.add(yb2301InputFeeDetail);
ChargeItemBaseInfoDto chargeItemBaseInfoDto = longListEntry.getValue().get(0);
yb2301InputFeeDetail = new Yb2301InputFeeDetail();
yb2301InputFeeDetail.setFeedetlSn(chargeItemBaseInfoDto.getBusNo())
.setMdtrtId(inpatientReg.getMdtrtId()).setPsnNo(inpatientReg.getPsnNo())
.setMedType(String.valueOf(encounter.getYbClassEnum()))
.setFeeOcurTime(chargeItemBaseInfoDto.getEnteredDate())
.setMedListCodg(chargeItemBaseInfoDto.getYbNo())
.setMedinsListCodg(chargeItemBaseInfoDto.getBaseBusNo())
// 2025-11-13 李方案住院部分的totalprice不可直接用要用单价乘以数量并且比如患者一天一袋氯化钠注射液预结算的时候要根据同表同id进行归类计算
.setDetItemFeeSumamt(quantity.multiply(chargeItemBaseInfoDto.getUnitPrice())).setCnt(quantity)
.setPric(chargeItemBaseInfoDto.getUnitPrice()).setBilgDeptName(chargeItemBaseInfoDto.getDeptName())
.setBilgDrName(chargeItemBaseInfoDto.getDoctName())
.setBilgDeptCodg(chargeItemBaseInfoDto.getDeptYbNo())
.setBilgDrCodg(chargeItemBaseInfoDto.getDoctYbNo());
yb2301InputFeeDetailList.add(yb2301InputFeeDetail);
}
}
// int i = 1;
// for (ChargeItemBaseInfoDto chargeItemBaseInfoDto : chargeItemBaseInfoDtosList) {
// yb2301InputFeeDetail = new Yb2301InputFeeDetail();
// yb2301InputFeeDetail.setFeedetlSn(chargeItemBaseInfoDto.getBusNo()).setMdtrtId(inpatientReg.getMdtrtId())
// .setPsnNo(inpatientReg.getPsnNo()).setMedType(String.valueOf(encounter.getYbClassEnum()))
// .setFeeOcurTime(chargeItemBaseInfoDto.getEnteredDate()).setMedListCodg(chargeItemBaseInfoDto.getYbNo())
// .setMedinsListCodg(chargeItemBaseInfoDto.getBaseBusNo())
// //2025-11-13 李方案住院部分的totalprice不可直接用要用单价乘以数量并且比如患者一天一袋氯化钠注射液预结算的时候要根据同表同id进行归类计算
// .setDetItemFeeSumamt(chargeItemBaseInfoDto.getQuantityValue().multiply(chargeItemBaseInfoDto.getUnitPrice()))
// .setCnt(chargeItemBaseInfoDto.getQuantityValue()).setPric(chargeItemBaseInfoDto.getUnitPrice())
// .setBilgDeptName(chargeItemBaseInfoDto.getDeptName()).setBilgDrName(chargeItemBaseInfoDto.getDoctName())
// .setBilgDeptCodg(chargeItemBaseInfoDto.getDeptYbNo())
// .setBilgDrCodg(chargeItemBaseInfoDto.getDoctYbNo());
// yb2301InputFeeDetailList.add(yb2301InputFeeDetail);
// }
Yb2301InputFeeDetailModel yb2301InputFeeDetailModel = new Yb2301InputFeeDetailModel();
yb2301InputFeeDetailModel.setFeedetail(yb2301InputFeeDetailList)
.setInsuplcAdmdvs(inpatientReg.getInsuplcAdmdvs());
List<Yb2301OutputResult> yb2301OutputResults = ybHttpService.upload2301FeeDetail(yb2301InputFeeDetailModel);
// todo :数据保存
ybBaseService.save2301YbFeeDetail(yb2301OutputResults, yb2301InputFeeDetailList, encounter.getId());
// for (ChargeItemBaseInfoDto chargeItemBaseInfoDto : chargeItemBaseInfoDtos) {
// if (chargeItemBaseInfoDto.getContractNo().equals(CommonConstants.BusinessName.DEFAULT_CONTRACT_NO)) {
@@ -974,6 +1013,7 @@ public class YbManager {
throw new ServiceException("医保预结算失败");
}
// todo数据保存
ybBaseService.save2303InpatientPreSettle(yb2303OutputSetInfo);
return yb2303OutputSetInfo;
}
@@ -1012,6 +1052,10 @@ public class YbManager {
return yb2305OutputSetlInfo;
}
<<<<<<< HEAD
public void hospitalAdmission() {
}
=======
public void hospitalAdmission() {}
>>>>>>> v1.3
}

View File

@@ -6,7 +6,7 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.common.enums.DelFlag;
import com.core.common.enums.DelFlag;
import com.openhis.yb.domain.ClinicUnSettle;
import com.openhis.yb.mapper.ClinicUnSettleMapper;
import com.openhis.yb.service.IClinicUnSettleService;

View File

@@ -5,6 +5,7 @@ package com.openhis.yb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
<<<<<<< HEAD
import com.openhis.common.enums.DelFlag;
import com.openhis.yb.domain.InpatientDischarge;
import com.openhis.yb.domain.InpatientReg;
@@ -16,6 +17,17 @@ import org.springframework.stereotype.Service;
/**
* TODO:请概括描述当前类的主要用途和注意事项
=======
import com.core.common.enums.DelFlag;
import com.openhis.common.constant.YbCommonConstants;
import com.openhis.yb.domain.InpatientDischarge;
import com.openhis.yb.mapper.InpatientDischargeMapper;
import com.openhis.yb.service.IInpatientDischargeService;
import org.springframework.stereotype.Service;
/**
* 医保出院Mapper
>>>>>>> v1.3
*
* @author SunJQ
* @date 2025-07-31
@@ -23,6 +35,14 @@ import org.springframework.stereotype.Service;
@Service
public class InpatientDischargeServiceImpl extends ServiceImpl<InpatientDischargeMapper, InpatientDischarge>
implements IInpatientDischargeService {
<<<<<<< HEAD
=======
@Override
public InpatientDischarge getByMdtrtId(String mdtrtId) {
return baseMapper.selectOne(new LambdaQueryWrapper<InpatientDischarge>().eq(InpatientDischarge::getMdtrtId, mdtrtId)
.eq(InpatientDischarge::getDeleteFlag, DelFlag.NO.getCode()).last(YbCommonConstants.sqlConst.LIMIT1));
}
>>>>>>> v1.3
}

View File

@@ -1,11 +1,18 @@
package com.openhis.yb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.yb.domain.InpatientFeeDetail;
import com.openhis.yb.mapper.InpatientFeeDetailMapper;
import com.openhis.yb.service.IInpatientFeeDetailService;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class InpatientFeeDetailServiceImpl extends ServiceImpl<InpatientFeeDetailMapper, InpatientFeeDetail> implements IInpatientFeeDetailService {
@Override
public List<InpatientFeeDetail> getFeeDetailList(String mdtrtId) {
return baseMapper.selectList(new LambdaQueryWrapper<InpatientFeeDetail>().eq(InpatientFeeDetail::getMdtrtId, mdtrtId));
}
}

View File

@@ -0,0 +1,21 @@
package com.openhis.yb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.core.common.enums.DelFlag;
import com.openhis.common.constant.YbCommonConstants;
import com.openhis.yb.domain.InpatientPreSettle;
import com.openhis.yb.domain.InpatientSettle;
import com.openhis.yb.mapper.InpatientPreSettleMapper;
import com.openhis.yb.mapper.InpatientSettleMapper;
import com.openhis.yb.service.IInpatientPreSettleService;
import com.openhis.yb.service.IInpatientSettleService;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class InpatientPreSettleServiceImpl extends ServiceImpl<InpatientPreSettleMapper, InpatientPreSettle>
implements IInpatientPreSettleService {
}

View File

@@ -5,7 +5,7 @@ package com.openhis.yb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.common.enums.DelFlag;
import com.core.common.enums.DelFlag;
import com.openhis.yb.domain.InpatientReg;
import com.openhis.yb.mapper.InpatientRegMapper;
import com.openhis.yb.service.IInpatientRegService;
@@ -26,4 +26,15 @@ public class InpatientRegServiceImpl extends ServiceImpl<InpatientRegMapper, Inp
return baseMapper.selectOne(new LambdaQueryWrapper<InpatientReg>().eq(InpatientReg::getIptNo, busNo)
.eq(InpatientReg::getDeleteFlag, DelFlag.NO.getCode()));
}
@Override
public InpatientReg getInpatientRegByMdtrtId(String mdtrtId) {
return baseMapper.selectOne(new LambdaQueryWrapper<InpatientReg>().eq(InpatientReg::getMdtrtId, mdtrtId)
.eq(InpatientReg::getDeleteFlag, DelFlag.NO.getCode()));
}
@Override
public InpatientReg getInpatientRegByEncounterId(String encounterId) {
return baseMapper.selectInpatientInfoByEncounterId(encounterId);
}
}

View File

@@ -1,18 +1,30 @@
package com.openhis.yb.service.impl;
import java.util.List;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.common.constant.YbCommonConstants;
import com.openhis.common.enums.Whether;
import com.core.common.enums.DelFlag;
import com.openhis.yb.domain.InpatientSettle;
import com.openhis.yb.mapper.InpatientSettleMapper;
import com.openhis.yb.service.IInpatientSettleService;
import org.springframework.stereotype.Service;
@Service
public class InpatientSettleServiceImpl extends ServiceImpl<InpatientSettleMapper, InpatientSettle> implements IInpatientSettleService {
public class InpatientSettleServiceImpl extends ServiceImpl<InpatientSettleMapper, InpatientSettle>
implements IInpatientSettleService {
@Override
public InpatientSettle getBySettleId(String ybSettleIds) {
return baseMapper.selectOne(new LambdaQueryWrapper<InpatientSettle>().eq(InpatientSettle::getSetlId,ybSettleIds).eq(InpatientSettle::getDeleteFlag, Whether.NO.getValue()).last(YbCommonConstants.sqlConst.LIMIT1));
return baseMapper
.selectOne(new LambdaQueryWrapper<InpatientSettle>().eq(InpatientSettle::getSetlId, ybSettleIds)
.eq(InpatientSettle::getDeleteFlag, DelFlag.NO.getCode()).last(YbCommonConstants.sqlConst.LIMIT1));
}
@Override
public List<InpatientSettle> getByMdtrtId(String mdtrtId) {
return baseMapper.selectList(new LambdaQueryWrapper<InpatientSettle>().eq(InpatientSettle::getMdtrtId, mdtrtId)
.eq(InpatientSettle::getDeleteFlag, DelFlag.NO.getCode()));
}
}