|
@ -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);
|
|
|
|
|
|
}
|
|
|
}
|