| 
					
				 | 
			
			
				@ -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(); 
			 |