|
@ -4,11 +4,19 @@ import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yihu.wlyy.entity.patient.prescription.Prescription;
|
|
|
import com.yihu.wlyy.entity.patient.prescription.PrescriptionLog;
|
|
|
import com.yihu.wlyy.entity.patient.prescription.PrescriptionReviewed;
|
|
|
import com.yihu.wlyy.repository.message.MessageDao;
|
|
|
import com.yihu.wlyy.repository.prescription.PrescriptionDao;
|
|
|
import com.yihu.wlyy.repository.prescription.PrescriptionReviewedDao;
|
|
|
import com.yihu.wlyy.service.BaseService;
|
|
|
import com.yihu.wlyy.service.third.jw.JwPrescriptionService;
|
|
|
import com.yihu.wlyy.util.DateUtil;
|
|
|
import com.yihu.wlyy.util.ImUtill;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
/**
|
|
|
* 线下调整处方
|
|
@ -23,16 +31,28 @@ public class PrescriptionAdjustService extends BaseService {
|
|
|
private PrescriptionDao prescriptionDao;
|
|
|
@Autowired
|
|
|
private PrescriptionLogService prescriptionLogService;
|
|
|
@Autowired
|
|
|
private PrescriptionService prescriptionService;
|
|
|
@Autowired
|
|
|
private MessageDao messageDao;
|
|
|
@Autowired
|
|
|
private PrescriptionReviewedDao prescriptionReviewedDao;
|
|
|
@Autowired
|
|
|
private PrescriptionInfoService prescriptionInfoService;
|
|
|
@Autowired
|
|
|
private ImUtill imUtill;
|
|
|
|
|
|
/**
|
|
|
* 线下调整处方
|
|
|
* @param code
|
|
|
*/
|
|
|
public void adjustPrescription(String code){
|
|
|
@Transactional
|
|
|
public JSONObject adjustPrescription(String code){
|
|
|
JSONObject re = new JSONObject();
|
|
|
Prescription prescription = prescriptionDao.findByCode(code);
|
|
|
if(prescription.getStatus()== PrescriptionLog.PrescriptionLogStatus.revieweding.getValue()){
|
|
|
if(prescription.getStatus()== PrescriptionLog.PrescriptionLogStatus.revieweding.getValue()||
|
|
|
prescription.getStatus()== PrescriptionLog.PrescriptionLogStatus.change_error.getValue()){
|
|
|
//待审核状态才可以线下调整处方
|
|
|
|
|
|
String response = jwPrescriptionService.saveRecipe(code,prescription.getJwGisterTypeCode(),prescription.getJwDeptCode());
|
|
|
JSONObject json = JSONObject.parseObject(response);
|
|
|
if(json.getInteger("status")==200){
|
|
@ -49,27 +69,107 @@ public class PrescriptionAdjustService extends BaseService {
|
|
|
prescription.setRecipeNo(recipeNo);
|
|
|
prescriptionDao.save(prescription);
|
|
|
|
|
|
//发送Im消息
|
|
|
JSONObject content = new JSONObject();
|
|
|
content.put("title", "我已经审核您" + DateUtil.dateToStr(prescription.getCreateTime(), "yyyy-MM-dd") + "发起的续方申请");
|
|
|
content.put("result", "审核通过");
|
|
|
content.put("reason", "");
|
|
|
content.put("url", "");
|
|
|
imUtill.sendTopicIM(prescription.getDoctor(), prescription.getDoctorName(), prescription.getConsult(), "15", content.toString(), null);
|
|
|
|
|
|
//添加日志
|
|
|
prescriptionLogService.addLog(prescription,PrescriptionLog.PrescriptionLogType.zy.getValue(),1,2);
|
|
|
|
|
|
re.put("status",200);
|
|
|
}else {
|
|
|
//请求失败
|
|
|
prescriptionLogService.addLog(prescription,PrescriptionLog.PrescriptionLogType.zy.getValue(),0,2);
|
|
|
JSONArray byRefParaData = data.getJSONArray("byRefParaData");
|
|
|
re.put("status",-1);
|
|
|
re.put("msg",byRefParaData.getJSONObject(0).getString("errorMsg"));
|
|
|
}
|
|
|
}else {
|
|
|
//调整请求失败
|
|
|
prescriptionLogService.addLog(prescription,PrescriptionLog.PrescriptionLogType.zy.getValue(),0,2);
|
|
|
re.put("status",-1);
|
|
|
re.put("msg",data.getString("MESSAGE"));
|
|
|
}
|
|
|
|
|
|
}else{
|
|
|
//请求报错
|
|
|
prescriptionLogService.addLog(prescription,PrescriptionLog.PrescriptionLogType.zy.getValue(),0,2);
|
|
|
re.put("status",-1);
|
|
|
re.put("msg","请求调整失败");
|
|
|
}
|
|
|
}else {
|
|
|
re.put("status",-1);
|
|
|
re.put("msg","只有待审核和调整失败的续方可以转线下调整");
|
|
|
}
|
|
|
return re;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 上传ca认证信息
|
|
|
* @param code
|
|
|
*/
|
|
|
public JSONObject uploadCaDigital(String code){
|
|
|
JSONObject re = new JSONObject();
|
|
|
Prescription prescription = prescriptionDao.findByCode(code);
|
|
|
if(prescription.getStatus()==PrescriptionLog.PrescriptionLogStatus.change_success.getValue()){
|
|
|
String response = jwPrescriptionService.affirmCARecipe(code);
|
|
|
JSONObject json = JSONObject.parseObject(response);
|
|
|
if(json.getInteger("status")==200){
|
|
|
JSONObject data = json.getJSONObject("data");
|
|
|
String zyCode = data.getString("CODE");
|
|
|
if("1".equals(zyCode)){
|
|
|
JSONArray returnData = data.getJSONArray("returnData");
|
|
|
if(returnData.size()>0){
|
|
|
JSONObject pre = returnData.getJSONArray(0).getJSONObject(0);
|
|
|
//认证成功-审核完成
|
|
|
prescription.setStatus(PrescriptionLog.PrescriptionLogStatus.wait_pay.getValue());
|
|
|
//设置审核通过
|
|
|
PrescriptionReviewed reviewed = prescriptionReviewedDao.findByPrescriptionCode(code);
|
|
|
reviewed.setStatus(1);
|
|
|
reviewed.setReviewedTime(new Date());
|
|
|
prescriptionDao.save(prescription);
|
|
|
|
|
|
//审核通过模板消息
|
|
|
prescriptionInfoService.sendRMess(prescription.getCode(), 1);
|
|
|
|
|
|
}
|
|
|
//修改系统的续方消息的审核状态
|
|
|
messageDao.updatePreScriptionMessage(prescription.getConsult(), "1", 6);
|
|
|
|
|
|
//获取智业待结算接口,更新药品金额
|
|
|
prescriptionService.getPerscriptionInfoCostFromPayInfo(prescription.getCode());
|
|
|
|
|
|
//添加日志
|
|
|
prescriptionLogService.addLog(prescription,PrescriptionLog.PrescriptionLogType.zy.getValue(),1,2);
|
|
|
|
|
|
re.put("status",200);
|
|
|
}else {
|
|
|
//请求失败
|
|
|
prescriptionLogService.addLog(prescription,PrescriptionLog.PrescriptionLogType.zy.getValue(),0,2);
|
|
|
JSONArray byRefParaData = data.getJSONArray("byRefParaData");
|
|
|
re.put("status",-1);
|
|
|
re.put("msg",byRefParaData.getJSONObject(0).getString("errorMsg"));
|
|
|
}
|
|
|
}else {
|
|
|
//调整请求失败
|
|
|
prescriptionLogService.addLog(prescription,PrescriptionLog.PrescriptionLogType.zy.getValue(),0,2);
|
|
|
re.put("status",-1);
|
|
|
re.put("msg",data.getString("MESSAGE"));
|
|
|
}
|
|
|
}else{
|
|
|
//请求报错
|
|
|
prescriptionLogService.addLog(prescription,PrescriptionLog.PrescriptionLogType.zy.getValue(),0,2);
|
|
|
re.put("status",-1);
|
|
|
re.put("msg","请求调整失败");
|
|
|
}
|
|
|
|
|
|
}else {
|
|
|
re.put("status",-1);
|
|
|
re.put("msg","只有调整成功的续方才可上传ca认证信息");
|
|
|
}
|
|
|
return re;
|
|
|
}
|
|
|
|
|
|
}
|