| 
															
																@ -93,7 +93,7 @@ public class TimeoutOverDueService { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                for(WlyyOutpatientDO wlyyOutpatientDO:timeout){ 
															 | 
															
															 | 
															
																                for(WlyyOutpatientDO wlyyOutpatientDO:timeout){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                    try { 
															 | 
															
															 | 
															
																                    try { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                        long currentTime = new Date().getTime(); 
															 | 
															
															 | 
															
																                        long currentTime = new Date().getTime(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                        long outpatientTime = wlyyOutpatientDO.getCreateTime().getTime(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                        long outpatientTime = wlyyOutpatientDO.getRegisterDate().getTime(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                        if (currentTime-outpatientTime>24*60*60*1000){ 
															 | 
															
															 | 
															
																                        if (currentTime-outpatientTime>24*60*60*1000){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                            logger.info("时间满足条件"); 
															 | 
															
															 | 
															
																                            logger.info("时间满足条件"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                            String outPatientId = wlyyOutpatientDO.getId(); 
															 | 
															
															 | 
															
																                            String outPatientId = wlyyOutpatientDO.getId(); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -101,9 +101,10 @@ public class TimeoutOverDueService { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                            try { 
															 | 
															
															 | 
															
																                            try { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                consultCode = imService.getConsultCodeByOutpatientId(outPatientId); 
															 | 
															
															 | 
															
																                                consultCode = imService.getConsultCodeByOutpatientId(outPatientId); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                logger.info("consultCode"+consultCode); 
															 | 
															
															 | 
															
																                                logger.info("consultCode"+consultCode); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                if(StringUtils.isNoneBlank(consultCode)){ 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    imService.finish(consultCode,"admin",2); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    //医生未回复可以退费 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                if(StringUtils.isNoneBlank(consultCode)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    imService.cancelRevisit(consultCode, "admin", 2); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    /*//医生未回复可以退费 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    businessOrderService.consultRefund(consultCode,wechatId); 
															 | 
															
															 | 
															
																                                    businessOrderService.consultRefund(consultCode,wechatId); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    wlyyOutpatientDO.setDoctorCancelRemark(cancelRemark); 
															 | 
															
															 | 
															
																                                    wlyyOutpatientDO.setDoctorCancelRemark(cancelRemark); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    wlyyOutpatientDO.setDoctorCancelType("6"); 
															 | 
															
															 | 
															
																                                    wlyyOutpatientDO.setDoctorCancelType("6"); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -111,90 +112,89 @@ public class TimeoutOverDueService { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    wlyyOutpatientDO.setEndTime(new Date()); 
															 | 
															
															 | 
															
																                                    wlyyOutpatientDO.setEndTime(new Date()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    wlyyOutpatientDO.setOperator("system"); 
															 | 
															
															 | 
															
																                                    wlyyOutpatientDO.setOperator("system"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    outpatientDao.save(wlyyOutpatientDO); 
															 | 
															
															 | 
															
																                                    outpatientDao.save(wlyyOutpatientDO); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    logger.info(wlyyOutpatientDO.getId()+"的门诊记录设置为取消"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                }else{ 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    //判断医生是否接诊 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    List<WlyyHospitalWaitingRoomDO> roomDOs = hospitalWaitingRoomDao.findByOutpatientId(outPatientId); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    if (roomDOs != null && roomDOs.size() > 0) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                        for (WlyyHospitalWaitingRoomDO roomDO : roomDOs) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                            if (roomDO.getVisitStatus() == 2) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                                logger.info("id为:"+outPatientId+"的门诊已被医生接诊"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                            } else { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                                roomDO.setVisitStatus(-1); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                                logger.info("修改候诊室状态,将候诊病人移除候诊室"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                                hospitalWaitingRoomDao.save(roomDO); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                            } 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    logger.info(wlyyOutpatientDO.getId()+"的门诊记录设置为取消");*/ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                //判断医生是否接诊 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                List<WlyyHospitalWaitingRoomDO> roomDOs = hospitalWaitingRoomDao.findByOutpatientId(outPatientId); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                if (roomDOs != null && roomDOs.size() > 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    for (WlyyHospitalWaitingRoomDO roomDO : roomDOs) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                        if (roomDO.getVisitStatus() == 2) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                            logger.info("id为:"+outPatientId+"的门诊已被医生接诊"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                        } else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                            roomDO.setVisitStatus(-1); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                            logger.info("修改候诊室状态,将候诊病人移除候诊室"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                            hospitalWaitingRoomDao.save(roomDO); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                        } 
															 | 
															
															 | 
															
																                                        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    } 
															 | 
															
															 | 
															
																                                    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    //更改门诊状态 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    wlyyOutpatientDO.setStatus("-1"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    String description = null; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    wlyyOutpatientDO.setDoctorCancelRemark(cancelRemark); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    wlyyOutpatientDO.setDoctorCancelType("6"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    wlyyOutpatientDO.setDoctorCancelValue(cancelValue); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    wlyyOutpatientDO.setEndTime(new Date()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    wlyyOutpatientDO.setOperator("system"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    description = cancelValue; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    //系统消息 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    SystemMessageDO messageDO = new SystemMessageDO(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    messageDO.setTitle("超时订单系统自动取消"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    messageDO.setType("13"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    messageDO.setSender(wlyyOutpatientDO.getDoctor()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    messageDO.setSenderName(wlyyOutpatientDO.getDoctorName()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    messageDO.setRelationCode(wlyyOutpatientDO.getId()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    messageDO.setReceiver(wlyyOutpatientDO.getPatient()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    messageDO.setReceiverName(wlyyOutpatientDO.getPatientName()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    net.sf.json.JSONObject data = new net.sf.json.JSONObject(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    data.put("name", wlyyOutpatientDO.getPatientName()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    data.put("age", IdCardUtil.getAgeForIdcard(wlyyOutpatientDO.getIdcard())); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    data.put("gender", IdCardUtil.getSexForIdcard(wlyyOutpatientDO.getIdcard())); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    data.put("question", wlyyOutpatientDO.getIcd10Name()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    String msg = ""; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    if ("1".equalsIgnoreCase(wlyyOutpatientDO.getType())) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                        data.put("type", "9"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                        msg += wlyyOutpatientDO.getPatientName() + ",您好! 您有一个图文复诊已被系统取消,取消原因:" + cancelValue + "。取消说明:" + cancelRemark + "。"; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                        prescriptionService.sendWxTemplateMsg(wechatId, wlyyOutpatientDO.getId(),null, "9", "systemCancelRemind", cancelRemark); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    } 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    if ("2".equalsIgnoreCase(wlyyOutpatientDO.getType())) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                        data.put("type", "16"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                        msg += wlyyOutpatientDO.getPatientName() + ",您好! 您有一个视频复诊已被系统取消,取消原因:" + cancelValue + "。取消说明:" + cancelRemark + "。"; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                        prescriptionService.sendWxTemplateMsg(wechatId, wlyyOutpatientDO.getId(),null, "16", "systemCancelRemind", cancelRemark); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    } 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    data.put("msg", msg); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    messageDO.setData(data.toString()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    systemMessageService.saveMessage(messageDO); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    //推送消息到眼科通 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    BasePatientDO patient = basePatientDao.findById(wlyyOutpatientDO.getPatient()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                        logger.info("推送消息到眼科通"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                        ykyyService.pushNotificationToYktPatient(patient.getYktId(), messageDO.getTitle(), data.get("msg").toString()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    } 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    //删除门诊号源 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    List<WlyyPatientRegisterTimeDO> list = patientRegisterTimeDao.findByOutpatientId(wlyyOutpatientDO.getId()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    if (list != null && list.size() > 0) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                        patientRegisterTimeDao.delete(list); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    } 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(outPatientId); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    if (wechatId.equalsIgnoreCase("xm_ykyy_wx")) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                        businessOrderService.orderRefund(wechatId, wlyyOutpatientDO.getConsumer(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                        //眼科接诊时更新眼科通状态 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                        if (businessOrderDO!=null){ 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                            ykyyService.updateYktOrderStatus(businessOrderDO.getOrderNo(),"2"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                        } 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    } else if (wechatId.equalsIgnoreCase("xm_zsyy_wx")) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        /* 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                            businessOrderService.ylzOrderRefund(wechatId, wlyyOutpatientDO.getPatient(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        */ 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                //更改门诊状态 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                wlyyOutpatientDO.setStatus("-1"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                String description = null; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                wlyyOutpatientDO.setDoctorCancelRemark(cancelRemark); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                wlyyOutpatientDO.setDoctorCancelType("6"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                wlyyOutpatientDO.setDoctorCancelValue(cancelValue); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                wlyyOutpatientDO.setEndTime(new Date()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                wlyyOutpatientDO.setOperator("system"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                description = cancelValue; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                //系统消息 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                SystemMessageDO messageDO = new SystemMessageDO(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                messageDO.setTitle("超时订单系统自动取消"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                messageDO.setType("13"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                messageDO.setSender(wlyyOutpatientDO.getDoctor()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                messageDO.setSenderName(wlyyOutpatientDO.getDoctorName()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                messageDO.setRelationCode(wlyyOutpatientDO.getId()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                messageDO.setReceiver(wlyyOutpatientDO.getPatient()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                messageDO.setReceiverName(wlyyOutpatientDO.getPatientName()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                net.sf.json.JSONObject data = new net.sf.json.JSONObject(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                data.put("name", wlyyOutpatientDO.getPatientName()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                data.put("age", IdCardUtil.getAgeForIdcard(wlyyOutpatientDO.getIdcard())); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                data.put("gender", IdCardUtil.getSexForIdcard(wlyyOutpatientDO.getIdcard())); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                data.put("question", wlyyOutpatientDO.getIcd10Name()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                String msg = ""; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                if ("1".equalsIgnoreCase(wlyyOutpatientDO.getType())) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    data.put("type", "9"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    msg += wlyyOutpatientDO.getPatientName() + ",您好! 您有一个图文复诊已被系统取消,取消原因:" + cancelValue + "。取消说明:" + cancelRemark + "。"; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    prescriptionService.sendWxTemplateMsg(wechatId, wlyyOutpatientDO.getId(),null, "9", "systemCancelRemind", cancelRemark); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                if ("2".equalsIgnoreCase(wlyyOutpatientDO.getType())) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    data.put("type", "16"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    msg += wlyyOutpatientDO.getPatientName() + ",您好! 您有一个视频复诊已被系统取消,取消原因:" + cancelValue + "。取消说明:" + cancelRemark + "。"; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    prescriptionService.sendWxTemplateMsg(wechatId, wlyyOutpatientDO.getId(),null, "16", "systemCancelRemind", cancelRemark); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                data.put("msg", msg); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                messageDO.setData(data.toString()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                systemMessageService.saveMessage(messageDO); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                //推送消息到眼科通 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                BasePatientDO patient = basePatientDao.findById(wlyyOutpatientDO.getPatient()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    logger.info("推送消息到眼科通"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    ykyyService.pushNotificationToYktPatient(patient.getYktId(), messageDO.getTitle(), data.get("msg").toString()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                //删除门诊号源 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                List<WlyyPatientRegisterTimeDO> list = patientRegisterTimeDao.findByOutpatientId(wlyyOutpatientDO.getId()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                if (list != null && list.size() > 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    patientRegisterTimeDao.delete(list); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(outPatientId); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                if (wechatId.equalsIgnoreCase("xm_ykyy_wx")) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    businessOrderService.orderRefund(wechatId, wlyyOutpatientDO.getConsumer(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    //眼科接诊时更新眼科通状态 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    if (businessOrderDO!=null){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                        ykyyService.updateYktOrderStatus(businessOrderDO.getOrderNo(),"2"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    } 
															 | 
															
															 | 
															
																                                    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    outpatientDao.save(wlyyOutpatientDO); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                    logger.info(wlyyOutpatientDO.getId()+"的门诊记录设置为取消"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                } else if (wechatId.equalsIgnoreCase("xm_zsyy_wx")) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																    /* 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                        businessOrderService.ylzOrderRefund(wechatId, wlyyOutpatientDO.getPatient(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																    */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                } 
															 | 
															
															 | 
															
																                                } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                            }catch(Exception e)  { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                e.printStackTrace(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                                logger.info("自动结束咨询报错 consultCode: "+consultCode); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                            } 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                outpatientDao.save(wlyyOutpatientDO); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                logger.info(wlyyOutpatientDO.getId()+"的门诊记录设置为取消"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                        } 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                }catch(Exception e)  { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    e.printStackTrace(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                    logger.info("自动结束咨询报错 consultCode: "+consultCode); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                                } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                    } catch (Exception e) { 
															 | 
															
															 | 
															
																                    } catch (Exception e) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                        e.printStackTrace(); 
															 | 
															
															 | 
															
																                        e.printStackTrace(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                        logger.info(wlyyOutpatientDO.getId()+"的门诊记录取消失败"); 
															 | 
															
															 | 
															
																                        logger.info(wlyyOutpatientDO.getId()+"的门诊记录取消失败"); 
															 |