Pārlūkot izejas kodu

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

wangzhinan 4 gadi atpakaļ
vecāks
revīzija
9a64c9d863
14 mainītis faili ar 1252 papildinājumiem un 5 dzēšanām
  1. 15 0
      business/base-service/src/main/java/com/yihu/jw/dict/dao/BaseJobCategoryDao.java
  2. 8 0
      business/base-service/src/main/java/com/yihu/jw/hospital/doctor/dao/DoctorTimeMappingDao.java
  3. 13 0
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/dao/BaseNatAppointmentDao.java
  4. 8 0
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/dao/BaseNatInspectionDao.java
  5. 320 0
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java
  6. 59 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/dict/BaseJobCategoryDO.java
  7. 77 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/doctor/BaseDoctorTimeMappingDO.java
  8. 382 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/BaseNatAppointmentDO.java
  9. 149 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/BaseNatInspectionDO.java
  10. 12 1
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java
  11. 30 4
      svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/channel/TimeoutOverDueService.java
  12. 59 0
      svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/util/CancelNotPay.java
  13. 29 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/patient/PatientNoLoginEndPoint.java
  14. 91 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/PrescriptionEndpoint.java

+ 15 - 0
business/base-service/src/main/java/com/yihu/jw/dict/dao/BaseJobCategoryDao.java

@ -0,0 +1,15 @@
package com.yihu.jw.dict.dao;
import com.yihu.jw.entity.base.dict.BaseJobCategoryDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface BaseJobCategoryDao extends PagingAndSortingRepository<BaseJobCategoryDO, Integer>, JpaSpecificationExecutor<BaseJobCategoryDO> {
    @Query("from BaseJobCategoryDO t where t.pid = '0' and t.del = 1")
    List<BaseJobCategoryDO> findFirstCategoryList();
    @Query("from BaseJobCategoryDO t where t.pid = ?1 and t.del = 1")
    List<BaseJobCategoryDO> findSecondCategoryList(String pid);
}

+ 8 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/doctor/dao/DoctorTimeMappingDao.java

@ -0,0 +1,8 @@
package com.yihu.jw.hospital.doctor.dao;
import com.yihu.jw.entity.base.doctor.BaseDoctorTimeMappingDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
public interface DoctorTimeMappingDao extends PagingAndSortingRepository<BaseDoctorTimeMappingDO, Integer>, JpaSpecificationExecutor<BaseDoctorTimeMappingDO> {
}

+ 13 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/dao/BaseNatAppointmentDao.java

@ -0,0 +1,13 @@
package com.yihu.jw.hospital.prescription.dao;
import com.yihu.jw.entity.hospital.prescription.BaseNatAppointmentDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface BaseNatAppointmentDao extends PagingAndSortingRepository<BaseNatAppointmentDO, Integer>, JpaSpecificationExecutor<BaseNatAppointmentDO> {
    @Query("from BaseNatAppointmentDO t where t.payStatus = 0 ")
    List<BaseNatAppointmentDO> findByPayStatus();
}

+ 8 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/dao/BaseNatInspectionDao.java

@ -0,0 +1,8 @@
package com.yihu.jw.hospital.prescription.dao;
import com.yihu.jw.entity.hospital.prescription.BaseNatInspectionDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
public interface BaseNatInspectionDao extends PagingAndSortingRepository<BaseNatInspectionDO, Integer>, JpaSpecificationExecutor<BaseNatInspectionDO> {
}

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

@ -69,6 +69,7 @@ import com.yihu.jw.restmodel.hospital.consult.WlyyHospitalSysDictVO;
import com.yihu.jw.restmodel.hospital.doctor.WlyyDoctorWorkTimeVO;
import com.yihu.jw.restmodel.hospital.prescription.*;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
@ -107,6 +108,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.checkerframework.checker.units.qual.A;
import org.checkerframework.checker.units.qual.MixedUnits;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
@ -272,6 +274,8 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
    private HttpClientUtil httpClientUtil;
    @Autowired
    private YxTokenMappingDao yxTokenMappingDao;
    @Autowired
    private BaseNatAppointmentDao baseNatAppointmentDao;
@ -4682,6 +4686,55 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
    }
    //核算检测预约模板消息
    public void sendNatWxTemplat(String name,String idcard,String mobile,String time,String orderNo,String relationName){
        String first = "";
        String contentMsg = "";
        String msgUrl="";
        String remark="";
        String responseMsg="";
        if ("natAppointmentRemind".equalsIgnoreCase(relationName)){
            first = "尊敬的用户"+name+",您已完成线上自助核酸检测开单预约";
            contentMsg = "申请人:"+name+";预约时间:"+time+";发票流水号:"+orderNo;
            remark="请您持核酸开单预约信息和结算发票号、医保卡、就诊卡、电子健康卡,提前15分钟至我院五号楼北侧(急诊部后侧)核酸检测点2号窗口绑定检测。";
        }
        if ("xm_zsyy_wx".equalsIgnoreCase(wechatId)) {
            String prefix = "https://hlwyy.xmzsh.com";
            responseMsg = entranceService.ehospitalNotice(
                    name,
                   idcard,
                    mobile,
                    first,
                    prefix + msgUrl,
                    contentMsg,
                    remark);
                logger.info("中山发送模板消息返回结果="+responseMsg);
                System.out.println("结束发送模板消息");
        }else if ("xm_zsyy_wx".equalsIgnoreCase(wechatId)) {
            String prefix = "https://hlwyy.xmzsh.com";
                responseMsg = entranceService.ehospitalNotice(
                        name,
                        idcard,
                        mobile,
                        first,
                        prefix + msgUrl,
                        contentMsg,
                        remark
                );
                logger.info("心脏发送模板消息返回结果="+responseMsg);
                System.out.println("结束发送模板消息");
        }
        //保存发送模板记录,
        WxPushLogDO wxPushLogDO = new WxPushLogDO();
        wxPushLogDO.setCreateTime(new Date());
        wxPushLogDO.setWechatId(wechatId);
        wxPushLogDO.setReceiverName(name);
        wxPushLogDO.setRequest(first+contentMsg+msgUrl);
        wxPushLogDO.setResponse(responseMsg);
        wxPushLogDO.setTempName("核算检测预约模板消息");
        wxPushLogDao.save(wxPushLogDO);
    }
    public List<WlyyHospitalSysDictDO> findCancelReasonList() {
@ -10337,5 +10390,272 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
       }
       return doorServiceCount;
    }
    public MixEnvelop findJobCategory(){
        String sqlPid = "select id as \"id\",name as \"name\",pid as \"pid\" from base_job_category  where pid = 0 and del = 1";
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sqlPid);
        if (list.size()>0){
            for (Map<String,Object> map:list){
                String child = "select id as \"id\",name as \"name\",pid as \"pid\" from base_job_category  where del = 1";
                String pid = map.get("id").toString();
                child+=" and pid = "+pid;
                List<Map<String,Object>> childList = hibenateUtils.createSQLQuery(child);
                map.put("childList",childList);
            }
        }
        MixEnvelop envelop = new MixEnvelop();
        envelop.setDetailModelList(list);
        return  envelop;
    }
    public Map<String,Object> findRandomDoctor(){
        String sql = "select t.id as \"id\"," +
                "t.doctor_mapping_code as \"doctorMappingCode\"," +
                "t.doctor_code as \"doctorCode\"," +
                "t.dept_code as \"deptCode\"," +
                "t.start_time as \"startTime\"," +
                "t.end_time as \"endTime\"," +
                "t.doctor_name as \"doctorName\"," +
                "t.dept_name  as \"deptName\" from base_doctor_time_mapping t where 1=1 ";
        if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)){
            sql+=" order by dbms_random.value";
        }else {
            sql+=" ORDER BY RAND() ";
        }
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql);
        if (list!=null&&list.size()>0){
            return list.get(0);
        }
        return null;
    }
    public Map saveNatAppointment(String mediaCard,String patientId,String name,String cardNo,String cardType,String mobile,
                                   String firstJobCode,String firstJobName,String secondJobCode,String secondJobName,String natTime,String address,String provinceName,String cityName,String townName,String streetName){
        BaseNatAppointmentDO baseNatAppointmentDO= new BaseNatAppointmentDO();
        Map returnMap = new HashMap();
        net.sf.json.JSONObject jsondate = new JSONObject();
        jsondate.put("checkPart","鼻/咽拭子");
        jsondate.put("cardNo",mediaCard);
        jsondate.put("chargeFlag","2");
        jsondate.put("chargeCode","361322");
        jsondate.put("icdCode","Z00.000");
        jsondate.put("socialNo",cardNo);
        jsondate.put("tellPhone",mobile);
        jsondate.put("address1",provinceName);
        jsondate.put("address2",cityName);
        jsondate.put("address3",townName);
        jsondate.put("address4",streetName);
        jsondate.put("address5",2);
        jsondate.put("area",address);
        jsondate.put("target",2);
        Map<String,Object> map = findRandomDoctor();
        net.sf.json.JSONObject rs = new JSONObject();
        if (map!=null){
            try {
                //先进行核算检测预约
                JSONArray jsonArray = entranceService.BS10144(map.get("deptCode").toString(),map.get("doctorMappingCode").toString(),natTime,mediaCard,name,patientId,mobile,demoFlag);
                String date = DateUtil.dateToStr(new Date(), "yyyy-MM-dd");
                List<WlyyPatientRegisterDO> patientRegisterDOs = patientRegisterDao.findByPatientAndDateAndDoctorAndDel(patientId, date,map.get("doctorCode").toString() ,1);
                if (patientRegisterDOs != null && patientRegisterDOs.size() > 0) {
                    WlyyPatientRegisterDO registerDO = patientRegisterDOs.get(0);
                    //判断是否已经挂号,如果已经挂号
                    if (StringUtils.isNotBlank(registerDO.getConNo()) && StringUtils.isNotBlank(registerDO.getRegisterNo())) {
                        net.sf.json.JSONObject res = new JSONObject();
                        res.put("@RESULT", "0");
                        logger.info("已经挂号 res: " + res.toString());
                        jsondate.put("serialNo",registerDO.getRegisterNo());
                        jsondate.put("dept",map.get("deptCode").toString());
                        jsondate.put("doctor",map.get("doctorMappingCode").toString());
                    }else {
                        returnMap.put("msg","已经挂号的数据有误");
                        returnMap.put("status","-1");
                        return map;
                    }
                }else {
                    rs = entranceService.BS10111(cardNo, map.get("doctorMappingCode").toString(), map.get("deptCode").toString(), "31", "6", demoFlag);
                    net.sf.json.JSONObject res = rs.getJSONObject("resquest");
                    logger.info("挂号结果 res: " + res.toString());
                    String rsCode = res.getString("@RESULT");
                    if ("0".equals(rsCode)) {
                        //存储挂号号
                        // {"resquest":{"@RESULT":"0","@MSG":"完成","@serial_no":"47770476","@times":"28"}}
                        String serialNo = (String) res.get("@serial_no");
                        String conNo = (String) res.get("@times");
                        String xtgzh = (String) res.get("@xtgzh");
                        String realOrder = (String) res.get("@real_order");
                        logger.info("挂号流水 @serial_no: " + serialNo + " @times: " + conNo);
                        jsondate.put("serialNo",serialNo);
                        jsondate.put("dept",map.get("deptCode").toString());
                        jsondate.put("doctor",map.get("doctorMappingCode").toString());
                        //存储就诊记录
                        WlyyPatientRegisterDO registerDO = new WlyyPatientRegisterDO();
                        // 存储挂号医生与挂号科室
                        registerDO.setDoctor(map.get("doctorCode").toString());
                        registerDO.setDoctorName(map.get("doctorName").toString());
                        registerDO.setDept(map.get("deptCode").toString());
                        registerDO.setDeptName(map.get("deptName").toString());
                        registerDO.setRealOrder(realOrder);
                        registerDO.setXtgzh(xtgzh);
                        registerDO.setPatient(patientId);
                        registerDO.setPatientName(name);
                        //挂号流水号与挂号次数
                        registerDO.setRegisterNo(serialNo);
                        registerDO.setConNo(conNo);
                        registerDO.setCreateTime(new Date());
                        registerDO.setDel(1);
                        registerDO.setDate(DateUtil.dateToStr(new Date(), "yyyy-MM-dd"));
                        patientRegisterDao.save(registerDO);
                        //保存日志
                        WlyyHttpLogDO log = new WlyyHttpLogDO();
                        log.setCode("registerOutPatient");
                        log.setName("挂号");
                        log.setPatient(patientId);
                        log.setDoctor(map.get("doctorCode").toString());
                        log.setResponse(rs.toString());
                        log.setStatus(rsCode);
                        log.setCreateTime(new Date());
                        wlyyHttpLogDao.save(log);
                    } else if ("-2".equals(rsCode)) {
                        String serialNo = (String) res.get("@serial_no");
                        String xtgzh = (String) res.get("@xtgzh");
                        String realOrder = (String) res.get("@real_order");
                        String conNo = (String) res.get("@times");
                        jsondate.put("serialNo",serialNo);
                        jsondate.put("dept",map.get("deptCode").toString());
                        jsondate.put("doctor",map.get("doctorMappingCode").toString());
                        logger.info("挂号流水 @serial_no: " + serialNo + " @times: " + conNo);
                        //存储就诊记录
                        WlyyPatientRegisterDO registerDO = new WlyyPatientRegisterDO();
                        registerDO.setDoctor(map.get("doctorCode").toString());
                        registerDO.setDoctorName(map.get("doctorName").toString());
                        registerDO.setDept(map.get("deptCode").toString());
                        registerDO.setDeptName(map.get("deptName").toString());
                        registerDO.setRealOrder(realOrder);
                        registerDO.setXtgzh(xtgzh);
                        registerDO.setPatient(patientId);
                        registerDO.setPatientName(name);
                        registerDO.setRegisterNo(serialNo);
                        registerDO.setConNo(conNo);
                        registerDO.setCreateTime(new Date());
                        registerDO.setDate(DateUtil.dateToStr(new Date(), "yyyy-MM-dd"));
                        patientRegisterDao.save(registerDO);
                        //保存日志
                        WlyyHttpLogDO log = new WlyyHttpLogDO();
                        log.setCode("registerOutPatient");
                        log.setName("挂号");
                        log.setPatient(patientId);
                        log.setDoctor(map.get("doctorCode").toString());
                        log.setResponse(rs.toString());
                        log.setStatus(rsCode);
                        log.setCreateTime(new Date());
                        wlyyHttpLogDao.save(log);
                    }else {
                        returnMap.put("msg","请求挂号失败");
                        returnMap.put("status","-1");
                        return map;
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            logger.info("saveNatAppointment params:"+jsondate.toString());
            try {
                JSONObject jsonObject  = entranceService.BS10112(jsondate.toString(),flag);
                //判断返回结果
                String prers = jsonObject.getString("@RESULT");
                //保存日志
                WlyyHttpLogDO log = new WlyyHttpLogDO();
                log.setCode("saveNatAppointment");
                log.setName("核酸检测开方");
                log.setPatient(patientId);
                log.setDoctor(map.get("doctorCode").toString());
                log.setResponse(jsonObject.toString());
                log.setRequest(jsondate.toString());
                log.setCreateTime(new Date());
                wlyyHttpLogDao.save(log);
                if ("0".equals(prers)) {
                    String realOrder = jsonObject.getString("@real_order");
                    baseNatAppointmentDO.setRealOrder(realOrder);
                    //成功后发送模板消息
                    sendNatWxTemplat(name,cardNo,mobile,natTime,realOrder,"natAppointmentRemind");
                }else{
                    returnMap.put("msg","核酸检测开方失败");
                    returnMap.put("status","-1");
                    return map;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        baseNatAppointmentDO.setMedicard(mediaCard);
        baseNatAppointmentDO.setName(name);
        baseNatAppointmentDO.setCardNo(cardNo);
        baseNatAppointmentDO.setCardType(cardType);
        baseNatAppointmentDO.setAddress(address);
        baseNatAppointmentDO.setAppointmentTime(DateUtil.strToDate(natTime,"yyyy-MM-dd hh:mm:ss"));
        baseNatAppointmentDO.setCityName(cityName);
        baseNatAppointmentDO.setFirstJobCode(firstJobCode);
        baseNatAppointmentDO.setFirstJobName(firstJobName);
        baseNatAppointmentDO.setSecondJobCode(secondJobCode);
        baseNatAppointmentDO.setSecondJobName(secondJobName);
        baseNatAppointmentDO.setProvinceName(provinceName);
        baseNatAppointmentDO.setTownName(townName);
        baseNatAppointmentDO.setStreet(streetName);
        baseNatAppointmentDO.setPatientId(patientId);
        baseNatAppointmentDO.setIsSuccess("0");
        baseNatAppointmentDO.setPayStatus("0");
        baseNatAppointmentDO.setCreateTime(new Date());
        baseNatAppointmentDO.setMobile(mobile);
        baseNatAppointmentDao.save(baseNatAppointmentDO);
        returnMap.put("msg","预约成功");
        returnMap.put("status","200");
        return map;
    }
    public MixEnvelop getNatRecords(String patientId,Integer page ,Integer pageSize){
        String sql = "select t.name as \"name\"," +
                "t.card_no as \"cardNo\"," +
                "t.card_type as \"cardType\"," +
                "t.mobile as \"mobile\"," +
                "t.inspection_name as \"inspectionName\"," +
                "t.real_order as \"realOrder\"," +
                "t.real_order as \"realOrder\"," +
                "t.is_success as \"isSuccess\"," +
                "t.create_time as \"createTime\"," +
                "t.appointment_time as \"appointmentTime\" " +
                " from base_nat_appointment t where 1=1 ";
        if (StringUtils.isNoneBlank(patientId)){
            sql+=" and t.patient_id ='"+patientId+"'";
        }
        List<Map<String ,Object>> list = hibenateUtils.createSQLQuery(sql,page,pageSize);
        List<Map<String ,Object>> listCount = hibenateUtils.createSQLQuery(sql);
        MixEnvelop mixnvelop = new MixEnvelop();
        if (listCount!=null&&listCount.size()>0){
            mixnvelop.setCurrPage(page);
            mixnvelop.setPageSize(pageSize);
            mixnvelop.setTotalCount(listCount.size());
            mixnvelop.setDetailModelList(list);
        }
        return mixnvelop;
    }
    public List<Map<String,Object>> findBaseAddress(String addressFlag,String parentName){
        String sql="";
        if ("1".equalsIgnoreCase(addressFlag)){
            sql+="select  t.province_name as \"provinceName\" from base_address_mapping t group by t.province_name ";
        }else if("2".equalsIgnoreCase(addressFlag)){
            sql+="select  t.city_name as \"cityName\" from base_address_mapping t where t.province_name ='"+parentName+"' and city_name <> '' and city_name is not null group by t.city_name ";
        }else if("3".equalsIgnoreCase(addressFlag)){
            sql+="select  t.town_name as \"townName\" from base_address_mapping t  where t.city_name ='"+parentName+"' and town_name <> '' and town_name is not null group by t.town_name";
        }else if("4".equalsIgnoreCase(addressFlag)){
            sql+="select  t.street_name as \"streetName\" from base_address_mapping t  where t.town_name ='"+parentName+"' and street_name <> '' and street_name is not null";
        }
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql);
        return list;
    }
}

+ 59 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/dict/BaseJobCategoryDO.java

@ -0,0 +1,59 @@
package com.yihu.jw.entity.base.dict;
import com.yihu.jw.entity.IntegerIdentityEntity;
import javax.persistence.Entity;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "base_job_category")
@SequenceGenerator(name="id_generated", sequenceName="base_job_category")
public class BaseJobCategoryDO extends IntegerIdentityEntity {
    private String name;
    private Integer del;
    private Date createTime;
    private Date updateTime;
    private String pid;//父级id
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getPid() {
        return pid;
    }
    public void setPid(String pid) {
        this.pid = pid;
    }
}

+ 77 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/doctor/BaseDoctorTimeMappingDO.java

@ -0,0 +1,77 @@
package com.yihu.jw.entity.base.doctor;
import com.yihu.jw.entity.IntegerIdentityEntity;
import javax.persistence.Entity;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "base_doctor_time_mapping")
@SequenceGenerator(name="id_generated", sequenceName="base_doctor_time_mapping")
public class BaseDoctorTimeMappingDO extends IntegerIdentityEntity {
    private String doctorMappingCode;
    private String doctorCode;
    private String deptCode;
    private Date startTime;
    private Date endTime;
    private String doctorName;
    private String deptName;
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    public String getDoctorMappingCode() {
        return doctorMappingCode;
    }
    public void setDoctorMappingCode(String doctorMappingCode) {
        this.doctorMappingCode = doctorMappingCode;
    }
    public String getDoctorCode() {
        return doctorCode;
    }
    public void setDoctorCode(String doctorCode) {
        this.doctorCode = doctorCode;
    }
    public String getDeptCode() {
        return deptCode;
    }
    public void setDeptCode(String deptCode) {
        this.deptCode = deptCode;
    }
    public Date getStartTime() {
        return startTime;
    }
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }
    public Date getEndTime() {
        return endTime;
    }
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
}

+ 382 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/BaseNatAppointmentDO.java

@ -0,0 +1,382 @@
package com.yihu.jw.entity.hospital.prescription;
import com.yihu.jw.entity.IntegerIdentityEntity;
import javax.persistence.Entity;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "base_nat_appointment")
@SequenceGenerator(name="id_generated", sequenceName="base_nat_appointment")
public class BaseNatAppointmentDO extends IntegerIdentityEntity {
    private String cardType;
    private String cardNo;
    private Date appointmentTime;
    private String isSuccess;
    private String appointmentTode;
    private Date endTime;
    private Date createTime;
    private String address;
    private String province;
    private String provinceName;
    private String city;
    private String cityName;
    private String town;
    private String townName;
    private String street;
    private String streetName;
    private String name;
    private String mobile;
    private String payStatus;
    private String realOrder;
    private String inspectionCode;
    private String inspectionName;
    private String dept;
    private String deptName;
    private String doctorId;
    private String patientId;
    private String chargeAmount;
    private String cancelBy;
    private String cancelReson;
    private Date cancelTime;
    private String secondJobCode;
    private String secondJobName;
    private String firstJobCode;
    private String firstJobName;
    private String medicare;
    private String checkPart;
    private String chargeFlag;
    private String winNo;
    private String chargeCode;
    private String icdCode;
    public String getMedicare() {
        return medicare;
    }
    public void setMedicare(String medicare) {
        this.medicare = medicare;
    }
    public String getCheckPart() {
        return checkPart;
    }
    public void setCheckPart(String checkPart) {
        this.checkPart = checkPart;
    }
    public String getChargeFlag() {
        return chargeFlag;
    }
    public void setChargeFlag(String chargeFlag) {
        this.chargeFlag = chargeFlag;
    }
    public String getWinNo() {
        return winNo;
    }
    public void setWinNo(String winNo) {
        this.winNo = winNo;
    }
    public String getChargeCode() {
        return chargeCode;
    }
    public void setChargeCode(String chargeCode) {
        this.chargeCode = chargeCode;
    }
    public String getIcdCode() {
        return icdCode;
    }
    public void setIcdCode(String icdCode) {
        this.icdCode = icdCode;
    }
    public String getMedicard() {
        return medicare;
    }
    public void setMedicard(String medicare) {
        this.medicare = medicare;
    }
    public String getSecondJobCode() {
        return secondJobCode;
    }
    public void setSecondJobCode(String secondJobCode) {
        this.secondJobCode = secondJobCode;
    }
    public String getSecondJobName() {
        return secondJobName;
    }
    public void setSecondJobName(String secondJobName) {
        this.secondJobName = secondJobName;
    }
    public String getFirstJobCode() {
        return firstJobCode;
    }
    public void setFirstJobCode(String firstJobCode) {
        this.firstJobCode = firstJobCode;
    }
    public String getFirstJobName() {
        return firstJobName;
    }
    public void setFirstJobName(String firstJobName) {
        this.firstJobName = firstJobName;
    }
    public String getCancelBy() {
        return cancelBy;
    }
    public void setCancelBy(String cancelBy) {
        this.cancelBy = cancelBy;
    }
    public String getCancelReson() {
        return cancelReson;
    }
    public void setCancelReson(String cancelReson) {
        this.cancelReson = cancelReson;
    }
    public Date getCancelTime() {
        return cancelTime;
    }
    public void setCancelTime(Date cancelTime) {
        this.cancelTime = cancelTime;
    }
    public String getPayStatus() {
        return payStatus;
    }
    public void setPayStatus(String payStatus) {
        this.payStatus = payStatus;
    }
    public String getRealOrder() {
        return realOrder;
    }
    public void setRealOrder(String realOrder) {
        this.realOrder = realOrder;
    }
    public String getInspectionCode() {
        return inspectionCode;
    }
    public void setInspectionCode(String inspectionCode) {
        this.inspectionCode = inspectionCode;
    }
    public String getInspectionName() {
        return inspectionName;
    }
    public void setInspectionName(String inspectionName) {
        this.inspectionName = inspectionName;
    }
    public String getDept() {
        return dept;
    }
    public void setDept(String dept) {
        this.dept = dept;
    }
    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    public String getDoctorId() {
        return doctorId;
    }
    public void setDoctorId(String doctorId) {
        this.doctorId = doctorId;
    }
    public String getPatientId() {
        return patientId;
    }
    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }
    public String getChargeAmount() {
        return chargeAmount;
    }
    public void setChargeAmount(String chargeAmount) {
        this.chargeAmount = chargeAmount;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getMobile() {
        return mobile;
    }
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getProvince() {
        return province;
    }
    public void setProvince(String province) {
        this.province = province;
    }
    public String getProvinceName() {
        return provinceName;
    }
    public void setProvinceName(String provinceName) {
        this.provinceName = provinceName;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public String getCityName() {
        return cityName;
    }
    public void setCityName(String cityName) {
        this.cityName = cityName;
    }
    public String getTown() {
        return town;
    }
    public void setTown(String town) {
        this.town = town;
    }
    public String getTownName() {
        return townName;
    }
    public void setTownName(String townName) {
        this.townName = townName;
    }
    public String getStreet() {
        return street;
    }
    public void setStreet(String street) {
        this.street = street;
    }
    public String getStreetName() {
        return streetName;
    }
    public void setStreetName(String streetName) {
        this.streetName = streetName;
    }
    public String getCardType() {
        return cardType;
    }
    public void setCardType(String cardType) {
        this.cardType = cardType;
    }
    public String getCardNo() {
        return cardNo;
    }
    public void setCardNo(String cardNo) {
        this.cardNo = cardNo;
    }
    public Date getAppointmentTime() {
        return appointmentTime;
    }
    public String getIsSuccess() {
        return isSuccess;
    }
    public void setIsSuccess(String isSuccess) {
        this.isSuccess = isSuccess;
    }
    public void setAppointmentTime(Date appointmentTime) {
        this.appointmentTime = appointmentTime;
    }
    public String getAppointmentTode() {
        return appointmentTode;
    }
    public void setAppointmentTode(String appointmentTode) {
        this.appointmentTode = appointmentTode;
    }
    public Date getEndTime() {
        return endTime;
    }
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}

+ 149 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/BaseNatInspectionDO.java

@ -0,0 +1,149 @@
package com.yihu.jw.entity.hospital.prescription;
import com.yihu.jw.entity.IntegerIdentityEntity;
import javax.persistence.Entity;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "base_nat_inspection")
@SequenceGenerator(name="id_generated", sequenceName="base_nat_inspection")
public class BaseNatInspectionDO  extends IntegerIdentityEntity {
    private Integer appointmentId;
    private String realOrder;
    private String prescriptionId;
    private String code;
    private String name;
    private String chargeAmount;
    private String patientId;
    private String doctorId;
    private String dept;
    private String deptName;
    private String quantity;
    private String checkTtype;
    private String chekcTypeName;
    private Date createTime;
    private Integer del;
    public Integer getAppointmentId() {
        return appointmentId;
    }
    public void setAppointmentId(Integer appointmentId) {
        this.appointmentId = appointmentId;
    }
    public String getRealOrder() {
        return realOrder;
    }
    public void setRealOrder(String realOrder) {
        this.realOrder = realOrder;
    }
    public String getPrescriptionId() {
        return prescriptionId;
    }
    public void setPrescriptionId(String prescriptionId) {
        this.prescriptionId = prescriptionId;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getChargeAmount() {
        return chargeAmount;
    }
    public void setChargeAmount(String chargeAmount) {
        this.chargeAmount = chargeAmount;
    }
    public String getPatientId() {
        return patientId;
    }
    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }
    public String getDoctorId() {
        return doctorId;
    }
    public void setDoctorId(String doctorId) {
        this.doctorId = doctorId;
    }
    public String getDept() {
        return dept;
    }
    public void setDept(String dept) {
        this.dept = dept;
    }
    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    public String getQuantity() {
        return quantity;
    }
    public void setQuantity(String quantity) {
        this.quantity = quantity;
    }
    public String getCheckTtype() {
        return checkTtype;
    }
    public void setCheckTtype(String checkTtype) {
        this.checkTtype = checkTtype;
    }
    public String getChekcTypeName() {
        return chekcTypeName;
    }
    public void setChekcTypeName(String chekcTypeName) {
        this.chekcTypeName = chekcTypeName;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
}

+ 12 - 1
common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java

@ -107,7 +107,18 @@ public class BaseHospitalRequestMapping {
         * 上门复诊
         */
        public static final String appointmentRevisitOnDoor = "/appointmentRevisitOnDoor";
        /**
         * 查询业务字典
         */
        public static final String findJobCategory ="/findJobCategory";
        /**
         * 查询getNatRecords
         */
        public static final String getNatRecords ="/getNatRecords";
        /**
         * 查询getNatRecords
         */
        public static final String findBaseAddress ="/findBaseAddress";
        /**
         * 查询所有机构
         */

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

@ -3,18 +3,18 @@ package com.yihu.jw.service.channel;
import com.yihu.jw.entity.base.im.ConsultDo;
import com.yihu.jw.entity.base.im.ConsultTeamDo;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalWaitingRoomDO;
import com.yihu.jw.entity.hospital.doctor.WlyyPatientRegisterTimeDO;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.entity.hospital.prescription.BaseNatAppointmentDO;
import com.yihu.jw.entity.hospital.prescription.WlyyOutpatientDO;
import com.yihu.jw.entity.order.BusinessOrderDO;
import com.yihu.jw.hospital.consult.dao.HospitalWaitingRoomDao;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.doctor.dao.PatientRegisterTimeDao;
import com.yihu.jw.hospital.message.service.SystemMessageService;
import com.yihu.jw.hospital.prescription.dao.OutpatientDao;
import com.yihu.jw.hospital.prescription.dao.PrescriptionDao;
import com.yihu.jw.hospital.prescription.dao.PrescriptionDiagnosisDao;
import com.yihu.jw.hospital.prescription.dao.PrescriptionInfoDao;
import com.yihu.jw.hospital.prescription.dao.*;
import com.yihu.jw.hospital.prescription.service.PrescriptionLogService;
import com.yihu.jw.hospital.prescription.service.PrescriptionService;
import com.yihu.jw.hospital.ykyy.service.YkyyService;
@ -80,6 +80,10 @@ public class TimeoutOverDueService {
    private ConsultTeamDao consultTeamDao;
    @Autowired
    private ConsultDao consultDao;
    @Autowired
    private BaseNatAppointmentDao baseNatAppointmentDao;
    @Autowired
    private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
    /**
     *  取消未结束门诊
     */
@ -201,5 +205,27 @@ public class TimeoutOverDueService {
                }
            }
        }
    public void CancelNotPay(){
        List<BaseNatAppointmentDO> list =  baseNatAppointmentDao.findByPayStatus();
        long defaultTime=30;//分钟
        WlyyHospitalSysDictDO wlyyHospitalSysDictDO = wlyyHospitalSysDictDao.findById("CancelNotPayTime");
        if (wlyyHospitalSysDictDO!=null&&StringUtils.isNoneBlank(wlyyHospitalSysDictDO.getDictValue())){
            defaultTime= Long.parseLong(wlyyHospitalSysDictDO.getDictValue());
        }
        if (list!=null&&list.size()>0){
            for (BaseNatAppointmentDO baseNatAppointmentDO:list){
                long currentTime = new Date().getTime();
                long outpatientTime = baseNatAppointmentDO.getCreateTime().getTime();
                if (currentTime-outpatientTime>defaultTime*60*1000){
                    baseNatAppointmentDO.setCancelBy("system");
                    baseNatAppointmentDO.setCancelReson("超时系统取消");
                    baseNatAppointmentDO.setCancelTime(new Date());
                    baseNatAppointmentDO.setIsSuccess("-1");
                    baseNatAppointmentDao.save(baseNatAppointmentDO);
                }
            }
        }
    }
    }

+ 59 - 0
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/util/CancelNotPay.java

@ -0,0 +1,59 @@
package com.yihu.jw.util;
import com.yihu.jw.service.channel.TimeoutOverDueService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.Trigger;
import org.springframework.scheduling.TriggerContext;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Component;
import java.util.Date;
@Lazy(false)
@Component
@EnableScheduling
public class CancelNotPay implements SchedulingConfigurer {
    private static final Logger logger = LoggerFactory.getLogger(CancelNotPay.class);
    private static String cron = "0 */1 * * * ?";//"0 0 0 * * ?";0 */5 * * * ?
    @Autowired
    private TimeoutOverDueService timeoutOverDueService;
    public String change(String corIn) {
        if (StringUtils.isNotBlank(corIn)) {
            cron = corIn;
        }
        return cron;
    }
    @Override
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
        taskRegistrar.addTriggerTask(new Runnable() {
            @Override
            public void run() {
                logger.info("START========CancelNotPay========");
                try {
                    timeoutOverDueService.CancelNotPay();
                    logger.info("END========CancelNotPay========");
                } catch (Exception e) {
                    e.printStackTrace();
                    logger.error("END===ERROE===CancelNotPay,message:"+e.getMessage());
                }
            }
        }, new Trigger() {
            @Override
            public Date nextExecutionTime(TriggerContext triggerContext) {
                // 任务触发,可修改任务的执行周期
                CronTrigger trigger = new CronTrigger(cron);
                System.out.println("CancelNotPay,可修改任务的执行周期"+cron);
                Date nextExec = trigger.nextExecutionTime(triggerContext);
                return nextExec;
            }
        });
    }
}

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

@ -1417,5 +1417,34 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
    }
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.findJobCategory)
    @ApiOperation(value = "查询所有业务分类", notes = "查询所有业务分类")
    public MixEnvelop findJobCategory() {
        return prescriptionService.findJobCategory();
    }
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.getNatRecords)
    @ApiOperation(value = "查询预约记录", notes = "查询预约记录")
    public MixEnvelop getNatRecords(@ApiParam(name = "patientId", value = "居民id")
                                        @RequestParam(value = "patientId", required = false)String patientId,
                                    @ApiParam(name = "page", value = "页数")
                                    @RequestParam(value = "page", required = false)Integer page,
                                    @ApiParam(name = "pageSize", value = "每页大小")
                                        @RequestParam(value = "pageSize", required = false)Integer pageSize) {
        return  prescriptionService.getNatRecords(patientId,page,pageSize);
    }
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.findBaseAddress)
    @ApiOperation(value = "查询地址", notes = "查询地址")
    public ListEnvelop findBaseAddress(@ApiParam(name = "addressFlag", value = "addressFlag")
                                    @RequestParam(value = "addressFlag", required = false)String addressFlag,
                                    @ApiParam(name = "parentName", value = "parentName")
                                    @RequestParam(value = "parentName", required = false)String parentName ){
        return  success(prescriptionService.findBaseAddress(addressFlag,parentName));
    }
}

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

@ -25,6 +25,7 @@ import com.yihu.jw.hospital.prescription.dao.PrescriptionDiagnosisDao;
import com.yihu.jw.hospital.prescription.dao.PrescriptionInfoDao;
import com.yihu.jw.hospital.prescription.service.*;
import com.yihu.jw.hospital.prescription.service.entrance.DoctorPreSignService;
import com.yihu.jw.hospital.prescription.service.entrance.EntranceService;
import com.yihu.jw.hospital.prescription.service.entrance.TnyyEntranceService;
import com.yihu.jw.hospital.prescription.service.entrance.XzzxEntranceService;
import com.yihu.jw.hospital.service.SystemMessage.HospitalSystemMessageService;
@ -125,6 +126,8 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
    private TnyyEntranceService tnyyEntranceService;
    @Autowired
    private TnPrescriptionService tnPrescriptionService;
    @Autowired
    private EntranceService entranceService;
    @Value("${qywx.id}")
    private String qywxId;
@ -2484,4 +2487,92 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
        return success(array);
    }
    @GetMapping("/BS10142")
    public ListEnvelop BS10142(
            @ApiParam(name = "deptCode", value = "deptCode")
            @RequestParam(value = "deptCode",required = false)String deptCode,
            @ApiParam(name = "docCode", value = "docCode")
            @RequestParam(value = "docCode",required = false)String docCode,
            @ApiParam(name = "chargeType", value = "chargeType")
            @RequestParam(value = "chargeType",required = false)String chargeType) throws Exception {
        return success(entranceService.BS10142(deptCode,docCode,chargeType,demoFlag));
    }
    @GetMapping("/BS10143")
    public ListEnvelop BS10143(@ApiParam(name = "day", value = "day")
                               @RequestParam(value = "day",required = false)String day) throws Exception {
        return success(entranceService.BS10143(day,demoFlag));
    }
    @GetMapping("/BS10144")
    public ListEnvelop BS10144(@ApiParam(name = "deptCode", value = "deptCode")
                               @RequestParam(value = "deptCode",required = false)String deptCode,
                           @ApiParam(name = "docCode", value = "docCode")
                           @RequestParam(value = "docCode",required = false)String docCode,
                           @ApiParam(name = "startTime", value = "startTime")
                               @RequestParam(value = "startTime",required = false)String startTime,
                           @ApiParam(name = "sSID", value = "sSID")
                               @RequestParam(value = "sSID",required = false)String sSID,
                           @ApiParam(name = "patientName", value = "patientName")
                               @RequestParam(value = "patientName",required = false)String patientName,
                           @ApiParam(name = "patientID", value = "patientID")
                               @RequestParam(value = "patientID",required = false)String patientID,
                           @ApiParam(name = "patientPhone", value = "patientPhone")
                               @RequestParam(value = "patientPhone",required = false)String patientPhone) throws Exception {
        return success(entranceService.BS10144(deptCode,docCode,startTime,sSID,patientName,patientID,patientPhone,demoFlag));
    }
    @GetMapping("/BS10145")
    public ListEnvelop BS10145(@ApiParam(name = "deptCode", value = "deptCode")
                               @RequestParam(value = "deptCode",required = false)String deptCode,
                           @ApiParam(name = "docCode", value = "docCode")
                               @RequestParam(value = "docCode",required = false)String docCode,
                           @ApiParam(name = "startTime", value = "startTime")
                               @RequestParam(value = "startTime",required = false)String startTime,
                           @ApiParam(name = "sSID", value = "sSID")
                               @RequestParam(value = "sSID",required = false)String sSID,
                           @ApiParam(name = "patientName", value = "patientName")
                               @RequestParam(value = "patientName",required = false)String patientName,
                           @ApiParam(name = "patientID", value = "patientID")
                               @RequestParam(value = "patientID",required = false)String patientID,
                           @ApiParam(name = "patientPhone", value = "patientPhone")
                               @RequestParam(value = "patientPhone",required = false)String patientPhone) throws Exception {
        return success(entranceService.BS10145(deptCode,docCode,startTime,sSID,patientName,patientID,patientPhone,demoFlag));
    }
    @GetMapping("/saveNatAppointment")
    @ApiOperation(value = "核酸检测预约接口")
    public Envelop saveNatAppointment(@ApiParam(name = "deptCode", value = "deptCode")
                                      @RequestParam(value = "deptCode",required = false)String mediaCard,
                                      @ApiParam(name = "deptCode", value = "deptCode")
                                      @RequestParam(value = "deptCode",required = false)String patientId,
                                      @ApiParam(name = "deptCode", value = "deptCode")
                                      @RequestParam(value = "deptCode",required = false)String name,
                                      @ApiParam(name = "deptCode", value = "deptCode")
                                      @RequestParam(value = "deptCode",required = false)String cardNo,
                                      @ApiParam(name = "deptCode", value = "deptCode")
                                      @RequestParam(value = "deptCode",required = false)String cardType,
                                      @ApiParam(name = "deptCode", value = "deptCode")
                                      @RequestParam(value = "deptCode",required = false)String mobile,
                                      @ApiParam(name = "deptCode", value = "deptCode")
                                      @RequestParam(value = "deptCode",required = false)String firstJobCode,
                                      @ApiParam(name = "deptCode", value = "deptCode")
                                      @RequestParam(value = "deptCode",required = false)String firstJobName,
                                      @ApiParam(name = "deptCode", value = "deptCode")
                                      @RequestParam(value = "deptCode",required = false)String secondJobCode,
                                      @ApiParam(name = "deptCode", value = "deptCode")
                                      @RequestParam(value = "deptCode",required = false)String secondJobName,
                                      @ApiParam(name = "deptCode", value = "deptCode")
                                      @RequestParam(value = "deptCode",required = false)String natTime,
                                      @ApiParam(name = "deptCode", value = "deptCode")
                                      @RequestParam(value = "deptCode",required = false)String address,
                                      @ApiParam(name = "deptCode", value = "deptCode")
                                      @RequestParam(value = "deptCode",required = false)String provinceName,
                                      @ApiParam(name = "deptCode", value = "deptCode")
                                      @RequestParam(value = "deptCode",required = false)String cityName,
                                      @ApiParam(name = "deptCode", value = "deptCode")
                                      @RequestParam(value = "deptCode",required = false)String townName,
                                      @ApiParam(name = "deptCode", value = "deptCode")
                                      @RequestParam(value = "deptCode",required = false)String streetName){
        return success(prescriptionService.saveNatAppointment(mediaCard,patientId,name,cardNo,cardType,mobile,firstJobCode,firstJobName,secondJobCode,secondJobName,natTime,address,provinceName,cityName,townName,streetName));
    }
}