|
@ -2,11 +2,14 @@ package com.yihu.jw.service;/**
|
|
* Created by nature of king on 2018/5/10.
|
|
* Created by nature of king on 2018/5/10.
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.yihu.base.mysql.query.BaseJpaService;
|
|
import com.yihu.base.mysql.query.BaseJpaService;
|
|
|
|
import com.yihu.jw.dao.ActivityDao;
|
|
import com.yihu.jw.dao.TaskDao;
|
|
import com.yihu.jw.dao.TaskDao;
|
|
import com.yihu.jw.dao.TaskDetailDao;
|
|
|
|
|
|
import com.yihu.jw.dao.TaskPatientDetailDao;
|
|
|
|
import com.yihu.jw.entity.health.bank.ActivityDO;
|
|
import com.yihu.jw.entity.health.bank.TaskDO;
|
|
import com.yihu.jw.entity.health.bank.TaskDO;
|
|
import com.yihu.jw.entity.health.bank.TaskDetailDO;
|
|
|
|
|
|
import com.yihu.jw.entity.health.bank.TaskPatientDetailDO;
|
|
import com.yihu.jw.restmodel.common.Envelop;
|
|
import com.yihu.jw.restmodel.common.Envelop;
|
|
import com.yihu.jw.rm.health.bank.HealthBankMapping;
|
|
import com.yihu.jw.rm.health.bank.HealthBankMapping;
|
|
import com.yihu.jw.util.DateUtils;
|
|
import com.yihu.jw.util.DateUtils;
|
|
@ -36,16 +39,41 @@ public class TaskService extends BaseJpaService<TaskDO,TaskDao>{
|
|
@Autowired
|
|
@Autowired
|
|
private JdbcTemplate jdbcTemplate;
|
|
private JdbcTemplate jdbcTemplate;
|
|
@Autowired
|
|
@Autowired
|
|
private TaskDetailDao taskDetailDao;
|
|
|
|
|
|
private TaskPatientDetailDao taskPatientDetailDao;
|
|
|
|
@Autowired
|
|
|
|
private ActivityDao activityDao;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 添加任务
|
|
|
|
*
|
|
|
|
* @param taskDO 任务对象
|
|
|
|
* @return
|
|
|
|
*/
|
|
public Envelop<Boolean> insert(TaskDO taskDO){
|
|
public Envelop<Boolean> insert(TaskDO taskDO){
|
|
|
|
taskDO.setCreateTime(new Date());
|
|
|
|
taskDO.setUpdateTime(new Date());
|
|
taskDao.save(taskDO);
|
|
taskDao.save(taskDO);
|
|
Envelop<Boolean> envelop = new Envelop<>();
|
|
Envelop<Boolean> envelop = new Envelop<>();
|
|
envelop.setObj(true);
|
|
envelop.setObj(true);
|
|
return envelop;
|
|
return envelop;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 更新任务
|
|
|
|
*
|
|
|
|
* @param taskDO
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public Envelop<Boolean> update(TaskDO taskDO){
|
|
|
|
String sql = ISqlUtils.getUpdateSql(taskDO);
|
|
|
|
jdbcTemplate.update(sql);
|
|
|
|
Envelop<Boolean> envelop = new Envelop<>();
|
|
|
|
envelop.setObj(true);
|
|
|
|
return envelop;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* public Envelop<CreditsDetailDO> findByCondition(TaskDO taskDO, Integer page, Integer size) throws ParseException {
|
|
/* public Envelop<CreditsDetailDO> findByCondition(TaskDO taskDO, Integer page, Integer size) throws ParseException {
|
|
String sql = new ISqlUtils().getSql(taskDO,page,size,"*");
|
|
String sql = new ISqlUtils().getSql(taskDO,page,size,"*");
|
|
List<CreditsDetailDO> creditsDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(CreditsDetailDO.class));
|
|
List<CreditsDetailDO> creditsDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(CreditsDetailDO.class));
|
|
@ -58,29 +86,37 @@ public class TaskService extends BaseJpaService<TaskDO,TaskDao>{
|
|
return Envelop.getSuccessListWithPage(HealthBankMapping.api_success, creditsDetailDOS,page,size,count);
|
|
return Envelop.getSuccessListWithPage(HealthBankMapping.api_success, creditsDetailDOS,page,size,count);
|
|
}*/
|
|
}*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 查找数据
|
|
|
|
*
|
|
|
|
* @param taskDO 任务对象
|
|
|
|
* @param page 页码
|
|
|
|
* @param size 分页大小
|
|
|
|
* @return
|
|
|
|
*/
|
|
public Envelop<TaskDO> selectByCondition(TaskDO taskDO,Integer page,Integer size){
|
|
public Envelop<TaskDO> selectByCondition(TaskDO taskDO,Integer page,Integer size){
|
|
String sql = new ISqlUtils().getSql(taskDO,page,size,"*");
|
|
String sql = new ISqlUtils().getSql(taskDO,page,size,"*");
|
|
List<TaskDO> taskDOS1 = jdbcTemplate.query(sql,new BeanPropertyRowMapper(TaskDO.class));
|
|
|
|
if (taskDOS1 == null || taskDOS1.size() ==0){
|
|
|
|
List<TaskDO> taskDOList = getTasks(taskDO.getPatientId());
|
|
|
|
for (TaskDO taskDO1:taskDOList){
|
|
|
|
taskDao.save(taskDO1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<TaskDO> taskDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(TaskDO.class));
|
|
List<TaskDO> taskDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(TaskDO.class));
|
|
List<TaskDO> 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<TaskDetailDO> taskDetailList = jdbcTemplate.query(taskSql1,new BeanPropertyRowMapper(TaskDetailDO.class));
|
|
|
|
if (taskDetailList != null && taskDetailList.size() != 0){
|
|
|
|
taskDO1.setStatus(1);
|
|
|
|
}
|
|
|
|
|
|
for (TaskDO taskDO1:taskDOS){
|
|
|
|
if (taskDO1.getType().equalsIgnoreCase("ACTIVITY_TASK")){
|
|
|
|
ActivityDO activityDO = activityDao.findOne(taskDO1.getTransactionId());
|
|
|
|
taskDO1.setActivityDO(activityDO);
|
|
|
|
}
|
|
|
|
//参与活动的详情
|
|
|
|
String taskSql = "select * from wlyy_health_bank_task_patient_detail where task_id = '"+taskDO1.getId()+
|
|
|
|
"' and patient_openid = '"+taskDO.getOpenId()+"'";
|
|
|
|
List<TaskPatientDetailDO> taskPatientDetailDOS = jdbcTemplate.query(taskSql,new BeanPropertyRowMapper(TaskPatientDetailDO.class));
|
|
|
|
taskDO1.setTaskPatientDetailDOS(taskPatientDetailDOS);
|
|
|
|
//参与人数
|
|
|
|
String taskSql1 = "select count(1) as total from wlyy_health_bank_task_patient_detail where task_id = '"+taskDO1.getId()+"'";
|
|
|
|
List<Map<String,Object>> rstotal = jdbcTemplate.queryForList(taskSql1);
|
|
|
|
Long count = 0L;
|
|
|
|
if(rstotal!=null&&rstotal.size()>0){
|
|
|
|
count = (Long) rstotal.get(0).get("total");
|
|
}
|
|
}
|
|
taskDOList.add(taskDO1);
|
|
|
|
|
|
taskDO1.setTotal(count);
|
|
|
|
taskDO1.setPatientId(taskDO.getPatientId());
|
|
|
|
|
|
}
|
|
}
|
|
String sqlcount = new ISqlUtils().getSql(taskDO,0,0,"count");
|
|
String sqlcount = new ISqlUtils().getSql(taskDO,0,0,"count");
|
|
List<Map<String,Object>> rstotal = jdbcTemplate.queryForList(sqlcount);
|
|
List<Map<String,Object>> rstotal = jdbcTemplate.queryForList(sqlcount);
|
|
@ -88,12 +124,65 @@ public class TaskService extends BaseJpaService<TaskDO,TaskDao>{
|
|
if(rstotal!=null&&rstotal.size()>0){
|
|
if(rstotal!=null&&rstotal.size()>0){
|
|
count = (Long) rstotal.get(0).get("total");
|
|
count = (Long) rstotal.get(0).get("total");
|
|
}
|
|
}
|
|
|
|
return Envelop.getSuccessListWithPage(HealthBankMapping.api_success, taskDOS,page,size,count);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 查看当前的任务
|
|
|
|
* @param array taskCode集合
|
|
|
|
* @param patientId 居民id
|
|
|
|
* @param page 页码
|
|
|
|
* @param size 分页大小
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public Envelop<TaskDO> selectByTask(JSONArray array,String patientId,Integer page,Integer size){
|
|
|
|
StringBuffer buffer = new StringBuffer();
|
|
|
|
List<String> taskCodes = new ArrayList<>();
|
|
|
|
for (int i=0;i<array.size();i++){
|
|
|
|
taskCodes.add(array.getString(i));
|
|
|
|
}
|
|
|
|
buffer.append(" bt.task_code in(");
|
|
|
|
if (taskCodes == null || taskCodes.size() == 0){
|
|
|
|
buffer.append("''");
|
|
|
|
}else {
|
|
|
|
for (int i=0;i<taskCodes.size();i++){
|
|
|
|
buffer.append("'"+taskCodes.get(i)+"'").append(",");
|
|
|
|
}
|
|
|
|
buffer.deleteCharAt(buffer.length()-1);
|
|
|
|
}
|
|
|
|
buffer.append(") ");
|
|
|
|
String sql = "select * from wlyy_health_bank_task bt where "+buffer +" ORDER BY update_time DESC LIMIT "+(page-1)*size+","+size;
|
|
|
|
List<TaskDO> taskDOList = jdbcTemplate.query(sql,new BeanPropertyRowMapper(TaskDO.class));
|
|
|
|
for (TaskDO taskDO:taskDOList){
|
|
|
|
if (taskDO.getType().equalsIgnoreCase("ACTIVITY_TASK")){
|
|
|
|
ActivityDO activityDO = activityDao.findOne(taskDO.getTransactionId());
|
|
|
|
taskDO.setActivityDO(activityDO);
|
|
|
|
}
|
|
|
|
if (taskDO.getPeriod() == 1){
|
|
|
|
String taskSql = "select * from wlyy_health_bank_task_patient_detail where task_id = '"+taskDO.getId()+
|
|
|
|
"' and patient_id = '"+patientId+"'";
|
|
|
|
List<TaskPatientDetailDO> taskPatientDetailDOS = jdbcTemplate.query(taskSql,new BeanPropertyRowMapper(TaskPatientDetailDO.class));
|
|
|
|
taskDO.setTaskPatientDetailDOS(taskPatientDetailDOS);
|
|
|
|
}else if (taskDO.getPeriod() == 0){
|
|
|
|
String taskSql = "select * from wlyy_health_bank_task_patient_detail where task_id = '"+taskDO.getId()+
|
|
|
|
"' and patient_id = '"+patientId+"' and create_time > '" + DateUtils.getDayBegin() +"' and create_time < '"+ DateUtils.getDayEnd() +"'";
|
|
|
|
List<TaskPatientDetailDO> taskPatientDetailDOS = jdbcTemplate.query(taskSql,new BeanPropertyRowMapper(TaskPatientDetailDO.class));
|
|
|
|
taskDO.setTaskPatientDetailDOS(taskPatientDetailDOS);
|
|
|
|
}
|
|
|
|
taskDO.setPatientId(patientId);
|
|
|
|
}
|
|
|
|
String sqlcount = "select COUNT(1) AS total from wlyy_health_bank_task bt where "+buffer ;
|
|
|
|
List<Map<String,Object>> 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);
|
|
return Envelop.getSuccessListWithPage(HealthBankMapping.api_success, taskDOList,page,size,count);
|
|
}
|
|
}
|
|
public List<TaskDO> getTasks(String patientId){
|
|
|
|
|
|
/* public List<TaskDO> getTasks(String patientId){
|
|
List<TaskDO> taskDOList = new ArrayList<>();
|
|
List<TaskDO> taskDOList = new ArrayList<>();
|
|
TaskDO taskDO = new TaskDO();
|
|
TaskDO taskDO = new TaskDO();
|
|
taskDO.setPatientId(patientId);
|
|
|
|
|
|
*//*taskDO.setPatientId(patientId);*//*
|
|
taskDO.setTaskCode("BIND");
|
|
taskDO.setTaskCode("BIND");
|
|
taskDO.setPeriod(1);
|
|
taskDO.setPeriod(1);
|
|
taskDO.setTaskTitle("首次绑定");
|
|
taskDO.setTaskTitle("首次绑定");
|
|
@ -104,7 +193,7 @@ public class TaskService extends BaseJpaService<TaskDO,TaskDao>{
|
|
taskDO.setUpdateTime(new Date());
|
|
taskDO.setUpdateTime(new Date());
|
|
taskDOList.add(taskDO);
|
|
taskDOList.add(taskDO);
|
|
TaskDO taskDO1 = new TaskDO();
|
|
TaskDO taskDO1 = new TaskDO();
|
|
taskDO1.setPatientId(patientId);
|
|
|
|
|
|
*//* taskDO1.setPatientId(patientId);*//*
|
|
taskDO1.setTaskCode("MEASURE");
|
|
taskDO1.setTaskCode("MEASURE");
|
|
taskDO1.setPeriod(0);
|
|
taskDO1.setPeriod(0);
|
|
taskDO1.setTaskTitle("每日测量");
|
|
taskDO1.setTaskTitle("每日测量");
|
|
@ -115,5 +204,5 @@ public class TaskService extends BaseJpaService<TaskDO,TaskDao>{
|
|
taskDO1.setUpdateTime(new Date());
|
|
taskDO1.setUpdateTime(new Date());
|
|
taskDOList.add(taskDO1);
|
|
taskDOList.add(taskDO1);
|
|
return taskDOList;
|
|
return taskDOList;
|
|
}
|
|
|
|
|
|
}*/
|
|
}
|
|
}
|