Browse Source

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

吴世龙 2 years ago
parent
commit
888b2a19ff
15 changed files with 384 additions and 61 deletions
  1. 1 1
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionExpressageService.java
  2. 15 2
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java
  3. 9 4
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/EntranceService.java
  4. 31 5
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/HcyyEntranceService.java
  5. 22 7
      business/base-service/src/main/java/com/yihu/jw/order/BusinessOrderService.java
  6. 1 0
      business/base-service/src/main/java/com/yihu/jw/order/pay/ylz/YlzPayService.java
  7. 3 3
      common/common-entity/src/main/java/com/yihu/jw/entity/IntegerIdentityEntity.java
  8. 51 4
      server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java
  9. 27 23
      server/svr-authentication/src/main/java/com/yihu/jw/security/service/HcyyService.java
  10. 175 0
      server/svr-authentication/src/main/java/com/yihu/jw/security/utils/AesUtilsByDigitalCloudSign.java
  11. 1 3
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/util/MQTTClientUtil.java
  12. 32 4
      svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/channel/PrescriptionStatusUpdateService.java
  13. 11 0
      svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/channel/TimeoutOverDueService.java
  14. 1 1
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/patient/PatientNoLoginEndPoint.java
  15. 4 4
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/PrescriptionEndpoint.java

+ 1 - 1
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionExpressageService.java

@ -651,7 +651,7 @@ public class PrescriptionExpressageService extends BaseJpaService<WlyyPrescripti
    public void pushRouteLogToPatient(List<WlyyPrescriptionExpressageLogDO> routinfolist){
    public void pushRouteLogToPatient(List<WlyyPrescriptionExpressageLogDO> routinfolist){
        boolean isSend = true;//防止80和8000同时存在多向患者端多发一条消息
        boolean isSend = true;//防止80和8000同时存在多向患者端多发一条消息
        for (WlyyPrescriptionExpressageLogDO wlyyPrescriptionExpressageLogDO:routinfolist){
        for (WlyyPrescriptionExpressageLogDO wlyyPrescriptionExpressageLogDO:routinfolist){
            if ("50".equalsIgnoreCase(wlyyPrescriptionExpressageLogDO.getOpCode())||
            if ("43".equalsIgnoreCase(wlyyPrescriptionExpressageLogDO.getOpCode())||"50".equalsIgnoreCase(wlyyPrescriptionExpressageLogDO.getOpCode())||"54".equalsIgnoreCase(wlyyPrescriptionExpressageLogDO.getOpCode())||
                    "204".equalsIgnoreCase(wlyyPrescriptionExpressageLogDO.getOpCode())||
                    "204".equalsIgnoreCase(wlyyPrescriptionExpressageLogDO.getOpCode())||
            "80".equalsIgnoreCase(wlyyPrescriptionExpressageLogDO.getOpCode())||"8000".equalsIgnoreCase(wlyyPrescriptionExpressageLogDO.getOpCode())){
            "80".equalsIgnoreCase(wlyyPrescriptionExpressageLogDO.getOpCode())||"8000".equalsIgnoreCase(wlyyPrescriptionExpressageLogDO.getOpCode())){
                if ("80".equalsIgnoreCase(wlyyPrescriptionExpressageLogDO.getOpCode())||"8000".equalsIgnoreCase(wlyyPrescriptionExpressageLogDO.getOpCode())){
                if ("80".equalsIgnoreCase(wlyyPrescriptionExpressageLogDO.getOpCode())||"8000".equalsIgnoreCase(wlyyPrescriptionExpressageLogDO.getOpCode())){

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

@ -3870,6 +3870,8 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                        status = "退款申请";
                        status = "退款申请";
                    }else if (statuss.equals("9")) {
                    }else if (statuss.equals("9")) {
                        status = "退款完成";
                        status = "退款完成";
                    }else if (statuss.equals("10")) {
                        status = "退款失败";
                    }
                    }
                }
                }
@ -4947,6 +4949,16 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                    }
                    }
                }
                }
            } else if (wxId.equalsIgnoreCase("xm_zsyy_wx")) {
            } else if (wxId.equalsIgnoreCase("xm_zsyy_wx")) {
                WlyyHospitalSysDictDO hospitalSysDictDO =  hospitalSysDictDao.findById("isCloseRefund");
                if (hospitalSysDictDO!=null&&hospitalSysDictDO.getDictValue().equalsIgnoreCase("1")){
                    try {
                        entranceService.hisRefund(outPatientId);
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                }
/*
/*
                businessOrderService.ylzOrderRefund(wxId, wlyyOutpatientDO.getPatient(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description);
                businessOrderService.ylzOrderRefund(wxId, wlyyOutpatientDO.getPatient(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description);
*/
*/
@ -5557,6 +5569,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            case "50":
            case "50":
                remindMsg = "已发出";
                remindMsg = "已发出";
                break;
                break;
            case "54":
                remindMsg = "已发出";
                break;
            case "204":
            case "204":
                remindMsg = "已在派件";
                remindMsg = "已在派件";
                break;
                break;
@ -5670,8 +5685,6 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            wxPushLogDao.save(wxPushLogDO);
            wxPushLogDao.save(wxPushLogDO);
        }
        }
    }
    }
    //核算检测预约模板消息
    //核算检测预约模板消息
    public void sendNatWxTemplat(String name,String idcard,String mobile,String time,String orderNo,String relationName){
    public void sendNatWxTemplat(String name,String idcard,String mobile,String time,String orderNo,String relationName){

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

@ -1567,7 +1567,7 @@ public class EntranceService {
     * @throws Exception
     * @throws Exception
     */
     */
    public JSONArray hisRefund(String outPatientId,boolean sys) throws Exception {
    public JSONArray hisRefund(String outPatientId) throws Exception {
        WlyyOutpatientDO outpatientDO = outpatientDao.findById(outPatientId);
        WlyyOutpatientDO outpatientDO = outpatientDao.findById(outPatientId);
        if (outpatientDO == null){
        if (outpatientDO == null){
            throw new Exception("门诊信息表为空");
            throw new Exception("门诊信息表为空");
@ -1621,7 +1621,7 @@ public class EntranceService {
        logger.info("第一次调用his退费接口结束");
        logger.info("第一次调用his退费接口结束");
        //调用易联众预缴金退款接口
        //调用易联众预缴金退款接口
        String refund = ylzPayService.refund(userId, userName, cardType, accountType, cardNo, idNo, amount, outChargeNo, userName, "0", traceSerial, outRefundNo,cardNo);
        String refund = ylzPayService.refund(operatorId, operatorName, cardType, accountType, cardNo, idNo, amount, outChargeNo, userName, "1", traceSerial, outRefundNo,cardNo);
        BusinessOrderRefundDO businessOrderRefundDO = new BusinessOrderRefundDO();
        BusinessOrderRefundDO businessOrderRefundDO = new BusinessOrderRefundDO();
        businessOrderRefundDO.setOrderNo(businessOrderDO.getOrderNo());
        businessOrderRefundDO.setOrderNo(businessOrderDO.getOrderNo());
        businessOrderRefundDO.setOutRefundNo(outRefundNo);
        businessOrderRefundDO.setOutRefundNo(outRefundNo);
@ -1630,11 +1630,16 @@ public class EntranceService {
        businessOrderRefundDO.setUpdateTime(new Date());
        businessOrderRefundDO.setUpdateTime(new Date());
        businessOrderRefundDO.setPatient(businessOrderDO.getPatient());
        businessOrderRefundDO.setPatient(businessOrderDO.getPatient());
        businessOrderRefundDO.setPatientName(businessOrderDO.getPatientName());
        businessOrderRefundDO.setPatientName(businessOrderDO.getPatientName());
        orderRefundDao.save(businessOrderRefundDO);
        businessOrderRefundDO = orderRefundDao.save(businessOrderRefundDO);
        JSONObject jsonObject = JSONObject.parseObject(refund);
        JSONObject jsonObject = JSONObject.parseObject(refund);
        //获取调用易联众退费接口交易状态
        //获取调用易联众退费接口交易状态
        String respCode = jsonObject.getString("respCode");
        String respCode = jsonObject.getString("respCode");
        if (respCode.equals("000000")){
        if (respCode.equals("000000")){
            businessOrderRefundDO.setRefundTime(new Date());
            businessOrderRefundDO.setStatus(2);
            orderRefundDao.save(businessOrderRefundDO);
            businessOrderDO.setStatus(9);
            businessOrderDao.save(businessOrderDO);
            tradeState = "succ";
            tradeState = "succ";
        }else {
        }else {
            tradeState = "fail";
            tradeState = "fail";
@ -1679,7 +1684,7 @@ public class EntranceService {
        String outChargeNo = businessOrderDO.getOrderNo();
        String outChargeNo = businessOrderDO.getOrderNo();
        String outRefundNo = "HLWYY"+System.currentTimeMillis()+(int)(Math.random()*900)+100;
        String outRefundNo = "HLWYY"+System.currentTimeMillis()+(int)(Math.random()*900)+100;
        String traceSerial = businessOrderDO.getTraceNo();
        String traceSerial = businessOrderDO.getTraceNo();
        String refund = ylzPayService.refund(userId, userName, cardType, accountType, cardNo, idNo, businessOrderDO.getPayPrice()+"", outChargeNo, userName, "0", traceSerial, outRefundNo,cardNo);
        String refund = ylzPayService.refund(userId, userName, cardType, accountType, cardNo, idNo, businessOrderDO.getPayPrice()+"", outChargeNo, userName, "1", traceSerial, outRefundNo,cardNo);
        return refund;
        return refund;
    }
    }

+ 31 - 5
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/HcyyEntranceService.java

@ -16,6 +16,7 @@ import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.wx.BasePatientWechatDo;
import com.yihu.jw.entity.base.wx.BasePatientWechatDo;
import com.yihu.jw.entity.ca.OauthCaConfigDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.hospital.dict.WlyyChargeDictDO;
import com.yihu.jw.entity.hospital.dict.WlyyChargeDictDO;
import com.yihu.jw.entity.hospital.httplog.WlyyHttpLogDO;
import com.yihu.jw.entity.hospital.httplog.WlyyHttpLogDO;
@ -2955,6 +2956,33 @@ public class HcyyEntranceService {
    }
    }
    /**
     * 获取医生签名图片
     * @param doctor
     * @return
     */
    public JSONObject getSignPicture(String doctor){
        try {
            BaseDoctorDO doctorDO = baseDoctorDao.findById(doctor);
            if (doctorDO==null){
                throw new Exception("医生信息不存在!");
            }
            String response = XMCA_downloadDoctorHandwrSignPicts(doctorDO.getIdcard());
            JSONObject object = new JSONObject();
            if (StringUtils.isNoneBlank(response)){
                object.put("code","1000");
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("image",response);
                object.put("data",jsonObject);
            }
            logger.info("医生签名图片 getSignPicture :"+response);
            return object;
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }
    /**
    /**
     * 获取医生手写签名图片的base64编码
     * 获取医生手写签名图片的base64编码
     *
     *
@ -2983,15 +3011,13 @@ public class HcyyEntranceService {
        wlyyHttpLogDO.setRequest(params.toString());
        wlyyHttpLogDO.setRequest(params.toString());
        logger.info("获取医生手写签名图片的base64编码 params:"+params.toString());
        logger.info("获取医生手写签名图片的base64编码 params:"+params.toString());
        String xml = getHcyyCAWebServiceInfo("CallInterface",params,getCaServiceUrl());
        String xml = getHcyyCAWebServiceInfo("CallInterface",params,getCaServiceUrl());
        XMLSerializer xmlSerializer = new XMLSerializer();
        String jsonObject = xmlSerializer.read(xml).toString();
        wlyyHttpLogDO.setResponse(jsonObject);
        wlyyHttpLogDO.setResponse(xml);
        wlyyHttpLogDO.setCreateTime(new Date());
        wlyyHttpLogDO.setCreateTime(new Date());
        wlyyHttpLogDO.setCode(api);
        wlyyHttpLogDO.setCode(api);
        wlyyHttpLogDO.setName("获取医生手写签名图片的base64编码");
        wlyyHttpLogDO.setName("获取医生手写签名图片的base64编码");
        wlyyHttpLogDao.save(wlyyHttpLogDO);
        wlyyHttpLogDao.save(wlyyHttpLogDO);
        logger.info("获取医生手写签名图片的base64编码 json:"+jsonObject);
        return jsonObject;
        logger.info("获取医生手写签名图片的base64编码 json:"+xml);
        return xml;
    }
    }

+ 22 - 7
business/base-service/src/main/java/com/yihu/jw/order/BusinessOrderService.java

@ -782,10 +782,24 @@ public class BusinessOrderService extends BaseJpaService<BusinessOrderDO,Busines
        Map<String,Object> map = refund(wechatId,orderRefundDO.getOrderNo(),orderRefundDO.getOutRefundNo(),orderPrice.toString(),refundPrice1.toString(),orderRefundDO.getRefundDesc());
        Map<String,Object> map = refund(wechatId,orderRefundDO.getOrderNo(),orderRefundDO.getOutRefundNo(),orderPrice.toString(),refundPrice1.toString(),orderRefundDO.getRefundDesc());
        logger.info("map"+map);
        logger.info("map"+map);
        if (map.get("return_code").toString().equalsIgnoreCase("SUCCESS")){
        if (map.get("return_code").toString().equalsIgnoreCase("SUCCESS")){
            orderRefundDO.setStatus(2);
            if (map.get("result_code").toString().equalsIgnoreCase("FAIL")){
                orderRefundDO.setStatus(10);
                orderRefundDO.setRefundTime(new Date());
                orderRefundDO.setRefundDesc(map.get("err_code_des").toString());
                orderRefundDao.save(orderRefundDO);
                updatePayStatusByRefund(orderNo,10);
            }else {
                orderRefundDO.setStatus(2);
                orderRefundDO.setRefundTime(new Date());
                orderRefundDao.save(orderRefundDO);
                updatePayStatusByRefund(orderNo,9);
            }
        }else if (map.get("return_code").toString().equalsIgnoreCase("CLOSED")||map.get("return_code").toString().equalsIgnoreCase("ABNORMAL")||map.get("return_code").toString().equalsIgnoreCase("PROCESSING")){
            orderRefundDO.setStatus(10);
            orderRefundDO.setRefundTime(new Date());
            orderRefundDO.setRefundTime(new Date());
            orderRefundDao.save(orderRefundDO);
            orderRefundDao.save(orderRefundDO);
            updatePayStatusByRefund(orderNo);
            updatePayStatusByRefund(orderNo,10);
        }
        }
        if (businessOrderDO!=null){
        if (businessOrderDO!=null){
            ykyyService.updateYktOrderStatus(businessOrderDO.getOrderNo(),"2");
            ykyyService.updateYktOrderStatus(businessOrderDO.getOrderNo(),"2");
@ -1075,6 +1089,7 @@ public class BusinessOrderService extends BaseJpaService<BusinessOrderDO,Busines
            }
            }
            businessOrderDO.setStatus(1);
            businessOrderDO.setStatus(1);
            businessOrderDO.setUpdateTime(new Date());
            businessOrderDao.save(businessOrderDO);
            businessOrderDao.save(businessOrderDO);
            //操作微信日志表记录
            //操作微信日志表记录
@ -1386,7 +1401,7 @@ public class BusinessOrderService extends BaseJpaService<BusinessOrderDO,Busines
            orderRefundDO.setStatus(2);
            orderRefundDO.setStatus(2);
            orderRefundDO.setRefundTime(new Date());
            orderRefundDO.setRefundTime(new Date());
            orderRefundDao.save(orderRefundDO);
            orderRefundDao.save(orderRefundDO);
            updatePayStatusByRefund(orderNo);
            updatePayStatusByRefund(orderNo,9);
        }
        }
        return object;
        return object;
@ -1415,7 +1430,7 @@ public class BusinessOrderService extends BaseJpaService<BusinessOrderDO,Busines
     * @param orderNo
     * @param orderNo
     * @return
     * @return
     */
     */
    public BusinessOrderDO updatePayStatusByRefund(String orderNo) throws Exception {
    public BusinessOrderDO updatePayStatusByRefund(String orderNo,Integer status) throws Exception {
        logger.info("入参:"+orderNo);
        logger.info("入参:"+orderNo);
        BusinessOrderDO businessOrderDO = businessOrderDao.selectByOrderNo(orderNo);
        BusinessOrderDO businessOrderDO = businessOrderDao.selectByOrderNo(orderNo);
        if (businessOrderDO==null){
        if (businessOrderDO==null){
@ -1443,7 +1458,7 @@ public class BusinessOrderService extends BaseJpaService<BusinessOrderDO,Busines
            outpatientDao.save(wlyyOutpatientDO);
            outpatientDao.save(wlyyOutpatientDO);
        }
        }
        businessOrderDO.setUpdateTime(new Date());
        businessOrderDO.setUpdateTime(new Date());
        businessOrderDO.setStatus(9);
        businessOrderDO.setStatus(status);
        businessOrderDao.save(businessOrderDO);
        businessOrderDao.save(businessOrderDO);
        return businessOrderDO;
        return businessOrderDO;
@ -1872,8 +1887,8 @@ public class BusinessOrderService extends BaseJpaService<BusinessOrderDO,Busines
            String operatorId =null;
            String operatorId =null;
            String operatorName = null;
            String operatorName = null;
            if (wechatId.equalsIgnoreCase("xm_zsyy_wx")){
            if (wechatId.equalsIgnoreCase("xm_zsyy_wx")){
                operatorId = "123456";
                operatorName =businessOrderDO.getPatientName();
                operatorId = "9690";
                operatorName ="互联网医院";
            }else if(wechatId.equalsIgnoreCase("xm_xzzx_wx")){
            }else if(wechatId.equalsIgnoreCase("xm_xzzx_wx")){
                operatorId = "hlwyy";
                operatorId = "hlwyy";
                operatorName = "互联网医院";
                operatorName = "互联网医院";

+ 1 - 0
business/base-service/src/main/java/com/yihu/jw/order/pay/ylz/YlzPayService.java

@ -513,6 +513,7 @@ public class YlzPayService {
            param.setOutChargeNo(outChargeNo);
            param.setOutChargeNo(outChargeNo);
            param.setTraceNo(traceNo);
            param.setTraceNo(traceNo);
            param.setOutRefundNo(outRefundNo);
            param.setOutRefundNo(outRefundNo);
            param.setRefundType("hisDecide");
            param.setHisCustId(hisCustId);
            param.setHisCustId(hisCustId);
            param.setIdNo(idNo);
            param.setIdNo(idNo);
            param.setUserName(userName);
            param.setUserName(userName);

+ 3 - 3
common/common-entity/src/main/java/com/yihu/jw/entity/IntegerIdentityEntity.java

@ -19,13 +19,13 @@ public abstract class IntegerIdentityEntity implements Serializable {
    @Id
    @Id
//==========mysql 环境 id策略======================================================
//==========mysql 环境 id策略======================================================
    @GeneratedValue(generator = "generator")
/*    @GeneratedValue(generator = "generator")
    @GenericGenerator(name = "generator", strategy = "identity")
    @GenericGenerator(name = "generator", strategy = "identity")
    @Column(name = "id", unique = true, nullable = false)
    @Column(name = "id", unique = true, nullable = false)*/
//==========mysql 环境 id策略 end======================================================
//==========mysql 环境 id策略 end======================================================
//==========Oracle 环境id策略 =========================================================
//==========Oracle 环境id策略 =========================================================
/*   @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="id_generated")*/
   @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="id_generated")
//==========Oracle 环境id策略 =========================================================
//==========Oracle 环境id策略 =========================================================
    public Integer getId() {
    public Integer getId() {
        return id;
        return id;

+ 51 - 4
server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java

@ -79,7 +79,9 @@ import javax.servlet.http.HttpSession;
import java.awt.image.BufferedImage;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.IOException;
import java.net.InetAddress;
import java.net.URLDecoder;
import java.net.URLDecoder;
import java.net.UnknownHostException;
import java.security.KeyPair;
import java.security.KeyPair;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.security.interfaces.RSAPublicKey;
@ -1444,7 +1446,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
//    }
//    }
    @RequestMapping(value = "/oauth/getCaQRCode", method = RequestMethod.GET)
    @RequestMapping(value = "/oauth/getCaQRCode", method = RequestMethod.GET)
    public ObjEnvelop getCaQRCode(){
    public ObjEnvelop getCaQRCode(HttpServletRequest request){
        logger.info("/oauth/getCaQRCode");
        logger.info("/oauth/getCaQRCode");
        if (wechatId.equalsIgnoreCase("xm_zsyy_wx")){
        if (wechatId.equalsIgnoreCase("xm_zsyy_wx")){
            String sys ="JKZLHLWYLJKGLPT";
            String sys ="JKZLHLWYLJKGLPT";
@ -1454,7 +1456,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        }else if (wechatId.equalsIgnoreCase("xm_ykyy_wx")){
        }else if (wechatId.equalsIgnoreCase("xm_ykyy_wx")){
            return ObjEnvelop.getSuccess("success", ykyyService.getQRCode());
            return ObjEnvelop.getSuccess("success", ykyyService.getQRCode());
        }else if (wechatId.equalsIgnoreCase("xm_hcyy_wx")){
        }else if (wechatId.equalsIgnoreCase("xm_hcyy_wx")){
            return ObjEnvelop.getSuccess("success", hcyyService.getQRCode());
            return ObjEnvelop.getSuccess("success", hcyyService.getQRCode(getIpAddress(request)));
        }else {
        }else {
            return ObjEnvelop.getSuccess("success", null);
            return ObjEnvelop.getSuccess("success", null);
        }
        }
@ -1469,7 +1471,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
     * @return
     * @return
     */
     */
    @RequestMapping(value = "/oauth/checkCaQRCodeLogin", method = RequestMethod.POST)
    @RequestMapping(value = "/oauth/checkCaQRCodeLogin", method = RequestMethod.POST)
    public ObjEnvelop checkCaQRCodeLogin(String qrcode,String client_id,String login_type){
    public ObjEnvelop checkCaQRCodeLogin(String qrcode,String client_id,String login_type,HttpServletRequest request){
        if (StringUtils.isEmpty(client_id)) {
        if (StringUtils.isEmpty(client_id)) {
            throw new InvalidRequestException("client_id is null");
            throw new InvalidRequestException("client_id is null");
@ -1513,13 +1515,20 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
            jsonObject.put("qrCodeStatus",jsonObject.getString("qrCodeStatus"));
            jsonObject.put("qrCodeStatus",jsonObject.getString("qrCodeStatus"));
            rs.put("code",1000);
            rs.put("code",1000);
        }else if (wechatId.equalsIgnoreCase("xm_hcyy_wx")){
        }else if (wechatId.equalsIgnoreCase("xm_hcyy_wx")){
            rs = hcyyService.getTokeninfo(qrcode);
            String ip = getIpAddress(request);
            rs = hcyyService.getTokeninfo(qrcode,ip);
            if (rs.getString("data")==null||rs.getString("data")==""){
                return ObjEnvelop.getSuccess("error",rs);
            }
            JSONObject jsonObject = rs.getJSONObject("data");
            JSONObject jsonObject = rs.getJSONObject("data");
            logger.info("查询登录信息"+rs);
            logger.info("查询登录信息"+rs);
            String qrCodeStatus = rs.getString("code");
            String qrCodeStatus = rs.getString("code");
            if(!"10000".equalsIgnoreCase(qrCodeStatus)){
            if(!"10000".equalsIgnoreCase(qrCodeStatus)){
                return ObjEnvelop.getSuccess("error",rs);
                return ObjEnvelop.getSuccess("error",rs);
            }
            }
            if (jsonObject==null){
                return ObjEnvelop.getSuccess("error",rs);
            }
            username = jsonObject.getString("idcard");
            username = jsonObject.getString("idcard");
            jsonObject.put("qrCodeStatus","LoginQrCodeBeenScan");
            jsonObject.put("qrCodeStatus","LoginQrCodeBeenScan");
            rs.put("code",1000);
            rs.put("code",1000);
@ -1568,6 +1577,44 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        return ObjEnvelop.getSuccess("success",rs);
        return ObjEnvelop.getSuccess("success",rs);
    }
    }
    /**
     * 获取用户真实IP地址,不使用request.getRemoteAddr();的原因是有可能用户使用了代理软件方式避免真实IP地址。
     * 可是,如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP值,究竟哪个才是真正的用户端的真实IP呢?
     * 答案是取X-Forwarded-For中第一个非unknown的有效IP字符串
     * @param request
     * @return
     */
    private String getIpAddress(HttpServletRequest request) {
        String ip = request.getHeader("x-forwarded-for");
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("WL-Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("HTTP_CLIENT_IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
            logger.info("ip="+ip);
            if("127.0.0.1".equals(ip)||"0:0:0:0:0:0:0:1".equals(ip)){
                //根据网卡取本机配置的IP
                InetAddress inet=null;
                try {
                    inet = InetAddress.getLocalHost();
                } catch (UnknownHostException e) {
                    e.printStackTrace();
                }
                ip= inet.getHostAddress();
            }
        }
        return ip;
    }
    @RequestMapping(value = "/oauth/getOauthQRCodeImg", method = RequestMethod.GET)
    @RequestMapping(value = "/oauth/getOauthQRCodeImg", method = RequestMethod.GET)
    public ObjEnvelop getOauthQRCodeImg(){
    public ObjEnvelop getOauthQRCodeImg(){
        try{
        try{

+ 27 - 23
server/svr-authentication/src/main/java/com/yihu/jw/security/service/HcyyService.java

@ -11,6 +11,7 @@ import com.yihu.jw.entity.util.RSA;
import com.yihu.jw.security.dao.OauthRsaKeyDao;
import com.yihu.jw.security.dao.OauthRsaKeyDao;
import com.yihu.jw.security.dao.WlyyHttpLogDao;
import com.yihu.jw.security.dao.WlyyHttpLogDao;
import com.yihu.jw.security.dao.patient.WlyyHospitalSysDictDao;
import com.yihu.jw.security.dao.patient.WlyyHospitalSysDictDao;
import com.yihu.jw.security.utils.AesUtilsByDigitalCloudSign;
import com.yihu.jw.security.utils.DateUtil;
import com.yihu.jw.security.utils.DateUtil;
import com.yihu.jw.security.utils.RSAEncrypt;
import com.yihu.jw.security.utils.RSAEncrypt;
import com.yihu.jw.security.utils.WebserviceUtil;
import com.yihu.jw.security.utils.WebserviceUtil;
@ -25,6 +26,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.Date;
import java.util.List;
import java.util.List;
import java.util.Map;
import java.util.Map;
@ -121,7 +123,7 @@ public class HcyyService {
                "   <callOperator></callOperator> " +
                "   <callOperator></callOperator> " +
                "   <certificate>"+caKey+"</certificate> " +
                "   <certificate>"+caKey+"</certificate> " +
                "</root>";
                "</root>";
        String condition ="{\"apiName\":\""+apiCode+"\",\"version\":\"v1\",\"jsonData\":\""+ StringEscapeUtils.escapeJson(jsonData)+"\"}";
        String condition ="{\"apiName\":\""+apiCode+"\",\"version\":\"v1\",\"jsonData\":\""+  jsonData+"\"}";
        String msgBody ="<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
        String msgBody ="<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                "<root>"+condition+"</root>";
                "<root>"+condition+"</root>";
@ -156,12 +158,13 @@ public class HcyyService {
        }
        }
        OauthRsaKeyDO oauthRsaKeyDO = oauthRsaKeyDOs.get(0);
        OauthRsaKeyDO oauthRsaKeyDO = oauthRsaKeyDOs.get(0);
        String res = "businessSystemId="+businessSystemId+"&timestamp="+timestamp;
        String res = "businessSystemId="+businessSystemId+"&timestamp="+timestamp;
        String signature = RSAEncrypt.encrypt(res,oauthRsaKeyDO.getPublicKey());
        JSONObject jsonObject = new JSONObject();
/*        String signature = RSAEncrypt.encrypt(res,oauthRsaKeyDO.getPublicKey());*/
/*        JSONObject jsonObject = new JSONObject();
        jsonObject.put("businessSystemId",businessSystemId);
        jsonObject.put("businessSystemId",businessSystemId);
        jsonObject.put("timestamp",timestamp+"");
        jsonObject.put("timestamp",timestamp+"");
        jsonObject.put("signature","");
        String result = XMCA_DCS_UnifiedInterface("获取访问令牌接口","authorize/token",jsonObject.toJSONString());
        jsonObject.put("signature","");*/
        String jsonObject = "{\\\"businessSystemId\\\": \\\""+businessSystemId+"\\\",\\\"timestamp\\\": \\\""+timestamp+"\\\",\\\"signature\\\": \\\"\\\"}";
        String result = XMCA_DCS_UnifiedInterface("获取访问令牌接口","authorize/token",jsonObject);
        if (StringUtils.isNoneBlank(result)){
        if (StringUtils.isNoneBlank(result)){
            JSONObject object = JSONObject.parseObject(result);
            JSONObject object = JSONObject.parseObject(result);
            if (object.getString("code").equalsIgnoreCase("10000")){
            if (object.getString("code").equalsIgnoreCase("10000")){
@ -181,21 +184,22 @@ public class HcyyService {
     * @return
     * @return
     * @throws Exception
     * @throws Exception
     */
     */
    public String getQRCode(){
    public String getQRCode(String ip){
        try {
        try {
            String token = token();
            String token = token();
            String clientId = "";
            String clientId = ip;
            String businessSerialNo = UUID.randomUUID().toString();
            String businessSerialNo = UUID.randomUUID().toString();
            JSONObject jsonObject = new JSONObject();
        /*    JSONObject jsonObject = new JSONObject();
            jsonObject.put("token",token);
            jsonObject.put("token",token);
            JSONObject data = new JSONObject();
            JSONObject data = new JSONObject();
            data.put("clientId",clientId);
            data.put("clientId",clientId);
            data.put("userType","1");
            data.put("userType","1");
            jsonObject.put("data",data);
            jsonObject.put("data",data.toJSONString());
            jsonObject.put("businessSerialNo",businessSerialNo);
            jsonObject.put("businessSerialNo",businessSerialNo);
            jsonObject.put("accessMode",0);
            data.put("accessMode","1");*/
            String jsonObject ="{\\\"token\\\": \\\""+token+"\\\", \\\"data\\\": \\\"{\\\\\\\"clientId\\\\\\\": \\\\\\\""+clientId+"\\\\\\\",\\\\\\\"userType\\\\\\\": \\\\\\\"1\\\\\\\"}\\\",\\\"businessSerialNo\\\": \\\"" + businessSerialNo + "\\\",\\\"accessMode\\\": \\\"1\\\"}";
            String result = null;
            String result = null;
            result = XMCA_DCS_UnifiedInterface("获取登录小程序码接口","authorize/wxacode",jsonObject.toJSONString());
            result = XMCA_DCS_UnifiedInterface("获取登录小程序码接口","authorize/wxacode",jsonObject);
            JSONObject rs = new JSONObject();
            JSONObject rs = new JSONObject();
            JSONObject dataRes = new JSONObject();
            JSONObject dataRes = new JSONObject();
            if (StringUtils.isNoneBlank(result)){
            if (StringUtils.isNoneBlank(result)){
@ -229,22 +233,22 @@ public class HcyyService {
     * @param qrCode
     * @param qrCode
     * @return
     * @return
     */
     */
    public JSONObject getTokeninfo(String qrCode){
    public JSONObject getTokeninfo(String qrCode,String ip){
        try {
        try {
            String token = token();
            String token = token();
            String clientId = "";
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("token",token);
            jsonObject.put("clientId",clientId);
            jsonObject.put("businessSerialNo",qrCode);
            String result = XMCA_DCS_UnifiedInterface("获取授权登录状态信息","authorize/getNoticeData",jsonObject.toJSONString());
            String clientId = ip;
            String jsonObject ="{\\\"token\\\": \\\""+token+"\\\",\\\"clientId\\\": \\\""+clientId+"\\\",\\\"businessSerialNo\\\": \\\""+qrCode+"\\\"}";
            String result = XMCA_DCS_UnifiedInterface("获取授权登录状态信息","authorize/getNoticeData",jsonObject);
            JSONObject object = JSONObject.parseObject(result);
            JSONObject object = JSONObject.parseObject(result);
            if (object.getString("code").equalsIgnoreCase("10000")){
            if (object.getString("code").equalsIgnoreCase("10000")){
                JSONObject data = object.getJSONObject("data");
                String idCard = data.getString("idCard");
                String key = (MD5.md5Hex(DateUtil.getDateShort(new Date())+"XMCASZYQ")).substring(5,21);
                String idcard = AesEncryptUtils.decrypt(idCard,key);
                data.put("idcard",idcard);
                if (StringUtils.isNoneBlank(object.getString("data"))){
                    JSONObject data = object.getJSONObject("data");
                    String idCard = data.getString("idCard");
                    String  key = MD5.md5Hex(DateUtil.getStringDateShort()+"XMCASZYQ").substring(5,21).toUpperCase();
                    logger.info("===key===="+key);
                    String idcard = AesUtilsByDigitalCloudSign.decrypt(idCard,key);
                    data.put("idcard",idcard);
                }
            }
            }
            return object;
            return object;
        } catch (Exception e) {
        } catch (Exception e) {

+ 175 - 0
server/svr-authentication/src/main/java/com/yihu/jw/security/utils/AesUtilsByDigitalCloudSign.java

@ -0,0 +1,175 @@
//package com.xmca.demo.util;
package com.yihu.jw.security.utils;
//import lombok.extern.slf4j.Slf4j;
//import sun.misc.BASE64Decoder;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import com.yihu.utils.security.MD5;
import org.apache.commons.codec.binary.Base64;
/**
 * AES算法工具类
 *
 * @author by YeMingXiang
 * @date   2019/07/02
 */
//@Slf4j
public class AesUtilsByDigitalCloudSign
{
	//测试用例
	public  static  void  main( String[]  args ) 
	{
		String  strOriginData = "zL9+oTclzZhf3NkHqD4NO95mXwkcuVW+6y27kb+5fCo="; //原文,带中文
		// strOriginData = "123test";
		
		System.out.println( "原文为:" +   strOriginData ); 
		String  secretKey = MD5.md5Hex(DateUtil.getStringDateShort()+"XMCASZYQ").substring(5,21).toUpperCase(); //AES对称密钥, 长度为16位
		System.out.println(secretKey);
		/* 对应VC++ aes的配置参数
		 const char g_key[17] = "Ij0bbMLZIy93cK8o"; //末尾以 \0结束
		 const char g_iv[17] = "abcd56789AEDd12f"; //末尾以 \0结束
		*/
/*
		String  strEncryptedData = AesUtilsByDigitalCloudSign.encrypt(strOriginData, secretKey) ;
		System.out.println( "aes加密后的密文(base64编码)为:" +   strEncryptedData ); 
		System.out.println(); */
		String  strOriginData1 = AesUtilsByDigitalCloudSign.decrypt(strOriginData, secretKey) ;
		System.out.println( "aes解密后的明文为:" +   strOriginData1 ); 
	}
	
	
	
	//==============================================================================================
	/**
	 * 加解密算法/模式/填充方式
	 *
	 * ECB模式只用密钥即可对数据进行加密解密,CBC模式需要添加一个iv
	 */
	private static final String CIPHER_ALGORITHM_AES_CBC_NOPADDING = "AES/CBC/NOPadding";
	/**
	 * 算法名
	 */
	private static final String KEY_NAME = "AES";
	private static String DEFAULT_IV = "abcd56789AEDd12f"; //缺省偏移矢量,16位
	
	
	/**AES加密
	 * 
	 * @param originalData       原文
	 * @param secretKey  对称密钥
	 * 
	 * @return            密文(base64编码)
	 */
	public static String encrypt(String originalData, String secretKey) 
	{
		/*
    	 if (StringUtils.isEmpty(data)) 
         {
            return "";
         }
		 */
//zgpn6em9J8GJJMhQLd9Kilr6w3CMR32vrH3NScvSWsQ
		try
		{
			// 参数分别代表 算法名称/加密模式/数据填充方式
			Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM_AES_CBC_NOPADDING);
			int blockSize = cipher.getBlockSize();
			byte[] dataBytes = originalData.getBytes(); //建议指定为 utf-8编码
			int plaintextLength = dataBytes.length;
			if (plaintextLength % blockSize != 0)
			{
				plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));
			}
			byte[] plaintext = new byte[plaintextLength];
			System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);
			SecretKeySpec keyspec = new SecretKeySpec(secretKey.getBytes(), KEY_NAME);
			IvParameterSpec ivspec = new IvParameterSpec(DEFAULT_IV.getBytes());
			cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);
			byte[] encrypted = cipher.doFinal(plaintext);
			
			System.out.println("encrypted length=" + encrypted.length); 
			return Base64.encodeBase64String(encrypted).trim().replaceAll("\r\n", "") ;  
			//return new sun.misc.BASE64Encoder().encode(encrypted).trim().replaceAll("\r\n", "");
		} 
		catch (Exception e)
		{
			e.printStackTrace();
			//log.error("AES加密失败_" + e.getMessage(), e);
			return "";
		}
	}
	/**AES解密
	 * 
	 * @param encryptedData        密文(base64编码)
	 * @param secretKey    密钥
	 * 
	 * @return     原文
	 */
	public static String decrypt(String encryptedData, String secretKey) 
	{
		return decrypt(encryptedData, secretKey, DEFAULT_IV);
	}
	/**解密
	 * 
	 * @param encryptedData       密文(base64编码)
	 * @param secretKey  对称密钥
	 * @param iv         矢量
	 * 
	 * @return     原文
	 */
	private static String decrypt(String encryptedData, String secretKey, String iv) 
	{
		/*
		if (StringUtils.isEmpty(data) || StringUtils.isUndefined(data)) 
		{
			return "";
		}
		 */
		try 
		{
			Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM_AES_CBC_NOPADDING);
			SecretKeySpec secretKeySpec     = new SecretKeySpec(secretKey.getBytes(), KEY_NAME);
			IvParameterSpec ivParameterSpec = new IvParameterSpec(iv.getBytes());
			cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec);
			//byte[] encryptedData = new BASE64Decoder().decodeBuffer(data);
			byte[] bEncryptedData = Base64.decodeBase64(encryptedData); 
			System.out.println("bEncryptedData len=" + bEncryptedData.length); 
			
			byte[] original      = cipher.doFinal(bEncryptedData);
			System.out.println("aes decrypted original length=" + original.length); 
			return new String(original,"utf8").trim(); //byte[] 转为 string类型
		}
		catch (Exception e) 
		{
			//log.error("AES解密失败_" + e.getMessage(), e);
			e.printStackTrace();
			return "";
		}
	}
}

+ 1 - 3
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/util/MQTTClientUtil.java

@ -58,11 +58,9 @@ public class MQTTClientUtil {
                @Override
                @Override
                public void messageArrived(String s, MqttMessage message) throws Exception {
                public void messageArrived(String s, MqttMessage message) throws Exception {
                    // subscribe后得到的消息会执行到这里面
                    // subscribe后得到的消息会执行到这里面
                    logger.info("接收s : " + s);
                    logger.info("接收消息主题 : " + message);
                    logger.info("接收消息主题 : " + s);
                    logger.info("接收消息Qos : " + message.getQos());
                    logger.info("接收消息Qos : " + message.getQos());
                    logger.info("接收消息内容 : " + new String(message.getPayload()));
                    logger.info("接收消息内容 : " + new String(message.getPayload()));
                }
                }
                @Override
                @Override

+ 32 - 4
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/channel/PrescriptionStatusUpdateService.java

@ -18,6 +18,7 @@ import com.yihu.jw.hospital.message.service.SystemMessageService;
import com.yihu.jw.hospital.prescription.dao.*;
import com.yihu.jw.hospital.prescription.dao.*;
import com.yihu.jw.hospital.prescription.service.PrescriptionLogService;
import com.yihu.jw.hospital.prescription.service.PrescriptionLogService;
import com.yihu.jw.hospital.prescription.service.PrescriptionService;
import com.yihu.jw.hospital.prescription.service.PrescriptionService;
import com.yihu.jw.hospital.prescription.service.entrance.EntranceService;
import com.yihu.jw.hospital.prescription.service.entrance.YkyyEntranceService;
import com.yihu.jw.hospital.prescription.service.entrance.YkyyEntranceService;
import com.yihu.jw.hospital.ykyy.service.YkyyService;
import com.yihu.jw.hospital.ykyy.service.YkyyService;
import com.yihu.jw.im.service.ImService;
import com.yihu.jw.im.service.ImService;
@ -107,6 +108,8 @@ public class PrescriptionStatusUpdateService {
    private WxPushLogDao wxPushLogDao;
    private WxPushLogDao wxPushLogDao;
    @Autowired
    @Autowired
    private YkyySMSService ykyySMSService;
    private YkyySMSService ykyySMSService;
    @Autowired
    private EntranceService entranceService;
    public void autoPush() throws Exception {
    public void autoPush() throws Exception {
@ -533,6 +536,14 @@ public class PrescriptionStatusUpdateService {
                            ykyyService.updateYktOrderStatus(businessOrderDO.getOrderNo(), "2");
                            ykyyService.updateYktOrderStatus(businessOrderDO.getOrderNo(), "2");
                        }
                        }
                    } else if (wechatId.equalsIgnoreCase("xm_zsyy_wx")) {
                    } else if (wechatId.equalsIgnoreCase("xm_zsyy_wx")) {
                        WlyyHospitalSysDictDO hospitalSysDictDO =  hospitalSysDictDao.findById("isCloseRefund");
                        if (hospitalSysDictDO!=null&&hospitalSysDictDO.getDictValue().equalsIgnoreCase("1")){
                            try {
                                entranceService.hisRefund(outPatientId);
                            }catch (Exception e){
                                e.printStackTrace();
                            }
                        }
/*
/*
                    businessOrderService.ylzOrderRefund(wechatId, wlyyOutpatientDO.getPatient(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description);
                    businessOrderService.ylzOrderRefund(wechatId, wlyyOutpatientDO.getPatient(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description);
@ -639,6 +650,14 @@ public class PrescriptionStatusUpdateService {
                                ykyyService.updateYktOrderStatus(businessOrderDO.getOrderNo(),"2");
                                ykyyService.updateYktOrderStatus(businessOrderDO.getOrderNo(),"2");
                            }
                            }
                        } else if (wechatId.equalsIgnoreCase("xm_zsyy_wx")) {
                        } else if (wechatId.equalsIgnoreCase("xm_zsyy_wx")) {
                            WlyyHospitalSysDictDO hospitalSysDictDO =  hospitalSysDictDao.findById("isCloseRefund");
                            if (hospitalSysDictDO!=null&&hospitalSysDictDO.getDictValue().equalsIgnoreCase("1")){
                                try {
                                    entranceService.hisRefund(outPatientId);
                                }catch (Exception e){
                                    e.printStackTrace();
                                }
                            }
        /*
        /*
                            businessOrderService.ylzOrderRefund(wechatId, wlyyOutpatientDO.getPatient(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description);
                            businessOrderService.ylzOrderRefund(wechatId, wlyyOutpatientDO.getPatient(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description);
        */
        */
@ -725,19 +744,19 @@ public class PrescriptionStatusUpdateService {
            logger.info(outpatientDO.getId()+"的处方记录设置为结束");
            logger.info(outpatientDO.getId()+"的处方记录设置为结束");
            outpatientDao.save(outpatientDO);
            outpatientDao.save(outpatientDO);
            //退费
            //退费
            try {
           /* try {
                BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(outpatientDO.getId());
                BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(outpatientDO.getId());
                if (businessOrderDO!=null){
                if (businessOrderDO!=null){
                    if (businessOrderDO.getPayType()==1){
                    if (businessOrderDO.getPayType()==1){
                        businessOrderService.orderRefund(wechatId,businessOrderDO.getPatient(),businessOrderDO.getOrderNo(),businessOrderDO.getPayPrice(),businessOrderDO.getDescription());
                        businessOrderService.orderRefund(wechatId,businessOrderDO.getPatient(),businessOrderDO.getOrderNo(),businessOrderDO.getPayPrice(),businessOrderDO.getDescription());
                    }else if (businessOrderDO.getPayType()==3){
                    }else if (businessOrderDO.getPayType()==3){
    /*
                        businessOrderService.ylzOrderRefund(wechatId,businessOrderDO.getPatient(),businessOrderDO.getOrderNo(),businessOrderDO.getPayPrice(),businessOrderDO.getDescription());
                        businessOrderService.ylzOrderRefund(wechatId,businessOrderDO.getPatient(),businessOrderDO.getOrderNo(),businessOrderDO.getPayPrice(),businessOrderDO.getDescription());
    */
                    }
                    }
                } } catch (Exception e) {
                } } catch (Exception e) {
                e.printStackTrace();
                e.printStackTrace();
            }
            }*/
        }else {
        }else {
            logger.info("setOutPatientOver count :"+0);
            logger.info("setOutPatientOver count :"+0);
        }
        }
@ -836,6 +855,15 @@ public class PrescriptionStatusUpdateService {
                                ykyyService.updateYktOrderStatus(businessOrderDO.getOrderNo(),"2");
                                ykyyService.updateYktOrderStatus(businessOrderDO.getOrderNo(),"2");
                            }
                            }
                        } else if (wechatId.equalsIgnoreCase("xm_zsyy_wx")) {
                        } else if (wechatId.equalsIgnoreCase("xm_zsyy_wx")) {
                            WlyyHospitalSysDictDO hospitalSysDictDO =  hospitalSysDictDao.findById("isCloseRefund");
                            if (hospitalSysDictDO!=null&&hospitalSysDictDO.getDictValue().equalsIgnoreCase("1")){
                                try {
                                    entranceService.hisRefund(outPatientId);
                                }catch (Exception e){
                                    e.printStackTrace();
                                }
                            }
        /*
        /*
                            businessOrderService.ylzOrderRefund(wechatId, wlyyOutpatientDO.getPatient(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description);
                            businessOrderService.ylzOrderRefund(wechatId, wlyyOutpatientDO.getPatient(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description);
        */
        */

+ 11 - 0
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/channel/TimeoutOverDueService.java

@ -95,6 +95,8 @@ public class TimeoutOverDueService {
    private PatientMappingDao patientMappingDao;
    private PatientMappingDao patientMappingDao;
    @Autowired
    @Autowired
    private YkyyEntranceService ykyyEntranceService;
    private YkyyEntranceService ykyyEntranceService;
    @Autowired
    private WlyyHospitalSysDictDao hospitalSysDictDao;
    /**
    /**
     *  取消未结束门诊
     *  取消未结束门诊
     */
     */
@ -193,6 +195,15 @@ public class TimeoutOverDueService {
                                        ykyyService.updateYktOrderStatus(businessOrderDO.getOrderNo(),"2");
                                        ykyyService.updateYktOrderStatus(businessOrderDO.getOrderNo(),"2");
                                    }
                                    }
                                } else if (wechatId.equalsIgnoreCase("xm_zsyy_wx")) {
                                } else if (wechatId.equalsIgnoreCase("xm_zsyy_wx")) {
                                    WlyyHospitalSysDictDO hospitalSysDictDO =  hospitalSysDictDao.findById("isCloseRefund");
                                    if (hospitalSysDictDO!=null&&hospitalSysDictDO.getDictValue().equalsIgnoreCase("1")){
                                        try {
                                            entranceService.hisRefund(outPatientId);
                                        }catch (Exception e){
                                            e.printStackTrace();
                                        }
                                    }
    /*
    /*
                        businessOrderService.ylzOrderRefund(wechatId, wlyyOutpatientDO.getPatient(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description);
                        businessOrderService.ylzOrderRefund(wechatId, wlyyOutpatientDO.getPatient(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description);
    */
    */

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

@ -2151,7 +2151,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
                                       @RequestParam(value = "idCard", required = false)String idCard,
                                       @RequestParam(value = "idCard", required = false)String idCard,
                                       @ApiParam(name = "medicard", value = "就诊卡")
                                       @ApiParam(name = "medicard", value = "就诊卡")
                                       @RequestParam(value = "medicard", required = false)String medicard,
                                       @RequestParam(value = "medicard", required = false)String medicard,
                                       @ApiParam(name = "status", value = "状态(0:未支付|1:已支付| 9退款完成)")
                                       @ApiParam(name = "status", value = "状态(0:未支付|1:已支付| 9退款完成||退款失败)")
                                       @RequestParam(value = "status", required = false)Integer status,
                                       @RequestParam(value = "status", required = false)Integer status,
                                       @ApiParam(name = "page", value = "页数")
                                       @ApiParam(name = "page", value = "页数")
                                       @RequestParam(value = "page", required = false)Integer page,
                                       @RequestParam(value = "page", required = false)Integer page,

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

@ -1220,12 +1220,10 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = "yjjRefund")
    @GetMapping(value = "yjjRefund")
    @ApiOperation(value = "预交金退费", notes = "预交金退费")
    @ApiOperation(value = "预交金退费", notes = "预交金退费")
    public ListEnvelop yjjRefund(@ApiParam(name = "outPatientId", value = "门诊记录")
    public ListEnvelop yjjRefund(@ApiParam(name = "outPatientId", value = "门诊记录")
                                     @RequestParam(value = "outPatientId", required = false) String outPatientId,
                                 @ApiParam(name = "sys", value = "是否系统取消")
                                    @RequestParam(value = "sys", required = false) boolean sys) {
                                     @RequestParam(value = "outPatientId", required = false) String outPatientId) {
        try {
        try {
            return success(entranceService.hisRefund(outPatientId,sys));
            return success(entranceService.hisRefund(outPatientId));
        } catch (Exception e) {
        } catch (Exception e) {
            e.printStackTrace();
            e.printStackTrace();
            return failedListEnvelopException(e);
            return failedListEnvelopException(e);
@ -1822,6 +1820,8 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
            return success(doctorPreSignService.getDoctorSign(doctor));
            return success(doctorPreSignService.getDoctorSign(doctor));
        }else if (wxId.equalsIgnoreCase("xm_ykyy_wx")){
        }else if (wxId.equalsIgnoreCase("xm_ykyy_wx")){
            return success(ykyyService.getSignPicture(doctor));
            return success(ykyyService.getSignPicture(doctor));
        }else if (wxId.equalsIgnoreCase("xm_hcyy_wx")){
            return success(hcyyEntranceService.getSignPicture(doctor));
        }else {
        }else {
            return success("功能尚未开通","500");
            return success("功能尚未开通","500");
        }
        }