|  | @ -34,6 +34,7 @@ import org.slf4j.LoggerFactory;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import java.text.SimpleDateFormat;
 | 
	
		
			
				|  |  | import java.util.Date;
 | 
	
		
			
				|  |  | import java.util.List;
 | 
	
		
			
				|  |  | import java.util.Map;
 | 
	
	
		
			
				|  | @ -72,7 +73,7 @@ public class ConsultTeamService {
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private PatientDoorCoachOrderService patientDoorCoachOrderService;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private TXYSmsService txySmsService;
 | 
	
		
			
				|  |  |     private MessageUtil messageUtil;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private Logger logger= LoggerFactory.getLogger(ConsultTeamService.class);
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -318,15 +319,10 @@ public class ConsultTeamService {
 | 
	
		
			
				|  |  |             //发送短信给调度员 您有一条新的上门辅导申请,请进入调度平台处理。
 | 
	
		
			
				|  |  |             BaseDoctorDO doctorDO = doctorDao.findById(tmp.get("code").toString());
 | 
	
		
			
				|  |  |             if (doctorDO.getMobile()!=null){
 | 
	
		
			
				|  |  |                 JSONObject sendObj = new JSONObject();
 | 
	
		
			
				|  |  |                 sendObj.put("templateCode","VerificationCode");
 | 
	
		
			
				|  |  |                 JSONArray paramArr = new JSONArray();
 | 
	
		
			
				|  |  |                 paramArr.add("123123123123");
 | 
	
		
			
				|  |  |                 sendObj.put("templateParamArr",paramArr);
 | 
	
		
			
				|  |  |                 try {
 | 
	
		
			
				|  |  |                     txySmsService.sendMessageJson(doctorDO.getMobile(),sendObj.toJSONString());
 | 
	
		
			
				|  |  |                     messageUtil.sendTXYSJson("974603",doctorDO.getMobile());
 | 
	
		
			
				|  |  |                 }catch (Exception e){
 | 
	
		
			
				|  |  |                     logger.info("发送腾讯短信给调度员报错:{"+doctorDO.getMobile()+"},"+sendObj.toJSONString());
 | 
	
		
			
				|  |  |                     logger.info("发送腾讯短信给调度员报错:{"+doctorDO.getMobile()+"}");
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -511,5 +507,159 @@ public class ConsultTeamService {
 | 
	
		
			
				|  |  |         return true;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public int finishConsult(String consult, String endOperator, int endType) throws Exception {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         ConsultTeamDo consultTeam = consultTeamDao.findByConsult(consult);
 | 
	
		
			
				|  |  |         ConsultDo cons = consultDao.findOne(consult);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (consultTeam.getStatus() == 1) {
 | 
	
		
			
				|  |  |             return -1;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | //        //新增续方咨询结束判断 (续方未审核时不可由医生或居民关闭)
 | 
	
		
			
				|  |  | //        if (consultTeam.getType() == 8) {
 | 
	
		
			
				|  |  | //            Prescription prescription = prescriptionDao.findByCode(consultTeam.getRelationCode());
 | 
	
		
			
				|  |  | //            if (prescription.getStatus() == 0) {
 | 
	
		
			
				|  |  | //                return -2;
 | 
	
		
			
				|  |  | //            }
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String endName = "";
 | 
	
		
			
				|  |  |         String endId = "";
 | 
	
		
			
				|  |  |         //结束咨询才发送推送给IM文字消息
 | 
	
		
			
				|  |  |         if (endType == 1) {
 | 
	
		
			
				|  |  |             BasePatientDO p = patientDao.findById(endOperator);
 | 
	
		
			
				|  |  |             endName = p.getName();
 | 
	
		
			
				|  |  |             endId = p.getId();
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             if (endOperator.equals("admin")) {
 | 
	
		
			
				|  |  |                 endId = "system";
 | 
	
		
			
				|  |  |                 endName = "咨询超时未回复,系统自动";
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 BaseDoctorDO d = doctorDao.findOne(endOperator);
 | 
	
		
			
				|  |  |                 endId = d.getId();
 | 
	
		
			
				|  |  |                 endName = d.getName();
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         JSONObject obj = imUtill.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")));
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //结束咨询才发送推送给IM文字消息
 | 
	
		
			
				|  |  | //        if (endType == 1) {
 | 
	
		
			
				|  |  | //            BasePatientDO p = patientDao.findOne(endOperator);
 | 
	
		
			
				|  |  | //            endName = p.getName();
 | 
	
		
			
				|  |  | //            if (consultTeam.getType() == 2 || consultTeam.getType() == 8) {
 | 
	
		
			
				|  |  | //                String openId = p.getOpenid();
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //                WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_doctor_survey", "zxpj");
 | 
	
		
			
				|  |  | //                String first = templateConfig.getFirst();
 | 
	
		
			
				|  |  | //                first = first.replace("key1", (endName == null ? "" : endName));
 | 
	
		
			
				|  |  | //                String keyword1 = templateConfig.getKeyword1();
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //                org.json.JSONObject json = new org.json.JSONObject();
 | 
	
		
			
				|  |  | //                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 | 
	
		
			
				|  |  | //                json.put("keyword1", keyword1);
 | 
	
		
			
				|  |  | //                json.put("keyword2", sdf.format(new Date()));
 | 
	
		
			
				|  |  | //                json.put("toUser", p.getCode());
 | 
	
		
			
				|  |  | //                json.put("represented", p.getCode());//被代理人
 | 
	
		
			
				|  |  | //                json.put("remark", "");
 | 
	
		
			
				|  |  | //                json.put("consult", consult);
 | 
	
		
			
				|  |  | //                if (consultTeam.getType() == 8) {
 | 
	
		
			
				|  |  | //                    first = first.replace("key2", "续方");
 | 
	
		
			
				|  |  | //                } else {
 | 
	
		
			
				|  |  | //                    first = first.replace("key2", "");
 | 
	
		
			
				|  |  | //                }
 | 
	
		
			
				|  |  | //                json.put("first", first);
 | 
	
		
			
				|  |  | //                if (StringUtils.isNotBlank(p.getOpenid())) {
 | 
	
		
			
				|  |  | //                    pushMsgTask.putWxMsg(accessTokenUtils.getAccessToken(), 17, openId, p.getName(), json);
 | 
	
		
			
				|  |  | //                } else {
 | 
	
		
			
				|  |  | //                    //发送代理人
 | 
	
		
			
				|  |  | //                    org.json.JSONArray jsonArray = weiXinOpenIdUtils.getAgentOpenId(p.getCode(), p.getOpenid());
 | 
	
		
			
				|  |  | //                    if (jsonArray != null && jsonArray.length() > 0) {
 | 
	
		
			
				|  |  | //                        for (int i = 0; i < jsonArray.length(); i++) {
 | 
	
		
			
				|  |  | //                            org.json.JSONObject j = jsonArray.getJSONObject(i);
 | 
	
		
			
				|  |  | //                            Patient member = (Patient) j.get("member");
 | 
	
		
			
				|  |  | //                            org.json.JSONObject data = json;
 | 
	
		
			
				|  |  | //                            data.remove("toUser");
 | 
	
		
			
				|  |  | //                            data.put("toUser", member.getCode());
 | 
	
		
			
				|  |  | //                            data.remove("first");
 | 
	
		
			
				|  |  | //                            data.put("first", weiXinOpenIdUtils.getTitleMes(p, j.getInt("relation"), p.getName()) + first);
 | 
	
		
			
				|  |  | //                            pushMsgTask.putWxMsg(accessTokenUtils.getAccessToken(), 17, member.getOpenid(), p.getName(), data);
 | 
	
		
			
				|  |  | //                        }
 | 
	
		
			
				|  |  | //                    }
 | 
	
		
			
				|  |  | //                }
 | 
	
		
			
				|  |  | //            }
 | 
	
		
			
				|  |  | //        } else {
 | 
	
		
			
				|  |  | //            if (consultTeam.getType() == 2 || consultTeam.getType() == 8) {
 | 
	
		
			
				|  |  | //                Patient p = patientDao.findByCode(consultTeam.getPatient());
 | 
	
		
			
				|  |  | //                String name = p.getName();
 | 
	
		
			
				|  |  | //                String openId = p.getOpenid();
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //                WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_doctor_survey", "zxpj");
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //                if (endOperator.equals("admin")) {
 | 
	
		
			
				|  |  | //                    templateConfig = templateConfigDao.findByScene("template_doctor_survey", "zxcspj");
 | 
	
		
			
				|  |  | //                }
 | 
	
		
			
				|  |  | //                String first = templateConfig.getFirst();
 | 
	
		
			
				|  |  | //                first = first.replace("key1", (name == null ? "" : name));
 | 
	
		
			
				|  |  | //                String keyword1 = templateConfig.getKeyword1();
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //                org.json.JSONObject json = new org.json.JSONObject();
 | 
	
		
			
				|  |  | //                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 | 
	
		
			
				|  |  | //                json.put("keyword1", keyword1);
 | 
	
		
			
				|  |  | //                json.put("keyword2", sdf.format(new Date()));
 | 
	
		
			
				|  |  | //                json.put("toUser", p.getCode());
 | 
	
		
			
				|  |  | //                json.put("represented", p.getCode());//被代理人
 | 
	
		
			
				|  |  | //                json.put("remark", "");
 | 
	
		
			
				|  |  | //                json.put("consult", consult);
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //                if (consultTeam.getType() == 8) {
 | 
	
		
			
				|  |  | //                    first += "续方";
 | 
	
		
			
				|  |  | //                    first = first.replace("key2", "续方");
 | 
	
		
			
				|  |  | //                } else {
 | 
	
		
			
				|  |  | //                    first = first.replace("key2", "");
 | 
	
		
			
				|  |  | //                }
 | 
	
		
			
				|  |  | //                /*if (endOperator.equals("admin")) {
 | 
	
		
			
				|  |  | //                    first += "咨询超时未回复,系统自动关闭,请及时对咨询医生进行评价。";
 | 
	
		
			
				|  |  | //                }else {
 | 
	
		
			
				|  |  | //                    first += "咨询已结束,请及时对咨询医生进行评价。";
 | 
	
		
			
				|  |  | //                }*/
 | 
	
		
			
				|  |  | //                json.put("first", first);
 | 
	
		
			
				|  |  | //                if (StringUtils.isNotBlank(p.getOpenid())) {
 | 
	
		
			
				|  |  | //                    pushMsgTask.putWxMsg(accessTokenUtils.getAccessToken(), 17, openId, p.getName(), json);
 | 
	
		
			
				|  |  | //                } else {
 | 
	
		
			
				|  |  | //                    //发送代理人
 | 
	
		
			
				|  |  | //                    org.json.JSONArray jsonArray = weiXinOpenIdUtils.getAgentOpenId(p.getCode(), p.getOpenid());
 | 
	
		
			
				|  |  | //                    if (jsonArray != null && jsonArray.length() > 0) {
 | 
	
		
			
				|  |  | //                        for (int i = 0; i < jsonArray.length(); i++) {
 | 
	
		
			
				|  |  | //                            org.json.JSONObject j = jsonArray.getJSONObject(i);
 | 
	
		
			
				|  |  | //                            Patient member = (Patient) j.get("member");
 | 
	
		
			
				|  |  | //                            org.json.JSONObject data = json;
 | 
	
		
			
				|  |  | //                            data.remove("toUser");
 | 
	
		
			
				|  |  | //                            data.put("toUser", member.getCode());
 | 
	
		
			
				|  |  | //                            data.remove("first");
 | 
	
		
			
				|  |  | //                            data.put("first", weiXinOpenIdUtils.getTitleMes(p, j.getInt("relation"), p.getName()) + first);
 | 
	
		
			
				|  |  | //                            pushMsgTask.putWxMsg(accessTokenUtils.getAccessToken(), 17, member.getOpenid(), p.getName(), data);
 | 
	
		
			
				|  |  | //                        }
 | 
	
		
			
				|  |  | //                    }
 | 
	
		
			
				|  |  | //                }
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //            }
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         consultTeam.setEndMsgId(obj.getString("id"));
 | 
	
		
			
				|  |  |         cons.setEndTime(new Date());
 | 
	
		
			
				|  |  |         consultTeam.setEndTime(new Date());
 | 
	
		
			
				|  |  |         consultTeam.setStatus(1);
 | 
	
		
			
				|  |  |         consultDao.save(cons);
 | 
	
		
			
				|  |  |         consultTeamDao.save(consultTeam);
 | 
	
		
			
				|  |  |         return 1;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |