Browse Source

Merge branch 'baseCopy1' of wangjun/wlyy2.0 into dev

wangzhinan 3 years ago
parent
commit
25bb232e17

+ 10 - 4
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -11708,25 +11708,30 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            }
            //先进行核算检测预约
            String realOrder="";
            String result = tasyNatService.initNatParams(preNo,name,cardNo);
            String addressNow=provinceName+cityName+townName+streetName+address;
            String result = tasyNatService.initNatParams(preNo,name,mediaCard,addressNow,firstJobCode,secondJobCode);
            Boolean flag = false;
            if (StringUtils.isNoneBlank(result)){
                com.alibaba.fastjson.JSONObject object = com.alibaba.fastjson.JSONObject.parseObject(result);
                logger.info("核酸检测预约结束"+result);
                if (object!=null){
                    String returnCode = object.getString("returnCode");
                    String returnCode = object.getString("ReturnCode");
                    System.out.println("returnCode"+returnCode);
                    if ("0".equalsIgnoreCase(returnCode)){
                        returnMap.put("msg",object.getString("returnMsg"));
                        returnMap.put("status","-1");
                        return  returnMap;
                    }else {
                        flag = true;
                        System.out.println(flag);
                        realOrder=object.getString("hisTradeNo");
                        System.out.println(realOrder);
                    }
                }
            }
            if (flag){
                logger.info("BaseNatAppointmentDO保存开始");
                BaseNatAppointmentDO baseNatAppointmentDO= new BaseNatAppointmentDO();
                baseNatAppointmentDO.setChargeAmount(chargeAmount);
                baseNatAppointmentDO.setMedicare(mediaCard);
@ -11762,6 +11767,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                baseNatAppointmentDO.setConsumer(consumer);
                //baseNatAppointmentDO.setDoctorName(map.get("doctorName").toString());
                baseNatAppointmentDO= baseNatAppointmentDao.save(baseNatAppointmentDO);
                logger.info("BaseNatAppointmentDO保存结束"+baseNatAppointmentDO.getId());
                //添加订单
                BusinessOrderDO businessDO = new BusinessOrderDO();
                businessDO.setPatient(consumer);
@ -11784,7 +11790,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                if (basePatientWechatDo!=null&&basePatientWechatDo.size()>0){
                    openId=basePatientWechatDo.get(0).getOpenid();
                }
                //亿同支付创建订单
               /* //亿同支付创建订单
                com.alibaba.fastjson.JSONObject orderObj= new com.alibaba.fastjson.JSONObject();
                orderObj.put("payType",1);
                orderObj.put("tradeNo",businessDO.getOrderNo());
@ -11803,7 +11809,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                        }
                    }
                }
                tasyNatService.sendWxtemplateMessaeg(baseNatAppointmentDO.getConsumer(),"hszftx",baseNatAppointmentDO.getName(),baseNatAppointmentDO.getId().toString());
                tasyNatService.sendWxtemplateMessaeg(baseNatAppointmentDO.getConsumer(),"hszftx",baseNatAppointmentDO.getName(),baseNatAppointmentDO.getId().toString());*/
                logger.info("开单结束");
                returnMap.put("msg","预约成功");
                returnMap.put("status","200");

+ 52 - 5
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/TasyNatService.java

@ -13,12 +13,17 @@ import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.httplog.dao.WlyyHttpLogDao;
import com.yihu.jw.hospital.prescription.service.entrance.XzzxEntranceService;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.hospital.doctor.PersonInfoVO;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.jw.utils.StringUtil;
import com.yihu.jw.utils.WebserviceUtil;
import com.yihu.jw.wechat.dao.BasePatientWechatDao;
import com.yihu.jw.wechat.dao.WxTemplateConfigDao;
import net.sf.json.xml.XMLSerializer;
import nu.xom.Builder;
import nu.xom.Document;
import nu.xom.Element;
import nu.xom.Elements;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.NameValuePair;
@ -30,6 +35,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -160,6 +166,10 @@ public class TasyNatService {
        params.put("msgBody",msgBody);
        logger.info("registerPatient params:"+params.toString());
        String xml = getTaszWebServiceInfo("CallInterface",params,getOperateUrl());
        /*xml= xml.replace("<![CDATA[<?xml version=\"1.0\" encoding=\"utf-8\"?>","");
        xml= xml.replace("]]>","");*/
        xml=xml.substring(xml.indexOf("<root>"),xml.lastIndexOf("]]"));
        System.out.println(xml);
        XMLSerializer xmlSerializer = new XMLSerializer();
        String json = xmlSerializer.read(xml).toString();
        logger.info("registerPatient json:"+json);
@ -200,6 +210,18 @@ public class TasyNatService {
        if (StringUtils.isNoneBlank(jsonObject.getString("clinicFee"))){
            condition += "<clinicFee>"+jsonObject.getString("clinicFee")+"</clinicFee>";
        }
        if (StringUtils.isNoneBlank(jsonObject.getString("address_now"))){
            condition += "<address_now>"+jsonObject.getString("address_now")+"</address_now>";
        }
        if (StringUtils.isNoneBlank(jsonObject.getString("ncp_standing_type"))){
            condition += "<ncp_standing_type>"+jsonObject.getString("ncp_standing_type")+"</ncp_standing_type>";
        }
        if (StringUtils.isNoneBlank(jsonObject.getString("ncp_profession"))){
            condition += "<ncp_profession>"+jsonObject.getString("ncp_profession")+"</ncp_profession>";
        }
        if (StringUtils.isNoneBlank(jsonObject.getString("ncp_profession_sub"))){
            condition += "<ncp_profession_sub>"+jsonObject.getString("ncp_profession_sub")+"</ncp_profession_sub>";
        }
        String itemCoditon="";
        if (StringUtils.isNoneBlank(jsonObject.getString("item"))){
            JSONObject itemObject=jsonObject.getJSONObject("item");
@ -222,6 +244,10 @@ public class TasyNatService {
        params.put("msgBody",msgBody);
        logger.info("insertNucleicBill params:"+params.toString());
        String xml = getTaszWebServiceInfo("CallInterface",params,getOperateUrl());
        /*xml= xml.replace("<![CDATA[<?xml version=\"1.0\" encoding=\"utf-8\"?>","");
        xml= xml.replace("]]>","");*/
        xml=xml.substring(xml.indexOf("<root>"),xml.lastIndexOf("]]"));
        System.out.println(xml);
        XMLSerializer xmlSerializer = new XMLSerializer();
        String json = xmlSerializer.read(xml).toString();
        logger.info("insertNucleicBill json:"+json);
@ -259,11 +285,16 @@ public class TasyNatService {
        params.put("msgBody",msgBody);
        logger.info("cancelNucleicBill params:"+params.toString());
        String xml = getTaszWebServiceInfo("CallInterface",params,getOperateUrl());
        /*xml= xml.replace("<![CDATA[<?xml version=\"1.0\" encoding=\"utf-8\"?>","");
        xml= xml.replace("]]>","");*/
        xml=xml.substring(xml.indexOf("<root>"),xml.lastIndexOf("]]"));
        System.out.println(xml);
        XMLSerializer xmlSerializer = new XMLSerializer();
        String json = xmlSerializer.read(xml).toString();
        logger.info("cancelNucleicBill json:"+json);
        return json;
    }
    /**
     * 核酸检测项目扣费
     * @return
@ -294,16 +325,17 @@ public class TasyNatService {
        Map<String,String> params = new HashedMap();
        params.put("msgHeader",msgHeader);
        params.put("msgBody",msgBody);
        logger.info("cancelNucleicBill params:"+params.toString());
        logger.info("ChargenucleicBill params:"+params.toString());
        String xml = getTaszWebServiceInfo("CallInterface",params,getOperateUrl());
        xml=xml.substring(xml.indexOf("<root>"),xml.lastIndexOf("]]"));
        XMLSerializer xmlSerializer = new XMLSerializer();
        String json = xmlSerializer.read(xml).toString();
        logger.info("cancelNucleicBill json:"+json);
        logger.info("ChargenucleicBill json:"+json);
        return json;
    }
    //组装核算下单参数
    public String initNatParams(String preNo,String patientName,String icCardNo){
    public String initNatParams(String preNo,String patientName,String icCardNo,String address,String job,String jobChild){
        List<WlyyHospitalSysDictDO> natConfigList = wlyyHospitalSysDictDao.findByDictName("natConfigList");
        String deptCode = "0001";
        String staffNo = "0001";
@ -312,6 +344,7 @@ public class TasyNatService {
        String itemCode = "xmCode";
        String itemName = "核酸检测";
        String itemPrice = "0.01";
        String ncpStandingType="";
        for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:natConfigList){
            if (StringUtils.isNoneBlank(wlyyHospitalSysDictDO.getDictValue())&&"deptCode".equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                deptCode = wlyyHospitalSysDictDO.getDictValue();
@ -334,6 +367,9 @@ public class TasyNatService {
            if (StringUtils.isNoneBlank(wlyyHospitalSysDictDO.getDictValue())&&"itemPrice".equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                itemPrice = wlyyHospitalSysDictDO.getDictValue();
            }
            if (StringUtils.isNoneBlank(wlyyHospitalSysDictDO.getDictValue())&&"ncp_standing_type".equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                ncpStandingType = wlyyHospitalSysDictDO.getDictValue();
            }
        }
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("preNo",preNo);
@ -343,6 +379,10 @@ public class TasyNatService {
        jsonObject.put("staffNo",staffNo);
        jsonObject.put("registerFee",registerFee);
        jsonObject.put("clinicFee",clinicFee);
        jsonObject.put("ncp_profession_sub",jobChild);
        jsonObject.put("address_now",address);
        jsonObject.put("ncp_profession",job);
        jsonObject.put("ncp_standing_type",ncpStandingType);
        JSONObject item = new JSONObject();
        item.put("itemCode",itemCode);
        item.put("itemName",itemName);
@ -364,8 +404,8 @@ public class TasyNatService {
    //调用取消核酸接口
    public String cancelNat(String hisTraceNo,String idCardNo,String patientName){
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("hisTraceNo",hisTraceNo);
        jsonObject.put("idCardNo",idCardNo);
        jsonObject.put("hisTradeNo",hisTraceNo);
        jsonObject.put("icCardNo",idCardNo);
        jsonObject.put("patientName",patientName);
        String res="";
        try {
@ -530,4 +570,11 @@ public class TasyNatService {
        return "";
    }
    public static void main(String[] args) throws Exception{
        String xml="<StringResponse><StringValue><![CDATA[<?xml version=\"1.0\" encoding=\"utf-8\"?><root><ReturnCode>1</ReturnCode><hisTradeNo>599907010</hisTradeNo><ReturnMsg></ReturnMsg></root>]]></StringValue></StringResponse>";
        xml=xml.substring(xml.indexOf("<root>"),xml.lastIndexOf("]]"));
        System.out.println(xml);
    }
}

+ 74 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/patient/PatientNoLoginEndPoint.java

@ -2314,6 +2314,12 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
                        BaseNatAppointmentDO baseNatAppointmentDO = baseNatAppointmentDao.findOne(Integer.valueOf(businessOrderDO.getRelationCode()));
                        if (baseNatAppointmentDO!=null){
                            if (baseNatAppointmentDO.getPayStatus().equalsIgnoreCase("0")){
                                JSONObject chargeObj=new JSONObject();
                                chargeObj.put("hisTradeNo",baseNatAppointmentDO.getRealOrder());
                                chargeObj.put("icCardNo",baseNatAppointmentDO.getMedicare());
                                chargeObj.put("patientName",baseNatAppointmentDO.getName());
                                //调用扣费接口
                                tasyNatService.ChargenucleicBill(chargeObj);
                                tasyNatService.sendWxtemplateMessaeg(baseNatAppointmentDO.getConsumer(),"hszfcg",baseNatAppointmentDO.getName(),baseNatAppointmentDO.getId().toString());
                                baseNatAppointmentDO.setPayStatus("1");
                                baseNatAppointmentDao.save(baseNatAppointmentDO);
@ -2327,4 +2333,72 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        }
        return  "failed";
    }
    @GetMapping("/saveNatAppointment")
    @ApiOperation(value = "核酸检测预约接口")
    public Envelop saveNatAppointment(@ApiParam(name = "chargeAmount", value = "chargeAmount")
                                      @RequestParam(value = "chargeAmount",required = false)String chargeAmount,
                                      @ApiParam(name = "inspectionName", value = "inspectionName")
                                      @RequestParam(value = "inspectionName",required = false)String inspectionName,
                                      @ApiParam(name = "mediaCard", value = "mediaCard")
                                      @RequestParam(value = "mediaCard",required = false)String mediaCard,
                                      @ApiParam(name = "patientId", value = "patientId")
                                      @RequestParam(value = "patientId",required = false)String patientId,
                                      @ApiParam(name = "name", value = "name")
                                      @RequestParam(value = "name",required = false)String name,
                                      @ApiParam(name = "cardNo", value = "cardNo")
                                      @RequestParam(value = "cardNo",required = false)String cardNo,
                                      @ApiParam(name = "cardType", value = "cardType")
                                      @RequestParam(value = "cardType",required = false)String cardType,
                                      @ApiParam(name = "mobile", value = "mobile")
                                      @RequestParam(value = "mobile",required = false)String mobile,
                                      @ApiParam(name = "firstJobCode", value = "firstJobCode")
                                      @RequestParam(value = "firstJobCode",required = false)String firstJobCode,
                                      @ApiParam(name = "firstJobName", value = "firstJobName")
                                      @RequestParam(value = "firstJobName",required = false)String firstJobName,
                                      @ApiParam(name = "secondJobCode", value = "secondJobCode")
                                      @RequestParam(value = "secondJobCode",required = false)String secondJobCode,
                                      @ApiParam(name = "secondJobName", value = "secondJobName")
                                      @RequestParam(value = "secondJobName",required = false)String secondJobName,
                                      @ApiParam(name = "natTime", value = "natTime")
                                      @RequestParam(value = "natTime",required = false)String natTime,
                                      @ApiParam(name = "address", value = "address")
                                      @RequestParam(value = "address",required = false)String address,
                                      @ApiParam(name = "provinceName", value = "provinceName")
                                      @RequestParam(value = "provinceName",required = false)String provinceName,
                                      @ApiParam(name = "cityName", value = "cityName")
                                      @RequestParam(value = "cityName",required = false)String cityName,
                                      @ApiParam(name = "townName", value = "townName")
                                      @RequestParam(value = "townName",required = false)String townName,
                                      @ApiParam(name = "streetName", value = "streetName")
                                      @RequestParam(value = "streetName",required = false)String streetName,
                                      @ApiParam(name = "pm", value = "pm")
                                      @RequestParam(value = "pm",required = false)String pm,
                                      @ApiParam(name = "pushChannel", value = "pushChannel")
                                      @RequestParam(value = "pushChannel",required = false)String pushChannel,
                                      @ApiParam(name = "pushFlag", value = "pushFlag")
                                      @RequestParam(value = "pushFlag",required = false)String pushFlag,
                                      @ApiParam(name = "cardNoType", value = "cardNoType")
                                      @RequestParam(value = "cardNoType",required = false)String cardNoType,
                                      @ApiParam(name = "preNo", value = "preNo")
                                      @RequestParam(value = "preNo",required = false)String preNo){
        try {
            return success(prescriptionService.saveNatAppointment(chargeAmount,inspectionName,mediaCard,patientId,name,cardNo,cardType,mobile,firstJobCode,firstJobName,secondJobCode,secondJobName,natTime,address,provinceName,cityName,townName,streetName,pm,pushChannel,pushFlag,cardNoType,getUID(),preNo));
        } catch (Exception e) {
            return Envelop.getError(e.getMessage());
        }
    }
    @GetMapping("/BS10145")
    public Envelop BS10145(@ApiParam(name = "id", value = "id")
                           @RequestParam(value = "id",required = false)Integer id,
                           @ApiParam(name = "patientId", value = "patientId")
                           @RequestParam(value = "patientId",required = false)String patientId) throws Exception {
        try {
            return success(prescriptionService.cancelNatAppointment(id,patientId));
        } catch (Exception e) {
            return Envelop.getError(e.getMessage());
        }
    }
}