ソースを参照

Merge branch 'dev' of http://192.168.1.220:10080/Amoy/patient-co-management into dev

wujunjie 8 年 前
コミット
c5e3fb5d2f

+ 2 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/doctor/DoctorDao.java

@ -9,6 +9,7 @@ import java.util.List;
import com.yihu.wlyy.entity.doctor.team.sign.DoctorTeamMember;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
@ -150,4 +151,5 @@ public interface DoctorDao extends PagingAndSortingRepository<Doctor, Long>, Jpa
    @Query("select d from Doctor d where d.del = 1 and d.password is null")
    List<Doctor> findAllNoPasswordDoctors();
}

+ 48 - 52
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/account/DoctorInfoService.java

@ -306,38 +306,32 @@ public class DoctorInfoService extends BaseService {
    /**
     * 根据医院信息获取医生列表
     *
     * @param query    查询条件 :医生名称
     * @param id
     * @param hospital 医院标识
     *                 页数
     * @return
     */
    @Transactional
    public Page<Doctor> getDoctorListByHospital(String query, String hospital,
                                                long id, int pageSize) {
        // 排序
        Sort sort = new Sort(Direction.DESC, "evaluateScore","id");
        // 分页信息
        PageRequest pageRequest = new PageRequest(0, pageSize, sort);
        // 查询全部
        Map<String, SearchFilter> filters = new HashMap<String, SearchFilter>();
        if (StringUtils.isNotEmpty(query)) {
            filters.put("name", new SearchFilter("name", Operator.LIKE, query));
        }
        if (StringUtils.isNotEmpty(hospital)) {
            hospital = hospital.substring(0, 8);
            filters.put("hospital", new SearchFilter("hospital", Operator.LIKE,
                    hospital));
        }
        if (id > 0) {
            filters.put("id", new SearchFilter("id", Operator.LT, id));
        }
        filters.put("level", new SearchFilter("level", Operator.EQ, 2));
        Specification<Doctor> spec = DynamicSpecifications.bySearchFilter(
                filters.values(), Doctor.class);
        return doctorDao.findAll(spec, pageRequest);
    }
//    @Transactional
//    public Page<Doctor> getDoctorListByHospital(String query, String hospital,
//                                                int page, int pageSize) {
//        page = page <= 0 ? 0 : page - 1;
//        // 排序
//        Sort sort = new Sort(Direction.DESC, "evaluateScore","id");
//        // 分页信息
//        PageRequest pageRequest = new PageRequest(page, pageSize);
//        // 查询全部
//        Map<String, SearchFilter> filters = new HashMap<String, SearchFilter>();
//        if (StringUtils.isNotEmpty(query)) {
//            query="%"+query+"%";
//        }else{
//            query="%";
//        }
//        if (StringUtils.isNotEmpty(hospital)) {
//            hospital = "%"+hospital.substring(0, 8)+"%";
//        }
//
//        filters.put("level", new SearchFilter("level", Operator.EQ, 2));
//        return doctorDao.getDoctorListByHospital(query,hospital,2, pageRequest);
//    }
    @Transactional
    public List<Doctor> getDoctorCombobxByHospital(String type, String hospital) {
@ -358,7 +352,7 @@ public class DoctorInfoService extends BaseService {
    }
    @Transactional
    public Page<Doctor> getDoctorListByHospital(String name, String paitentCode, Integer page, Integer pageSize) {
    public Page<Doctor> getDoctorListByHospital(String name, String hospital, Integer page, Integer pageSize, Integer level) {
        if (pageSize == null | pageSize <= 0) {
            pageSize = 10;
        }
@ -366,7 +360,7 @@ public class DoctorInfoService extends BaseService {
            page = 1;
        }
        // 排序
        Sort sort = new Sort(Sort.Direction.DESC, "name");
        Sort sort = new Sort(Sort.Direction.DESC, "evaluateScore");
        // 分页信息
        PageRequest pageRequest = new PageRequest(page - 1, pageSize, sort);
        // 查询全部
@ -374,9 +368,11 @@ public class DoctorInfoService extends BaseService {
        if (StringUtils.isNotEmpty(name)) {
            filters.put("name", new SearchFilter("name", SearchFilter.Operator.LIKE, name));
        }
        filters.put("status", new SearchFilter("status", SearchFilter.Operator.EQ, 1));
        filters.put("level", new SearchFilter("level", SearchFilter.Operator.EQ, 1));
        filters.put("iscertified", new SearchFilter("iscertified", SearchFilter.Operator.EQ, 1));
        if (StringUtils.isNotEmpty(hospital)) {
            filters.put("hospital", new SearchFilter("hospital", Operator.LIKE, "%" + hospital.substring(0, 8) + "%"));
        }
        filters.put("level", new SearchFilter("level", SearchFilter.Operator.EQ, level));
        Specification<Doctor> spec = DynamicSpecifications.bySearchFilter(filters.values(), Doctor.class);
        return doctorDao.findAll(spec, pageRequest);
@ -882,15 +878,15 @@ public class DoctorInfoService extends BaseService {
        }
        //判断是否判定openId,有没有发则查找家人发送
        if(StringUtils.isNotBlank(p.getOpenid())){
        if (StringUtils.isNotBlank(p.getOpenid())) {
            PushMsgTask.getInstance().putWxMsg(accessTokenUtils.getAccessToken(), 10, p.getOpenid(), p.getName(), data);
        }else{
            JSONObject json  = weiXinOpenIdUtils.getFamilyOpenId(p.getCode());
        } else {
            JSONObject json = weiXinOpenIdUtils.getFamilyOpenId(p.getCode());
            Patient member = (Patient) json.get("member");
            if(StringUtils.isNotBlank(member.getOpenid())){
            if (StringUtils.isNotBlank(member.getOpenid())) {
                String first = (String) data.get("first");
                data.remove("first");
                data.put("first",weiXinOpenIdUtils.getTitleMes(p,json.getInt("relation"),member.getName())+first);
                data.put("first", weiXinOpenIdUtils.getTitleMes(p, json.getInt("relation"), member.getName()) + first);
                PushMsgTask.getInstance().putWxMsg(accessTokenUtils.getAccessToken(), 10, member.getOpenid(), member.getName(), data);
            }
@ -908,8 +904,8 @@ public class DoctorInfoService extends BaseService {
        for (int i = 0; i < patiensString.length; i++) {
            try {
                updateTeamHealthDoctor(newDoctorCode, oldDoctorCode, patiensString[i]);
                SignFamily signFamily = signFamilyDao.findByPatient( patiensString[i]);
                ImUtill.deleteMucUser(newDoctorCode, oldDoctorCode, patiensString[i] + "_"+signFamily.getTeamCode()+"_2");
                SignFamily signFamily = signFamilyDao.findByPatient(patiensString[i]);
                ImUtill.deleteMucUser(newDoctorCode, oldDoctorCode, patiensString[i] + "_" + signFamily.getTeamCode() + "_2");
                successs++;
            } catch (Exception e) {
                error++;
@ -942,7 +938,7 @@ public class DoctorInfoService extends BaseService {
                        hasNoTeam = true;
                    }
                    SignFamily signFamily = signFamilyDao.findByPatient(patient);
                    ImUtill.deleteMucUser(newDoctorCode, doctor, patient + "_"+signFamily.getTeamCode()+"_2");
                    ImUtill.deleteMucUser(newDoctorCode, doctor, patient + "_" + signFamily.getTeamCode() + "_2");
                } catch (Exception e) {
                    e.printStackTrace();
                }
@ -997,16 +993,16 @@ public class DoctorInfoService extends BaseService {
            data.put("remark", newD.getName() + "医生与" + signFamily.getDoctorName() + "医生一道,为您提供优质健康服务");
        }
        if(StringUtils.isNotBlank(p.getOpenid())){
        if (StringUtils.isNotBlank(p.getOpenid())) {
            PushMsgTask.getInstance().putWxMsg(accessTokenUtils.getAccessToken(), 10, p.getOpenid(), p.getName(), data);
        }else{
        } else {
            JSONObject json = weiXinOpenIdUtils.getFamilyOpenId(p.getCode());
            Patient member = (Patient)json.get("member");
            Patient member = (Patient) json.get("member");
            if(StringUtils.isNotBlank(member.getOpenid())){
            if (StringUtils.isNotBlank(member.getOpenid())) {
                String first = (String) data.get("first");
                data.remove("first");
                data.put("first",weiXinOpenIdUtils.getTitleMes(p,json.getInt("relation"),member.getName())+first);
                data.put("first", weiXinOpenIdUtils.getTitleMes(p, json.getInt("relation"), member.getName()) + first);
                PushMsgTask.getInstance().putWxMsg(accessTokenUtils.getAccessToken(), 10, member.getOpenid(), member.getName(), data);
            }
        }
@ -1128,7 +1124,7 @@ public class DoctorInfoService extends BaseService {
        for (int i = 0; i < patiensString.length; i++) {
            try {
                SignFamily signFamily = signFamilyDao.findByPatient(patiensString[i]);
                ImUtill.deleteMucUser(newDoctorCode, oldDoctorCode, patiensString[i] + "_"+signFamily.getTeamCode()+"_2");
                ImUtill.deleteMucUser(newDoctorCode, oldDoctorCode, patiensString[i] + "_" + signFamily.getTeamCode() + "_2");
                updateTeamDoctor(newDoctorCode, oldDoctorCode, patiensString[i]);
                successs++;
            } catch (Exception e) {
@ -1199,16 +1195,16 @@ public class DoctorInfoService extends BaseService {
            data.put("remark", newD.getName() + "医生与" + signFamily.getDoctorHealthName() + "医生一道,为您提供优质健康服务");
        }
        if(StringUtils.isNotBlank(p.getOpenid())){
        if (StringUtils.isNotBlank(p.getOpenid())) {
            data.put("first", p.getName() + ",您好!因签约团队内分工调整,您的责任医生有变动," + oldDoctorName +
                    "医生无法继续为您服务,具体变动如下:");
            PushMsgTask.getInstance().putWxMsg(accessTokenUtils.getAccessToken(), 10, p.getOpenid(), p.getName(), data);
        }else{
        } else {
            //如果自己没有绑定,则发给家人
            JSONObject json = weiXinOpenIdUtils.getFamilyOpenId(p.getCode());
            Patient member = (Patient)json.get("member");
            if(StringUtils.isNotBlank(member.getOpenid())){
                data.put("first", weiXinOpenIdUtils.getTitleMes(p,(int)json.get("relation"),member.getName())+p.getName() + ",您好!因签约团队内分工调整,您的责任医生有变动," + oldDoctorName +
            Patient member = (Patient) json.get("member");
            if (StringUtils.isNotBlank(member.getOpenid())) {
                data.put("first", weiXinOpenIdUtils.getTitleMes(p, (int) json.get("relation"), member.getName()) + p.getName() + ",您好!因签约团队内分工调整,您的责任医生有变动," + oldDoctorName +
                        "医生无法继续为您服务,具体变动如下:");
                PushMsgTask.getInstance().putWxMsg(accessTokenUtils.getAccessToken(), 10, member.getOpenid(), member.getName(), data);
            }

+ 22 - 21
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/consult/EvaluateService.java

@ -153,27 +153,28 @@ public class EvaluateService extends BaseService {
			anonymousScore =anonymousScore.add(anonymousScore1.multiply(new BigDecimal("0.2")));
			anonymousScore =anonymousScore.add(anonymousScore2.multiply(new BigDecimal("0.25")));
			anonymousScore =anonymousScore.add(anonymousScore3.multiply(new BigDecimal("0.25")));
			int evaTimes = 0;
			if(evaluateTimesList.size()>0){
				evaTimes = evaluateTimesList.size();
			}else{
				evaTimes = 1;
			}
			jiaquan  = anonymousScore.divide(BigDecimal.valueOf(evaTimes),2,BigDecimal.ROUND_HALF_UP);//算的加权平均分
			//满意度=80+(加权平均分-80)/系数
			//咨询系数 咨询次数≤100次,对应系数为3;
			//100次<咨询次数≤1000次,对应系数为2;
			//咨询次数>1000次,对应系数为1。
			if (consultTimes <= 100) {  //咨询系数 咨询次数≤100次,对应系数为3;
				//100次<咨询次数≤1000次,对应系数为2;
				//咨询次数>1000次,对应系数为1。
				jiaquan = (jiaquan.subtract(BigDecimal.valueOf(80L))).divide(BigDecimal.valueOf(3L),2,BigDecimal.ROUND_HALF_UP);
			} else if (consultTimes > 100 && consultTimes <= 1000) {
				jiaquan = (jiaquan.subtract(BigDecimal.valueOf(80L))).divide(BigDecimal.valueOf(2L),2,BigDecimal.ROUND_HALF_UP);
			} else {
				jiaquan = (jiaquan.subtract(BigDecimal.valueOf(80L))).divide(BigDecimal.valueOf(1L),2,BigDecimal.ROUND_HALF_UP);
			}
			score = jiaquan.add(BigDecimal.valueOf(80L)).setScale(1, BigDecimal.ROUND_HALF_UP);
//			int evaTimes = 0;
//			if(evaluateTimesList.size()>0){
//				evaTimes = evaluateTimesList.size();
//			}else{
//				evaTimes = 1;
//			}
//			jiaquan  = anonymousScore.divide(BigDecimal.valueOf(evaTimes),2,BigDecimal.ROUND_HALF_UP);//算的加权平均分
//			//满意度=80+(加权平均分-80)/系数
//			//咨询系数 咨询次数≤100次,对应系数为3;
//			//100次<咨询次数≤1000次,对应系数为2;
//			//咨询次数>1000次,对应系数为1。
//			if (consultTimes <= 100) {  //咨询系数 咨询次数≤100次,对应系数为3;
//				//100次<咨询次数≤1000次,对应系数为2;
//				//咨询次数>1000次,对应系数为1。
//				jiaquan = (jiaquan.subtract(BigDecimal.valueOf(80L))).divide(BigDecimal.valueOf(3L),2,BigDecimal.ROUND_HALF_UP);
//			} else if (consultTimes > 100 && consultTimes <= 1000) {
//				jiaquan = (jiaquan.subtract(BigDecimal.valueOf(80L))).divide(BigDecimal.valueOf(2L),2,BigDecimal.ROUND_HALF_UP);
//			} else {
//				jiaquan = (jiaquan.subtract(BigDecimal.valueOf(80L))).divide(BigDecimal.valueOf(1L),2,BigDecimal.ROUND_HALF_UP);
//			}
//			score = jiaquan.add(BigDecimal.valueOf(80L)).setScale(1, BigDecimal.ROUND_HALF_UP);
			score=anonymousScore;
			EvaluateScore evaluateScore = new EvaluateScore();
			evaluateScore.setConsult(consult);
			evaluateScore.setDoctor(doctor);

+ 14 - 16
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/health/PatientHealthRecordService.java

@ -1,15 +1,18 @@
package com.yihu.wlyy.service.app.health;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.yihu.wlyy.entity.dict.Medicines;
import com.yihu.wlyy.entity.education.Sports;
import com.yihu.wlyy.entity.education.SportsType;
import com.yihu.wlyy.entity.patient.PatientHealthRecordDiet;
import com.yihu.wlyy.entity.patient.PatientHealthRecordMedication;
import com.yihu.wlyy.entity.patient.PatientHealthRecordSports;
import com.yihu.wlyy.repository.dict.MedicinesDao;
import com.yihu.wlyy.repository.education.SportsDao;
import com.yihu.wlyy.repository.education.SportsTypeDao;
import com.yihu.wlyy.repository.patient.PatientHealthRecordDietDao;
import com.yihu.wlyy.repository.patient.PatientHealthRecordMedicationDao;
import com.yihu.wlyy.repository.patient.PatientHealthRecordSportsDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
@ -25,15 +28,10 @@ import org.springside.modules.persistence.DynamicSpecifications;
import org.springside.modules.persistence.SearchFilter;
import org.springside.modules.persistence.SearchFilter.Operator;
import com.yihu.wlyy.entity.patient.PatientHealthRecordDiet;
import com.yihu.wlyy.entity.patient.PatientHealthRecordMedication;
import com.yihu.wlyy.entity.patient.PatientHealthRecordSports;
import com.yihu.wlyy.repository.patient.PatientHealthRecordDietDao;
import com.yihu.wlyy.repository.patient.PatientHealthRecordMedicationDao;
import com.yihu.wlyy.repository.patient.PatientHealthRecordSportsDao;
import com.yihu.wlyy.repository.education.SportsDao;
import com.yihu.wlyy.repository.education.SportsTypeDao;
import com.yihu.wlyy.service.BaseService;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Component
@Transactional(rollbackFor = Exception.class)
@ -314,7 +312,7 @@ public class PatientHealthRecordService extends BaseService {
				sportObject.put("sports_type", temp.getSportsType());
				sportObject.put("sports_typeName", temp.getSportsTypeName());
				sportObject.put("czrq", DateUtil.dateToStr(temp.getCzrq(), DateUtil.YYYY_MM_DD));
				sportObject.put("sortDate", DateUtil.dateToStr(temp.getSortDate(), DateUtil.YYYY_MM_DD));
				sportObject.put("recordDate", DateUtil.dateToStr(temp.getRecordDate(), DateUtil.YYYY_MM_DD));
				sportObject.put("source","1".equals(temp.getSource())?1:0);
			}
			jsonObject.put("sprot",sportObject);

+ 1 - 1
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/FamilyContractService.java

@ -1408,7 +1408,7 @@ public class FamilyContractService extends BaseService {
                    String first = (String) json.get("first");
                    json.remove("first");
                    Patient p = patientDao.findByCode(patient);
                    json.put("first", weiXinOpenIdUtils.getTitleMes(p, j.getInt("relation"), member.getName()));
                    json.put("first", weiXinOpenIdUtils.getTitleMes(p, j.getInt("relation"), p.getName()));
                    PushMsgTask.getInstance().putWxMsg(access_token, 5, member.getOpenid(), member.getName(), json);
                }
            }

+ 1 - 1
patient-co-wlyy/src/main/java/com/yihu/wlyy/util/ImUtill.java

@ -53,7 +53,7 @@ public class ImUtill {
     * @return
     */
    public static String getConsultByStatus(String user, Integer status, Integer reply, int page, int pagesize) {
        String imAddr = im_host + "api/v2/sessions/topics";
        String imAddr = im_host + "api/v2/sessions/healthTopics";
        imAddr = imAddr + "?user=" + user + "&page=" + page + "&pagesize=" + pagesize;
        if (status != null) {
            imAddr += ("&status=" + status);

+ 1 - 1
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/common/account/WechatController.java

@ -579,7 +579,7 @@ public class WechatController extends WeixinBaseController {
                map.put("noncestr", noncestr);
                map.put("timestamp", timestamp);
                map.put("signature", signature);
                return write(200, "获取签名成功", "data", "map");
                return write(200, "获取签名成功", "data", map);
            } else
                return error(-1, "获取签名失败");

+ 4 - 4
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/account/DoctorController.java

@ -992,7 +992,7 @@ public class DoctorController extends BaseController {
     *
     * @param hospital 医院标识
     * @param query    查询条件 :医生名称
     * @param id
     * @param page
     * @param pageSize 页数
     * @return
     */
@ -1001,11 +1001,11 @@ public class DoctorController extends BaseController {
    public String getDoctorByHospital(
            @RequestParam(required = true) String hospital,
            @RequestParam(required = false) String query,
            @RequestParam(required = true) long id,
            @RequestParam(required = true) Integer page,
            @RequestParam(required = true) Integer pageSize) {
        try {
            Page<Doctor> doctorList = doctorInfoService.getDoctorListByHospital(query, hospital, id, pageSize);
            Page<Doctor> doctorList = doctorInfoService.getDoctorListByHospital(query, hospital, page, pageSize,2);
            JSONArray array = new JSONArray();
            if (doctorList != null) {
                for (Doctor doctor : doctorList) {
@ -1174,7 +1174,7 @@ public class DoctorController extends BaseController {
            @RequestParam(required = true) Integer pageSize) {
        try {
            Page<Doctor> doctorList = doctorInfoService.getDoctorListByHospital(name, paitentCode, page, pageSize);
            Page<Doctor> doctorList = doctorInfoService.getDoctorListByHospital(name, null, page, pageSize,1);
            JSONArray array = new JSONArray();
            if (doctorList != null) {
                for (Doctor doctor : doctorList) {

+ 1 - 1
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/health/DoctorHealthEduArticleController.java

@ -459,7 +459,7 @@ public class DoctorHealthEduArticleController extends WeixinBaseController {
                        JSONObject data = (JSONObject) map.get("json");
                        String first = (String)data.get("first");
                        data.remove("first");
                        data.put("first",weiXinOpenIdUtils.getTitleMes(p,j.isNull("relation")?1:j.getInt("relation"),member.getName()));
                        data.put("first",weiXinOpenIdUtils.getTitleMes(p,j.isNull("relation")?1:j.getInt("relation"),p.getName()));
                        if(StringUtils.isNotBlank(member.getOpenid())){
                            PushMsgTask.getInstance().putWxMsg(getAccessToken(), 9, member.getOpenid(), member.getName(), data);
                        }

+ 3 - 3
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/hosptail/HospitalController.java

@ -157,7 +157,7 @@ public class HospitalController extends BaseController {
     * 根据医院标识获取医生信息
     * @param hospital 医院标识
     * @param query 查询条件 :医生名称
     * @param id
     * @param page
     * @param pageSize 页数
     * @return
     */
@ -166,11 +166,11 @@ public class HospitalController extends BaseController {
    public String getDoctorByHospital(
            @RequestParam(required = false) String hospital,
            @RequestParam(required = false) String query,
            @RequestParam(required = true) long id,
            @RequestParam(required = true) Integer page,
            @RequestParam(required = true) Integer pageSize) {
        try {
            Page<Doctor> doctorList = doctorInfoService.getDoctorListByHospital(query, hospital, id, pageSize);
            Page<Doctor> doctorList = doctorInfoService.getDoctorListByHospital(query, hospital, page, pageSize,2);
            JSONArray array = new JSONArray();
            if (doctorList != null) {
                for (Doctor doctor : doctorList) {

+ 4 - 3
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/hosptail/HospitalWithoutFilterController.java

@ -28,7 +28,7 @@ public class HospitalWithoutFilterController extends BaseController {
     * 根据医院标识获取医生信息
     * @param hospital 医院标识
     * @param query 查询条件 :医生名称
     * @param id
     * @param page
     * @param pageSize 页数
     * @return
     */
@ -37,11 +37,12 @@ public class HospitalWithoutFilterController extends BaseController {
    public String getDoctorByHospital(
            @RequestParam(required = false) String hospital,
            @RequestParam(required = false) String query,
            @RequestParam(required = true) long id,
            @RequestParam(required = true) Integer page,
            @RequestParam(required = true) Integer pageSize) {
        try {
            Page<Doctor> doctorList = doctorInfoService.getDoctorListByHospital(query, hospital, id, pageSize);
            //只查全科
            Page<Doctor> doctorList = doctorInfoService.getDoctorListByHospital(query, hospital, page, pageSize,2);
            JSONArray array = new JSONArray();
            if (doctorList != null) {
                for (Doctor doctor : doctorList) {