|  | @@ -82,35 +82,45 @@ public class PatientService {
 | 
	
		
			
				|  |  |      private void setExpenseInformation(Patient data) {
 | 
	
		
			
				|  |  |          data.setMedTypeName(MedType.getName(data.getMedType()));
 | 
	
		
			
				|  |  |          data.setDutyNurseName(redis.getEmployeeName(data.getDutyNurse()));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        HuanZheFeiYong feiYongZhanBi = yiZhuLuRuDao.feiYongXinXi(data.getInpatientNo(), data.getAdmissTimes(), data.getLedgerSn());
 | 
	
		
			
				|  |  | +        if (feiYongZhanBi != null) {
 | 
	
		
			
				|  |  | +            // 余额
 | 
	
		
			
				|  |  | +            data.setBalance(feiYongZhanBi.getBalance());
 | 
	
		
			
				|  |  | +            // 总费用
 | 
	
		
			
				|  |  | +            data.setTotalCharge(feiYongZhanBi.getTotalCharge());
 | 
	
		
			
				|  |  | +            // 药品 百分比
 | 
	
		
			
				|  |  | +            data.setYp(DecimalUtil.getPercent(Double.parseDouble(feiYongZhanBi.getYp()), Double.parseDouble(feiYongZhanBi.getTotalCharge())));
 | 
	
		
			
				|  |  | +            // 检验检查 百分比
 | 
	
		
			
				|  |  | +            data.setJyjc(DecimalUtil.getPercent(Double.parseDouble(feiYongZhanBi.getJyjc()), Double.parseDouble(feiYongZhanBi.getTotalCharge())));
 | 
	
		
			
				|  |  | +            // 医保 费用
 | 
	
		
			
				|  |  | +            data.setChargeYb(feiYongZhanBi.getChargeYb());
 | 
	
		
			
				|  |  | +            // 医保百分比
 | 
	
		
			
				|  |  | +            data.setYb(DecimalUtil.getPercent(Double.parseDouble(feiYongZhanBi.getChargeYb()), Double.parseDouble(feiYongZhanBi.getTotalCharge())));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        XinZhenYiZhu xinZhenYiZhu = yiZhuLuRuDao.huoQuHuanZheXinXi(data.getInpatientNo(), data.getAdmissTimes());
 | 
	
		
			
				|  |  | +        if (xinZhenYiZhu != null) {
 | 
	
		
			
				|  |  | +            // 是否出纳
 | 
	
		
			
				|  |  | +            data.setTimesBilled(xinZhenYiZhu.getTimesBilled());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          if (null != data.getSocialNo() && data.getSocialNo().trim().length() == 18 && !data.getSocialNo().startsWith("K")) {
 | 
	
		
			
				|  |  |              try {
 | 
	
		
			
				|  |  | -                HuanZheFeiYong feiYongZhanBi = yiZhuLuRuDao.feiYongXinXi(data.getInpatientNo(), data.getAdmissTimes(), data.getLedgerSn());
 | 
	
		
			
				|  |  | -                if (feiYongZhanBi != null) {
 | 
	
		
			
				|  |  | -                    // 余额
 | 
	
		
			
				|  |  | -                    data.setBalance(feiYongZhanBi.getBalance());
 | 
	
		
			
				|  |  | -                    // 总费用
 | 
	
		
			
				|  |  | -                    data.setTotalCharge(feiYongZhanBi.getTotalCharge());
 | 
	
		
			
				|  |  | -                    // 药品 百分比
 | 
	
		
			
				|  |  | -                    data.setYp(DecimalUtil.getPercent(Double.parseDouble(feiYongZhanBi.getYp()), Double.parseDouble(feiYongZhanBi.getTotalCharge())));
 | 
	
		
			
				|  |  | -                    // 检验检查 百分比
 | 
	
		
			
				|  |  | -                    data.setJyjc(DecimalUtil.getPercent(Double.parseDouble(feiYongZhanBi.getJyjc()), Double.parseDouble(feiYongZhanBi.getTotalCharge())));
 | 
	
		
			
				|  |  | -                    // 医保 费用
 | 
	
		
			
				|  |  | -                    data.setChargeYb(feiYongZhanBi.getChargeYb());
 | 
	
		
			
				|  |  | -                    // 医保百分比
 | 
	
		
			
				|  |  | -                    data.setYb(DecimalUtil.getPercent(Double.parseDouble(feiYongZhanBi.getChargeYb()), Double.parseDouble(feiYongZhanBi.getTotalCharge())));
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                XinZhenYiZhu xinZhenYiZhu = yiZhuLuRuDao.huoQuHuanZheXinXi(data.getInpatientNo(), data.getAdmissTimes());
 | 
	
		
			
				|  |  | -                if (xinZhenYiZhu != null) {
 | 
	
		
			
				|  |  | -                    // 是否出纳
 | 
	
		
			
				|  |  | -                    data.setTimesBilled(xinZhenYiZhu.getTimesBilled());
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | +                // 根据身份证计算出生年龄
 | 
	
		
			
				|  |  |                  data.setBirthDate(getBirthdayFromSocialNo(data.getSocialNo()));
 | 
	
		
			
				|  |  | -                // 年龄
 | 
	
		
			
				|  |  | -                data.setAge(DateUtil.calculateAge(new SimpleDateFormat("yyyy-MM-dd").parse(data.getBirthDate()), data.getAdmissDate()));
 | 
	
		
			
				|  |  | -            } catch (ParseException e) {
 | 
	
		
			
				|  |  | -                log.error("获取患者基本信息出错", e);
 | 
	
		
			
				|  |  | +            } catch (Exception e) {
 | 
	
		
			
				|  |  | +                e.printStackTrace();
 | 
	
		
			
				|  |  | +                log.error("设置出生日期出错");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            // 年龄
 | 
	
		
			
				|  |  | +            data.setAge(DateUtil.calculateAge(new SimpleDateFormat("yyyy-MM-dd").parse(data.getBirthDate()), data.getAdmissDate()));
 | 
	
		
			
				|  |  | +        } catch (Exception e) {
 | 
	
		
			
				|  |  | +            e.printStackTrace();
 | 
	
		
			
				|  |  | +            log.error("计算年龄出错");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private String getBirthdayFromSocialNo(String socialNo) throws ParseException {
 |