فهرست منبع

Merge branch 'dev' of trick9191/patient-co-management into dev

trick9191 7 سال پیش
والد
کامیت
100fbbe073

+ 87 - 43
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/specialist/SpecialistService.java

@ -10,6 +10,7 @@ import com.yihu.wlyy.entity.patient.SignFamily;
import com.yihu.wlyy.entity.specialist.PatientDiseaseServer;
import com.yihu.wlyy.entity.specialist.PatientDiseaseServer;
import com.yihu.wlyy.entity.specialist.SpecialDisease;
import com.yihu.wlyy.entity.specialist.SpecialDisease;
import com.yihu.wlyy.entity.specialist.TeamDiseaseRelation;
import com.yihu.wlyy.entity.specialist.TeamDiseaseRelation;
import com.yihu.wlyy.entity.wechat.WechatTemplateConfig;
import com.yihu.wlyy.repository.doctor.DoctorAdminTeamDao;
import com.yihu.wlyy.repository.doctor.DoctorAdminTeamDao;
import com.yihu.wlyy.repository.doctor.DoctorDao;
import com.yihu.wlyy.repository.doctor.DoctorDao;
import com.yihu.wlyy.repository.doctor.SignPatientLabelDao;
import com.yihu.wlyy.repository.doctor.SignPatientLabelDao;
@ -20,7 +21,10 @@ import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.repository.specialist.PatientDiseaseServerDao;
import com.yihu.wlyy.repository.specialist.PatientDiseaseServerDao;
import com.yihu.wlyy.repository.specialist.SpecialDiseaseDao;
import com.yihu.wlyy.repository.specialist.SpecialDiseaseDao;
import com.yihu.wlyy.repository.specialist.TeamDiseaseRelationDao;
import com.yihu.wlyy.repository.specialist.TeamDiseaseRelationDao;
import com.yihu.wlyy.repository.wechat.WechatTemplateConfigDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.task.PushMsgTask;
import com.yihu.wlyy.util.DateUtil;
import com.yihu.wlyy.util.http.HttpResponse;
import com.yihu.wlyy.util.http.HttpResponse;
import com.yihu.wlyy.util.http.HttpUtils;
import com.yihu.wlyy.util.http.HttpUtils;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.collections.map.HashedMap;
@ -76,6 +80,10 @@ public class SpecialistService extends BaseService {
    private MessageDao messageDao;
    private MessageDao messageDao;
    @Autowired
    @Autowired
    private SignFamilyDao signFamilyDao;
    private SignFamilyDao signFamilyDao;
    @Autowired
    private PushMsgTask pushMsgTask;
    @Autowired
    private WechatTemplateConfigDao templateConfigDao;
    public String setPatientLabelInfo(List<SignPatientLabelInfo> list) {
    public String setPatientLabelInfo(List<SignPatientLabelInfo> list) {
        if (list != null && list.size() > 0) {
        if (list != null && list.size() > 0) {
@ -528,7 +536,7 @@ public class SpecialistService extends BaseService {
        return mes;
        return mes;
    }
    }
    public String agreeSpecialistTeam(String state, String relationCode, String remark, Long mesId) throws Exception {
    public String agreeSpecialistTeam(String token, String state, String relationCode, String remark, Long mesId) throws Exception {
        Map<String, Object> param = new HashedMap();
        Map<String, Object> param = new HashedMap();
        param.put("state", state);
        param.put("state", state);
        param.put("relationCode", relationCode);
        param.put("relationCode", relationCode);
@ -545,50 +553,57 @@ public class SpecialistService extends BaseService {
                messageDao.save(m);
                messageDao.save(m);
            }
            }
            JSONObject josn = rs.getJSONObject("obj");
            Patient p = patientDao.findByCode(josn.getString("patient"));
            Doctor d = doctorDao.findByCode(josn.getString("doctor"));
            //如果医生拒绝,置空疾病服务类型
            //如果医生拒绝,置空疾病服务类型
            if("0".equals(state)){
               List<PatientDiseaseServer> servers =  patientDiseaseServerDao.findBySpecialistRelationCodeAndDel(relationCode,"1");
               for (PatientDiseaseServer server:servers){
                   server.setDel("0");
               }
            if ("0".equals(state)) {
                List<PatientDiseaseServer> servers = patientDiseaseServerDao.findBySpecialistRelationCodeAndDel(relationCode, "1");
                for (PatientDiseaseServer server : servers) {
                    server.setDel("0");
                }
                patientDiseaseServerDao.save(servers);
                patientDiseaseServerDao.save(servers);
            }
            JSONObject josn =  rs.getJSONObject("obj");
            SignFamily sign =  signFamilyDao.findByPatient(josn.getString("patient"));
            //判断是否有家庭医生,有家庭医生则通知家庭医生
            if(sign!=null){
                Patient p = patientDao.findByCode(josn.getString("patient"));
                Doctor d = doctorDao.findByCode(josn.getString("doctor"));
                // 添加签约申请消息
                Message message = new Message();
                message.setCzrq(new Date());
                message.setCreateTime(new Date());
                message.setContent("您有一个居民开通共管服务!");
                message.setRead(1);//设置未读
                message.setReceiver(sign.getDoctor());//设置接受医生的code
                message.setSender(p.getCode());//设置发送的用户
                message.setSenderName(p.getName());
                message.setCode(getCode());
                message.setTitle("专科医生共管通知");
                message.setType(18);//家庭签约取消信息
                message.setReadonly(0);//是否只读消息
                message.setSex(p.getSex());
                message.setOver("1");//未处理
                message.setRelationCode(relationCode);
                message.setDel("1");
                message.setState(1);
                JSONObject dataJson = new JSONObject();
                dataJson.put("doctor",d.getCode());
                dataJson.put("doctorName",d.getName());
                dataJson.put("hospital",d.getHospital());
                dataJson.put("hospitalName",d.getHospitalName());
                dataJson.put("dept",d.getDept());
                dataJson.put("deptName",d.getDeptName());
                message.setReason(dataJson.toString());
                messageDao.save(message);
                //推送给居民模板消息
                pushWeiTemp(token, "0", remark, p, d);
            } else {
                //医生同意,推送全科医生消息
                SignFamily sign = signFamilyDao.findByPatient(josn.getString("patient"));
                //判断是否有家庭医生,有家庭医生则通知家庭医生
                if (sign != null) {
                    // 添加签约申请消息
                    Message message = new Message();
                    message.setCzrq(new Date());
                    message.setCreateTime(new Date());
                    message.setContent("您有一个居民开通共管服务!");
                    message.setRead(1);//设置未读
                    message.setReceiver(sign.getDoctor());//设置接受医生的code
                    message.setSender(p.getCode());//设置发送的用户
                    message.setSenderName(p.getName());
                    message.setCode(getCode());
                    message.setTitle("专科医生共管通知");
                    message.setType(18);//家庭签约取消信息
                    message.setReadonly(0);//是否只读消息
                    message.setSex(p.getSex());
                    message.setOver("1");//未处理
                    message.setRelationCode(relationCode);
                    message.setDel("1");
                    message.setState(1);
                    JSONObject dataJson = new JSONObject();
                    dataJson.put("doctor", d.getCode());
                    dataJson.put("doctorName", d.getName());
                    dataJson.put("hospital", d.getHospital());
                    dataJson.put("hospitalName", d.getHospitalName());
                    dataJson.put("dept", d.getDept());
                    dataJson.put("deptName", d.getDeptName());
                    message.setReason(dataJson.toString());
                    messageDao.save(message);
                    //推送给居民模板消息
                    pushWeiTemp(token, "1", "", p, d);
                }
            }
            }
            return "1";
            return "1";
        }
        }
@ -637,5 +652,34 @@ public class SpecialistService extends BaseService {
        return null;
        return null;
    }
    }
    public void pushWeiTemp(String token, String state, String remark, Patient patient, Doctor doctor) {
        logger.info("pushWeiTemp:"+patient.getCode()+"__openid:"+patient.getOpenid());
        if (StringUtils.isNotBlank(patient.getOpenid())) {
            WechatTemplateConfig temp;
            JSONObject json = new JSONObject();
            if ("0".equals(state)) {
                //拒绝
                temp = templateConfigDao.findByScene("template_deal_with", "tdwspref");
                json.put("toUser", patient.getCode());
                json.put("keyword1", DateUtil.dateToStr(new Date(), "yyyy-MM-dd"));
                json.put("keyword2", temp.getKeyword2().replace("key1", doctor.getName()));
                json.put("remark", temp.getRemark().replace("key1", remark));
                json.put("first", temp.getFirst().replace("key1", patient.getName()));
            } else {
                //同意
                temp = templateConfigDao.findByScene("template_deal_with", "tdwspref");
                json.put("toUser", patient.getCode());
                json.put("keyword1", DateUtil.dateToStr(new Date(), "yyyy-MM-dd"));
                json.put("keyword2", temp.getKeyword2().replace("key1", doctor.getName()));
                json.put("remark", temp.getRemark());
                json.put("first", temp.getFirst().replace("key1", patient.getName()));
            }
            logger.info("pushWeiTempJOSN:"+json.toString());
            pushMsgTask.putWxMsg(token, 24, patient.getOpenid(), patient.getName(), json);
        }
    }
}
}

+ 10 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/task/PushMsgTask.java

@ -840,6 +840,16 @@ public class PushMsgTask {
                keyword3.setColor("#000000");
                keyword3.setColor("#000000");
                keyword3.setValue(json.getString("keyword3"));
                keyword3.setValue(json.getString("keyword3"));
                m.put("keyword3", keyword3);
                m.put("keyword3", keyword3);
            }else if (type == 24) {//结果处理通知
                temp.setTemplate_id(template_deal_with);
                WechatTemplateData keyword1 = new WechatTemplateData();
                keyword1.setColor("#000000");
                keyword1.setValue(json.getString("keyword1"));
                m.put("keyword1", keyword1);
                WechatTemplateData keyword2 = new WechatTemplateData();
                keyword2.setColor("#000000");
                keyword2.setValue(json.getString("keyword2"));
                m.put("keyword2", keyword2);
            }
            }
            temp.setData(m);
            temp.setData(m);

+ 3 - 8
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/specialist/PatientSpecialistController.java

@ -1,9 +1,7 @@
package com.yihu.wlyy.web.patient.specialist;
package com.yihu.wlyy.web.patient.specialist;
import com.yihu.wlyy.entity.specialist.PatientDiseaseServer;
import com.yihu.wlyy.entity.specialist.TeamDiseaseRelation;
import com.yihu.wlyy.service.specialist.SpecialistService;
import com.yihu.wlyy.service.specialist.SpecialistService;
import com.yihu.wlyy.web.BaseController;
import com.yihu.wlyy.web.WeixinBaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiParam;
@ -14,16 +12,13 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
/**
 * Created by Trick on 2018/7/3.
 * Created by Trick on 2018/7/3.
 */
 */
@RestController
@RestController
@RequestMapping(value = "/patient/specialist", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@RequestMapping(value = "/patient/specialist", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Api(description = "患者端-专病管理")
@Api(description = "患者端-专病管理")
public class PatientSpecialistController extends BaseController{
public class PatientSpecialistController extends WeixinBaseController{
    @Autowired
    @Autowired
    private SpecialistService specialistService;
    private SpecialistService specialistService;
@ -81,7 +76,7 @@ public class PatientSpecialistController extends BaseController{
    @ApiOperation(value = "医生审核")
    @ApiOperation(value = "医生审核")
    public String agreeSpecialistTeam(String state,String relationCode,String remark,Long mesId)throws Exception {
    public String agreeSpecialistTeam(String state,String relationCode,String remark,Long mesId)throws Exception {
        try {
        try {
            return write(200, "获取成功", "data", specialistService.agreeSpecialistTeam( state, relationCode, remark, mesId));
            return write(200, "获取成功", "data", specialistService.agreeSpecialistTeam(getAccessToken(),state, relationCode, remark, mesId));
        } catch (Exception e) {
        } catch (Exception e) {
            error(e);
            error(e);
            return error(-1, "请求失败");
            return error(-1, "请求失败");