package com.yihu.jw.service;/** * Created by nature of king on 2018/5/10. */ import com.yihu.base.mysql.query.BaseJpaService; import com.yihu.jw.dao.TaskDao; import com.yihu.jw.dao.TaskDetailDao; import com.yihu.jw.entity.health.bank.TaskDO; import com.yihu.jw.entity.health.bank.TaskDetailDO; import com.yihu.jw.restmodel.common.Envelop; import com.yihu.jw.rm.health.bank.HealthBankMapping; import com.yihu.jw.util.DateUtils; import com.yihu.jw.util.ISqlUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import javax.transaction.Transactional; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; /** * @author wangzhinan * @create 2018-05-10 13:45 * @desc task service **/ @Service @Transactional public class TaskService extends BaseJpaService{ @Autowired private TaskDao taskDao; @Autowired private JdbcTemplate jdbcTemplate; @Autowired private TaskDetailDao taskDetailDao; public Envelop insert(TaskDO taskDO){ taskDao.save(taskDO); Envelop envelop = new Envelop<>(); envelop.setObj(true); return envelop; } /* public Envelop findByCondition(TaskDO taskDO, Integer page, Integer size) throws ParseException { String sql = new ISqlUtils().getSql(taskDO,page,size,"*"); List creditsDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(CreditsDetailDO.class)); String sqlcount = new ISqlUtils().getSql(creditsDetailDO,0,0,"count"); List> rstotal = jdbcTemplate.queryForList(sqlcount); Long count = 0L; if(rstotal!=null&&rstotal.size()>0){ count = (Long) rstotal.get(0).get("total"); } return Envelop.getSuccessListWithPage(HealthBankMapping.api_success, creditsDetailDOS,page,size,count); }*/ public Envelop selectByCondition(TaskDO taskDO,Integer page,Integer size){ String sql = new ISqlUtils().getSql(taskDO,page,size,"*"); List taskDOS1 = jdbcTemplate.query(sql,new BeanPropertyRowMapper(TaskDO.class)); if (taskDOS1 == null || taskDOS1.size() ==0){ List taskDOList = getTasks(taskDO.getPatientId()); for (TaskDO taskDO1:taskDOList){ taskDao.save(taskDO1); } } List taskDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(TaskDO.class)); List taskDOList = new ArrayList<>(); for (TaskDO taskDO1 : taskDOS){ if (taskDO1.getPeriod() == 0){ String taskSql1 = "SELECT * FROM wlyy_health_bank_task_detail td WHERE" + " td.task_id = '" +taskDO1.getId()+ "' AND td.create_time > '" + DateUtils.getDayBegin()+ "' AND td.create_time < '"+DateUtils.getDayEnd()+"'"; List taskDetailList = jdbcTemplate.query(taskSql1,new BeanPropertyRowMapper(TaskDetailDO.class)); if (taskDetailList != null && taskDetailList.size() != 0){ taskDO1.setStatus(1); } } taskDOList.add(taskDO1); } String sqlcount = new ISqlUtils().getSql(taskDO,0,0,"count"); List> rstotal = jdbcTemplate.queryForList(sqlcount); Long count = 0L; if(rstotal!=null&&rstotal.size()>0){ count = (Long) rstotal.get(0).get("total"); } return Envelop.getSuccessListWithPage(HealthBankMapping.api_success, taskDOList,page,size,count); } public List getTasks(String patientId){ List taskDOList = new ArrayList<>(); TaskDO taskDO = new TaskDO(); taskDO.setPatientId(patientId); taskDO.setTaskCode("BIND"); taskDO.setPeriod(1); taskDO.setTaskTitle("首次绑定"); taskDO.setTaskContent("(使用社区发放的已关联您身份信息的设备,登录厦门i健康绑定设备)"); taskDO.setTradeType("activity"); taskDO.setTransactionId("402885e96324a409016324c0a45a0006"); taskDO.setCreateTime(new Date()); taskDO.setUpdateTime(new Date()); taskDOList.add(taskDO); TaskDO taskDO1 = new TaskDO(); taskDO1.setPatientId(patientId); taskDO1.setTaskCode("MEASURE"); taskDO1.setPeriod(0); taskDO1.setTaskTitle("每日测量"); taskDO1.setTaskContent("(使用社区发放的已关联您身份信息的设备,绑定后每天完成测量)"); taskDO1.setTradeType("activity"); taskDO1.setTransactionId("402885e96324a409016324c0a45a0006"); taskDO1.setCreateTime(new Date()); taskDO1.setUpdateTime(new Date()); taskDOList.add(taskDO1); return taskDOList; } }