| 
					
				 | 
			
			
				@ -839,13 +839,13 @@ public class MedOrderService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String APPLY_TIME="";//开单时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    Date visitDate = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String USER_NAME = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    Double totalAmount = 0.0;//医疗费总金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    Double ownPay = 0.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    BigDecimal totalAmount = new BigDecimal(0.00); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    BigDecimal ownPay = new BigDecimal(0.00); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    DecimalFormat amountDf = new DecimalFormat("0.00"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String RATE_TYPE = "";//续方费用类别 1自费 2医保 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String SUM_COST =amountDf.format(Double.valueOf(waitForPay.getString("SUM_COST")));//医保支付下,sumCost=0 当作自费号处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String SUM_CHARGE =amountDf.format(Double.valueOf(waitForPay.getString("SUM_COST")));//待结算自付总费用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    Double INSUR_ITEM_PRICE = 0.0;//医保单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    BigDecimal INSUR_ITEM_PRICE = new BigDecimal(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String visit_msgid = ""; //发送方报文ID【用于基线门诊挂号接口,自助机fsi.terminal.register接口】 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String visit_rush_msgid = ""; //发送方报文ID【用于基线门诊挂号撤销接口,自助机fsi.terminal.register.cancel接口】 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String VISIT_NO = ""; //门诊号【对应基线接口:ipt_otp_no】 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -916,10 +916,10 @@ public class MedOrderService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                    ylzMedicalMxDO.setAmount(SETTLE_DETAIL_OBJ.getString("ITEM_QUANTITY"));//数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                    ylzMedicalMxDO.setTotalMoney(amountDf.format(Double.valueOf(SETTLE_DETAIL_OBJ.getString("COST"))));//金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                    totalAmount +=Double.valueOf(SETTLE_DETAIL_OBJ.getString("COST")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                    ownPay +=Double.valueOf(SETTLE_DETAIL_OBJ.getString("CHARGE")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                    totalAmount = totalAmount.add(new BigDecimal(SETTLE_DETAIL_OBJ.getString("COST"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                    ownPay = ownPay.add(new BigDecimal(SETTLE_DETAIL_OBJ.getString("CHARGE"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                    if (null!=SETTLE_DETAIL_OBJ.get("INSUR_ITEM_PRICE")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                        INSUR_ITEM_PRICE += Double.valueOf(SETTLE_DETAIL_OBJ.getString("INSUR_ITEM_PRICE"));//医保项目单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                        INSUR_ITEM_PRICE = INSUR_ITEM_PRICE.add(new BigDecimal(SETTLE_DETAIL_OBJ.getString("INSUR_ITEM_PRICE"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                    ylzMedicalMxDO.setSingleDose(SETTLE_DETAIL_OBJ.getString("PHYSIC_DOSE"));//每次用量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                    ylzMedicalMxDO.setUseFrequency(SETTLE_DETAIL_OBJ.getString("FREQUENCY"));//使用频率 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1004,9 +1004,6 @@ public class MedOrderService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    if(!amountDf.format(totalAmount).equals(SUM_COST)||!amountDf.format(ownPay).equals(SUM_CHARGE)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        throw new Exception("金额不对无法结算"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    if (newYlzRelation){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        ylzMedicalRelationDO.setLogNo(prescription_code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        ylzMedicalRelationDO.setOrgCode(orgCode); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1074,6 +1071,15 @@ public class MedOrderService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        //费用为0的医保结算也需要当作自费处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        ylzMedicalRelationDO.setMedicalState(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    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())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        throw new Exception("金额不对无法结算"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    ylzMedicailRelationDao.save(ylzMedicalRelationDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    ylzMedicalRelationDO.setYlzMedicalIcdDOList(icdDOList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    ylzMedicalRelationDO.setYlzMedicalMxDOList(mxDOList); 
			 |