Browse Source

Merge branch 'kaifa' of luofenqiang/wlyy2.0 into dev

wangzhinan 3 years ago
parent
commit
b716b783e2

+ 154 - 4
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/EntranceService.java

@ -13,13 +13,16 @@ import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.patient.PatientMedicareCardDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.hospital.dict.WlyyChargeDictDO;
import com.yihu.jw.entity.hospital.doctor.BaseDoctorZsInfoDO;
import com.yihu.jw.entity.hospital.httplog.WlyyHttpLogDO;
import com.yihu.jw.entity.hospital.mapping.DoctorMappingDO;
import com.yihu.jw.entity.hospital.mapping.PatientMappingDO;
import com.yihu.jw.entity.hospital.prescription.WlyyOutpatientDO;
import com.yihu.jw.entity.hospital.prescription.WlyyPrescriptionDO;
import com.yihu.jw.entity.order.BusinessOrderDO;
import com.yihu.jw.hospital.dict.WlyyChargeDictDao;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.httplog.dao.WlyyHttpLogDao;
@ -32,12 +35,17 @@ import com.yihu.jw.hospital.prescription.dao.PrescriptionEmrDao;
import com.yihu.jw.hospital.prescription.service.entrance.util.ConvertUtil;
import com.yihu.jw.hospital.prescription.service.entrance.util.MqSdkUtil;
import com.yihu.jw.hospital.prescription.service.entrance.util.WebserviceUtil;
import com.yihu.jw.order.dao.BusinessOrderDao;
import com.yihu.jw.order.pay.ylz.YlzPayService;
import com.yihu.jw.patient.dao.BasePatientMedicareCardDao;
import com.yihu.jw.restmodel.hospital.archive.ArchiveVO;
import com.yihu.jw.restmodel.hospital.prescription.*;
import com.yihu.jw.util.common.PwdUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.jw.util.idcard.IdCardUtil;
import com.ylzinfo.onepay.sdk.domain.ResponseParams;
import com.ylzinfo.onepay.sdk.domain.ext.RefundResult;
import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.xml.XMLSerializer;
@ -99,7 +107,7 @@ public class EntranceService {
    private static String BS16018 = "BS16018";
    //his退费接口
    private static String BS15021 = "BS15021";
    private static String BS15051 = "BS15051";
    private String orgCode = "350211A1002";
    private String orgName = "350211A1002";
@ -144,6 +152,10 @@ public class EntranceService {
    private WlyyHttpLogDao wlyyHttpLogDao;
    @Autowired
    private BaseDoctorRoleDao baseDoctorRoleDao;
    @Autowired
    private BusinessOrderDao businessOrderDao;
    @Autowired
    private BasePatientMedicareCardDao basePatientMedicareCardDao;
    private static String entranceUrl="http://172.16.100.240:10023/mqsdk/";
//    private static String entranceUrl="http://localhost:10023/mqsdk/";
@ -1417,11 +1429,11 @@ public class EntranceService {
     * @return
     * @throws Exception
     */
    public JSONArray BS15021(String userId, String userName, String cardType, String cardNo, String accountType,String idNo,
    public JSONArray BS15051(String userId, String userName, String cardType, String cardNo, String accountType,String idNo,
                             String withdrawMode,String depositType,String ServiceType,String amount,String outRefundNo,
                             String outChargeNo,String origTraceNo,String traceSerial,String paydate,String notes,String tradeState,
                             String failReason,String failTime,String extra, boolean demoFlag) throws Exception {
        String fid = BS15021;
        String fid = BS15051;
        String resp = "";
        if (demoFlag) {
            resp = getJosnFileResullt(fid);
@ -1499,7 +1511,7 @@ public class EntranceService {
            WlyyHttpLogDO wlyyHttpLogDO = new WlyyHttpLogDO();
            wlyyHttpLogDO.setRequest(sbs.toString());
            wlyyHttpLogDO.setResponse(resp);
            wlyyHttpLogDO.setCode(BS15021);
            wlyyHttpLogDO.setCode(BS15051);
            wlyyHttpLogDO.setName("预交金退款");
            wlyyHttpLogDO.setCreateTime(new Date());
            wlyyHttpLogDao.save(wlyyHttpLogDO);
@ -1507,6 +1519,144 @@ public class EntranceService {
        return ConvertUtil.convertListEnvelopInBodyRow(resp);
    }
    /**
     * 门诊预缴金退费接口
     *
     * @param outPatientId 门诊表id
     * @return
     * @throws Exception
     */
    public String hisRefund(String outPatientId) throws Exception {
        WlyyOutpatientDO outpatientDO = outpatientDao.findById(outPatientId);
        if (outpatientDO == null){
            return "门诊信息表为空";
        }
        BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(outPatientId);
        if (businessOrderDO == null){
            return "订单表为空";
        }
        PatientMedicareCardDO patientMedicareCardDO = basePatientMedicareCardDao.findByCode(outpatientDO.getCardNo());
        if (patientMedicareCardDO == null){
            return "患者卡包为空";
        }
        String userId = outpatientDO.getPatient();
        String userName = outpatientDO.getPatientName();
        String idNo = outpatientDO.getIdcard();
        String cardType = "03";
        if ("A_01".equals(patientMedicareCardDO.getType())){
            cardType = "01";
        }
        String cardNo =outpatientDO.getCardNo();
        String accountType = "01";
        String withdrawMode = "";
        String depositType = "";
        if (businessOrderDO.getPayType()==3){
            depositType = "WX_PUB";
        }
        String ServiceType = "04";
        String outChargeNo = "";
        String traceSerial = "";
        String tradeState="";
        String paydate ="";
        String notes = "";
        String failReason = "";
        String failTime = "";
        String extra = "";
        boolean demoFlag = false;
        String amount = businessOrderDO.getPayPrice().toString();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
        String uuid = sdf.format(new Date()) + UUID.randomUUID().toString().replaceAll("-", "").substring(0, 4);
        String outRefundNo = uuid;
        String origTraceNo = businessOrderDO.getTraceNo();
        //调用his退费接口
        JSONArray jsonArray = BS15051(userId, userName, cardType, cardNo, accountType, idNo, withdrawMode, depositType, ServiceType, amount, outRefundNo, outChargeNo, origTraceNo, traceSerial, paydate, notes, tradeState, failReason, failTime, extra, demoFlag);
        YlzPayService ylzPayService = new YlzPayService();
        //调用易联众预缴金退款接口
        String refund = ylzPayService.refund(userId, userName, cardType, accountType, cardNo, idNo, amount, outChargeNo, userName, withdrawMode, traceSerial, outRefundNo,cardNo);
        JSONObject jsonObject = JSONObject.parseObject(refund);
        //获取调用易联众退费接口交易状态
        String respCode = jsonObject.getString("respCode");
        if (respCode.equals("000000")){
            tradeState = "succ";
        }else {
            tradeState = "fail";
        }
        JSONArray resp = BS15051(userId, userName, cardType, cardNo, accountType, idNo, withdrawMode, depositType, ServiceType, amount, outRefundNo, outChargeNo, origTraceNo, traceSerial, paydate, notes, tradeState, failReason, failTime, extra, demoFlag);
        String result = resp.toString();
        return result;
    }
    /**
     * 门诊预缴金退费接口(系统自动退费)
     *
     * @param outPatientId 门诊表id
     * @return
     * @throws Exception
     */
    public String autoRefund(String outPatientId) throws Exception {
        WlyyOutpatientDO outpatientDO = outpatientDao.findById(outPatientId);
        if (outpatientDO == null){
            return "门诊信息表为空";
        }
        BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(outPatientId);
        if (businessOrderDO == null){
            return "订单表为空";
        }
        PatientMedicareCardDO patientMedicareCardDO = basePatientMedicareCardDao.findByCode(outpatientDO.getCardNo());
        if (patientMedicareCardDO == null){
            return "患者卡包为空";
        }
        String operatorId = "9690";
        String operatorName = "9690";
        String userName = outpatientDO.getPatientName();
        String idNo = outpatientDO.getIdcard();
        String cardType = "03";
        if ("A_01".equals(patientMedicareCardDO.getType())){
            cardType = "01";
        }
        String cardNo = patientMedicareCardDO.getMedicareNumber();
        String accountType = "01";
        String withdrawMode = "1";
        String depositType = "";
        if (businessOrderDO.getPayType()==3){
            depositType = "WX_PUB";
        }
        String ServiceType = "04";
        String outChargeNo = "";
        String traceSerial = "";
        String tradeState="";
        String paydate ="";
        String notes = "";
        String failReason = "";
        String failTime = "";
        String extra = "";
        boolean demoFlag = false;
        String amount = businessOrderDO.getPayPrice().toString();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
        String uuid = sdf.format(new Date()) + UUID.randomUUID().toString().replaceAll("-", "").substring(0, 4);
        String outRefundNo = uuid;
        String origTraceNo = businessOrderDO.getTraceNo();
        //调用his退费接口
        JSONArray jsonArray = BS15051(operatorId, operatorName, cardType, cardNo, accountType, idNo, withdrawMode, depositType, ServiceType, amount, outRefundNo, outChargeNo, origTraceNo, traceSerial, paydate, notes, tradeState, failReason, failTime, extra, demoFlag);
        YlzPayService ylzPayService = new YlzPayService();
        //调用易联众预缴金退款接口
        String refund = ylzPayService.refund(operatorId, operatorName, cardType, accountType, cardNo, idNo, amount, outChargeNo, userName, withdrawMode, traceSerial, outRefundNo,cardNo);
        JSONObject jsonObject = JSONObject.parseObject(refund);
        //获取调用易联众退费接口交易状态
        String respCode = jsonObject.getString("respCode");
        if (respCode.equals("000000")){
            tradeState = "succ";
        }else {
            tradeState = "fail";
        }
        JSONArray resp = BS15051(operatorId, operatorName, cardType, cardNo, accountType, idNo, withdrawMode, depositType, ServiceType, amount, outRefundNo, outChargeNo, origTraceNo, traceSerial, paydate, notes, tradeState, failReason, failTime, extra, demoFlag);
        String result = resp.toString();
        return result;
    }
    /**
     * 检查检验
     *

+ 1 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/PrescriptionEndpoint.java

@ -1183,6 +1183,7 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
                if ("xm_zsyy_wx".equalsIgnoreCase(wxId)) {
                    String msgUrl = "https://hlwyy.xmzsh.com/ims-wx/index.html#/returnVisit/record?outpatientId=" + outPatientId;
                    prescriptionService.sendZsMsgFlow("OL_WZ_CANCEL", outPatientId, "", msgUrl, "取消问诊(用户)");
                    String refund = entranceService.hisRefund(outPatientId);
                }
            } catch (Exception e) {