| 
					
				 | 
			
			
				@ -18,6 +18,7 @@ import com.yihu.wlyy.util.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.util.IdCardUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.beanutils.converters.CalendarConverter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.hibernate.type.descriptor.sql.JdbcTypeFamilyInformation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.json.JSONArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.json.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -56,6 +57,103 @@ public class SignPatientLabelInfoService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    SignFamilyDao signFamilyDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    StringRedisTemplate redisTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 查询单个居民信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getPatient(String patient) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject result = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Patient p = patientDao.findByCode(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(p == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("patient info can not find"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<SignFamily> signs = signFamilyDao.findAllSignByPatient(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject json = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 设置患者标识 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("code", p.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 设置患者姓名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("name", p.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 设置患者手机号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("mobile", p.getMobile()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 设置患者联系电话 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("phone", p.getPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 设置患者头像 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("photo", p.getPhoto()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 设置患者年龄 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("age", DateUtil.getAgeByBirthday(p.getBirthday())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 设置患者性别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("sex", p.getSex()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 身份证号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("idcard", p.getIdcard()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 社保号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("ssc", p.getSsc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isEmpty(String.valueOf(json.get("expensesStatus"))) || String.valueOf(json.get("expensesStatus")).equals("0")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String epTime = redisTemplate.opsForValue().get("expenses:remind:" + p.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isEmpty(epTime)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("expensesRemindStatus", 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("expensesRemindStatus", new SimpleDateFormat("yyyy-MM-dd").format(new Date()).equals(epTime) ? 1 : 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(signs != null && signs.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SignFamily ssSign = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SignFamily familySign = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(SignFamily sign : signs){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(sign.getType() == 1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    ssSign = sign; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else if(sign.getType() == 2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    familySign = sign; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(ssSign != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 设置患者紧急联系人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("emerMobile", StringUtils.isEmpty(ssSign.getEmerMobile()) ? "" : String.valueOf(ssSign.getEmerMobile())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 设置签约日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("qyrq", ssSign.getApplyDate() != null ? DateUtil.dateToStr((Date) ssSign.getApplyDate(), DateUtil.YYYY_MM_DD) : ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 设置签约类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("signType", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 设置签约状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("ssStatus", ssSign.getStatus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(familySign != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 设置患者紧急联系人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("emerMobile", StringUtils.isEmpty(familySign.getEmerMobile()) ? "" : String.valueOf(familySign.getEmerMobile())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 设置签约日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("qyrq", familySign.getApplyDate() != null ? DateUtil.dateToStr((Date) familySign.getApplyDate(), DateUtil.YYYY_MM_DD) : ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 设置签约日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("patientApplyDate", familySign.getPatientApplyDate() != null ? DateUtil.dateToStr((Date) familySign.getPatientApplyDate(), DateUtil.YYYY_MM_DD) : ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 设置签约类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("signType", json.has("signType") ? 3 : 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 缴费情况 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("expensesStatus", StringUtils.isNotEmpty(familySign.getExpensesStatus()) ? String.valueOf(familySign.getExpensesStatus()) : "0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 缴费时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("expensesTime", familySign.getExpensesTime() != null ? DateUtil.dateToStr((Date) familySign.getExpensesTime(), DateUtil.YYYY_MM_DD_HH_MM) : ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 缴费类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("expensesType", StringUtils.isNotEmpty(familySign.getExpensesType()) ? String.valueOf(familySign.getExpensesType()) : ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 设置签约状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("familyStatus", familySign.getStatus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if("1".equals(familySign.getExpensesStatus())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    json.put("qyrq", familySign.getExpensesTime() != null ? DateUtil.dateToStr((Date) familySign.getExpensesTime(), DateUtil.YYYY_MM_DD) : ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 根据标签查询患者信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -204,6 +302,9 @@ public class SignPatientLabelInfoService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 缴费类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("expensesType", sign.get("expenses_type") != null ? String.valueOf(sign.get("expenses_type")): ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if("2".equals(String.valueOf(sign.get("type"))) && "1".equals(String.valueOf(sign.get("expenses_status")))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    json.put("qyrq", sign.get("expenses_time") != null ? DateUtil.dateToStr((Date) sign.get("expenses_time"), DateUtil.YYYY_MM_DD) : ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (StringUtils.isEmpty(String.valueOf(json.get("expensesStatus"))) || String.valueOf(json.get("expensesStatus")).equals("0")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String epTime = redisTemplate.opsForValue().get("expenses:remind:" + p.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -320,6 +421,9 @@ public class SignPatientLabelInfoService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("expensesTime", sign.get("expenses_time") != null ? DateUtil.dateToStr((Date) sign.get("expenses_time"), DateUtil.YYYY_MM_DD_HH_MM) : ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 缴费类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("expensesType", sign.get("expenses_type") != null ? String.valueOf(sign.get("expenses_type")): ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if("2".equals(String.valueOf(sign.get("type"))) && "1".equals(String.valueOf(sign.get("expenses_status")))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    json.put("qyrq", sign.get("expenses_time") != null ? DateUtil.dateToStr((Date) sign.get("expenses_time"), DateUtil.YYYY_MM_DD) : ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (StringUtils.isEmpty(String.valueOf(json.get("expensesStatus"))) || String.valueOf(json.get("expensesStatus")).equals("0")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String epTime = redisTemplate.opsForValue().get("expenses:remind:" + p.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -782,6 +886,9 @@ public class SignPatientLabelInfoService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("expensesTime", sign.get("expenses_time") != null ? DateUtil.dateToStr((Date) sign.get("expenses_time"), DateUtil.YYYY_MM_DD_HH_MM) : ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 缴费类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("expensesType", sign.get("expenses_type") != null ? String.valueOf(sign.get("expenses_type")): ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if("2".equals(String.valueOf(sign.get("type"))) && "1".equals(String.valueOf(sign.get("expenses_status")))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    json.put("qyrq", sign.get("expenses_time") != null ? DateUtil.dateToStr((Date) sign.get("expenses_time"), DateUtil.YYYY_MM_DD) : ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (StringUtils.isEmpty(String.valueOf(json.get("expensesStatus"))) || String.valueOf(json.get("expensesStatus")).equals("0")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String epTime = redisTemplate.opsForValue().get("expenses:remind:" + p.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 |