|
@ -2,6 +2,8 @@ package com.yihu.jw.service;/**
|
|
|
* Created by nature of king on 2018/4/27.
|
|
|
*/
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yihu.base.mysql.query.BaseJpaService;
|
|
|
import com.yihu.jw.dao.*;
|
|
|
import com.yihu.jw.entity.health.bank.*;
|
|
@ -212,7 +214,7 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
accountDO1.setPatientId(creditsDetailDO.getPatientId());
|
|
|
accountDO1.setTotal(0);
|
|
|
accountDO1.setAccountName(creditsDetailDO.getName());
|
|
|
accountDO1.setCardNumber("jw");
|
|
|
accountDO1.setCardNumber(creditsDetailDO.getIdCard());
|
|
|
accountDO1.setHospital("350205");
|
|
|
accountDO1.setPassword("321321312321");
|
|
|
accountDO1.setHospitalName("海沧区");
|
|
@ -241,6 +243,7 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
taskPatientDetailDO.setPatientId(creditsDetailDO.getPatientId());
|
|
|
taskPatientDetailDO.setPatientIdcard(creditsDetailDO.getIdCard());
|
|
|
taskPatientDetailDO.setPatientOpenid(creditsDetailDO.getOpenId());
|
|
|
taskPatientDetailDO.setUnionId(creditsDetailDO.getUnionId());
|
|
|
taskPatientDetailDO.setStatus(Integer.parseInt("0"));
|
|
|
taskPatientDetailDO.setCreateTime(new Date());
|
|
|
taskPatientDetailDO.setUpdateTime(new Date());
|
|
@ -510,18 +513,62 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
/**
|
|
|
* 医生主动加分
|
|
|
*
|
|
|
* @param patientIds 病人id
|
|
|
* @param array 居民信息集合
|
|
|
*
|
|
|
* @param ruleId 规则id
|
|
|
* @return
|
|
|
*/
|
|
|
public Envelop<Boolean> doctorAddIntegrate(List<String> patientIds,String ruleId,String description){
|
|
|
public Envelop<Boolean> doctorAddIntegrate(JSONArray array, String ruleId, String description){
|
|
|
Envelop<Boolean> envelop = new Envelop<>();
|
|
|
for (int i=0;i<patientIds.size();i++){
|
|
|
String patientId = patientIds.get(i);
|
|
|
for (int i=0;i<array.size();i++){
|
|
|
TaskRuleDO taskRuleDO = taskRuleDao.findOne(ruleId);
|
|
|
JSONObject object = array.getJSONObject(i);
|
|
|
String patientId = object.getString("code");
|
|
|
String idCard = object.getString("idcard");
|
|
|
String unionId = object.getString("unionid");
|
|
|
String openId = object.getString("openid");
|
|
|
String taskSql = "select * from wlyy_health_bank_task bt where type = 'RULE_TASK' AND transaction_id = '"+ruleId +"'";
|
|
|
List<TaskDO> taskDOList = jdbcTemplate.query(taskSql,new BeanPropertyRowMapper(TaskDO.class));
|
|
|
TaskDO taskDO1 = new TaskDO();
|
|
|
if (taskDOList.isEmpty() && taskDOList.size() == 0){
|
|
|
TaskDO taskDO = new TaskDO();
|
|
|
taskDO.setTransactionId(taskRuleDO.getId());
|
|
|
taskDO.setTaskCode("RULE");
|
|
|
taskDO.setStatus(1);
|
|
|
taskDO.setRuleCode(taskRuleDO.getId());
|
|
|
taskDO.setType("RULE_TASK");
|
|
|
taskDO.setCreateTime(new Date());
|
|
|
taskDO.setUpdateTime(new Date());
|
|
|
taskDO.setPeriod(taskRuleDO.getPeriod());
|
|
|
taskDO.setSaasId("dev");
|
|
|
taskDO.setTitle(taskRuleDO.getDescription());
|
|
|
taskDO.setContent(taskRuleDO.getDescription());
|
|
|
taskDO1 = taskDao.save(taskDO);
|
|
|
}else {
|
|
|
taskDO1 = taskDOList.get(0);
|
|
|
}
|
|
|
String sql1 = "select * from wlyy_health_bank_task_patient_detail where task_id = '"+taskDO1.getId()+"' " +
|
|
|
"AND patient_idcard = '"+idCard+"' AND patient_openid = '"+openId+"' AND union_id = '"+unionId+"'";
|
|
|
List<TaskPatientDetailDO> taskPatientDetailDOS = jdbcTemplate.query(sql1,new BeanPropertyRowMapper(TaskPatientDetailDO.class));
|
|
|
TaskPatientDetailDO taskPatientDetailDO1 = new TaskPatientDetailDO();
|
|
|
if (taskPatientDetailDOS.isEmpty() && taskPatientDetailDOS.size() == 0){
|
|
|
TaskPatientDetailDO taskPatientDetailDO = new TaskPatientDetailDO();
|
|
|
taskPatientDetailDO.setStatus(1);
|
|
|
taskPatientDetailDO.setTotal(Long.parseLong("0"));
|
|
|
taskPatientDetailDO.setPatientId(patientId);
|
|
|
taskPatientDetailDO.setPatientOpenid(openId);
|
|
|
taskPatientDetailDO.setPatientIdcard(idCard);
|
|
|
taskPatientDetailDO.setUnionId(unionId);
|
|
|
taskPatientDetailDO.setSaasId("dev");
|
|
|
taskPatientDetailDO.setCreateTime(new Date());
|
|
|
taskPatientDetailDO.setUpdateTime(new Date());
|
|
|
taskPatientDetailDO.setTaskId(taskDO1.getId());
|
|
|
taskPatientDetailDO1 = taskPatientDetailDao.save(taskPatientDetailDO);
|
|
|
}else {
|
|
|
taskPatientDetailDO1 = taskPatientDetailDOS.get(0);
|
|
|
}
|
|
|
String sql = "select * from wlyy_health_bank_account where patient_id = '"+patientId+"'";
|
|
|
List<AccountDO> accountDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(AccountDO.class));
|
|
|
TaskRuleDO taskRuleDO = taskRuleDao.findOne(ruleId);
|
|
|
if (taskRuleDO.getTradeDirection() == -1 && taskRuleDO.getIntegrate() == 0){
|
|
|
String integrateSql = "select * from wlyy_health_bank_credits_detail where patient_id = '"+patientId+"'";
|
|
|
List<CreditsDetailDO> creditsDetailDOS = jdbcTemplate.query(integrateSql,new BeanPropertyRowMapper(CreditsDetailDO.class));
|
|
@ -529,6 +576,19 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
creditsDetailDO.setStatus(0);
|
|
|
creditsDetailDO.setDescription(description);
|
|
|
credittsLogDetailDao.save(creditsDetailDO);
|
|
|
CreditsDetailDO creditsDetailDO1 = new CreditsDetailDO();
|
|
|
creditsDetailDO1.setStatus(1);
|
|
|
creditsDetailDO1.setAccountId(accountDOS.get(0).getId());
|
|
|
creditsDetailDO1.setHospital("350205");
|
|
|
creditsDetailDO1.setPatientId(patientId);
|
|
|
creditsDetailDO1.setIntegrate(taskRuleDO.getIntegrate());
|
|
|
creditsDetailDO1.setTradeDirection(taskRuleDO.getTradeDirection());
|
|
|
creditsDetailDO1.setDescription(description);
|
|
|
creditsDetailDO1.setCreateTime(new Date());
|
|
|
creditsDetailDO1.setUpdateTime(new Date());
|
|
|
creditsDetailDO1.setTransactionId(taskDO1.getId());
|
|
|
creditsDetailDO1.setTradeType("HEALTH_TASK");
|
|
|
credittsLogDetailDao.save(creditsDetailDO);
|
|
|
AccountDO accountDO = accountDOS.get(0);
|
|
|
accountDO.setTotal(0);
|
|
|
accountDao.save(accountDO);
|
|
@ -544,6 +604,8 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
creditsDetailDO.setDescription(description);
|
|
|
creditsDetailDO.setCreateTime(new Date());
|
|
|
creditsDetailDO.setUpdateTime(new Date());
|
|
|
creditsDetailDO.setTransactionId(taskDO1.getId());
|
|
|
creditsDetailDO.setTradeType("HEALTH_TASK");
|
|
|
credittsLogDetailDao.save(creditsDetailDO);
|
|
|
if (taskRuleDO.getTradeDirection() == -1){
|
|
|
AccountDO accountDO = accountDOS.get(0);
|
|
@ -621,14 +683,14 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
creditsDetailDO.setAccountId(accountDOS.get(0).getId());
|
|
|
}
|
|
|
TaskDO taskDO = taskDao.findOne(creditsDetailDO.getTransactionId());
|
|
|
String sql1 = "select * from wlyy_health_bank_task_patient_detail where patient_openid = '"+creditsDetailDO.getOpenId()+"' " +
|
|
|
String sql1 = "select * from wlyy_health_bank_task_patient_detail where patient_openid = '"+creditsDetailDO.getOpenId()+"' " +
|
|
|
"AND patient_idcard = '"+creditsDetailDO.getIdCard()+"' AND union_id = '"+creditsDetailDO.getUnionId()+"' AND task_id = '"+creditsDetailDO.getTransactionId()+"'";
|
|
|
List<TaskPatientDetailDO> taskPatientDetailDOList = jdbcTemplate.query(sql1,new BeanPropertyRowMapper(TaskPatientDetailDO.class));
|
|
|
TaskPatientDetailDO taskPatientDetailDO = taskPatientDetailDOList.get(0);
|
|
|
String sql = "select * from wlyy_health_bank_credits_detail where patient_id = '"+creditsDetailDO.getPatientId()+"' AND " +
|
|
|
"transaction_id = '"+creditsDetailDO.getTransactionId()+"' AND create_time > '"+DateUtils.getDayBegin() +"' AND" +
|
|
|
" create_time < '"+DateUtils.getDayEnd()+"'";
|
|
|
List<CreditsDetailDO> creditsDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>());
|
|
|
List<CreditsDetailDO> creditsDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(CreditsDetailDO.class));
|
|
|
if (creditsDetailDOS != null && creditsDetailDOS.size() != 0){
|
|
|
CreditsDetailDO creditsDetailDO1 = creditsDetailDOS.get(0);
|
|
|
TaskRuleDO taskRuleDO = taskRuleDao.findOne(taskDO.getRuleCode());
|
|
@ -638,28 +700,34 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
CreditsDetailDO creditsDetailDO2 = credittsLogDetailDao.save(creditsDetailDO1);
|
|
|
AccountDO accountDO = accountDao.findOne(creditsDetailDO2.getAccountId());
|
|
|
accountDO.setTotal(accountDO.getTotal()+creditsDetailDO2.getIntegrate());
|
|
|
accountDao.save(accountDO);
|
|
|
AccountDO accountDO1 = accountDao.save(accountDO);
|
|
|
creditsDetailDO2.setTotal(accountDO1.getTotal());
|
|
|
taskPatientDetailDO.setTotal(taskPatientDetailDO.getTotal()+creditsDetailDO2.getIntegrate());
|
|
|
taskPatientDetailDao.save(taskPatientDetailDO);
|
|
|
creditsDetailDOS.clear();
|
|
|
creditsDetailDOS.add(creditsDetailDO2);
|
|
|
}else if (creditsDetailDO.getStepNumber() == 10000){
|
|
|
creditsDetailDO1.setIntegrate(creditsDetailDO1.getIntegrate()+3);
|
|
|
creditsDetailDO1.setIntegrate(creditsDetailDO1.getIntegrate()+2);
|
|
|
creditsDetailDO1.setTradeDirection(1);
|
|
|
CreditsDetailDO creditsDetailDO2 = credittsLogDetailDao.save(creditsDetailDO1);
|
|
|
AccountDO accountDO = accountDao.findOne(creditsDetailDO2.getAccountId());
|
|
|
accountDO.setTotal(accountDO.getTotal()+(creditsDetailDO2.getIntegrate()-1));
|
|
|
accountDao.save(accountDO);
|
|
|
AccountDO accountDO1 = accountDao.save(accountDO);
|
|
|
creditsDetailDO2.setTotal(accountDO1.getTotal());
|
|
|
taskPatientDetailDO.setTotal(taskPatientDetailDO.getTotal()+(creditsDetailDO2.getIntegrate()-1));
|
|
|
taskPatientDetailDao.save(taskPatientDetailDO);
|
|
|
creditsDetailDOS.clear();
|
|
|
creditsDetailDOS.add(creditsDetailDO2);
|
|
|
}else if (creditsDetailDO.getStepNumber() == 50000){
|
|
|
creditsDetailDO1.setIntegrate(creditsDetailDO1.getIntegrate()+4);
|
|
|
creditsDetailDO1.setIntegrate(creditsDetailDO1.getIntegrate()+5);
|
|
|
creditsDetailDO1.setTradeDirection(1);
|
|
|
CreditsDetailDO creditsDetailDO2 = credittsLogDetailDao.save(creditsDetailDO1);
|
|
|
AccountDO accountDO = accountDao.findOne(creditsDetailDO2.getAccountId());
|
|
|
accountDO.setTotal(accountDO.getTotal()+(creditsDetailDO2.getIntegrate()-3));
|
|
|
accountDao.save(accountDO);
|
|
|
AccountDO accountDO1 = accountDao.save(accountDO);
|
|
|
creditsDetailDO2.setTotal(accountDO1.getTotal());
|
|
|
taskPatientDetailDO.setTotal(taskPatientDetailDO.getTotal()+(creditsDetailDO2.getIntegrate()-3));
|
|
|
creditsDetailDOS.clear();
|
|
|
creditsDetailDOS.add(creditsDetailDO2);
|
|
|
}
|
|
|
}else{
|
|
@ -672,21 +740,24 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
|
|
|
creditsDetailDO1.setIntegrate(3);
|
|
|
creditsDetailDO1.setTradeDirection(1);
|
|
|
}else if (creditsDetailDO.getStepNumber() == 50000){
|
|
|
creditsDetailDO1.setIntegrate(7);
|
|
|
creditsDetailDO1.setIntegrate(8);
|
|
|
creditsDetailDO1.setTradeDirection(1);
|
|
|
}
|
|
|
creditsDetailDO1.setSaasId("dev");
|
|
|
creditsDetailDO1.setTradeType("HEALTH_TASK");
|
|
|
creditsDetailDO1.setPatientId(creditsDetailDO.getPatientId());
|
|
|
creditsDetailDO1.setHospital("350205");
|
|
|
creditsDetailDO1.setAccountId(creditsDetailDO1.getAccountId());
|
|
|
creditsDetailDO1.setAccountId(creditsDetailDO.getAccountId());
|
|
|
creditsDetailDO1.setStatus(1);
|
|
|
creditsDetailDO1.setCreateTime(new Date());
|
|
|
creditsDetailDO1.setUpdateTime(new Date());
|
|
|
creditsDetailDO1.setTransactionId(taskPatientDetailDO.getTaskId());
|
|
|
CreditsDetailDO creditsDetailDO2 = credittsLogDetailDao.save(creditsDetailDO1);
|
|
|
AccountDO accountDO = accountDao.findOne(creditsDetailDO2.getAccountId());
|
|
|
accountDO.setTotal(accountDO.getTotal()+creditsDetailDO2.getIntegrate());
|
|
|
taskPatientDetailDO.setTotal(taskPatientDetailDO.getTotal()+creditsDetailDO2.getIntegrate());
|
|
|
taskPatientDetailDao.save(taskPatientDetailDO);
|
|
|
creditsDetailDO2.setTotal(accountDO.getTotal());
|
|
|
creditsDetailDOS.add(creditsDetailDO2);
|
|
|
}
|
|
|
Envelop<CreditsDetailDO> envelop = new Envelop<>();
|