浏览代码

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

wangzhinan 4 年之前
父节点
当前提交
a447ea186a
共有 15 个文件被更改,包括 533 次插入153 次删除
  1. 65 18
      business/base-service/src/main/java/com/yihu/jw/doctor/service/BaseDoctorInfoService.java
  2. 1 1
      business/base-service/src/main/java/com/yihu/jw/hospital/message/service/BaseUserMsgService.java
  3. 2 0
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/dao/PrescriptionDao.java
  4. 123 83
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java
  5. 17 7
      business/im-service/src/main/java/com/yihu/jw/im/service/ImService.java
  6. 25 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/doctor/BaseDoctorDO.java
  7. 99 35
      server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java
  8. 69 2
      server/svr-authentication/src/main/java/com/yihu/jw/security/service/YkyyService.java
  9. 30 0
      svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/job/PrescriptionAutoDeleteJob.java
  10. 69 0
      svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/channel/PrescriptionDeleteService.java
  11. 16 0
      svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/channel/TimeoutOverDueService.java
  12. 12 4
      svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/web/quota/JobController.java
  13. 2 0
      svr/svr-internet-hospital-job/src/main/resources/system.properties
  14. 2 2
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/DoctorConsultEndpoint.java
  15. 1 1
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/service/consult/QrcodeService.java

+ 65 - 18
business/base-service/src/main/java/com/yihu/jw/doctor/service/BaseDoctorInfoService.java

@ -10,14 +10,19 @@ import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO;
import com.yihu.jw.entity.base.doctor.DoctorSpecialDiseaseDo;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.hospital.dict.WlyyChargeDictDO;
import com.yihu.jw.entity.hospital.mapping.DoctorMappingDO;
import com.yihu.jw.entity.hospital.message.BaseBannerDoctorDO;
import com.yihu.jw.hospital.dict.WlyyChargeDictDao;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.mapping.dao.DoctorMappingDao;
import com.yihu.jw.hospital.ykyy.service.YkyyService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import com.yihu.utils.security.MD5;
@ -29,14 +34,12 @@ import org.checkerframework.checker.units.qual.A;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.*;
@Service
public class BaseDoctorInfoService extends BaseJpaService<BaseDoctorDO, BaseDoctorDao> {
@ -59,6 +62,13 @@ public class BaseDoctorInfoService extends BaseJpaService<BaseDoctorDO, BaseDoct
    private BaseDoctorRoleDao baseDoctorRoleDao;
    @Autowired
    private WlyyChargeDictDao wlyyChargeDictDao;
    @Value("${wechat.id}")
    private String wechatId;
    @Autowired
    private HttpClientUtil httpClientUtil;
    private static String yktUrl_90 = "http://www.yanketong.com:90/";
    @Autowired
    private DoctorMappingDao doctorMappingDao;
    /**
     * 查询医生信息分页列表.
     * @param city
@ -309,25 +319,62 @@ public class BaseDoctorInfoService extends BaseJpaService<BaseDoctorDO, BaseDoct
    public void updateStatus(String doctorId,String status)throws Exception{
        baseDoctorDao.updateStatus(doctorId,status);
    }
    /**修改眼科通密码信息
     *
     * @param doctorId
     * @param password
     * @param oldpassword
     * @return
     */
    public String resetYktPwdByPwd(String doctorId,String password,String oldpassword,String vercode){
        String response="";
        Map headermap = new HashMap();
        headermap.put("verifyCode",vercode);
        String url = yktUrl_90+"api/share/PasswordReset?doctorId="+doctorId+"&password="+password+"&oldpassword="+oldpassword;
        logger.info("url"+url);
        response = httpClientUtil.get(url,"utf-8",headermap);
        logger.info("修改眼科同密码后的信息:"+response);
        return response;
    }
    public Boolean updateDoctorPw(String id,String pw,String orgPw){
        BaseDoctorDO doctorDO = baseDoctorDao.findOne(id);
        if("xm_ykyy_wx".equalsIgnoreCase(wechatId)){
            BaseDoctorDO doctorDOs = baseDoctorDao.findById(id);
            String res = "";
            if (null!=doctorDOs){
                res =resetYktPwdByPwd(doctorDOs.getYktDoctorId(),pw,orgPw,doctorDOs.getVerifyCode());
            }
            if (org.apache.commons.lang3.StringUtils.isNoneBlank(res)) {
                com.alibaba.fastjson.JSONObject object = com.alibaba.fastjson.JSONObject.parseObject(res);
                if (object.getString("code").equalsIgnoreCase("10000")) {
                    return true;
                } else {
                    return false;
                }
            }else {
                return false;
            }
        }else if ("xm_zsyy_wx".equalsIgnoreCase(wechatId)){
            BaseDoctorDO doctorDO = baseDoctorDao.findOne(id);
        String orgPwMd5 = MD5.md5Hex(orgPw + "{" + doctorDO.getSalt() + "}");
        if(!orgPwMd5.equals(doctorDO.getPassword())){
            return false;
        }
        //认证信息设置
        String salt = randomString(5);
        doctorDO.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
        doctorDO.setSalt(salt);
            String orgPwMd5 = MD5.md5Hex(orgPw + "{" + doctorDO.getSalt() + "}");
            if(!orgPwMd5.equals(doctorDO.getPassword())){
                return false;
            }
            //认证信息设置
            String salt = randomString(5);
            doctorDO.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
            doctorDO.setSalt(salt);
        baseDoctorDao.save(doctorDO);
            baseDoctorDao.save(doctorDO);
        //设置更新时间
        saveDoctorPwlimitDate(id);
            //设置更新时间
            saveDoctorPwlimitDate(id);
            return true;
        }else {
            return false;
        }
        return true;
    }
    public String randomString(int length) {

+ 1 - 1
business/base-service/src/main/java/com/yihu/jw/hospital/message/service/BaseUserMsgService.java

@ -390,7 +390,7 @@ public class BaseUserMsgService extends BaseJpaService<BaseUserMessageDO, BaseUs
        map.put("relationCode",baseUserMessageDO.getRelationCode());
        map.put("relationType",baseUserMessageDO.getRelationType());
        map.put("status",baseUserMessageDO.getStatus());
        map.put("updateTime",DateUtil.dateToStrLong(DateUtil.strToDateLong(baseUserMessageDO.getUpdateUserName())));
        map.put("updateTime",DateUtil.dateToStrLong(baseUserMessageDO.getUpdateTime()));
        map.put("relationName",baseUserMessageDO.getRelationName());
        map.put("contentlist",contentlist);
        returnResult.add(map);

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

@ -60,5 +60,7 @@ public interface PrescriptionDao extends PagingAndSortingRepository<WlyyPrescrip
    List<WlyyPrescriptionDO> findByOutPatientIdList(String outpatientId);
    List<WlyyPrescriptionDO> findByDoctorAndCreateTimeAndRemark(String doctor,Date createTime,String remark);
    @Query("select a from WlyyPrescriptionDO a where a.checkStatus in (0,1,3) and a.createTime <?1 and a.status <30 and a.status>=0")
    List<WlyyPrescriptionDO> findListByCheckStatus(Date createTime);
}

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

@ -78,6 +78,7 @@ import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.wechat.WeixinMessagePushUtils;
import com.yihu.jw.utils.Pkis.PKIService_PortType;
import com.yihu.jw.utils.Pkis.PKIService_ServiceLocator;
import com.yihu.jw.utils.StringUtil;
import com.yihu.jw.utils.WebserviceUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.jw.wechat.dao.BasePatientWechatDao;
@ -1506,28 +1507,37 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                String id = (String) doctor.get("id");
                List<WlyyDoctorWorkTimeVO> times = findDoctorWorkTime(id, orgCode);
                doctor.put("workTime", times);
                String deptTyepCode = "6";
                List<BaseDoctorHospitalDO> depts = baseDoctorHospitalDao.findByDoctorCode(id);
                if (null!=depts&&depts.size()>0){
                    BaseDoctorHospitalDO baseDoctorHospitalDO = depts.get(0);
                    String deptcode =  baseDoctorHospitalDO.getDeptCode();
                    String hosptitalCode = baseDoctorHospitalDO.getOrgCode();
                    List<DictHospitalDeptDO> dictHospitalDeptDO = dictHospitalDeptDao.findByOrgCodeAndCode(hosptitalCode,deptcode);
                    if(null!=dictHospitalDeptDO&&dictHospitalDeptDO.size()>0){
                        deptTyepCode = dictHospitalDeptDO.get(0).getDeptTypeCode();
                String deptTyepCode = "";
                if ("xm_zsyy_wx".equalsIgnoreCase(wechatId)){
                    deptTyepCode = "6";
                    List<BaseDoctorHospitalDO> depts = baseDoctorHospitalDao.findByDoctorCode(id);
                    if (null!=depts&&depts.size()>0){
                        BaseDoctorHospitalDO baseDoctorHospitalDO = depts.get(0);
                        String deptcode =  baseDoctorHospitalDO.getDeptCode();
                        String hosptitalCode = baseDoctorHospitalDO.getOrgCode();
                        List<DictHospitalDeptDO> dictHospitalDeptDO = dictHospitalDeptDao.findByOrgCodeAndCode(hosptitalCode,deptcode);
                        if(null!=dictHospitalDeptDO&&dictHospitalDeptDO.size()>0){
                            if (StringUtils.isNotBlank(dictHospitalDeptDO.get(0).getDeptTypeCode())){
                                deptTyepCode = dictHospitalDeptDO.get(0).getDeptTypeCode();
                            }
                        }
                    }
                }
                String chargeTypeList = doctor.get("chargeType").toString();
                if (chargeType.contains(",")){
                    chargeTypeList = chargeType.replace(",","','");
                List<Map<String,Object>> chargeDictDOLists = new ArrayList<>();
                if (null!=doctor.get("chargeType")){
                    String chargeTypeList = doctor.get("chargeType").toString();
                    if (chargeType.contains(",")){
                        chargeTypeList = chargeType.replace(",","','");
                    }
                    String sqlCharge = "select charge_type as \"chargeType\",charge_name as \"chargeName\"," +
                            "req_fee  as \"reqFee\",dept_type_code as \"deptTypeCode\" " +
                            " from wlyy_charge_dict where 1=1";
                    sqlCharge+=" and charge_type in ( '"+chargeTypeList+"')";
                    if (StringUtils.isNoneBlank(deptTyepCode)){
                        sqlCharge+=" and dept_type_code in ( '"+deptTyepCode+"')";
                    }
                    chargeDictDOLists =  hibenateUtils.createSQLQuery(sqlCharge);
                }
                String sqlCharge = "select charge_type as \"chargeType\",charge_name as \"chargeName\"," +
                        "req_fee  as \"reqFee\",dept_type_code as \"deptTypeCode\" " +
                        " from wlyy_charge_dict where 1=1";
                sqlCharge+=" and charge_type in ( '"+chargeTypeList+"')";
                sqlCharge+=" and dept_type_code in ( '"+deptTyepCode+"')";
                List<Map<String,Object>> chargeDictDOLists =  hibenateUtils.createSQLQuery(sqlCharge);
                doctor.put("chargeTypeList",chargeDictDOLists);
            }
            if (StringUtils.isNotBlank(doctorCode)) {
@ -1578,7 +1588,6 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        return null;
    }
    /**
     * 查询医生列表带月份排班状态
     *
@ -3375,7 +3384,6 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
    public Map<String, Object> findDoctorInfo(String doctor, String withWork,String patient) {
        BaseDoctorDO doctorDO = baseDoctorDao.findById(doctor);
        Map<String, Object> rs = new HashedMap();
        if (doctorDO != null) {
            rs.put("doctor", doctor);
@ -3409,28 +3417,38 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            rs.put("popularity",doctorDO.getPopularity());
            rs.put("qrcode",doctorDO.getQrcode());
            //号别
            String deptTyepCode = "6";
            List<BaseDoctorHospitalDO> depts = baseDoctorHospitalDao.findByDoctorCode(doctor);
            if (null!=depts&&depts.size()>0){
                BaseDoctorHospitalDO baseDoctorHospitalDO = depts.get(0);
                String deptcode =  baseDoctorHospitalDO.getDeptCode();
                String hosptitalCode = baseDoctorHospitalDO.getOrgCode();
                List<DictHospitalDeptDO> dictHospitalDeptDO = dictHospitalDeptDao.findByOrgCodeAndCode(hosptitalCode,deptcode);
                if(null!=dictHospitalDeptDO&&dictHospitalDeptDO.size()>0){
                    deptTyepCode = dictHospitalDeptDO.get(0).getDeptTypeCode();
                }
            String deptTyepCode = "";
            if ("xm_zsyy_wx".equalsIgnoreCase(wechatId)){
                deptTyepCode = "6";
                List<BaseDoctorHospitalDO> depts = baseDoctorHospitalDao.findByDoctorCode(doctor);
                if (null!=depts&&depts.size()>0){
                    BaseDoctorHospitalDO baseDoctorHospitalDO = depts.get(0);
                    String deptcode =  baseDoctorHospitalDO.getDeptCode();
                    String hosptitalCode = baseDoctorHospitalDO.getOrgCode();
                    List<DictHospitalDeptDO> dictHospitalDeptDO = dictHospitalDeptDao.findByOrgCodeAndCode(hosptitalCode,deptcode);
                    if(null!=dictHospitalDeptDO&&dictHospitalDeptDO.size()>0){
                        if (StringUtils.isNotBlank(dictHospitalDeptDO.get(0).getDeptTypeCode())){
                            deptTyepCode = dictHospitalDeptDO.get(0).getDeptTypeCode();
                        }
                    }
                }
            }
            List<Map<String,Object>> chargeDictDOLists = new ArrayList<>();
            String chargeType = doctorDO.getChargeType();
            if (chargeType.contains(",")){
                chargeType = chargeType.replace(",","','");
            }
            String sqlCharge = "select charge_type as \"chargeType\",charge_name as \"chargeName\"," +
                    "req_fee  as \"reqFee\",dept_type_code as \"deptTypeCode\" " +
                    " from wlyy_charge_dict where 1=1";
            sqlCharge+=" and charge_type in ( '"+chargeType+"')";
            sqlCharge+=" and dept_type_code in ( '"+deptTyepCode+"')";
            List<Map<String,Object>> chargeDictDOLists =  hibenateUtils.createSQLQuery(sqlCharge);
            if (StringUtils.isNotBlank(chargeType)){
                if (chargeType.contains(",")){
                    chargeType = chargeType.replace(",","','");
                }
                String sqlCharge = "select charge_type as \"chargeType\",charge_name as \"chargeName\"," +
                        "req_fee  as \"reqFee\",dept_type_code as \"deptTypeCode\" " +
                        " from wlyy_charge_dict where 1=1";
                sqlCharge+=" and charge_type in ( '"+chargeType+"')";
                if (StringUtils.isNoneBlank(deptTyepCode)){
                    sqlCharge+=" and dept_type_code in ( '"+deptTyepCode+"')";
                }
                chargeDictDOLists =  hibenateUtils.createSQLQuery(sqlCharge);
            }
            rs.put("chargeTypeList",chargeDictDOLists);
            //机构科室信息
            List<BaseDoctorHospitalDO> hospitalDOs = baseDoctorHospitalDao.findByDoctorCode(doctorDO.getId());
@ -3666,28 +3684,38 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            rs.put("sex",doctorDO.getSex());
            rs.put("qrcode",doctorDO.getQrcode());
            //号别
            String deptTyepCode = "6";
            List<BaseDoctorHospitalDO> depts = baseDoctorHospitalDao.findByDoctorCode(doctor);
            if (null!=depts&&depts.size()>0){
                BaseDoctorHospitalDO baseDoctorHospitalDO = depts.get(0);
                String deptcode =  baseDoctorHospitalDO.getDeptCode();
                String hosptitalCode = baseDoctorHospitalDO.getOrgCode();
                List<DictHospitalDeptDO> dictHospitalDeptDO = dictHospitalDeptDao.findByOrgCodeAndCode(hosptitalCode,deptcode);
                if(null!=dictHospitalDeptDO&&dictHospitalDeptDO.size()>0){
                    deptTyepCode = dictHospitalDeptDO.get(0).getDeptTypeCode();
                }
            String deptTyepCode = "";
            if ("xm_zsyy_wx".equalsIgnoreCase(wechatId)){
                deptTyepCode = "6";
                List<BaseDoctorHospitalDO> depts = baseDoctorHospitalDao.findByDoctorCode(doctor);
                if (null!=depts&&depts.size()>0){
                    BaseDoctorHospitalDO baseDoctorHospitalDO = depts.get(0);
                    String deptcode =  baseDoctorHospitalDO.getDeptCode();
                    String hosptitalCode = baseDoctorHospitalDO.getOrgCode();
                    List<DictHospitalDeptDO> dictHospitalDeptDO = dictHospitalDeptDao.findByOrgCodeAndCode(hosptitalCode,deptcode);
                    if(null!=dictHospitalDeptDO&&dictHospitalDeptDO.size()>0){
                        if (StringUtils.isNotBlank(dictHospitalDeptDO.get(0).getDeptTypeCode())){
                            deptTyepCode = dictHospitalDeptDO.get(0).getDeptTypeCode();
                        }
                    }
                }
            }
            List<Map<String,Object>> chargeDictDOLists = new ArrayList<>();
            String chargeType = doctorDO.getChargeType();
            if (chargeType.contains(",")){
                chargeType = chargeType.replace(",","','");
            }
            String sqlCharge = "select charge_type as \"chargeType\",charge_name as \"chargeName\"," +
                    "req_fee  as \"reqFee\",dept_type_code as \"deptTypeCode\" " +
                    " from wlyy_charge_dict where 1=1";
            sqlCharge+=" and charge_type in ( '"+chargeType+"')";
            sqlCharge+=" and dept_type_code in ( '"+deptTyepCode+"')";
            List<Map<String,Object>> chargeDictDOLists =  hibenateUtils.createSQLQuery(sqlCharge);
            if (StringUtils.isNotBlank(chargeType)){
                if (chargeType.contains(",")){
                    chargeType = chargeType.replace(",","','");
                }
                String sqlCharge = "select charge_type as \"chargeType\",charge_name as \"chargeName\"," +
                        "req_fee  as \"reqFee\",dept_type_code as \"deptTypeCode\" " +
                        " from wlyy_charge_dict where 1=1";
                sqlCharge+=" and charge_type in ( '"+chargeType+"')";
                if(StringUtils.isNoneBlank(deptTyepCode)){
                    sqlCharge+=" and dept_type_code in ( '"+deptTyepCode+"')";
                }
                chargeDictDOLists =  hibenateUtils.createSQLQuery(sqlCharge);
            }
            rs.put("chargeTypeList",chargeDictDOLists);
            //机构科室信息
            List<BaseDoctorHospitalDO> hospitalDOs = baseDoctorHospitalDao.findByDoctorCode(doctorDO.getId());
@ -4956,7 +4984,6 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        if (pagesize <= 0) {
            pagesize = 10;
        }*/
      wechatId = "12";
        String sql = "SELECT " +
                " d.id AS \"id\", " +
                " d.photo AS \"photo\", " +
@ -5117,28 +5144,38 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        for (Map<String,Object> map:list){
            String doctor = map.get("id").toString();
            //号别
            String deptTyepCode = "6";
            List<BaseDoctorHospitalDO> depts = baseDoctorHospitalDao.findByDoctorCode(doctor);
            if (null!=depts&&depts.size()>0){
                BaseDoctorHospitalDO baseDoctorHospitalDO = depts.get(0);
                String deptcode =  baseDoctorHospitalDO.getDeptCode();
                String hosptitalCode = baseDoctorHospitalDO.getOrgCode();
                List<DictHospitalDeptDO> dictHospitalDeptDO = dictHospitalDeptDao.findByOrgCodeAndCode(hosptitalCode,deptcode);
                if(null!=dictHospitalDeptDO&&dictHospitalDeptDO.size()>0){
                    deptTyepCode = dictHospitalDeptDO.get(0).getDeptTypeCode();
                }
            String deptTyepCode = "";
            if ("xm_zsyy_wx".equalsIgnoreCase(wechatId)){
                deptTyepCode = "6";
                List<BaseDoctorHospitalDO> depts = baseDoctorHospitalDao.findByDoctorCode(doctor);
                if (null!=depts&&depts.size()>0){
                    BaseDoctorHospitalDO baseDoctorHospitalDO = depts.get(0);
                    String deptcode =  baseDoctorHospitalDO.getDeptCode();
                    String hosptitalCode = baseDoctorHospitalDO.getOrgCode();
                    List<DictHospitalDeptDO> dictHospitalDeptDO = dictHospitalDeptDao.findByOrgCodeAndCode(hosptitalCode,deptcode);
                    if(null!=dictHospitalDeptDO&&dictHospitalDeptDO.size()>0){
                        if (StringUtils.isNotBlank(dictHospitalDeptDO.get(0).getDeptTypeCode())){
                            deptTyepCode = dictHospitalDeptDO.get(0).getDeptTypeCode();
                        }
                    }
                }
            }
            String chargeType = map.get("chargeType").toString();
            if (chargeType.contains(",")){
                chargeType = chargeType.replace(",","','");
            List<Map<String,Object>> chargeDictDOLists = new ArrayList<>();
            if(null!=map.get("chargeType")){
                String chargeType = map.get("chargeType").toString();
                if (chargeType.contains(",")){
                    chargeType = chargeType.replace(",","','");
                }
                String sqlCharge = "select charge_type as \"chargeType\",charge_name as \"chargeName\"," +
                        "req_fee  as \"reqFee\",dept_type_code as \"deptTypeCode\" " +
                        " from wlyy_charge_dict where 1=1";
                sqlCharge+=" and charge_type in ( '"+chargeType+"')";
                if (StringUtils.isNoneBlank(deptTyepCode)){
                    sqlCharge+=" and dept_type_code in ( '"+deptTyepCode+"')";
                }
                chargeDictDOLists =  hibenateUtils.createSQLQuery(sqlCharge);
            }
            String sqlCharge = "select charge_type as \"chargeType\",charge_name as \"chargeName\"," +
                    "req_fee  as \"reqFee\",dept_type_code as \"deptTypeCode\" " +
                    " from wlyy_charge_dict where 1=1";
            sqlCharge+=" and charge_type in ( '"+chargeType+"')";
            sqlCharge+=" and dept_type_code in ( '"+deptTyepCode+"')";
            List<Map<String,Object>> chargeDictDOLists =  hibenateUtils.createSQLQuery(sqlCharge);
            map.put("chargeTypeList",chargeDictDOLists);
            //查询医生各项评价平均分
            String sqlscore = "SELECT " +
@ -8949,15 +8986,18 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                List<WlyyPrescriptionDiagnosisDO> wlyyPrescriptionDiagnosisDOs = prescriptionDiagnosisDao.findByPrescriptionId(prescriptionId,1);
                if (null!=wlyyPrescriptionDiagnosisDOs&&wlyyPrescriptionDiagnosisDOs.size()>0){
                    xzzxEntranceService.deleteCheckInputInfo(hisId,"0",prescriptionDO.getDoctor(),prescriptionDO.getPatientCode(),wlyyPrescriptionDiagnosisDOs);
                    if (StringUtils.isNotBlank(prescriptionDO.getRealOrder())){
                        xzzxEntranceService.deletePrescriptionToEntrance(prescriptionDO.getRealOrder());
                    }
                }
            }
            prescriptionDO.setStatus(-1);
            prescriptionDO.setCheckStatus(5);
            prescriptionDO.setCheckReason("作废处方");
            prescriptionDO.setCheckStatus(4);
            prescriptionDO.setCheckReason("已删除");
            prescriptionDao.save(prescriptionDO);
            return "作废成功";
            return "删除成功";
        }else {
            return "作废失败";
            return "删除失败";
        }
    }
}

+ 17 - 7
business/im-service/src/main/java/com/yihu/jw/im/service/ImService.java

@ -2226,17 +2226,21 @@ public class ImService {
					"left join wlyy_outpatient op on  a.relation_code = op.id " +
					"WHERE a.id=b.consult " +
					"AND op.patient=d.id ";
			if(status ==-1){
				sql +=" and op.status = -1 ";
			}//候诊中
			else if(status ==1){
				sql +=" and op.status = 0 ";
			}
		}
		if (org.apache.commons.lang.StringUtils.isNotBlank(doctor)){
			sql+=" AND b.doctor='"+doctor+"' ";
		}
		
		if(!StringUtils.isEmpty(title)){
			title="%"+title+"%";
			sql +=" and a.symptoms like '"+title+"'";
		}
		
            title="%"+title+"%";
            sql +=" and a.symptoms like '"+title+"'";
        }
		if(!StringUtils.isEmpty(start_time)){
			if("xm_ykyy_wx".equals(wxId)){
				if (flag){
@ -2273,7 +2277,8 @@ public class ImService {
				sql +=" and b.status = 0 ";
			}else if(status ==3 ){
				sql +=" and b.status = 1 ";
			}else{}
			}
			else{}
			
		}
		
@ -2427,7 +2432,12 @@ public class ImService {
					"left join wlyy_outpatient op on  a.relation_code = op.id " +
					"WHERE a.id=b.consult " +
					"AND b.patient=d.id ";
			if(status ==-1){
				sql +=" and op.status = -1 ";
			}//候诊中
			else if(status ==1){
				sql +=" and op.status = 0 ";
			}
		}
		if (org.apache.commons.lang.StringUtils.isNotBlank(doctor)){
			sql+=" AND b.doctor='"+doctor+"' ";

+ 25 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/doctor/BaseDoctorDO.java

@ -248,6 +248,31 @@ public class BaseDoctorDO extends UuidIdentityEntityWithOperator {
     * ca标识
     */
    private Integer caFlag;
    /**
     *身份验证秘钥
     */
    private String verifyCode;
    /**
     *眼科同医生id
     */
    private String yktDoctorId;
    @Column(name = "YKT_DOCTOR_ID")
    public String getYktDoctorId() {
        return yktDoctorId;
    }
    public void setYktDoctorId(String yktDoctorId) {
        this.yktDoctorId = yktDoctorId;
    }
    @Column(name = "verify_code")
    public String getVerifyCode() {
        return verifyCode;
    }
    public void setVerifyCode(String verifyCode) {
        this.verifyCode = verifyCode;
    }
    @Column(name = "popularity")
    public Integer getPopularity() {

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

@ -32,6 +32,7 @@ import com.yihu.utils.security.MD5;
import com.yihu.utils.security.RSAUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.collections.map.HashedMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -520,11 +521,12 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
    }
    //眼科医院短信验证码
    @RequestMapping(value = "/oauth/sendYKCaptcha", method = RequestMethod.GET)
        @RequestMapping(value = "/oauth/sendYKCaptcha", method = RequestMethod.GET)
    public ResponseEntity<Oauth2Envelop<Captcha>> sendYKCaptcha(@RequestParam Map<String, String> parameters) throws Exception {
        String client_id = parameters.get("client_id");
        String username = parameters.get("username");
        String type = parameters.get("type");
        String isDoctor = parameters.get("isDoctor");
        if (StringUtils.isEmpty(client_id)) {
            throw new InvalidRequestException("client_id");
        }
@ -535,31 +537,60 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        if (!wlyyRedisVerifyCodeService.isIntervalTimeout(client_id, username)) {
            throw new IllegalAccessException("SMS request frequency is too fast");
        }
        //发送短信获取验证码
        String captcha = wlyyRedisVerifyCodeService.getCodeNumber();
        ResultMsg result= null;
        if(StringUtils.isEmpty(type)){
            result =  ykyySMSService.ykyySendSMS(username,"您好,您的手机登录短信验证码是:"+captcha+",5分钟内有效。");
        }else if("1".equals(type)){
            result = ykyySMSService.ykyySendSMS(username,"您好,您的手机登录短信验证码是:"+captcha+",5分钟内有效。");
        }else if("2".equals(type)){
            result = ykyySMSService.ykyySendSMS(username,"您好,您正在进行找回密码操作,您的短信验证码是:"+captcha+",请勿将验证码告诉他人,5分钟内有效。");
        }
        if ("1".equalsIgnoreCase(isDoctor)){
            String res = ykyyService.getResetCode("4",username);
            String resltCode ="";
            String captcha = "";
            if (!StringUtils.isEmpty(res)){
                JSONObject jsonObject = JSONObject.parseObject(res);
                if ("10000".equalsIgnoreCase(jsonObject.getString("code"))){
                    captcha = jsonObject.getString("value");
                    resltCode = jsonObject.getString("code");
                }
            }
            if ("10000".equalsIgnoreCase(resltCode)) {
                Captcha _captcha = new Captcha();
                _captcha.setCode(captcha);
                _captcha.setExpiresIn(300);
                wlyyRedisVerifyCodeService.store(client_id, username, captcha, 300);
                Oauth2Envelop<Captcha> oauth2Envelop = new Oauth2Envelop<>("captcha", 200, _captcha);
                HttpHeaders headers = new HttpHeaders();
                headers.set("Cache-Control", "no-store");
                headers.set("Pragma", "no-cache");
                return new ResponseEntity<>(oauth2Envelop, headers, HttpStatus.OK);
            }
            throw new IllegalStateException("验证码发送失败!");
        if (result.isSuccess()) {
        }else {
            //发送短信获取验证码
            String captcha = wlyyRedisVerifyCodeService.getCodeNumber();
            ResultMsg result= null;
            if(StringUtils.isEmpty(type)){
                result =  ykyySMSService.ykyySendSMS(username,"您好,您的手机登录短信验证码是:"+captcha+",5分钟内有效。");
            }else if("1".equals(type)){
                result = ykyySMSService.ykyySendSMS(username,"您好,您的手机登录短信验证码是:"+captcha+",5分钟内有效。");
            }else if("2".equals(type)) {
                result = ykyySMSService.ykyySendSMS(username, "您好,您正在进行找回密码操作,您的短信验证码是:" + captcha + ",请勿将验证码告诉他人,5分钟内有效。");
             }
            if (result.isSuccess()) {
                Captcha _captcha = new Captcha();
                _captcha.setCode(captcha);
                _captcha.setExpiresIn(300);
                wlyyRedisVerifyCodeService.store(client_id, username, captcha, 300);
                Oauth2Envelop<Captcha> oauth2Envelop = new Oauth2Envelop<>("captcha", 200, _captcha);
                HttpHeaders headers = new HttpHeaders();
                headers.set("Cache-Control", "no-store");
                headers.set("Pragma", "no-cache");
                return new ResponseEntity<>(oauth2Envelop, headers, HttpStatus.OK);
            }
            throw new IllegalStateException("验证码发送失败!");
        }
            Captcha _captcha = new Captcha();
            _captcha.setCode(captcha);
            _captcha.setExpiresIn(300);
            wlyyRedisVerifyCodeService.store(client_id, username, captcha, 300);
            Oauth2Envelop<Captcha> oauth2Envelop = new Oauth2Envelop<>("captcha", 200, _captcha);
            HttpHeaders headers = new HttpHeaders();
            headers.set("Cache-Control", "no-store");
            headers.set("Pragma", "no-cache");
            return new ResponseEntity<>(oauth2Envelop, headers, HttpStatus.OK);
        }
        throw new IllegalStateException("验证码发送失败!");
    }
    /**
@ -1381,18 +1412,34 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        return ObjEnvelop.getError("手机号未注册!");
    }
    @RequestMapping(value = "/oauth/findDoctorPw", method = RequestMethod.POST)
    public Envelop findDoctorPw(String mobile,String client_id,String captcha,String pw){
        if (wlyyRedisVerifyCodeService.verification(client_id, mobile, captcha)) {
            //验证码正确
        } else {
            return ObjEnvelop.getError("验证码错误!");
        }
        String rs = registerService.updateDoctorPw(mobile,pw,wechatId);
        if("ok".equals(rs)){
            return ObjEnvelop.getSuccess("修改成功!");
        }
    public Envelop findDoctorPw(String mobile,String client_id,String captcha,String pw) throws Exception{
        if("xm_ykyy_wx".equalsIgnoreCase(wechatId)){
           String response =  ykyyService.ResetPwd(mobile,pw,captcha);
            if (org.apache.commons.lang3.StringUtils.isNoneBlank(response)){
                JSONObject object = JSONObject.parseObject(response);
                if (object.getString("code").equalsIgnoreCase("10000")){
                    return ObjEnvelop.getSuccess("修改成功!");
                }else {
                    return ObjEnvelop.getError("修改失败!");
                }
            }else {
                return ObjEnvelop.getError("修改失败!");
            }
        }else if ("xm_zsyy_wx".equalsIgnoreCase(wechatId)){
            if (wlyyRedisVerifyCodeService.verification(client_id, mobile, captcha)) {
                //验证码正确
            } else {
                return ObjEnvelop.getError("验证码错误!");
            }
            String rs = registerService.updateDoctorPw(mobile,pw,wechatId);
            if("ok".equals(rs)){
                return ObjEnvelop.getSuccess("修改成功!");
            }
        return ObjEnvelop.getError("手机号未注册!");
            return ObjEnvelop.getError("手机号未注册!");
        }else {
            return ObjEnvelop.getError("暂未开放");
        }
    }
    @RequestMapping(value = "/oauth/updateDoctorMoble", method = RequestMethod.POST)
@ -1619,6 +1666,20 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        }
        return ObjEnvelop.getError("手机号未注册!");
    }
    /*
     *眼科通修改密码发送的验证码
     */
    @RequestMapping(value = "/oauth/yktGetResetCode", method = RequestMethod.POST)
    public ObjEnvelop yktGetResetCode(@ApiParam(name = "loginid", value = "注册的电话号码", required = true)
                                      @RequestParam(value = "loginid",required = true)String loginid,
                                      @ApiParam(name = "type", value = "验证码类型 1、患者注册 2、患者找回密码 3、医生注册 4、医生找回密码", required = true)
                                      @RequestParam(value = "type",required = false)String type){
        try {
            return ObjEnvelop.getSuccess("ok",ykyyService.getResetCode(type,loginid));
        } catch (Exception e) {
            return ObjEnvelop.getError(e.getMessage());
        }
    }
    /**
@ -1663,6 +1724,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
            if (parameters.get("password") != null) {
                KeyPair keyPair = (KeyPair) httpSession.getAttribute("privateKey");
                String password = com.yihu.jw.security.utils.RSAUtils.decryptBase64(parameters.get("password"), keyPair);
                logger.info("password:"+password);
                String response = ykyyService.DoctorLogin(parameters.get("username"),password);
                if (!StringUtils.isEmpty(response)){
                    JSONObject object = JSONObject.parseObject(response);
@ -1674,10 +1736,12 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
                        JSONObject jsonObject = object.getJSONObject("value");
                        if (jsonObject!=null) {
                            String idCard = jsonObject.getString("idCard");
                            String verifyCode = jsonObject.getString("verifyCode");
                            String yktDoctorId= jsonObject.getString("id");
                            if (idCard==null||idCard==""){
                                logger.info("身份证为空");
                            }else {
                                ykyyService.updateYkyyDoctor(idCard);
                                ykyyService.updateYkyyDoctor(idCard,verifyCode,yktDoctorId);
                            }
                        }
                    }

+ 69 - 2
server/svr-authentication/src/main/java/com/yihu/jw/security/service/YkyyService.java

@ -26,9 +26,10 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
import java.util.Date;
import java.util.List;
import java.util.Map;
import static com.yihu.jw.util.common.PwdUtil.randomString;
@ -140,6 +141,68 @@ public class YkyyService {
        logger.info("眼科通验证码:"+response);
        return response;
    }
    /**
     * 获取眼科通修改密码验证码
     * @param type
     * @param phone
     * @return
     */
    public String getResetCode(String type,String phone) throws  Exception{
        String response="";
        String codeResponse = getVerificationReal(phone,type,"");
        String veryCode = "";
        if (StringUtils.isNoneBlank(codeResponse)){
            JSONObject jsonObject = JSONObject.parseObject(codeResponse);
            if ("10000".equalsIgnoreCase(jsonObject.getString("code"))){
                veryCode =  jsonObject.getString("value");
            }
        }
        String url = yktUrl1+"api/Doctor/GetVerificationCode";
        Map param = new HashMap();
        param.put("loginid",phone);
        param.put("type",type);
        param.put("VerificationReal",veryCode);
        logger.info("请求参数:"+param.toString());
        response = httpClientUtil.httpPost(url,param);
        logger.info("眼科通验证码:"+response);
        return response;
    }
    /**获取图形验证码
     *
     * @param loginid
     * @param type
     * @param IPAddress
     * @return
     */
    public String getVerificationReal(String loginid,String type,String IPAddress) throws  Exception{
        String response="";
        Map map = new HashMap();
        map.put("loginid",loginid);
        map.put("type",type);
        map.put("IPAddress",IPAddress);
        String url = yktUrl1+"api/Share/GetVerificationReal";
        response = httpClientUtil.httpPost(url,map);
        logger.info("修改眼科同密码后的信息:"+response);
        return response;
    }
    /**
     * 忘记密码修改
     * @param loginid
     * @param password
     * @return
     */
    public String ResetPwd(String loginid,String password,String verCode) throws  Exception{
        String response="";
        String url = yktUrl1+"api/Doctor/ResetPassword";
        Map param = new HashMap();
        param.put("loginid",loginid);
        param.put("password",password);
        param.put("verCode",verCode);
        logger.info("请求参数:"+param.toString());
        response = httpClientUtil.httpPost(url,param);
        logger.info("眼科通验证码:"+response);
        return response;
    }
    /**
     * 增加家庭成员
@ -340,7 +403,7 @@ public class YkyyService {
    }
    public String updateYkyyDoctor(String idCard)throws Exception{
    public String updateYkyyDoctor(String idCard,String verifyCode,String yktDoctorId)throws Exception{
        String sql ="select y.code AS \"code\",y.name AS \"name\",y.expertise AS \"expertise\",y.introduce AS \"introduce\",y.mobile AS \"mobile\",y.idCard AS \"idcard\",y.jobtitlecode AS \"jobTitleCode\",y.jobTitleName AS \"jobTitleName\",y.dept AS \"dept\",y.deptName AS \"deptName\" from v_Hlw_Ysxx y where y.idcard is not null";
        sql +=" and y.idcard ='"+idCard+"' ";
        Map<String,Object> params = new HashedMap();
@ -374,6 +437,8 @@ public class YkyyService {
                            doctor.setJobTitleCode(doctorJson.getString("jobtitlecode"));
                            doctor.setJobTitleName(doctorJson.getString("jobTitleName"));
                            doctor.setVerifyCode(verifyCode);
                            doctor.setYktDoctorId(yktDoctorId);
//                            doctor.setExpertise(doctorJson.getString("expertise"));
//                            doctor.setIntroduce(doctorJson.getString("introduce"));
//                            doctor.setMobile(doctorJson.getString("mobile"));
@ -406,6 +471,8 @@ public class YkyyService {
                            doctor.setTownName("思明区");
                            doctor.setCityCode("350200");
                            doctor.setCityName("厦门市");
                            doctor.setVerifyCode(verifyCode);
                            doctor.setYktDoctorId(yktDoctorId);
//                            doctor.setExpertise(doctorJson.getString("expertise"));
//                            doctor.setIntroduce(doctorJson.getString("introduce"));
//                            doctor.setMobile(doctorJson.getString("mobile"));

+ 30 - 0
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/job/PrescriptionAutoDeleteJob.java

@ -0,0 +1,30 @@
package com.yihu.jw.job;
import com.yihu.jw.service.channel.PrescriptionDeleteService;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Trigger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
public class PrescriptionAutoDeleteJob implements Job {
    private static final Logger logger = LoggerFactory.getLogger(PrescriptionAutoDeleteJob.class);
    @Autowired
    private PrescriptionDeleteService prescriptionDeleteService;
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        logger.info("START========PrescriptionAutoDeleteJob========");
        try {
            Trigger trigger =jobExecutionContext.getTrigger();
            System.out.println("执行时间为"+trigger.getNextFireTime());
            prescriptionDeleteService.deletePrescription();
            logger.info("END========PrescriptionAutoDeleteJob========");
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("END===ERROE===PrescriptionAutoDeleteJob,message:"+e.getMessage());
        }
    }
}

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

@ -0,0 +1,69 @@
package com.yihu.jw.service.channel;
import com.yihu.jw.entity.hospital.prescription.WlyyPrescriptionDO;
import com.yihu.jw.entity.hospital.prescription.WlyyPrescriptionDiagnosisDO;
import com.yihu.jw.hospital.prescription.dao.PrescriptionDao;
import com.yihu.jw.hospital.prescription.dao.PrescriptionDiagnosisDao;
import com.yihu.jw.hospital.prescription.service.entrance.XzzxEntranceService;
import com.yihu.jw.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@Component
@Transactional
public class PrescriptionDeleteService {
    private static Logger logger = LoggerFactory.getLogger(PrescriptionDeleteService.class);
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Value("${wechat.ids}")
    private String wechatId;
    @Value("${hlwyyEntrance.url}")
    private String hlwyyEntranceUrl;
    @Autowired
    private PrescriptionDao prescriptionDao;
    @Autowired
    private XzzxEntranceService xzzxEntranceService;
    @Autowired
    private PrescriptionDiagnosisDao prescriptionDiagnosisDao;
    //定时作废处方
    public void deletePrescription() throws Exception{
        Date d = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String s = sdf.format(d);
        List<WlyyPrescriptionDO> prescriptionDOS = prescriptionDao.findListByCheckStatus(DateUtil.strToDate(s+" 00:00:00"));
        if (null!=prescriptionDOS&&prescriptionDOS.size()>0){
            for (WlyyPrescriptionDO prescriptionDO:prescriptionDOS){
                logger.info("处方删除时间满足条件");
                String hisId = prescriptionDO.getHisId();
                if("xm_xzzx_wx".equalsIgnoreCase(wechatId)){
                    List<WlyyPrescriptionDiagnosisDO> wlyyPrescriptionDiagnosisDOs = prescriptionDiagnosisDao.findByPrescriptionId(prescriptionDO.getId(),1);
                    if (null!=wlyyPrescriptionDiagnosisDOs&&wlyyPrescriptionDiagnosisDOs.size()>0){
                        xzzxEntranceService.deleteCheckInputInfo(hisId,"0",prescriptionDO.getDoctor(),prescriptionDO.getPatientCode(),wlyyPrescriptionDiagnosisDOs);
                        if (StringUtils.isNotBlank(prescriptionDO.getRealOrder())){
                            xzzxEntranceService.deletePrescriptionToEntrance(prescriptionDO.getRealOrder());
                        }
                    }
                }
                prescriptionDO.setStatus(-1);
                prescriptionDO.setCheckStatus(4);
                prescriptionDO.setCheckReason("已删除");
                logger.info("处方:"+prescriptionDO.getId()+"已删除");
                prescriptionDao.save(prescriptionDO);
            }
        }
    }
}

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

@ -1,5 +1,7 @@
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.WlyyHospitalWaitingRoomDO;
import com.yihu.jw.entity.hospital.doctor.WlyyPatientRegisterTimeDO;
@ -16,6 +18,8 @@ import com.yihu.jw.hospital.prescription.dao.PrescriptionInfoDao;
import com.yihu.jw.hospital.prescription.service.PrescriptionLogService;
import com.yihu.jw.hospital.prescription.service.PrescriptionService;
import com.yihu.jw.hospital.ykyy.service.YkyyService;
import com.yihu.jw.im.dao.ConsultDao;
import com.yihu.jw.im.dao.ConsultTeamDao;
import com.yihu.jw.im.service.ImService;
import com.yihu.jw.order.BusinessOrderService;
import com.yihu.jw.order.dao.BusinessOrderDao;
@ -72,6 +76,10 @@ public class TimeoutOverDueService {
    private PrescriptionService prescriptionService;
    @Autowired
    private SystemMessageService systemMessageService;
    @Autowired
    private ConsultTeamDao consultTeamDao;
    @Autowired
    private ConsultDao consultDao;
    /**
     *  取消未结束门诊
     */
@ -89,6 +97,14 @@ public class TimeoutOverDueService {
                        if (currentTime-outpatientTime>24*60*60*1000){
                            logger.info("时间满足条件");
                            String outPatientId = wlyyOutpatientDO.getId();
                            ConsultDo consultDo = consultDao.findByRelationCode(outPatientId);
                            if (null!=consultDo){
                                ConsultTeamDo consultTeamDo = consultTeamDao.findByConsult(consultDo.getId());
                                if (null!=consultTeamDo){
                                    consultTeamDo.setStatus(-1);
                                    consultTeamDao.save(consultTeamDo);
                                }
                            }
                            //判断医生是否接诊
                            List<WlyyHospitalWaitingRoomDO> roomDOs = hospitalWaitingRoomDao.findByOutpatientId(outPatientId);
                            if (roomDOs != null && roomDOs.size() > 0) {

+ 12 - 4
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/web/quota/JobController.java

@ -15,10 +15,7 @@ import com.yihu.jw.repository.job.QuartzJobConfigDao;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.service.channel.PrescriptionStatusUpdateService;
import com.yihu.jw.service.quota.JobService;
import com.yihu.jw.util.AutoTimeOutRemind;
import com.yihu.jw.util.OverdueJob;
import com.yihu.jw.util.SystemConf;
import com.yihu.jw.util.TimeoutOverDueJob;
import com.yihu.jw.util.*;
import com.yihu.jw.web.BaseController;
import com.yihu.jw.wechat.service.WxTemplateService;
import io.swagger.annotations.Api;
@ -200,6 +197,17 @@ public class JobController extends BaseController {
                        logger.info("CSTXJOB  job exist");
                    }
                    break;
                case "prescription_auto_delete_job" :
                    //互联网医院 监管平台上报
                    if (!quartzHelper.isExistJob("prescription_auto_delete_job")) {
                        String trigger = SystemConf.getInstance().getSystemProperties().getProperty("prescription_auto_delete_job");
                        quartzHelper.addJob(PrescriptionAutoDeleteJob.class, trigger, "prescription_auto_delete_job", new HashMap<String, Object>());
                        logger.info("prescription_auto_delete_job  job success");
                    } else {
                        logger.info("prescription_auto_delete_job  job exist");
                    }
                    break;
                default :
            }

+ 2 - 0
svr/svr-internet-hospital-job/src/main/resources/system.properties

@ -4,6 +4,8 @@ prescriptionStatus_update_job=0 */2 * * * ?
# 门诊记录过期job,每天1 点触发
prescription_overdue_job=0 0 2 * * ?
# 0 */1 * * * ?
prescription_auto_delete_job = 0 30 0 ? * *
#每天13 点触发
data_upload_job=0 0 2 * * ?

+ 2 - 2
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/DoctorConsultEndpoint.java

@ -677,9 +677,9 @@ public class DoctorConsultEndpoint extends EnvelopRestEndpoint {
					if (consultDo!=null){
						int resutl = imService.finish(consultDo.getId(),doctor,2);
						if (resutl!=-1){
							logger.info("结束咨询成功!");
						}
						logger.info("结束咨询成功!");
					}
				}
					String immsg = imService.sendOutPatientCancle(patientName,patientCode,doctor,cancelRemark,cancelValue,outPatientId);
					System.out.println("发送拒绝接诊消息成功:"+immsg);
				}

+ 1 - 1
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/service/consult/QrcodeService.java

@ -213,7 +213,7 @@ public class QrcodeService {
            e.printStackTrace();
            System.out.println(e.getMessage());
        }
        return content;
        return null;
    }
}