|
@ -30,6 +30,7 @@ import com.yihu.wlyy.service.app.message.MessageService;
|
|
|
import com.yihu.wlyy.service.app.team.AdminTeamService;
|
|
|
import com.yihu.wlyy.task.SignUploadTask;
|
|
|
import com.yihu.wlyy.util.*;
|
|
|
import com.yihu.wlyy.wechat.util.WeiXinAccessTokenUtils;
|
|
|
import org.apache.commons.beanutils.converters.IntegerConverter;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.json.JSONArray;
|
|
@ -110,6 +111,8 @@ public class FamilyContractService extends BaseService {
|
|
|
SignPatientLabelInfoDao labelInfoDao;
|
|
|
@Autowired
|
|
|
JdbcTemplate jdbcTemplate;
|
|
|
@Autowired
|
|
|
WeiXinAccessTokenUtils accessTokenUtils;
|
|
|
|
|
|
public SignFamily findSignFamilyByCode(String code) {
|
|
|
return signFamilyDao.findByCodeAndType(code, 2);
|
|
@ -1612,6 +1615,15 @@ public class FamilyContractService extends BaseService {
|
|
|
*/
|
|
|
public JSONObject updateSignInfo(String patient, String healthDoctor, String doctor, String expensesType) {
|
|
|
JSONObject result = new JSONObject();
|
|
|
Patient p = patientDao.findByCode(patient);
|
|
|
|
|
|
if (p == null) {
|
|
|
result.put("status", -1);
|
|
|
result.put("msg", "居民不存在");
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
List<JSONObject> wxMessages = new ArrayList<>();
|
|
|
|
|
|
SignFamily signFamily = signFamilyDao.findByjiatingPatientYes(patient);
|
|
|
|
|
@ -1644,6 +1656,22 @@ public class FamilyContractService extends BaseService {
|
|
|
teamMember.setCzrq(new Date());
|
|
|
doctorTeamDoctor.save(teamMember);
|
|
|
}
|
|
|
|
|
|
JSONObject data = new JSONObject();
|
|
|
data.put("first", "因签约团队内分工调整,您的责任医生有变动," + signFamily.getDoctorHealthName() +
|
|
|
"医生无法继续为您服务,具体变动如下:");
|
|
|
data.put("keyword1", "家庭签约");
|
|
|
data.put("keyword2", docHealth.getName());
|
|
|
data.put("remark", signFamily.getDoctorName() + "医生与" + docHealth.getName() +
|
|
|
"医生一道,为您提供优质健康服务");
|
|
|
wxMessages.add(data);
|
|
|
} else {
|
|
|
JSONObject data = new JSONObject();
|
|
|
data.put("first", "您的签约团队新增一位责任医生,其将与" + signFamily.getDoctorName() +
|
|
|
"医生一道,为您提供优质健康管理服务,医生信息如下:");
|
|
|
data.put("keyword1", "家庭签约");
|
|
|
data.put("keyword2", docHealth.getName());
|
|
|
wxMessages.add(data);
|
|
|
}
|
|
|
// 新增团队信息
|
|
|
if (StringUtils.isNotEmpty(signFamily.getTeamCode())) {
|
|
@ -1701,6 +1729,16 @@ public class FamilyContractService extends BaseService {
|
|
|
signFamily.setDoctor(docQk.getCode());
|
|
|
signFamily.setDoctorName(docQk.getName());
|
|
|
signFamily.setCzrq(new Date());
|
|
|
|
|
|
JSONObject data = new JSONObject();
|
|
|
data.put("first", "因签约团队内分工调整,您的责任医生有变动," + signFamily.getDoctorName() +
|
|
|
"医生无法继续为您服务,具体变动如下:");
|
|
|
data.put("keyword1", "家庭签约");
|
|
|
data.put("keyword2", docQk.getName());
|
|
|
data.put("remark", docQk.getName() + "医生" +
|
|
|
(StringUtils.isNotEmpty(signFamily.getDoctorHealthName()) ? ("与" + signFamily.getDoctorHealthName() + "医生一道") : "") +
|
|
|
",为您提供优质健康服务");
|
|
|
wxMessages.add(data);
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isNotEmpty(expensesType)) {
|
|
@ -1716,6 +1754,10 @@ public class FamilyContractService extends BaseService {
|
|
|
result.put("status", 1);
|
|
|
result.put("msg", "更新成功");
|
|
|
|
|
|
for (JSONObject msg : wxMessages) {
|
|
|
PushMsgTask.getInstance().putWxMsg(accessTokenUtils.getAccessToken(), 10, p.getOpenid(), p.getName(), msg);
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
@ -1734,22 +1776,22 @@ public class FamilyContractService extends BaseService {
|
|
|
" WHERE " +
|
|
|
" sf.type = 2 " +
|
|
|
" AND sf. STATUS >= 0 " +
|
|
|
" and sf.doctor = ? "+
|
|
|
" AND ( sf.doctor_health is null or sf.doctor_health ='' ) ) a where 1=1" ;
|
|
|
if(!org.springframework.util.StringUtils.isEmpty(patientAddr)){
|
|
|
sql+= " AND a.address like '%"+patientAddr+"%'";
|
|
|
}
|
|
|
if(!org.springframework.util.StringUtils.isEmpty(patientName)){
|
|
|
sql+= " AND a.name like '%"+patientName+"%'";
|
|
|
}
|
|
|
List<Map<String, Object>> datas = jdbcTemplate.queryForList(sql, doctorCode );
|
|
|
if(datas!=null&&datas.size()>0){
|
|
|
for(Map<String, Object> map:datas){
|
|
|
JSONObject jo=new JSONObject();
|
|
|
jo.put("signcode",map.get("signcode"));
|
|
|
jo.put("name",map.get("name"));
|
|
|
jo.put("code",map.get("code"));
|
|
|
jo.put("hasopenid",map.get("hasopenid"));
|
|
|
" and sf.doctor = ? " +
|
|
|
" AND ( sf.doctor_health is null or sf.doctor_health ='' ) ) a where 1=1";
|
|
|
if (!org.springframework.util.StringUtils.isEmpty(patientAddr)) {
|
|
|
sql += " AND a.address like '%" + patientAddr + "%'";
|
|
|
}
|
|
|
if (!org.springframework.util.StringUtils.isEmpty(patientName)) {
|
|
|
sql += " AND a.name like '%" + patientName + "%'";
|
|
|
}
|
|
|
List<Map<String, Object>> datas = jdbcTemplate.queryForList(sql, doctorCode);
|
|
|
if (datas != null && datas.size() > 0) {
|
|
|
for (Map<String, Object> map : datas) {
|
|
|
JSONObject jo = new JSONObject();
|
|
|
jo.put("signcode", map.get("signcode"));
|
|
|
jo.put("name", map.get("name"));
|
|
|
jo.put("code", map.get("code"));
|
|
|
jo.put("hasopenid", map.get("hasopenid"));
|
|
|
jo.put("age", IdCardUtil.getAgeForIdcard(map.get("idcard").toString()));
|
|
|
jo.put("sex", IdCardUtil.getSexForIdcard_new(map.get("idcard").toString()));
|
|
|
returnMap.put(jo);
|
|
@ -1757,7 +1799,8 @@ public class FamilyContractService extends BaseService {
|
|
|
}
|
|
|
return returnMap;
|
|
|
}
|
|
|
public JSONObject findNoHealthSignFamilyHealth(String doctorCode, String labelType, String patientName) throws Exception{
|
|
|
|
|
|
public JSONObject findNoHealthSignFamilyHealth(String doctorCode, String labelType, String patientName) throws Exception {
|
|
|
JSONObject returnMap = new JSONObject();
|
|
|
//健康管理师
|
|
|
String sql = "SELECT " +
|
|
@ -1766,21 +1809,21 @@ public class FamilyContractService extends BaseService {
|
|
|
" p.code code, " +
|
|
|
" CASE WHEN p.openid is null THEN '0' WHEN p.openid='' THEN '0' else 1 END hasopenid, " +
|
|
|
" sp.id labelid, " +
|
|
|
" CASE WHEN sp.label_name is null THEN '未标注' WHEN sp.label_name='' THEN '未标注' else sp.label_name END labelname, "+
|
|
|
" CASE WHEN sp.label_name is null THEN '未标注' WHEN sp.label_name='' THEN '未标注' else sp.label_name END labelname, " +
|
|
|
" sp.label_type labeltype, " +
|
|
|
" p.idcard idcard " +
|
|
|
" FROM " +
|
|
|
" FROM " +
|
|
|
" wlyy_sign_family sf " +
|
|
|
" JOIN wlyy_patient p ON sf.patient = p.CODE " +
|
|
|
" left JOIN wlyy_sign_patient_label_info sp ON sf.patient = sp.patient AND sp.label_type = ? AND sp.`status` = 1 " +
|
|
|
" WHERE " +
|
|
|
" WHERE " +
|
|
|
" sf.type = 2 " +
|
|
|
" AND sf. STATUS >= 0 " +
|
|
|
" and sf.doctor = ? "+
|
|
|
" AND ( sf.doctor_health is null or sf.doctor_health ='' ) " ;
|
|
|
" and sf.doctor = ? " +
|
|
|
" AND ( sf.doctor_health is null or sf.doctor_health ='' ) ";
|
|
|
List<Map<String, Object>> datas = null;
|
|
|
//查找居民
|
|
|
datas = jdbcTemplate.queryForList(sql,labelType , doctorCode );
|
|
|
datas = jdbcTemplate.queryForList(sql, labelType, doctorCode);
|
|
|
|
|
|
//根据类别查找标签
|
|
|
List<SignPatientLabel> s = labelDao.findByLabelTypeAndStatus(labelType, 1);
|
|
@ -1790,17 +1833,16 @@ public class FamilyContractService extends BaseService {
|
|
|
}
|
|
|
if (datas != null && datas.size() > 0) {
|
|
|
for (Map<String, Object> map : datas) {
|
|
|
JSONObject jo=new JSONObject();
|
|
|
jo.put("signcode",map.get("signcode"));
|
|
|
jo.put("name",map.get("name"));
|
|
|
jo.put("code",map.get("code"));
|
|
|
jo.put("hasopenid",map.get("hasopenid"));
|
|
|
JSONObject jo = new JSONObject();
|
|
|
jo.put("signcode", map.get("signcode"));
|
|
|
jo.put("name", map.get("name"));
|
|
|
jo.put("code", map.get("code"));
|
|
|
jo.put("hasopenid", map.get("hasopenid"));
|
|
|
jo.put("age", IdCardUtil.getAgeForIdcard(map.get("idcard").toString()));
|
|
|
jo.put("sex", IdCardUtil.getSexForIdcard_new(map.get("idcard").toString()));
|
|
|
JSONArray jr = returnMap.getJSONArray(map.get("labelname").toString());
|
|
|
//判断是否为空
|
|
|
if (jr == null) {
|
|
|
jr = new JSONArray();
|
|
|
JSONArray jr = new JSONArray();
|
|
|
if (returnMap.has(map.get("labelname").toString())) {
|
|
|
jr = returnMap.getJSONArray(map.get("labelname").toString());
|
|
|
}
|
|
|
jr.put(jo);
|
|
|
returnMap.put(map.get("labelname").toString(), jr);
|
|
@ -2054,20 +2096,21 @@ public class FamilyContractService extends BaseService {
|
|
|
return returnMap;
|
|
|
}
|
|
|
|
|
|
public JSONObject getPatientByLable(String doctorCode, String labelType) throws Exception {
|
|
|
public JSONObject getPatientByLable(String doctorCode, String labelType, String level) throws Exception {
|
|
|
JSONObject returnMap = new JSONObject();
|
|
|
Doctor doctor = doctorDao.findByCode(doctorCode);
|
|
|
//判断当前用户是健康管理师还是全科
|
|
|
List<Map<String, Object>> datas = null;
|
|
|
if (doctor.getLevel() == 3) {
|
|
|
if (level.equals("3")) {
|
|
|
//健康管理师
|
|
|
String sql = "SELECT " +
|
|
|
" sf. CODE signcode, " +
|
|
|
" p.name name, " +
|
|
|
" p.photo photo, " +
|
|
|
" p.code code, " +
|
|
|
" CASE WHEN p.openid is null THEN '0' WHEN p.openid='' THEN '0' else 1 END hasopenid, " +
|
|
|
" sp.id labelid, " +
|
|
|
" CASE WHEN sp.label_name is null THEN '未标注' WHEN sp.label_name='' THEN '未标注' else sp.label_name END labelname, "+
|
|
|
" CASE WHEN sp.label_name is null THEN '未标注' WHEN sp.label_name='' THEN '未标注' else sp.label_name END labelname, " +
|
|
|
" sp.label_type labeltype, " +
|
|
|
" p.idcard idcard " +
|
|
|
" FROM " +
|
|
@ -2081,15 +2124,16 @@ public class FamilyContractService extends BaseService {
|
|
|
|
|
|
//查找居民
|
|
|
datas = jdbcTemplate.queryForList(sql, labelType, doctorCode);
|
|
|
} else if (doctor.getLevel() == 2) {
|
|
|
//健康管理师
|
|
|
} else if (level.equals("2")) {
|
|
|
//全科
|
|
|
String sql = "SELECT " +
|
|
|
" sf. CODE signcode, " +
|
|
|
" p.name name, " +
|
|
|
" p.photo photo, " +
|
|
|
" p.code code, " +
|
|
|
" CASE WHEN p.openid is null THEN '0' WHEN p.openid='' THEN '0' else 1 END hasopenid, " +
|
|
|
" sp.id labelid, " +
|
|
|
" CASE WHEN sp.label_name is null THEN '未标注' WHEN sp.label_name='' THEN '未标注' else sp.label_name END labelname, "+
|
|
|
" CASE WHEN sp.label_name is null THEN '未标注' WHEN sp.label_name='' THEN '未标注' else sp.label_name END labelname, " +
|
|
|
" sp.label_type labeltype, " +
|
|
|
" p.idcard idcard " +
|
|
|
" FROM " +
|
|
@ -2099,7 +2143,7 @@ public class FamilyContractService extends BaseService {
|
|
|
" WHERE " +
|
|
|
" sf.type = 2 " +
|
|
|
" AND sf. STATUS >= 0 " +
|
|
|
" and ( sf.doctor = ? or sf.doctor_health = ? ) ";
|
|
|
" and sf.doctor = ? ";
|
|
|
|
|
|
//查找居民
|
|
|
datas = jdbcTemplate.queryForList(sql, labelType, doctorCode, doctorCode);
|
|
@ -2115,18 +2159,19 @@ public class FamilyContractService extends BaseService {
|
|
|
}
|
|
|
if (datas != null && datas.size() > 0) {
|
|
|
for (Map<String, Object> map : datas) {
|
|
|
JSONObject jo=new JSONObject();
|
|
|
jo.put("signcode",map.get("signcode"));
|
|
|
jo.put("name",map.get("name"));
|
|
|
jo.put("code",map.get("code"));
|
|
|
jo.put("hasopenid",map.get("hasopenid"));
|
|
|
JSONObject jo = new JSONObject();
|
|
|
jo.put("signcode", map.get("signcode"));
|
|
|
jo.put("name", map.get("name"));
|
|
|
jo.put("photo", map.get("photo"));
|
|
|
jo.put("code", map.get("code"));
|
|
|
jo.put("hasopenid", map.get("hasopenid"));
|
|
|
jo.put("age", IdCardUtil.getAgeForIdcard(map.get("idcard").toString()));
|
|
|
jo.put("sex", IdCardUtil.getSexForIdcard_new(map.get("idcard").toString()));
|
|
|
//判断name是否为空 为空就是未标注
|
|
|
//把患者添加到对应的组
|
|
|
JSONArray jr = returnMap.getJSONArray(map.get("labelname").toString());
|
|
|
if (jr == null) {
|
|
|
jr = new JSONArray();
|
|
|
JSONArray jr = new JSONArray();
|
|
|
if (returnMap.has(map.get("labelname").toString())) {
|
|
|
jr = returnMap.getJSONArray(map.get("labelname").toString());
|
|
|
}
|
|
|
jr.put(jo);
|
|
|
returnMap.put(map.get("labelname").toString(), jr);
|