|  | @ -1229,4 +1229,112 @@ public class PrescriptionService extends ZysoftBaseService{
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |         return response;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 接收线下支付消息
 | 
	
		
			
				|  |  |      * 收到该消息,直接修改出访卫已支付,已结算、等待发药状态
 | 
	
		
			
				|  |  |      * @param data
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public Result offlinepay(String data)  throws Exception{
 | 
	
		
			
				|  |  |         String error = null;
 | 
	
		
			
				|  |  |         String status = "1";
 | 
	
		
			
				|  |  |         String errMsg = null;
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |             JSONObject json = JSONObject.parseObject(data);
 | 
	
		
			
				|  |  |             Integer code = json.getInteger("CODE");
 | 
	
		
			
				|  |  |             if(code==1){
 | 
	
		
			
				|  |  |                 String orderNo = json.getString("ORDER_NO");//挂号编号
 | 
	
		
			
				|  |  |                 String recipeNo = json.getString("RECIPE_NO");//处方编号
 | 
	
		
			
				|  |  |             
 | 
	
		
			
				|  |  |                 Prescription prescription = prescriptionDao.findByVisitNoAndRecipeNo(orderNo,recipeNo);
 | 
	
		
			
				|  |  |                 if(prescription.getStatus().equals(PrescriptionLog.PrescriptionLogStatus.pay_success.getValue())){
 | 
	
		
			
				|  |  |                 
 | 
	
		
			
				|  |  |                     if(2 == prescription.getDispensaryType()){//如果是快递配送,则直接修改成配送中
 | 
	
		
			
				|  |  |                         prescription.setStatus(PrescriptionLog.PrescriptionLogStatus.expressageing.getValue());
 | 
	
		
			
				|  |  |                     } else{
 | 
	
		
			
				|  |  |                         prescription.setStatus(PrescriptionLog.PrescriptionLogStatus.wait_expressage.getValue());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 
 | 
	
		
			
				|  |  |                     prescription.setDrugDeliveryTime(new Date());
 | 
	
		
			
				|  |  |                     prescriptionDao.save(prescription);
 | 
	
		
			
				|  |  |                 
 | 
	
		
			
				|  |  |                     //新增log表
 | 
	
		
			
				|  |  |                     PrescriptionLog log = new PrescriptionLog();
 | 
	
		
			
				|  |  |                     log.setPrescriptionCode(prescription.getCode());
 | 
	
		
			
				|  |  |                     log.setCode(getCode());
 | 
	
		
			
				|  |  |                     log.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                     log.setType(PrescriptionLog.PrescriptionLogType.zy.getValue());
 | 
	
		
			
				|  |  |                     log.setUserType(2);
 | 
	
		
			
				|  |  |                     log.setHospital(prescription.getHospital());
 | 
	
		
			
				|  |  |                     log.setHospitalName(prescription.getHospitalName());
 | 
	
		
			
				|  |  |                     log.setUserName(prescription.getDoctorName());
 | 
	
		
			
				|  |  |                     log.setFlag(1);
 | 
	
		
			
				|  |  |                     log.setUserCode(prescription.getDoctor());
 | 
	
		
			
				|  |  |                     if(2 == prescription.getDispensaryType()){//如果是快递配送,则直接修改成配送中
 | 
	
		
			
				|  |  |                         log.setStatus(PrescriptionLog.PrescriptionLogStatus.expressageing.getValue());
 | 
	
		
			
				|  |  |                         log.setRemark("快递配送:配药成功,配送中");
 | 
	
		
			
				|  |  |                         prescriptionLogDao.save(log);
 | 
	
		
			
				|  |  |                     } else{
 | 
	
		
			
				|  |  |                         log.setStatus(PrescriptionLog.PrescriptionLogStatus.wait_expressage.getValue());
 | 
	
		
			
				|  |  |                         log.setRemark("配药成功");
 | 
	
		
			
				|  |  |                         prescriptionLogDao.save(log);
 | 
	
		
			
				|  |  |                     
 | 
	
		
			
				|  |  |                         //健管师配送
 | 
	
		
			
				|  |  |                         PrescriptionExpressage expressage = prescriptionExpressageDao.findByPrescriptionCode(prescription.getCode());
 | 
	
		
			
				|  |  |                         if(StringUtils.isNotBlank(expressage.getExpressageCode())){
 | 
	
		
			
				|  |  |                             Message message = new Message();
 | 
	
		
			
				|  |  |                             message.setCzrq(new Date());
 | 
	
		
			
				|  |  |                             message.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                             message.setRead(1);//设置未读
 | 
	
		
			
				|  |  |                             message.setOver("1");
 | 
	
		
			
				|  |  |                             message.setReceiver(expressage.getExpressageCode());
 | 
	
		
			
				|  |  |                             message.setSender("system");
 | 
	
		
			
				|  |  |                             message.setCode(getCode());
 | 
	
		
			
				|  |  |                             message.setSenderName("系统");
 | 
	
		
			
				|  |  |                             message.setTitle("居民"+prescription.getPatientName()+"的续方订单待取药");
 | 
	
		
			
				|  |  |                             message.setContent("您有一条新的续方订单待取药!");
 | 
	
		
			
				|  |  |                             message.setType(7);//续方订单待取药
 | 
	
		
			
				|  |  |                             message.setReadonly(1);//是否只读消息
 | 
	
		
			
				|  |  |                             message.setDel("1");
 | 
	
		
			
				|  |  |                             message.setRelationCode(prescription.getCode());
 | 
	
		
			
				|  |  |                             message.setPrescriptionStatus("0");//待取药
 | 
	
		
			
				|  |  |                             message.setData(prescription.getAdminTeamId()+"");
 | 
	
		
			
				|  |  |                             messageDao.save(message);
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     
 | 
	
		
			
				|  |  |                         //判断提示健管师有续方代配送,居民待取药
 | 
	
		
			
				|  |  |                         JSONObject message = new JSONObject();
 | 
	
		
			
				|  |  |                         message.put("title","dispensingComplete");
 | 
	
		
			
				|  |  |                         message.put("state",1);
 | 
	
		
			
				|  |  |                         message.put("prescription",prescription.getCode());
 | 
	
		
			
				|  |  |                         message.put("mes","success");
 | 
	
		
			
				|  |  | //                redisTemplate.convertAndSend(channelTopic,message.toString());
 | 
	
		
			
				|  |  | //                redisTemplate.watch(channelTopic);
 | 
	
		
			
				|  |  |                         redisTemplate.opsForList().leftPush(channelTopic,message.toString());
 | 
	
		
			
				|  |  | //                redisTemplate.unwatch();
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     error = "code:"+prescription.getCode()+",status:"+prescription.getStatus();
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 error = "code:"+code;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  |         }catch (JSONException ex){
 | 
	
		
			
				|  |  |             ex.printStackTrace();
 | 
	
		
			
				|  |  |             error = ex.getMessage();
 | 
	
		
			
				|  |  |             errMsg = ex.getMessage();
 | 
	
		
			
				|  |  |             status = "0";
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             error = e.getMessage();
 | 
	
		
			
				|  |  |             status = "0";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //添加日志
 | 
	
		
			
				|  |  |         return addZyPushLog(data,"offlinepay","接收线下支付消息",error,"POST",status,"1",errMsg);
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | }
 |