|  | @ -10,12 +10,18 @@ import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.consult.WlyyHospitalWaitingRoomDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.doctor.WlyyPatientRegisterTimeDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.message.SystemMessageDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.prescription.*;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.prescription.WlyyOutpatientDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.prescription.WlyyPrescriptionDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.prescription.WlyyPrescriptionDiagnosisDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.prescription.WlyyPrescriptionInfoDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.order.BusinessOrderDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.consult.dao.HospitalWaitingRoomDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.doctor.dao.PatientRegisterTimeDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.message.service.SystemMessageService;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.prescription.dao.*;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.prescription.dao.OutpatientDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.prescription.dao.PrescriptionDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.prescription.dao.PrescriptionDiagnosisDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.prescription.dao.PrescriptionInfoDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.prescription.service.PrescriptionLogService;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.prescription.service.PrescriptionService;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.prescription.service.entrance.EntranceService;
 | 
	
	
		
			
				|  | @ -25,7 +31,6 @@ import com.yihu.jw.im.service.ImService;
 | 
	
		
			
				|  |  | import com.yihu.jw.order.BusinessOrderService;
 | 
	
		
			
				|  |  | import com.yihu.jw.order.dao.BusinessOrderDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.patient.dao.BasePatientDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.repository.job.QuartzJobLogDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionDiagnosisVO;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionInfoVO;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionVO;
 | 
	
	
		
			
				|  | @ -38,8 +43,6 @@ import com.yihu.jw.util.http.HttpUtils;
 | 
	
		
			
				|  |  | import com.yihu.jw.utils.YkyySMSService;
 | 
	
		
			
				|  |  | import com.yihu.jw.utils.hibernate.HibenateUtils;
 | 
	
		
			
				|  |  | import com.yihu.jw.wechat.dao.WxPushLogDao;
 | 
	
		
			
				|  |  | import org.apache.commons.collections.map.HashedMap;
 | 
	
		
			
				|  |  | import org.apache.commons.lang.time.DateUtils;
 | 
	
		
			
				|  |  | import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  | import org.slf4j.Logger;
 | 
	
		
			
				|  |  | import org.slf4j.LoggerFactory;
 | 
	
	
		
			
				|  | @ -153,9 +156,9 @@ public class PrescriptionStatusUpdateService {
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //根据处方id获取处方详情
 | 
	
		
			
				|  |  |             WlyyPrescriptionDO wlyyPrescriptionDO = prescriptionDao.findOne(preId);
 | 
	
		
			
				|  |  |             WlyyPrescriptionDO wlyyPrescriptionDO = prescriptionDao.findById(preId).orElse(null);
 | 
	
		
			
				|  |  |             //根据门诊id获取门诊记录:如果处方状态为已完成,需要将门诊状态改为已诊
 | 
	
		
			
				|  |  |             WlyyOutpatientDO wlyyOutpatientDO = outpatientDao.findById(outPatientId);
 | 
	
		
			
				|  |  |             WlyyOutpatientDO wlyyOutpatientDO = outpatientDao.findById(outPatientId).orElse(null);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             if (null != wlyyPrescriptionVOS) {
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -241,7 +244,7 @@ public class PrescriptionStatusUpdateService {
 | 
	
		
			
				|  |  |             wlyyPrescriptionDiagnosisDOS.add(diagnosisDO);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //重新保存诊断
 | 
	
		
			
				|  |  |         prescriptionDiagnosisDao.save(wlyyPrescriptionDiagnosisDOS);
 | 
	
		
			
				|  |  |         prescriptionDiagnosisDao.saveAll(wlyyPrescriptionDiagnosisDOS);
 | 
	
		
			
				|  |  |         //药品更新
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionInfoDO> wlyyPrescriptionInfoDOS = new ArrayList<>();
 | 
	
		
			
				|  |  |         for (WlyyPrescriptionInfoVO infoVO : wlyyPrescriptionVO.getInfoVOs()) {
 | 
	
	
		
			
				|  | @ -290,7 +293,7 @@ public class PrescriptionStatusUpdateService {
 | 
	
		
			
				|  |  |             infoDO.setPackRetprice(infoVO.getPackRetprice());
 | 
	
		
			
				|  |  |             wlyyPrescriptionInfoDOS.add(infoDO);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         prescriptionInfoDao.save(wlyyPrescriptionInfoDOS);
 | 
	
		
			
				|  |  |         prescriptionInfoDao.saveAll(wlyyPrescriptionInfoDOS);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Icd10 = Icd10.substring(0, Icd10.length() - 1);
 | 
	
		
			
				|  |  |         Icd10Name = Icd10Name.substring(0, Icd10Name.length() - 1);
 | 
	
	
		
			
				|  | @ -362,7 +365,7 @@ public class PrescriptionStatusUpdateService {
 | 
	
		
			
				|  |  |                     logger.info(outpatientDO.getId()+"的处方记录设置为结束");
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             outpatientDao.save(outpatientDOs);
 | 
	
		
			
				|  |  |             outpatientDao.saveAll(outpatientDOs);
 | 
	
		
			
				|  |  |             /*//退费
 | 
	
		
			
				|  |  |             for (WlyyOutpatientDO outpatientDO:outpatientDOs){
 | 
	
		
			
				|  |  |                 long currentTime = new Date().getTime();
 | 
	
	
		
			
				|  | @ -414,7 +417,7 @@ public class PrescriptionStatusUpdateService {
 | 
	
		
			
				|  |  |                     //结束门诊
 | 
	
		
			
				|  |  |                     outpatientDO.setStatus("0");
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 outpatientDao.save(outpatientDOs);
 | 
	
		
			
				|  |  |                 outpatientDao.saveAll(outpatientDOs);
 | 
	
		
			
				|  |  |                 //退费
 | 
	
		
			
				|  |  |                 for (WlyyOutpatientDO outpatientDO:outpatientDOs){
 | 
	
		
			
				|  |  |                     BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(outpatientDO.getId());
 | 
	
	
		
			
				|  | @ -446,7 +449,7 @@ public class PrescriptionStatusUpdateService {
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     public  String  singelCancel(String outpatientId){
 | 
	
		
			
				|  |  |         logger.info("进入结束超时未接诊的门诊");
 | 
	
		
			
				|  |  |         WlyyOutpatientDO wlyyOutpatientDO = outpatientDao.findById(outpatientId);
 | 
	
		
			
				|  |  |         WlyyOutpatientDO wlyyOutpatientDO = outpatientDao.findById(outpatientId).orElse(null);
 | 
	
		
			
				|  |  |         String msgReturn = "";
 | 
	
		
			
				|  |  |         if (null!=wlyyOutpatientDO){
 | 
	
		
			
				|  |  |             logger.info("开始结束超时未接诊的门诊");
 | 
	
	
		
			
				|  | @ -513,7 +516,7 @@ public class PrescriptionStatusUpdateService {
 | 
	
		
			
				|  |  |                     e.printStackTrace();
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 //推送消息到眼科通
 | 
	
		
			
				|  |  |                 BasePatientDO patient = basePatientDao.findById(wlyyOutpatientDO.getPatient());
 | 
	
		
			
				|  |  |                 BasePatientDO patient = basePatientDao.findById(wlyyOutpatientDO.getPatient()).orElse(null);
 | 
	
		
			
				|  |  |                 if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)) {
 | 
	
		
			
				|  |  |                     logger.info("推送消息到眼科通");
 | 
	
		
			
				|  |  |                     ykyyService.pushNotificationToYktPatient(patient.getYktId(), messageDO.getTitle(), data.get("msg").toString());
 | 
	
	
		
			
				|  | @ -525,7 +528,7 @@ public class PrescriptionStatusUpdateService {
 | 
	
		
			
				|  |  |                 //删除门诊号源
 | 
	
		
			
				|  |  |                 List<WlyyPatientRegisterTimeDO> list = patientRegisterTimeDao.findByOutpatientId(wlyyOutpatientDO.getId());
 | 
	
		
			
				|  |  |                 if (list != null && list.size() > 0) {
 | 
	
		
			
				|  |  |                     patientRegisterTimeDao.delete(list);
 | 
	
		
			
				|  |  |                     patientRegisterTimeDao.deleteAll(list);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(outPatientId);
 | 
	
		
			
				|  |  |                 try {
 | 
	
	
		
			
				|  | @ -636,7 +639,7 @@ public class PrescriptionStatusUpdateService {
 | 
	
		
			
				|  |  |                         messageDO.setData(data.toString());
 | 
	
		
			
				|  |  |                         systemMessageService.saveMessage(messageDO);
 | 
	
		
			
				|  |  |                         //推送消息到眼科通
 | 
	
		
			
				|  |  |                         BasePatientDO patient = basePatientDao.findById(wlyyOutpatientDO.getPatient());
 | 
	
		
			
				|  |  |                         BasePatientDO patient = basePatientDao.findById(wlyyOutpatientDO.getPatient()).orElse(null);
 | 
	
		
			
				|  |  |                         if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)) {
 | 
	
		
			
				|  |  |                             logger.info("推送消息到眼科通");
 | 
	
		
			
				|  |  |                             ykyyService.pushNotificationToYktPatient(patient.getYktId(), messageDO.getTitle(), data.get("msg").toString());
 | 
	
	
		
			
				|  | @ -645,7 +648,7 @@ public class PrescriptionStatusUpdateService {
 | 
	
		
			
				|  |  |                         //删除门诊号源
 | 
	
		
			
				|  |  |                         List<WlyyPatientRegisterTimeDO> list = patientRegisterTimeDao.findByOutpatientId(wlyyOutpatientDO.getId());
 | 
	
		
			
				|  |  |                         if (list != null && list.size() > 0) {
 | 
	
		
			
				|  |  |                             patientRegisterTimeDao.delete(list);
 | 
	
		
			
				|  |  |                             patientRegisterTimeDao.deleteAll(list);
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(outPatientId);
 | 
	
		
			
				|  |  |                         if (wechatId.equalsIgnoreCase("xm_ykyy_wx")) {
 | 
	
	
		
			
				|  | @ -706,7 +709,7 @@ public class PrescriptionStatusUpdateService {
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 logger.info(outpatientDO.getId()+"的处方记录设置为结束");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             outpatientDao.save(outpatientDOs);
 | 
	
		
			
				|  |  |             outpatientDao.saveAll(outpatientDOs);
 | 
	
		
			
				|  |  |             //退费
 | 
	
		
			
				|  |  |             for (WlyyOutpatientDO outpatientDO:outpatientDOs){
 | 
	
		
			
				|  |  |                 try {
 | 
	
	
		
			
				|  | @ -732,7 +735,7 @@ public class PrescriptionStatusUpdateService {
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     public void cancelRecieveSingle(String outpatientId){
 | 
	
		
			
				|  |  |         //将所有的已接诊的处方记录
 | 
	
		
			
				|  |  |         WlyyOutpatientDO outpatientDO = outpatientDao.findById(outpatientId);
 | 
	
		
			
				|  |  |         WlyyOutpatientDO outpatientDO = outpatientDao.findById(outpatientId).orElse(null);
 | 
	
		
			
				|  |  |         if(outpatientDO!=null){
 | 
	
		
			
				|  |  |             System.out.println(outpatientDO.getId()+"id______-");
 | 
	
		
			
				|  |  |             //结束门诊
 | 
	
	
		
			
				|  | @ -844,7 +847,7 @@ public class PrescriptionStatusUpdateService {
 | 
	
		
			
				|  |  |                         messageDO.setData(data.toString());
 | 
	
		
			
				|  |  |                         systemMessageService.saveMessage(messageDO);
 | 
	
		
			
				|  |  |                         //推送消息到眼科通
 | 
	
		
			
				|  |  |                         BasePatientDO patient = basePatientDao.findById(wlyyOutpatientDO.getPatient());
 | 
	
		
			
				|  |  |                         BasePatientDO patient = basePatientDao.findById(wlyyOutpatientDO.getPatient()).orElse(null);
 | 
	
		
			
				|  |  |                         if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)) {
 | 
	
		
			
				|  |  |                             logger.info("推送消息到眼科通");
 | 
	
		
			
				|  |  |                             ykyyService.pushNotificationToYktPatient(patient.getYktId(), messageDO.getTitle(), data.get("msg").toString());
 | 
	
	
		
			
				|  | @ -853,7 +856,7 @@ public class PrescriptionStatusUpdateService {
 | 
	
		
			
				|  |  |                         //删除门诊号源
 | 
	
		
			
				|  |  |                         List<WlyyPatientRegisterTimeDO> list = patientRegisterTimeDao.findByOutpatientId(wlyyOutpatientDO.getId());
 | 
	
		
			
				|  |  |                         if (list != null && list.size() > 0) {
 | 
	
		
			
				|  |  |                             patientRegisterTimeDao.delete(list);
 | 
	
		
			
				|  |  |                             patientRegisterTimeDao.deleteAll(list);
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(outPatientId);
 | 
	
		
			
				|  |  |                         if (wechatId.equalsIgnoreCase("xm_ykyy_wx")) {
 | 
	
	
		
			
				|  | @ -928,7 +931,7 @@ public class PrescriptionStatusUpdateService {
 | 
	
		
			
				|  |  |                         cal.add(Calendar.MINUTE,Integer.parseInt(remind));
 | 
	
		
			
				|  |  |                         Long now = new Date().getTime();
 | 
	
		
			
				|  |  |                         Long min = cal.getTime().getTime();
 | 
	
		
			
				|  |  |                         WlyyOutpatientDO wlyyOutpatientDO = outpatientDao.findById(outpatientId);
 | 
	
		
			
				|  |  |                         WlyyOutpatientDO wlyyOutpatientDO = outpatientDao.findById(outpatientId).orElse(null);
 | 
	
		
			
				|  |  |                         if (min<=now){
 | 
	
		
			
				|  |  |                             String mobileList[] = mobiles.split(",");
 | 
	
		
			
				|  |  |                             if ("1".equalsIgnoreCase(sendMesControl)){
 |