|  | @ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.dao.course.NurseryLogDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.dao.course.PatientCourseRecordDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.dao.course.PatientDietRecordDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.care.common.DictDietDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.care.course.NurseryLogDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.care.course.PatientCourseRecordDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.care.course.PatientDietRecordDO;
 | 
	
	
		
			
				|  | @ -41,6 +42,16 @@ public class NurseryLogService {
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private JdbcTemplate jdbcTemplate;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 查找饮食字典
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List<DictDietDO> findDictDiet(){
 | 
	
		
			
				|  |  |         String sql = "select * from dict_diet ";
 | 
	
		
			
				|  |  |         List<DictDietDO> list = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(DictDietDO.class));
 | 
	
		
			
				|  |  |         return list;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 根据托育日志id查找
 | 
	
		
			
				|  |  |      * @param id
 | 
	
	
		
			
				|  | @ -50,17 +61,37 @@ public class NurseryLogService {
 | 
	
		
			
				|  |  |         if("diet".equals(type)){
 | 
	
		
			
				|  |  |             List<PatientDietRecordDO> dietRecordDOs = patientDietRecordDao.findByNurseryLogId(id);
 | 
	
		
			
				|  |  |             if(dietRecordDOs.size()>0){
 | 
	
		
			
				|  |  |                 return ObjEnvelop.getSuccess("",dietRecordDOs.get(0));
 | 
	
		
			
				|  |  |                 return ObjEnvelop.getSuccess("查找成功",dietRecordDOs.get(0));
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }else if("course".equals(type)){
 | 
	
		
			
				|  |  |             List<PatientCourseRecordDO> courseRecordDOs = patientCourseRecordDao.findByNurseryLogId(id);
 | 
	
		
			
				|  |  |             if(courseRecordDOs.size()>0){
 | 
	
		
			
				|  |  |                 return ObjEnvelop.getSuccess("",courseRecordDOs.get(0));
 | 
	
		
			
				|  |  |                 return ObjEnvelop.getSuccess("查找成功",courseRecordDOs.get(0));
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return ObjEnvelop.getError("未找到记录");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 查找饮食记录
 | 
	
		
			
				|  |  |      * @param id
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public ObjEnvelop findDietRecord(String id){
 | 
	
		
			
				|  |  |         PatientDietRecordDO dietRecordDO = patientDietRecordDao.findOne(id);
 | 
	
		
			
				|  |  |         return ObjEnvelop.getSuccess("查找成功",dietRecordDO);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 查找课程记录记录
 | 
	
		
			
				|  |  |      * @param id
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public ObjEnvelop findCourseRecord(String id){
 | 
	
		
			
				|  |  |         PatientCourseRecordDO courseRecordDO = patientCourseRecordDao.findOne(id);
 | 
	
		
			
				|  |  |         return ObjEnvelop.getSuccess("查找成功",courseRecordDO);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取课程记录详情
 | 
	
		
			
				|  |  |      * @param id
 | 
	
	
		
			
				|  | @ -113,6 +144,8 @@ public class NurseryLogService {
 | 
	
		
			
				|  |  |         recordDO.setContent(content);
 | 
	
		
			
				|  |  |         recordDO.setEnclosure(enclosure);
 | 
	
		
			
				|  |  |         recordDO.setNurseryLogId(id);
 | 
	
		
			
				|  |  |         NurseryLogDO nurseryLogDO = nurseryLogDao.findOne(id);
 | 
	
		
			
				|  |  |         recordDO.setRecordDate(nurseryLogDO.getRecordDate());
 | 
	
		
			
				|  |  |         patientCourseRecordDao.save(recordDO);
 | 
	
		
			
				|  |  |         return recordDO;
 | 
	
		
			
				|  |  |     }
 | 
	
	
		
			
				|  | @ -130,6 +163,8 @@ public class NurseryLogService {
 | 
	
		
			
				|  |  |         recordDO.setEatType(eatType);
 | 
	
		
			
				|  |  |         recordDO.setIntake(intake);
 | 
	
		
			
				|  |  |         recordDO.setAdditionalNotes(additionalNotes);
 | 
	
		
			
				|  |  |         NurseryLogDO nurseryLogDO = nurseryLogDao.findOne(id);
 | 
	
		
			
				|  |  |         recordDO.setRecordDate(nurseryLogDO.getRecordDate());
 | 
	
		
			
				|  |  |         patientDietRecordDao.save(recordDO);
 | 
	
		
			
				|  |  |         return recordDO;
 | 
	
		
			
				|  |  |     }
 | 
	
	
		
			
				|  | @ -282,4 +317,58 @@ public class NurseryLogService {
 | 
	
		
			
				|  |  |         return mapFollow;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      *获取托育日志按月日历形式 - 居民端
 | 
	
		
			
				|  |  |      * @param patient
 | 
	
		
			
				|  |  |      * @param startTime
 | 
	
		
			
				|  |  |      * @param endTime
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public Map<String,Object> findNurseryLogByPatient(String patient, String startTime, String endTime)throws Exception{
 | 
	
		
			
				|  |  |         String filter = " where patient = '"+patient+"'";
 | 
	
		
			
				|  |  |         if(!StringUtil.isEmpty(startTime)){
 | 
	
		
			
				|  |  |             filter+=" and record_date >='"+startTime+"'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(!StringUtil.isEmpty(endTime)){
 | 
	
		
			
				|  |  |             filter+=" and record_date <='"+endTime+"'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         String sql = "select * from (SELECT nursery_log_id nurseryLogId,record_date recordDate,patient,'diet' type  from base_patient_diet_record " +filter+
 | 
	
		
			
				|  |  |                 " union all " +
 | 
	
		
			
				|  |  |                 " SELECT nursery_log_id nurseryLogId,record_date recordDate,patient,'course' type from base_patient_course_record "+filter +" ) a";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         sql+=" order by recordDate desc";
 | 
	
		
			
				|  |  |         List<Map<String,Object>> nurseryLogDOs = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |         //按时间分组
 | 
	
		
			
				|  |  |         Map<String,Object> date = sortNurseryByDate(nurseryLogDOs);
 | 
	
		
			
				|  |  |         return date;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public Map<String,Object> sortNurseryByDate(List<Map<String,Object>> nurseryLogDOs){
 | 
	
		
			
				|  |  |         //按时间分组
 | 
	
		
			
				|  |  |         Map<String,Object> date = new HashedMap();
 | 
	
		
			
				|  |  |         if(nurseryLogDOs!=null&&nurseryLogDOs.size()>0){
 | 
	
		
			
				|  |  |             Iterator it = nurseryLogDOs.iterator();
 | 
	
		
			
				|  |  |             while (it.hasNext()){
 | 
	
		
			
				|  |  |                 Map<String,Object> nurseryLogDO = (Map<String,Object>)it.next();
 | 
	
		
			
				|  |  |                 //1.获取日期分组
 | 
	
		
			
				|  |  |                 Map<String,Object> dateNurserys = (Map<String,Object>)date.get(String.valueOf(nurseryLogDO.get("recordDate")));
 | 
	
		
			
				|  |  |                 //判断随访时间是否已经创建分组
 | 
	
		
			
				|  |  |                 if(dateNurserys!=null&&dateNurserys.size()>0){
 | 
	
		
			
				|  |  |                     //同一天时间已经有分组则加入list
 | 
	
		
			
				|  |  |                     List<Map<String,Object>> list = (List<Map<String,Object>>)dateNurserys.get("nurserys");
 | 
	
		
			
				|  |  |                     list.add(nurseryLogDO);
 | 
	
		
			
				|  |  |                 }else{
 | 
	
		
			
				|  |  |                     //同一天的时间没有该分组则创建这天的随访计划List
 | 
	
		
			
				|  |  |                     Map<String,Object> newdateNursery = new HashedMap();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     List<Map<String,Object>> dateNurseryLogs = new ArrayList<>();
 | 
	
		
			
				|  |  |                     dateNurseryLogs.add(nurseryLogDO);
 | 
	
		
			
				|  |  |                     newdateNursery.put("nurserys",dateNurseryLogs);
 | 
	
		
			
				|  |  |                     date.put(String.valueOf(nurseryLogDO.get("recordDate")),newdateNursery);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return date;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | }
 |