浏览代码

专家咨询代码提交

huangwenjie 5 年之前
父节点
当前提交
382f835264

+ 6 - 0
business/im-service/src/main/java/com/yihu/jw/im/dao/ConsultTeamDao.java

@ -2,6 +2,7 @@ package com.yihu.jw.im.dao;
import com.yihu.jw.entity.base.im.ConsultTeamDo;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
@ -14,6 +15,11 @@ import java.util.List;
public interface ConsultTeamDao  extends PagingAndSortingRepository<ConsultTeamDo, String>, JpaSpecificationExecutor<ConsultTeamDo> {
	// 根據consult查詢咨询记录
	ConsultTeamDo findByConsult(String consult);
	
//	// 关闭咨询
//	@Modifying
//	@Query("update ConsultTeam a set a.status = 1 where a.consult = ?1")
//	int updateStatusByConsult(String consult);
//
//	@Query("select a from ConsultTeamDo a,ConsultTeamDoctor b where a.consult = b.consult and a.patient = ?1 and b.to = ?2 and a.del = '1' and a.type<>8 and a.status = 0")
//	List<ConsultTeamDo> findUnfinishedConsultType(String patient,String doctor);

+ 225 - 4
business/im-service/src/main/java/com/yihu/jw/im/service/ImService.java

@ -3,15 +3,21 @@ package com.yihu.jw.im.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.im.ConsultDo;
import com.yihu.jw.entity.base.im.ConsultTeamDo;
import com.yihu.jw.entity.base.im.ConsultTeamDoctorDo;
import com.yihu.jw.entity.base.im.ConsultTeamLogDo;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.hospital.prescription.WlyyOutpatientDO;
import com.yihu.jw.hospital.prescription.dao.OutpatientDao;
import com.yihu.jw.im.dao.ConsultDao;
import com.yihu.jw.im.dao.ConsultTeamDao;
import com.yihu.jw.im.dao.ConsultTeamDoctorDao;
import com.yihu.jw.im.dao.ConsultTeamLogDao;
import com.yihu.jw.im.util.ImUtil;
import com.yihu.jw.im.util.ImageCompress;
import com.yihu.jw.patient.dao.BasePatientDao;
@ -20,6 +26,8 @@ import com.yihu.jw.restmodel.im.ConsultVO;
import com.yihu.jw.util.common.FileUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.wechat.service.WxAccessTokenService;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
@ -60,6 +68,7 @@ public class ImService {
	@Autowired
	public BasePatientDao basePatientDao;
	
	@Autowired
	public ImUtil imUtil;
	
	public FileUtil fileUtil;
@ -91,6 +100,12 @@ public class ImService {
	@Autowired
	private JdbcTemplate jdbcTemplate;
	
	@Autowired
	private BaseDoctorDao baseDoctorDao;
	
	@Autowired
	private OutpatientDao outpatientDao;
	
	
	
	/**
@ -635,16 +650,16 @@ public class ImService {
		// 医生未读数量为1
		ct.setDoctorRead(1);
		// 添加咨询记录
		ConsultDo consult = addConsult(ct.getPatient(), null, ct.getSymptoms(), ct.getImages(), ct.getType());
		ConsultDo consult = addConsult(ct.getPatient(), "专家咨询", ct.getSymptoms(), ct.getImages(), ct.getType());
//		// 设置关联指导
//		consult.setGuidance(ct.getGuidance());
		// 设置咨询标识
		ct.setConsult(consult.getId());
		
		//推送给IM去创建议题,取得成员消息
		JSONObject messages = imUtil.getCreateTopicMessage(patient, tempPatient.getName(), consult.getTitle(), consult.getSymptoms(), consult.getImages(), null);
		JSONObject messages = imUtil.getCreateTopicMessage(patient, tempPatient.getName(), consult.getTitle(), consult.getSymptoms(), consult.getImages(), doctor);
		users.put(patient, 0);//+ " "+(tempPatient.getSex()==1?"(男 ":"(女 ") + IdCardUtil.getAgeForIdcard(tempPatient.getIdcard())+")"
		JSONObject obj = imUtil.createTopics(patient + "_" + ct.getTeam() + "_" + ct.getType(), consult.getId(), tempPatient.getName(), users, messages, imUtil.SESSION_TYPE_MUC);
		JSONObject obj = imUtil.createTopics(patient + "_" + doctor + "_" + ct.getType(), consult.getId(), tempPatient.getName(), users, messages, imUtil.SESSION_TYPE_MUC);
		if (obj == null) {
			throw new RuntimeException("IM消息发送异常!");
		}
@ -771,6 +786,212 @@ public class ImService {
		// sendMessage(ct.getDoctor(), ct.getPatient(), "三师咨询", "您有新的三师咨询消息", ct.getConsult(), 116, 1, 0, 0);
		return content;
	}
	
	/**
	 * 添加续方咨询
	 *
	 * @param outpatientCode
	 * @param patient
	 * @param agent
	 * @param doctorCode
	 * @param reason
	 * @return
	 */
	public Integer addPrescriptionConsult(String outpatientCode, String patient, String agent, String doctorCode, ConsultTeamDo ct, String reason, Integer type) throws Exception {
		
		synchronized (outpatientCode.intern()) {
			/**
			 * toto 判断是否存在未审核的复诊
			 */
//			String check = prescriptionInfoService.presCheckState(jwCode);
//			if ("0".equals(check)) {//存在未审核的续方
//				return -1;
//			}
			
			
			BaseDoctorDO doctor = baseDoctorDao.findById(doctorCode);
//			doctorCode = doctor.getCode();
			// 查询患者信息
			BasePatientDO p = basePatientDao.findById(patient);
			
			//1、获取his就诊记录详情(保存续方表、药品续方信息表、续方疾病类型表)
			WlyyOutpatientDO wlyyOutpatientDO = outpatientDao.findOne(outpatientCode);
			
			JSONObject jsonObject = new JSONObject();
			jsonObject.put("title", p.getName() + "申请复诊");
			
			
			String content = jsonObject.toString();
			
			//4、创建咨询
			JSONObject users = new JSONObject();//咨询参与者
			users.put(patient, 0);
			users.put(doctorCode, 0);
			//关联业务code
			ct.setRelationCode(outpatientCode);
			//医生信息
			ct.setDoctor(doctorCode);
			ct.setDoctorName(doctor.getName());
			// 设置患者信息
			ct.setPatient(patient);
//			if (1 == type) {
//				ct.setSymptoms("高血压");
//			} else if (2 == type) {
//				ct.setSymptoms("糖尿病");
//			} else if (3 == type) {
//				ct.setSymptoms("高血压,糖尿病");
//			} else {
//			}
			
			// 设置患者姓名
			ct.setName(p.getName());
			// 设置患者生日
			ct.setBirthday(p.getBirthday());
			//新增性别
			ct.setSex(p.getSex());
			// 设置患者头像
			ct.setPhoto(p.getPhoto());
			// 设置操作日期
			ct.setCzrq(new Date());
			ct.setDel("1");
			ct.setStatus(0);
			ct.setEvaluate(0);
			// 医生未读数量为1
			ct.setDoctorRead(1);
			// 添加咨询记录
			ConsultDo consult = addConsult(ct.getPatient(), "申请复诊", ct.getSymptoms(), ct.getImages(), ct.getType());
			// 设置关联指导
			consult.setGuidance(ct.getGuidance());
			//关联业务code
			consult.setRelationCode(outpatientCode);
			// 设置咨询标识
			ct.setConsult(consult.getId());
			
			//推送给IM去创建议题,取得成员消息
			JSONObject messages = imUtil.getCreateTopicMessage(patient, p.getName(), consult.getTitle(), content, consult.getImages(), agent);
			
			//5、(im创建咨询) 续方咨询的sessionid为居民code+就诊code+咨询类型(图文,视频,图文+视频)
			String sessionId = patient + "_" + outpatientCode + "_" + ct.getType();
			JSONObject obj = imUtil.createTopics(sessionId, consult.getId(), p.getName(), users, messages, imUtil.SESSION_TYPE_EXAMINATION);
			if (obj == null) {
				throw new RuntimeException("IM消息发送异常!");
			}
			if (obj.getInteger("status") == -1) {//im议题创建失败
				throw new RuntimeException(obj.getString("message"));
			}
			ct.setStartMsgId(obj.get("start_msg_id").toString());
			consultTeamDao.save(ct);
			consultDao.save(consult);
			
			//设置咨询code
//			wlyyOutpatientDO.setConsult(consult.getCode());
//			prescriptionDao.save(prescription);
			
			//6、记录咨询的医生详情
			ConsultTeamDoctorDo cd = new ConsultTeamDoctorDo();
			cd.setConsult(consult.getId());
			cd.setDel("1");
			cd.setCzrq(new Date());
			cd.setTo(doctorCode);
			consultTeamDoctorDao.save(cd);
			
			//7、发送系统消息提示团队长有未审核的消息
//			addCheckMessage(prescription, sessionId, p);
			
			//8、 保存医生咨询信息
			// 添加咨询转发记录
			// 添加医生咨询日志
			addLogs(ct);
			
			return 1;
		}
	}
	
	
	/**
	 * 居民结束咨询
	 * @param consult 咨询CODE
	 * @param endOperator 操作人
	 * @param endType 1居民 2医生
	 * @return
	 */
	public int finish(String consult, String endOperator, int endType) {
		
		ConsultTeamDo consultTeam = consultTeamDao.findByConsult(consult);
		
		ConsultDo cons = consultDao.findOne(consult);
		
		if (consultTeam.getStatus() == 1) {
			return -1;
		}
		
		String endName = "";
		String endId = "";
		//结束咨询才发送推送给IM文字消息
		if (endType == 1) {
			BasePatientDO p = basePatientDao.findById(endOperator);
			endName = p.getName();
			endId = p.getId();
		} else {
			if (endOperator.equals("admin")) {
				endId = "system";
				endName = "咨询超时未回复,系统自动";
			} else {
				BaseDoctorDO d = baseDoctorDao.findById(endOperator);
				endId = d.getId();
				endName = d.getName();
			}
		}
		
		JSONObject obj = imUtil.endTopics(consultTeam.getPatient(), endId, endName, consultTeam.getConsult());
		if (obj == null) {
			throw new RuntimeException("IM消息结束异常!");
		}
		if (obj.getInteger("status") == -1) {
			throw new RuntimeException(String.valueOf(obj.get("message")));
		}
		
		String name = "";
		String returnJson = "";
		//推送给IM文字消息
//		if (endType == 1) {
//			BasePatientDO p = basePatientDao.findById(endOperator);
//			name = p.getName();
//			returnJson = imUtil.sendIM(consultTeam.getPatient(), consultTeam.getDoctor(), "7", name + "结束了本次咨询");
//		} else {
//			BaseDoctorDO d = baseDoctorDao.findById(endOperator);
//			name = d.getName();
//			returnJson = imUtil.sendIM(consultTeam.getDoctor(), consultTeam.getPatient(), "7", name + "结束了本次咨询");
//		}
		
//		if (org.apache.commons.lang3.StringUtils.isEmpty(returnJson)) {
//			throw new RuntimeException("send consult finished IM message failed!");
////			throw new Exception("send consult finished IM message failed");
//		} else {
//			JSONObject jo = JSON.parseObject(returnJson);            //设置消息ID
//			consultTeam.setEndMsgId(jo.getInteger("startId") + "");
//			consultTeam.setEndOperator(endOperator);
//			consultTeam.setEndType(endType);
//		}
		
//		org.json.JSONObject group = talkGroupService.findConsultTalkGroup(consultTeam.getConsult());
//
//		if (group != null) {
//			String json = sendGroupIM(endOperator, group.getString("code"), "7", name + "结束了本次咨询");
//
//			if (org.apache.commons.lang3.StringUtils.isEmpty(json)) {
//				throw new Exception("send consult finished IM message failed");
//			}
//		}
		
		consultTeam.setEndMsgId(obj.getString("id"));
		cons.setEndTime(new Date());
		consultTeam.setEndTime(new Date());
		consultTeam.setStatus(1);
		consultDao.save(cons);
		consultTeamDao.save(consultTeam);
		return 1;
	}
}

+ 1 - 0
business/im-service/src/main/java/com/yihu/jw/im/util/HttpClientUtil.java

@ -16,6 +16,7 @@ import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import java.io.IOException;

+ 28 - 0
business/im-service/src/main/java/com/yihu/jw/im/util/ImUtil.java

@ -4,14 +4,23 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import com.yihu.jw.util.http.HttpClientUtil;
import java.util.ArrayList;
import java.util.List;
/**
 * IM工具类
 * @author huangwenjie
 */
@Component
public class ImUtil {
	
	@Autowired
	private HttpClientUtil HttpClientUtil;
	
@ -621,6 +630,25 @@ public class ImUtil {
		}
	}
	
	/**
	 * 发送消息给IM
	 *
	 * @param from        来自
	 * @param to
	 * @param contentType 1文字 2图片消息
	 * @param content     内容
	 */
	public String sendIM(String from, String to, String contentType, String content) {
		String imAddr = im_host + "api/v1/chats/pm";
		List<NameValuePair> params = new ArrayList<>();
		params.add(new BasicNameValuePair("from", from));
		params.add(new BasicNameValuePair("to", to));
		params.add(new BasicNameValuePair("contentType", contentType));
		params.add(new BasicNameValuePair("content", content));
		String response = HttpClientUtil.post(imAddr, params, "UTF-8");
		return response;
	}
	
	
	public static final String SESSION_TYPE_MUC = "1";
	public static final String SESSION_TYPE_P2P = "2";

+ 4 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/im/ConsultTeamDoctorDo.java

@ -3,12 +3,16 @@ package com.yihu.jw.entity.base.im;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * @author 三师咨询转接给的医生记录对象
 * @date 2019/6/19 11:10
 */
@Entity
@Table(name = "wlyy_consult_team_doctor")
public class ConsultTeamDoctorDo extends UuidIdentityEntity {
	// 三师咨询标识
	private String consult;

+ 4 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/im/ConsultTeamLogDo.java

@ -4,12 +4,16 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * 咨询日志表
 * @author huangwenjie
 */
@Entity
@Table(name = "wlyy_consult_team_log")
public class ConsultTeamLogDo extends UuidIdentityEntity {
	// 咨询标识
	private String consult;

+ 3 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java

@ -264,6 +264,9 @@ public class BaseHospitalRequestMapping {
        //居民详情
        public static final String patientInfo = "/patientInfo";
        
        //结束咨询
        public static final String finish = "/finish";
        
    }
    
    /**

+ 13 - 0
common/common-util/pom.xml

@ -78,5 +78,18 @@
            <groupId>com.yihu</groupId>
            <artifactId>fastdfs-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.3.13.RELEASE</version>
        </dependency>
    </dependencies>
</project>

+ 24 - 0
common/common-util/src/main/java/com/yihu/jw/util/http/HttpClientUtil.java

@ -13,7 +13,10 @@ import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import java.io.*;
import java.net.HttpURLConnection;
@ -227,5 +230,26 @@ public class HttpClientUtil {
        }
        return buffer.toString();
    }
    
    public  String postBody(String url, com.alibaba.fastjson.JSONObject params) {
        RestTemplate restTemplate = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();
        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
        headers.setContentType(type);
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        org.springframework.http.HttpEntity<String> formEntity = new org.springframework.http.HttpEntity<String>(params.toString(), headers);
        String ret = restTemplate.postForObject(url, formEntity, String.class);
        return ret;
    }
    
    public  void putBody(String url, com.alibaba.fastjson.JSONObject params) {
        RestTemplate restTemplate = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();
        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
        headers.setContentType(type);
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        org.springframework.http.HttpEntity<String> formEntity = new org.springframework.http.HttpEntity<String>(params.toString(), headers);
        restTemplate.put(url, formEntity, String.class);
    }
}

+ 72 - 24
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/DoctorConsultEndpoint.java

@ -3,6 +3,8 @@ package com.yihu.jw.hospital.endpoint.consult;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.base.im.ConsultTeamDo;
import com.yihu.jw.im.service.ImService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
@ -10,8 +12,15 @@ import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
/**
@ -22,6 +31,9 @@ import java.util.UUID;
@Api(value = "医生端-咨询IM&诊室&导诊台相关接口", description = "医生端-咨询IM&诊室&导诊台相关接口", tags = {"医生端-咨询IM&诊室&导诊台相关接口"})
public class DoctorConsultEndpoint extends EnvelopRestEndpoint {
	
	@Autowired
	private ImService imService;
	
	
	@GetMapping (value = BaseHospitalRequestMapping.DodtorIM.findPrescriptionConsultByDoctor)
	@ApiOperation(value = "医生可接单列表", notes = "医生可接单列表")
@ -80,30 +92,66 @@ public class DoctorConsultEndpoint extends EnvelopRestEndpoint {
	
	@PostMapping(value = BaseHospitalRequestMapping.DodtorIM.addPrescriptionConsult)
	@ApiOperation(value = "添加复诊咨询", notes = "添加复诊咨询")
	public Envelop add(
			@ApiParam(name = "patient", value = "居民CODE")
			@RequestParam(value = "patient",required = false) String patient,
			@ApiParam(name = "doctor", value = "医生CODE")
			@RequestParam(value = "doctor",required = true) String doctor,
			@ApiParam(name = "when", value = "发病时间")
			@RequestParam(value = "when",required = true) String when,
			@ApiParam(name = "symptoms", value = "主述")
			@RequestParam(value = "symptoms",required = false) String symptoms,
			@ApiParam(name = "images", value = "图片")
			@RequestParam(value = "images",required = false) String images,
			@ApiParam(name = "voice", value = "语音")
			@RequestParam(value = "voice",required = false) String voice)throws Exception{
		
		System.out.println("symptoms="+symptoms);
	public Envelop addPrescriptionConsult(@ApiParam(name = "outpatientCode", value = "HIS就诊记录CODE", defaultValue = "10")
			@RequestParam(value = "outpatientCode", required = true) String outpatientCode,
			@ApiParam(name = "patientCode", value = "复诊居民", defaultValue = "86225d1365e711e69f7c005056850d66")
			@RequestParam(value = "patientCode", required = true) String patientCode,
            @ApiParam(name = "doctorCode", value = "当前医生", defaultValue = "131231312312")
	        @RequestParam(value = "doctorCode", required = true) String doctorCode,
			@ApiParam(name = "type", value = "咨询类型(1、图文;2、视频,3、图文+视频)", defaultValue = "1")
			@RequestParam(value = "type", required = true) Integer type,
			@ApiParam(name = "reason", value = "复诊说明", defaultValue = "复诊说明")
			@RequestParam(value = "reason", required = false) String reason)throws Exception{
			ConsultTeamDo consult = new ConsultTeamDo();
			consult.setType(9);//续方咨询
			
			//咨询类型(1、图文;2、视频,3、图文+视频)
			consult.setHealthindexType(type);
			int res = 0;
			synchronized (outpatientCode.intern()){
				res = imService.addPrescriptionConsult(outpatientCode, patientCode,patientCode,doctorCode,consult,reason,type);
			}
			if (res == -1) {
				failed("该处方存在未审核的处方,无法进行复诊咨询!");
//				return error(-1, "该处方存在未审核的续方,无法进行续方咨询!");
			} if (res == -3) {
				failed("您当天有未完成的处方,不能发起复诊!");
//				return error(-1, "您当天有未完成的续方,不能发起续方咨询!");
			}
//		if (type == null) {
//			type = 1;
//		}
//		if (type != 1 && type != 2) {
//			return error(-1, "无效请求!");
//		}
		
		
		return success("进入成功", UUID.randomUUID().toString().replaceAll("-",""));
//            Doctor doctor = doctorService.findDoctorByCode(consult.getDoctor());
//            // 添加到统计队列
//            if (consult.getType() == 2) {
//                DoctorStatisticsTask.getInstance(doctorStatisticsService).put(consult.getDoctor(), 1, 1, 0);
//            }
//
//			if(messageService.getMessageNoticeSettingByMessageType(doctor,"1",MessageNoticeSetting.MessageTypeEnum.prescriptionSwitch.getValue())){
//				// 推送消息给医生
//				pushMsgTask.put(doctor, MessageType.MESSAGE_TYPE_DOCTOR_NEW_FAMOUS_CONSULT_TEAM_PRESCRIPTION.D_CT_05.name(), MessageType.MESSAGE_TYPE_DOCTOR_NEW_FAMOUS_CONSULT_TEAM_PRESCRIPTION.续方咨询.name(), MessageType.MESSAGE_TYPE_DOCTOR_NEW_FAMOUS_CONSULT_TEAM_PRESCRIPTION.您有新的续方咨询.name(), consult.getConsult());
//				try {
//					//            新增发送医生助手模板消息 v1.4.0 by wujunjie
//					Doctor doctor1 = doctorDao.findByCode(doctor);
//					Patient patient = patientDao.findByCode(getRepUID());
//					String doctorOpenID = doctor1.getOpenid();
//					if (StringUtils.isNotEmpty(doctorOpenID)) {
//						String url = doctorAssistant + "/wlyy/feldsher/sendDoctorTemplates";
//						List<NameValuePair> params = new ArrayList<>();
//						params.add(new BasicNameValuePair("type", "9"));
//						params.add(new BasicNameValuePair("openId", doctorOpenID));
//						params.add(new BasicNameValuePair("url", targetUrl));
//						params.add(new BasicNameValuePair("first", doctor1.getName() + "医生您好。您的签约居民"+patient.getName()+"申请线上续方,请尽快审核。"));
//						params.add(new BasicNameValuePair("remark", "请进入手机APP查看"));
//						SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
//						String keywords = "续方审核" + "," + doctor1.getHospitalName()+","+doctor1.getName();
//						params.add(new BasicNameValuePair("keywords", keywords));
//
//						httpClientUtil.post(url, params, "UTF-8");
//					}
//				} catch (Exception e) {
//					e.printStackTrace();
//				}
//			}
//			BusinessLogs.info(BusinessLogs.BusinessType.consult, getRepUID(), getUID(), new org.json.JSONObject(consult));
			return success(consult);
	}
}

+ 19 - 5
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/PatientConsultEndpoint.java

@ -225,12 +225,12 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
		consult.setVoice(voice);
		
		// 保存到数据库
		int res = 0;
		JSONArray dts = null;
		synchronized (getUID().intern()){//新增同步方法。设备保存写在service层但是不生效,写在controller层才生效
//		int res = 0;
//		JSONArray dts = null;
		synchronized (patient.intern()){//新增同步方法。设备保存写在service层但是不生效,写在controller层才生效
			JSONObject re = imService.addTeamConsult(consult, patient,doctor);
			res = re.getInteger("status");
			dts = re.containsKey("doctor")?re.getJSONArray("doctor"):null;
//			res = re.getInteger("status");
//			dts = re.containsKey("doctor")?re.getJSONArray("doctor"):null;
		}
		return success("操作成功", consult);
	}
@ -243,4 +243,18 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
		BasePatientDO result = basePatientService.findByIdAndDel(patient);
		return success(result);
	}
	
	@PostMapping(value = BaseHospitalRequestMapping.PatientIM.finish)
	@ApiOperation(value = "居民结束咨询", notes = "居民结束咨询")
	public Envelop finish(
			@ApiParam(name = "consult", value = "咨询CODE")
			@RequestParam(value = "consult",required = false) String consult,
			@ApiParam(name = "patientCode", value = "居民COEE")
			@RequestParam(value = "patientCode",required = false) String patientCode,
			@ApiParam(name = "endType", value = "1居民 2医生")
			@RequestParam(value = "endType",required = false) int endType
			) throws Exception {
		int resutl = imService.finish(consult,patientCode,endType);
		return success(resutl);
	}
}

+ 3 - 0
svr/svr-internet-hospital/src/main/resources/application.yml

@ -122,6 +122,7 @@ sms:
demo:
  flag: true
hospital:
  url: https://wx.xmzsh.com
  mqUser: JKZL
  mqPwd: 123456
  SourceSysCode: S60
@ -174,6 +175,7 @@ myFamily:
demo:
  flag: true
hospital:
  url: https://wx.xmzsh.com
  mqUser: JKZL
  mqPwd: 123456
  SourceSysCode: S60
@ -223,6 +225,7 @@ myFamily:
demo:
  flag: false
hospital:
  url: https://wx.xmzsh.com
  mqUser: JKZL
  mqPwd: 123456
  SourceSysCode: S60