|
@ -14453,17 +14453,71 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
object.put("cardNo",outpatientDO.getCardNo());
|
|
|
object.put("deptName",outpatientDO.getPatientName());
|
|
|
return object;
|
|
|
} else if (wechatId.equalsIgnoreCase("xm_hcyy_wx")){
|
|
|
} else if (wechatId.equalsIgnoreCase("xm_hcyy_wx")) {
|
|
|
com.alibaba.fastjson.JSONObject object = new com.alibaba.fastjson.JSONObject();
|
|
|
logger.info("获取患者待结算信息开始!");
|
|
|
YlzMedicalRelationDO ylzMedicalRelationDO = new YlzMedicalRelationDO();
|
|
|
ylzMedicalRelationDO = ylzMedicailRelationDao.findByOutpatient(outpatientId);
|
|
|
if (ylzMedicalRelationDO != null && StringUtils.isNoneBlank(ylzMedicalRelationDO.getPageCode())) {
|
|
|
String result = confirmSettlementInfo(outpatientId, ylzMedicalRelationDO.getPageCode());
|
|
|
com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(result);
|
|
|
if (jsonObject.getString("flag").equalsIgnoreCase("1")) {
|
|
|
com.alibaba.fastjson.JSONObject object1 = jsonObject.getJSONObject("encrypt_data");
|
|
|
BigDecimal b1 = new BigDecimal(object1.getString("tcjj_pay"));
|
|
|
BigDecimal b2 = new BigDecimal(object1.getString("sbjj_pay"));
|
|
|
BigDecimal b3 = new BigDecimal(object1.getString("gwy_pay"));
|
|
|
BigDecimal b4 = new BigDecimal(object1.getString("jzfp_pay"));
|
|
|
BigDecimal b5 = new BigDecimal(object1.getString("yljz_pay"));
|
|
|
BigDecimal b6 = new BigDecimal(object1.getString("other_pay"));
|
|
|
String payDateStr = object1.getString("pay_date");
|
|
|
Date payDate = DateUtil.strToDate(payDateStr);
|
|
|
Date now = DateUtil.getDateShort(new Date());
|
|
|
if (payDate.compareTo(now) == 0) {
|
|
|
BigDecimal b7 = new BigDecimal(object1.getString("enterprise_supplement"));
|
|
|
Double price = b1.add(b2).add(b3).add(b4).add(b5).add(b6).add(b7).doubleValue();
|
|
|
if (Double.parseDouble(ylzMedicalRelationDO.getMedicalPrice()) == price) {
|
|
|
ylzMedicalRelationDO.setStatus(1);
|
|
|
ylzMedicailRelationDao.save(ylzMedicalRelationDO);
|
|
|
}
|
|
|
} else {
|
|
|
ylzMedicalRelationDO.setStatus(0);
|
|
|
ylzMedicailRelationDao.save(ylzMedicalRelationDO);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
if (ylzMedicalRelationDO != null && ylzMedicalRelationDO.getStatus() == 1) {
|
|
|
com.alibaba.fastjson.JSONObject object2 = hcyyPrescriptionService.selectCardInfo(outpatientDO.getCardNo());
|
|
|
Double cardFee = object2.getDouble("ZHYE");
|
|
|
//医保已结算直接返回数据
|
|
|
List<YlzMedicalMxDO> mxDOList = ylzMedicailMxDao.findByMedicalId(ylzMedicalRelationDO.getId());
|
|
|
ylzMedicalRelationDO.setYlzMedicalMxDOList(mxDOList);
|
|
|
BigDecimal b1 = new BigDecimal(ylzMedicalRelationDO.getPersonCash());//个人现金
|
|
|
BigDecimal b2 = new BigDecimal(ylzMedicalRelationDO.getPersonAccount());//个人账户
|
|
|
BigDecimal b3 = new BigDecimal(ylzMedicalRelationDO.getMedicalPrice());//医保总金额
|
|
|
ylzMedicalRelationDO.setBalance(cardFee + "");
|
|
|
ylzMedicalRelationDO = ylzMedicailRelationDao.save(ylzMedicalRelationDO);
|
|
|
Double totalPirce = b1.add(b2).add(b3).doubleValue();
|
|
|
logger.info("总费用:" + totalPirce);
|
|
|
if (totalPirce != Double.parseDouble(ylzMedicalRelationDO.getTotalAmount())) {
|
|
|
object.put("code", "403");
|
|
|
object.put("message", "金额不对无法结算!");
|
|
|
} else {
|
|
|
object.put("code", "200");
|
|
|
object.put("message", "核对金额无误!");
|
|
|
}
|
|
|
object.put("getSettleInfo", ylzMedicalRelationDO);
|
|
|
return object;
|
|
|
}
|
|
|
try {
|
|
|
ylzMedicalRelationDO = hcyyPrescriptionService.getSettlementInfo(outpatientDO.getCardNo(),outpatientDO.getId());
|
|
|
}catch (Exception e){
|
|
|
ylzMedicalRelationDO = hcyyPrescriptionService.getSettlementInfo(outpatientDO.getCardNo(), outpatientDO.getId());
|
|
|
} catch (Exception e) {
|
|
|
throw new Exception(e.getMessage());
|
|
|
}
|
|
|
BigDecimal b1 = new BigDecimal(ylzMedicalRelationDO.getPersonCash());//个人现金
|
|
|
if (ylzMedicalRelationDO==null){
|
|
|
throw new Exception("无待结算信息");
|
|
|
}
|
|
|
/*BigDecimal b1 = new BigDecimal(ylzMedicalRelationDO.getPersonCash());//个人现金
|
|
|
BigDecimal b2 = new BigDecimal(ylzMedicalRelationDO.getPersonAccount());//个人账户
|
|
|
BigDecimal b3 = new BigDecimal(ylzMedicalRelationDO.getMedicalPrice());//医保总金额
|
|
|
Double totalPirce=b1.add(b2).add(b3).doubleValue();
|
|
@ -14474,9 +14528,62 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
}else {
|
|
|
object.put("code","200");
|
|
|
object.put("message","核对金额无误!");
|
|
|
}*/
|
|
|
if(outpatientDO!=null&&outpatientDO.getMedicalState().equalsIgnoreCase("1")){
|
|
|
logger.info("医保挂号开始!");
|
|
|
String register = healthCareNewService.register(outpatientId);
|
|
|
logger.info("医保挂号结束!");
|
|
|
logger.info("医保费用明细上传开始!");
|
|
|
String feeDetailUpload= healthCareNewService.feeDetailUpload(outpatientId);
|
|
|
logger.info("医保费用明细上传结束!");
|
|
|
|
|
|
logger.info("医保预结算信息开始!");
|
|
|
ylzMedicalRelationDO = healthCareNewService.preSettlement(outpatientId);
|
|
|
logger.info("医保预结算信息结束!");
|
|
|
|
|
|
if (flag==1){
|
|
|
logger.info("获取医保结算页面地址开始!");
|
|
|
String getSettlementResultUrl = healthCareNewService.getSettlementResultUrl(outpatientId);
|
|
|
logger.info("获取医保结算页面地址结束!");
|
|
|
object.put("getSettlementResultUrl",getSettlementResultUrl);
|
|
|
}else if (flag==2){
|
|
|
logger.info("获取医保结算页面地址开始!");
|
|
|
String getSettlementResultUrlBase64 = healthCareService.getSettlementResultUrlBase64(outpatientId);
|
|
|
logger.info("获取医保结算页面地址结束!");
|
|
|
object.put("getSettlementResultUrlBase64",getSettlementResultUrlBase64);
|
|
|
}
|
|
|
if (ylzMedicalRelationDO.getPersonCash()!=null){
|
|
|
BigDecimal b1 = new BigDecimal(ylzMedicalRelationDO.getPersonCash());//个人现金
|
|
|
BigDecimal b2 = new BigDecimal(ylzMedicalRelationDO.getPersonAccount());//个人账户
|
|
|
BigDecimal b3 = new BigDecimal(ylzMedicalRelationDO.getMedicalPrice());//医保总金额
|
|
|
Double totalPirce=b1.add(b2).add(b3).doubleValue();
|
|
|
logger.info("总费用:"+totalPirce);
|
|
|
if (totalPirce!=Double.parseDouble(ylzMedicalRelationDO.getTotalAmount())){
|
|
|
object.put("code","403");
|
|
|
object.put("message","金额不对无法结算!");
|
|
|
}else {
|
|
|
object.put("code","200");
|
|
|
object.put("message","核对金额无误!");
|
|
|
}
|
|
|
}
|
|
|
object.put("getSettleInfo",ylzMedicalRelationDO);
|
|
|
return object;
|
|
|
}else {
|
|
|
BigDecimal b1 = new BigDecimal(ylzMedicalRelationDO.getPersonCash());//个人现金
|
|
|
BigDecimal b2 = new BigDecimal(ylzMedicalRelationDO.getPersonAccount());//个人账户
|
|
|
BigDecimal b3 = new BigDecimal(ylzMedicalRelationDO.getMedicalPrice());//医保总金额
|
|
|
Double totalPirce=b1.add(b2).add(b3).doubleValue();
|
|
|
logger.info("总费用:"+totalPirce);
|
|
|
if (totalPirce!=Double.parseDouble(ylzMedicalRelationDO.getTotalAmount())){
|
|
|
object.put("code","403");
|
|
|
object.put("message","金额不对无法结算!");
|
|
|
}else {
|
|
|
object.put("code","200");
|
|
|
object.put("message","核对金额无误!");
|
|
|
}
|
|
|
object.put("getSettleInfo",ylzMedicalRelationDO);
|
|
|
return object;
|
|
|
}
|
|
|
object.put("getSettleInfo",ylzMedicalRelationDO);
|
|
|
return object;
|
|
|
} else {
|
|
|
com.alibaba.fastjson.JSONObject object = new com.alibaba.fastjson.JSONObject();
|
|
|
logger.info("获取患者待结算信息开始!");
|
|
@ -14634,10 +14741,18 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
throw new Exception("门诊信息为空");
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(code)){
|
|
|
logger.info("医保结算结果获取start!");
|
|
|
result = healthCareService.getSettlementResult(code);
|
|
|
logger.info("医保结算结果获取end!");
|
|
|
com.alibaba.fastjson.JSONObject object = com.alibaba.fastjson.JSONObject.parseObject(result);
|
|
|
if (wechatId.equalsIgnoreCase("xm_zsyy_wx")){
|
|
|
logger.info("医保结算结果获取start!");
|
|
|
result = healthCareService.getSettlementResult(code);
|
|
|
logger.info("医保结算结果获取end!");
|
|
|
com.alibaba.fastjson.JSONObject object = com.alibaba.fastjson.JSONObject.parseObject(result);
|
|
|
}else {
|
|
|
logger.info("医保结算结果获取start!");
|
|
|
result = healthCareNewService.getSettlementResult(code);
|
|
|
logger.info("医保结算结果获取end!");
|
|
|
com.alibaba.fastjson.JSONObject object = com.alibaba.fastjson.JSONObject.parseObject(result);
|
|
|
}
|
|
|
|
|
|
}/*else{
|
|
|
logger.info("医保结算页面start!");
|
|
|
String registerNo = outpatientDO.getRegisterNo();
|