LAPTOP-KB9HII50\70708 2 lat temu
rodzic
commit
6bb5a2b925
20 zmienionych plików z 1996 dodań i 202 usunięć
  1. 37 0
      business/base-service/src/main/java/com/yihu/jw/healthUpload/dao/BasePatientHealthUploadDao.java
  2. 5 0
      business/base-service/src/main/java/com/yihu/jw/healthUpload/dao/HealthReportingFrequencyDao.java
  3. 35 43
      business/base-service/src/main/java/com/yihu/jw/healthUpload/service/BaseDoctorHealthUploadService.java
  4. 948 0
      business/base-service/src/main/java/com/yihu/jw/healthUpload/service/BasePatientHealthUploadService.java
  5. 8 0
      business/base-service/src/main/java/com/yihu/jw/inpatient/dao/BaseInpatientRegistrationDao.java
  6. 14 0
      business/base-service/src/main/java/com/yihu/jw/inpatient/service/BaseInpatientRegistrationService.java
  7. 2 0
      business/base-service/src/main/java/com/yihu/jw/nurse/dao/BaseNursingCardDao.java
  8. 88 11
      business/base-service/src/main/java/com/yihu/jw/nurse/service/BaseNursingCardService.java
  9. 1 1
      common/common-entity/src/main/java/com/yihu/jw/entity/base/inpatient/BaseInpatientRegistrationDO.java
  10. 16 16
      common/common-entity/src/main/java/com/yihu/jw/entity/base/menu/BaseAppMenu.java
  11. 70 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/nurse/BaseNursingCardDO.java
  12. 0 9
      common/common-entity/src/main/java/com/yihu/jw/entity/healthUpload/BaseDoctorHealthUploadDO.java
  13. 565 0
      common/common-entity/src/main/java/com/yihu/jw/entity/healthUpload/BasePatientHealthUploadDO.java
  14. 20 0
      common/common-util/src/main/java/com/yihu/jw/util/date/DateUtil.java
  15. 4 4
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/menu/BaseAppMenuDao.java
  16. 8 19
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/menu/BaseAppMenuEndPoint.java
  17. 10 10
      svr/svr-base/src/main/java/com/yihu/jw/base/service/menu/BaseAppMenuService.java
  18. 68 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/healthUpload/PatientHealthUploadPoint.java
  19. 42 34
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/nurse/NursingCardEndpoint.java
  20. 55 55
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/patient/PatientNoLoginEndPoint.java

+ 37 - 0
business/base-service/src/main/java/com/yihu/jw/healthUpload/dao/BasePatientHealthUploadDao.java

@ -0,0 +1,37 @@
package com.yihu.jw.healthUpload.dao;
import com.yihu.jw.entity.healthUpload.BasePatientHealthUploadDO;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import java.util.Date;
import java.util.List;
/**
 * Created by yeshijie on 2022/12/6.
 */
public interface BasePatientHealthUploadDao  extends JpaRepository<BasePatientHealthUploadDO, String>,
        JpaSpecificationExecutor<BasePatientHealthUploadDO> {
    @Query(value = "select d.* from base_patient_health_upload d where d.patient_id = ?1 order by d.create_time desc limit 1",nativeQuery = true)
    BasePatientHealthUploadDO findByPatientIdRecently(String patientId);
    @Query("from BasePatientHealthUploadDO d where d.patientId = ?1 ")
    List<BasePatientHealthUploadDO> findByPatientId(String patientId);
    @Query("from BasePatientHealthUploadDO d where d.patientId = ?1 and d.consumer= ?2 order by d.createTime desc")
    List<BasePatientHealthUploadDO> findByPatientIdAndConsumer(String patientId,String consumer);
    @Query("select a from BasePatientHealthUploadDO a where a.patientId=?1 order by a.createTime desc")
    List<BasePatientHealthUploadDO> selectHealthUploadInfoByPatientId(String patientId, Pageable pageRequest);
    @Query("select a from BasePatientHealthUploadDO a where a.patientId=?1 and a.createTime>=?2 and a.createTime<=?3 order by a.createTime desc")
    List<BasePatientHealthUploadDO> selectHealthUploadInfoByPatientIdAndDate(String patientId, Date startDate, Date endDate, Pageable pageRequest);
    @Query("select a from BasePatientHealthUploadDO a where a.patientId=?1 and a.createTime>=?2 and a.createTime<=?3 order by a.createTime desc")
    List<BasePatientHealthUploadDO> selectHealthUploadInfoByPatientIdAndStartAndEnd(String patientId, Date startDate,Date endDate);
}

+ 5 - 0
business/base-service/src/main/java/com/yihu/jw/healthUpload/dao/HealthReportingFrequencyDao.java

@ -3,6 +3,9 @@ package com.yihu.jw.healthUpload.dao;
import com.yihu.jw.entity.healthUpload.HealthReportingFrequencyDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
/**
 * Created by yeshijie on 2022/11/17.
@ -10,4 +13,6 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
public interface HealthReportingFrequencyDao  extends JpaRepository<HealthReportingFrequencyDO, String>,
        JpaSpecificationExecutor<HealthReportingFrequencyDO> {
    @Query("from HealthReportingFrequencyDO where type = ?1 order by  createTime desc ")
    List<HealthReportingFrequencyDO> findByType(Integer type);
}

+ 35 - 43
business/base-service/src/main/java/com/yihu/jw/healthUpload/service/BaseDoctorHealthUploadService.java

@ -17,7 +17,6 @@ import com.yihu.jw.healthUpload.dao.BaseDoctorMemberDao;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.message.service.WxMessageUtil;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.util.common.PwdUtil;
import com.yihu.jw.util.date.DateUtil;
@ -48,8 +47,6 @@ public class BaseDoctorHealthUploadService extends BaseJpaService<BaseDoctorHeal
    @Autowired
    private BaseDoctorDao baseDoctorDao;
    @Autowired
    private BasePatientDao patientDao;
    @Autowired
    private BaseDoctorHealthUploadDao baseDoctorHealthUploadDao;
    @Autowired
    private BaseDoctorHospitalDao baseDoctorHospitalDao;
@ -161,7 +158,6 @@ public class BaseDoctorHealthUploadService extends BaseJpaService<BaseDoctorHeal
    /**
     * 删除某个成员
     *
     * @param id 成员id
     * @return
     */
@ -180,54 +176,50 @@ public class BaseDoctorHealthUploadService extends BaseJpaService<BaseDoctorHeal
    public BaseDoctorHealthUploadDO createHealthUploadInfo(BaseDoctorHealthUploadDO baseDoctorHealthUploadDO) {
        baseDoctorHealthUploadDO.setCreateTime(new Date());
        baseDoctorHealthUploadDO = baseDoctorHealthUploadDao.save(baseDoctorHealthUploadDO);
        if(baseDoctorHealthUploadDO.getUserTpye()==1){
            //医生
            List<BaseDoctorHospitalDO> doctorHospitalDOS = baseDoctorHospitalDao.findByDoctorCode(baseDoctorHealthUploadDO.getDoctorId());
            try {
                if (baseDoctorHealthUploadDO.getHealthCode() == 2 || baseDoctorHealthUploadDO.getHealthCode() == 3 || Double.parseDouble(baseDoctorHealthUploadDO.getTemperature()) >= 37.3
                        || baseDoctorHealthUploadDO.getIsSymptoms() == 1 || baseDoctorHealthUploadDO.getIsEpidemic() == 1) {
                    List<BaseDoctorRoleDO> roleDOS = doctorRoleDao.findByRoleCode("admin");
                    for (BaseDoctorRoleDO roleDO : roleDOS) {
                        BaseDoctorDO doctorDO = baseDoctorDao.findByIdAndDel(roleDO.getDoctorCode());
                        if (doctorDO != null) {
                            WlyyHospitalSysDictDO hospitalSysDictDO  = hospitalSysDictDao.findById("isYichangRemind").orElse(null);
                            if (hospitalSysDictDO!=null){
                                String value = hospitalSysDictDO.getDictValue();
                                if (StringUtils.isNoneBlank(value)){
                                    JSONObject object = JSONObject.parseObject(value);
                                    String close = object.getString("close");
                                    String time = object.getString("time");
                                    String count =object.getString("count");
                                    if (!close.equalsIgnoreCase("1")){
                                        String startEnd = DateUtil.getPreTime(DateUtil.getStringDate(),time);
                                        String sql = "select count(1) as total from wx_push_log where create_time >='"+startEnd+"' ";
                                        Map<String,Object> map = jdbcTemplate.queryForMap(sql);
                                        Integer total = 0;
                                        if (map!=null){
                                            if (map.get("total")!=null){
                                                total = Integer.parseInt(map.get("total").toString());
                                            }
        List<BaseDoctorHospitalDO> doctorHospitalDOS = baseDoctorHospitalDao.findByDoctorCode(baseDoctorHealthUploadDO.getDoctorId());
        try {
            if (baseDoctorHealthUploadDO.getHealthCode() == 2 || baseDoctorHealthUploadDO.getHealthCode() == 3 || Double.parseDouble(baseDoctorHealthUploadDO.getTemperature()) >= 37.3
                    || baseDoctorHealthUploadDO.getIsSymptoms() == 1 || baseDoctorHealthUploadDO.getIsEpidemic() == 1) {
                List<BaseDoctorRoleDO> roleDOS = doctorRoleDao.findByRoleCode("admin");
                for (BaseDoctorRoleDO roleDO : roleDOS) {
                    BaseDoctorDO doctorDO = baseDoctorDao.findByIdAndDel(roleDO.getDoctorCode());
                    if (doctorDO != null) {
                        WlyyHospitalSysDictDO hospitalSysDictDO  = hospitalSysDictDao.findById("isYichangRemind").orElse(null);
                        if (hospitalSysDictDO!=null){
                            String value = hospitalSysDictDO.getDictValue();
                            if (StringUtils.isNoneBlank(value)){
                                JSONObject object = JSONObject.parseObject(value);
                                String close = object.getString("close");
                                String time = object.getString("time");
                                String count =object.getString("count");
                                if (!close.equalsIgnoreCase("1")){
                                    String startEnd = DateUtil.getPreTime(DateUtil.getStringDate(),time);
                                    String sql = "select count(1) as total from wx_push_log where create_time >='"+startEnd+"' ";
                                    Map<String,Object> map = jdbcTemplate.queryForMap(sql);
                                    Integer total = 0;
                                    if (map!=null){
                                        if (map.get("total")!=null){
                                            total = Integer.parseInt(map.get("total").toString());
                                        }
                                        logger.info("startEnd:"+startEnd+total);
                                        if (StringUtils.isNoneBlank(count)){
                                            if (total<Integer.parseInt(count)){
                                                wxMessageUtil.sendHealthUploadWxTemplage(doctorDO,doctorHospitalDOS,baseDoctorHealthUploadDO);
                                            }
                                    }
                                    logger.info("startEnd:"+startEnd+total);
                                    if (StringUtils.isNoneBlank(count)){
                                        if (total<Integer.parseInt(count)){
                                            wxMessageUtil.sendHealthUploadWxTemplage(doctorDO,doctorHospitalDOS,baseDoctorHealthUploadDO);
                                        }
                                    }
                                }
                            }else {
                                wxMessageUtil.sendHealthUploadWxTemplage(doctorDO,doctorHospitalDOS,baseDoctorHealthUploadDO);
                            }
                        }else {
                            wxMessageUtil.sendHealthUploadWxTemplage(doctorDO,doctorHospitalDOS,baseDoctorHealthUploadDO);
                        }
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }else {
            //居民 暂无提醒需求
        } catch (Exception e) {
            e.printStackTrace();
        }
        return baseDoctorHealthUploadDO;

+ 948 - 0
business/base-service/src/main/java/com/yihu/jw/healthUpload/service/BasePatientHealthUploadService.java

@ -0,0 +1,948 @@
package com.yihu.jw.healthUpload.service;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.dict.dao.DictHospitalDeptDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.entity.healthUpload.BasePatientHealthUploadDO;
import com.yihu.jw.entity.healthUpload.HealthReportingFrequencyDO;
import com.yihu.jw.healthUpload.dao.BaseDoctorMemberDao;
import com.yihu.jw.healthUpload.dao.BasePatientHealthUploadDao;
import com.yihu.jw.healthUpload.dao.HealthReportingFrequencyDao;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.message.service.WxMessageUtil;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import org.apache.commons.collections.map.HashedMap;
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.data.domain.PageRequest;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.transaction.Transactional;
import java.util.*;
@Service
@Transactional
public class BasePatientHealthUploadService extends BaseJpaService<BasePatientHealthUploadDO, BasePatientHealthUploadDao> {
    private static Logger logger = LoggerFactory.getLogger(BasePatientHealthUploadService.class);
    @Autowired
    private BaseDoctorMemberDao doctorMemberDao;
    @Autowired
    private BasePatientDao patientDao;
    @Autowired
    private BasePatientHealthUploadDao basePatientHealthUploadDao;
    @Autowired
    private BaseDoctorHospitalDao baseDoctorHospitalDao;
    @Autowired
    private DictHospitalDeptDao dictHospitalDeptDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    @Value("${wechat.id}")
    private String wechatId;
    @Autowired
    private WlyyHospitalSysDictDao hospitalSysDictDao;
    @Resource
    private WxMessageUtil wxMessageUtil;
    @Resource
    private HealthReportingFrequencyDao healthReportingFrequencyDao;
    /**
     * 判断居民是否上传健康上报(住院陪护)
     * @param patient
     */
    public boolean isUploadType3(String patient){
        //查找最近一次核酸记录
        BasePatientHealthUploadDO uploadDO =  basePatientHealthUploadDao.findByPatientIdRecently(patient);
        if(uploadDO==null){
            return false;
        }
        List<HealthReportingFrequencyDO> frequencyDOS = healthReportingFrequencyDao.findByType(3);
        if(frequencyDOS.size()>0){
            //计算是否上传
            HealthReportingFrequencyDO frequencyDO = frequencyDOS.get(0);
            if(frequencyDO.getDay().equals(frequencyDO.getChecks())){
                // 1天1检 直接判断今天是否上传
                return DateUtil.getStringDateShort().compareTo(DateUtil.dateToStrShort(uploadDO.getCreateTime()))==0;
            }else {
                Double seconds = Double.parseDouble(frequencyDO.getDay())/Double.parseDouble(frequencyDO.getChecks())*24*60*60;
                long difSeconds = seconds.longValue() - DateUtil.getDifferenceOfSeconds(new Date(),uploadDO.getCreateTime());
                return difSeconds>0;
            }
        }
        return false;
    }
    public static void main(String[] args) {
        String date = "2022-12-06 12:25:20";
        Date d = DateUtil.strToDate(date);
        System.out.println(DateUtil.getStringDateShort().compareTo(DateUtil.dateToStrShort(d)));
    }
    public MixEnvelop selectHealthUploadInfoByPatientId(String patientId, String startDate, String endDate, Integer page, Integer pageSize) {
        PageRequest pageRequest = PageRequest.of(page - 1, pageSize);
        MixEnvelop mixEnvelop = new MixEnvelop();
        List<BasePatientHealthUploadDO> list = new ArrayList<>();
        if (StringUtils.isNoneBlank(startDate)) {
            Date startTime = DateUtil.strToDateLong(startDate);
            Date endTime = DateUtil.strToDateLong(endDate);
            list = basePatientHealthUploadDao.selectHealthUploadInfoByPatientIdAndDate(patientId, startTime, endTime, pageRequest);
        } else {
            list = basePatientHealthUploadDao.selectHealthUploadInfoByPatientId(patientId, pageRequest);
        }
        mixEnvelop.setCurrPage(page);
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setTotalCount(list == null ? 0 : list.size());
        return mixEnvelop;
    }
    
    /**
     * 提交健康信息
     * 健康信息实体类
     * @return
     */
    public BasePatientHealthUploadDO createHealthUploadInfo(BasePatientHealthUploadDO basePatientHealthUploadDO) {
        basePatientHealthUploadDO.setCreateTime(new Date());
        basePatientHealthUploadDO = basePatientHealthUploadDao.save(basePatientHealthUploadDO);
        return basePatientHealthUploadDO;
    }
    public BasePatientHealthUploadDO selectHealthInfoById(String id) {
        BasePatientHealthUploadDO basePatientHealthUploadDO = basePatientHealthUploadDao.findById(id).orElse(null);
        return basePatientHealthUploadDO;
    }
    /**
     * 查下最新一次记录
     * @return
     */
    public BasePatientHealthUploadDO selectRecordByPatientIdAndConsumer(String patientId, String consumer) {
        BasePatientHealthUploadDO basePatientHealthUploadDO = null;
        List<BasePatientHealthUploadDO> patientHealthUploadDOList = basePatientHealthUploadDao.findByPatientIdAndConsumer(patientId, consumer);
        if (patientHealthUploadDOList != null && patientHealthUploadDOList.size() != 0) {
            basePatientHealthUploadDO = patientHealthUploadDOList.get(0);
        }
        return basePatientHealthUploadDO;
    }
    /**
     *
     * @param orgCode
     * @param dept
     * @param doctorCode
     * @param key
     * @param flag 是否异常1是0否
     * @return
     */
    public List<Map<String, Object>> findDoctorByHospitalAndDept(String orgCode, String dept, String doctorCode,String key, Integer flag) {
        String sql = "SELECT " +
                " d.id AS \"id\", " +
                " d.photo AS \"photo\", " +
                " d.name AS \"name\", " +
                " d.expertise AS \"expertise\"," +
                " d.introduce AS \"introduce\"," +
                " d.job_title_code AS \"jobTitleCode\", " +
                " d.job_title_name AS \"jobTitleName\"," +
                " d.charge_type AS \"chargeType\"," +
                " d.outpatient_type AS \"outpatientType\"," +
                " d.consult_status AS \"consultStatus\"," +
                " h.dept_code AS \"deptCode\","+
                " h.dept_name AS \"deptName\","+
                " h.org_code AS \"orgCode\","+
                " h.org_name AS \"orgName\","+
                " t.photo AS \"hosptialphoto\","+
                " d.id_type AS \"idType\","+
                " d.id_card_type AS \"idCardType\" "+
                " FROM " +
                " base_doctor d " +
                " JOIN base_doctor_hospital h ON h.doctor_code = d.id " +
                " left join base_org t on t.id = h.org_code" +
                " WHERE  " +
                " 1=1 and d.del=1 ";
        Map<String, Object> params = new HashedMap();
        if (StringUtils.isNotBlank(dept)) {
            sql += " AND h.dept_code = '" + dept + "'";
        }
        if (StringUtils.isNotBlank(orgCode)) {
            sql += " AND h.org_code = '" + orgCode + "'";
        }
        if (StringUtils.isNotBlank(key)) {
            sql += " AND (h.dept_name like '%" + key + "%' OR d.name like '%" + key + "%' OR d.expertise like '%" + key + "%') ";
        }
        List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql, params);
        for (Map<String,Object> map:list){
            String id = map.get("id").toString();
            Date startTime = DateUtil.strToDateLong(DateUtil.getStringDateShort()+" 00:00:00");
            Date endTime = DateUtil.strToDateLong(DateUtil.getStringDateShort()+" 23:59:59");
            List<BasePatientHealthUploadDO> healthUploadDOS = basePatientHealthUploadDao.selectHealthUploadInfoByPatientIdAndStartAndEnd(id,startTime,endTime);
            if (healthUploadDOS!=null&&healthUploadDOS.size()!=0){
                BasePatientHealthUploadDO healthUploadDO = healthUploadDOS.get(0);
                String healthStateName = "";
                if (healthUploadDO.getHealthCode()==2 ||healthUploadDO.getHealthCode()==3||Double.parseDouble(healthUploadDO.getTemperature())>=37.3
                        || healthUploadDO.getIsSymptoms()==1 || healthUploadDO.getIsEpidemic()==1) {
                    healthStateName = "异常";
                } else {
                    healthStateName = "正常";
                }
                map.put("healthStateName",healthStateName);
                map.put("healthUpload",healthUploadDO);
            }else {
                map.put("healthUpload",null);
            }
        }
        if (list != null && list.size() > 0 && StringUtils.isNotBlank(doctorCode)) {
            //排序
            for (int i = 0; i < list.size(); i++) {
                String id = (String) list.get(i).get("id");
                if (doctorCode.equals(id)) {
                    Collections.swap(list, 0, i);
                }
            }
        }
        return list;
    }
    /**
     * 首页头部统计
     *
     * @param dept
     * @param level  1院级管理员,2科室管理员
     * @return
     */
    public JSONObject selectIndexHeader(String dept, int level) {
        JSONObject object = new JSONObject();
        String day = "0";
        String doctorSql = " select COUNT(1) as \"total\" from base_doctor d where d.del=1 ";
        Integer total = 0;//总人次
        if (level==2){
            doctorSql +=" and d.id IN (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 ) ";
        }
        Map<String, Object> map = jdbcTemplate.queryForMap(doctorSql);
        String doctorTotal = "";
        if (map != null) {
            doctorTotal = map.get("total").toString();
        }
        if (StringUtils.isNoneBlank(doctorTotal)) {
            //总人次
            if (!day.equalsIgnoreCase("0")) {
                total = Integer.parseInt(doctorTotal) * Integer.parseInt(day);
            } else {
                total = Integer.parseInt(doctorTotal);
            }
        }
        String sql = "SELECT\n" +
                "\tCOUNT(DISTINCT d.doctor_id) AS total\n" +
                "FROM\n" +
                "\t(\n" +
                "\t\tSELECT\n" +
                "\t\t\td3.*\n" +
                "\t\tFROM\n" +
                "\t\t\t(\n" +
                "\t\t\t\tSELECT\n" +
                "\t\t\t\t\t*, MAX(d1.create_time) AS createTime\n" +
                "\t\t\t\tFROM\n" +
                "\t\t\t\t\tbase_doctor_health_upload d1\n" +
                "\t\t\t\tGROUP BY\n" +
                "\t\t\t\t\td1.doctor_id\n" +
                "\t\t\t) d2\n" +
                "\t\tLEFT JOIN base_doctor_health_upload d3 ON d2.doctor_id = d3.doctor_id\n" +
                "\t\tAND d2.createTime = d3.create_time\n" +
                "\t) d ";
        String highSql = sql +" where d.is_high=1 ";
        String redSql = sql +" where d.health_code=2 ";
        String yellowSql = sql +" where d.health_code=3 ";
        if (level==2){
            highSql +=" and d.doctor_id IN (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 ) ";
            redSql +=" and d.doctor_id IN (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 ) ";
            yellowSql +=" and d.doctor_id IN (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 ) ";
        }
        Map<String, Object> highMap = jdbcTemplate.queryForMap(highSql);
        String highTotals = "";
        Integer highTotal = 0;//中高风险统计
        if (highMap != null) {
            highTotals = highMap.get("total").toString();
        }
        if (StringUtils.isNoneBlank(highTotals)) {
            //中高风险统计
            highTotal = Integer.parseInt(highTotals);
        }
        Map<String, Object> redMap = jdbcTemplate.queryForMap(redSql);
        String redTotals = "";
        Integer redTotal = 0;//红码统计
        if (redMap != null) {
            redTotals = redMap.get("total").toString();
        }
        if (StringUtils.isNoneBlank(redTotals)) {
            //红码统计
            redTotal = Integer.parseInt(redTotals);
        }
        Map<String, Object> yellowMap = jdbcTemplate.queryForMap(yellowSql);
        String yellowTotals = "";
        Integer yellowTotal = 0;//黄码统计
        if (yellowMap != null) {
            yellowTotals = yellowMap.get("total").toString();
        }
        if (StringUtils.isNoneBlank(yellowTotals)) {
            //黄码统计
            yellowTotal = Integer.parseInt(yellowTotals);
        }
        object.put("total", total);//总人次
        object.put("highTotal", highTotal);//中高风险统计
        object.put("redTotal", redTotal);//红码统计
        object.put("yellowTotal", yellowTotal);//黄码统计
        return object;
    }
    /**
     * 首页出差科室统计
     * @param dept
     * @param level  1院级管理员,2科室管理员
     * @return
     */
    public List<Map<String,Object>> selectIndexScheduleDept(String dept, int level) {
        String condition = "";
        if (level==2){
            condition +=" and dh.dept_code = '"+dept+"'";
        }
        String sql = "SELECT\n" +
                "\thd.name as deptName,\n" +
                "\tCOUNT(DISTINCT d.doctor_id) AS total\n" +
                "FROM\n" +
                "\t(\n" +
                "\t\tSELECT\n" +
                "\t\t\td3.*\n" +
                "\t\tFROM\n" +
                "\t\t\t(\n" +
                "\t\t\t\tSELECT\n" +
                "\t\t\t\t\t*, MAX(d1.create_time) AS createTime\n" +
                "\t\t\t\tFROM\n" +
                "\t\t\t\t\tbase_doctor_health_upload d1\n" +
                "\t\t\t\tGROUP BY\n" +
                "\t\t\t\t\td1.doctor_id\n" +
                "\t\t\t) d2\n" +
                "\t\tLEFT JOIN base_doctor_health_upload d3 ON d2.doctor_id = d3.doctor_id\n" +
                "\t\tAND d2.createTime = d3.create_time\n" +
                "\t) d\n" +
                "LEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.doctor_id and dh.del=1 \n" +
                " LEFT JOIN dict_hospital_dept hd ON dh.dept_code = hd.code "+
                "where d.schedule_status IN(2,3)  "+condition +
                "GROUP BY dh.dept_code \n" +
                "ORDER BY COUNT(DISTINCT d.doctor_id) DESC  ";
        List<Map<String,Object>> mapList = jdbcTemplate.queryForList(sql);
        return mapList;
    }
    /**
     * 首页出差分布统计
     *
     * @param dept
     * @param level  1院级管理员,2科室管理员
     * @return
     */
    public List<Map<String,Object>> selectIndexScheduleCityName(String dept, int level) {
        String condition = "";
        if (level==2){
            condition +=" and dh.dept_code = '"+dept+"'";
        }
        String sql = "SELECT\n" +
                "\td.city_name  as cityName,\n" +
                "\tCOUNT(DISTINCT d.doctor_id) AS total\n" +
                "FROM\n" +
                "\t(\n" +
                "\t\tSELECT\n" +
                "\t\t\td3.*\n" +
                "\t\tFROM\n" +
                "\t\t\t(\n" +
                "\t\t\t\tSELECT\n" +
                "\t\t\t\t\t*, MAX(d1.create_time) AS createTime\n" +
                "\t\t\t\tFROM\n" +
                "\t\t\t\t\tbase_doctor_health_upload d1\n" +
                "\t\t\t\tGROUP BY\n" +
                "\t\t\t\t\td1.doctor_id\n" +
                "\t\t\t) d2\n" +
                "\t\tLEFT JOIN base_doctor_health_upload d3 ON d2.doctor_id = d3.doctor_id\n" +
                "\t\tAND d2.createTime = d3.create_time\n" +
                "\t) d\n" +
                "LEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.doctor_id and dh.del=1 \n" +
                " LEFT JOIN dict_hospital_dept hd ON dh.dept_code = hd.code "+
                "where  d.schedule_status IN(2,3)\n" +condition+
                "GROUP BY d.city_name \n" +
                "ORDER BY COUNT(DISTINCT d.doctor_id) DESC ";
        List<Map<String,Object>> mapList = jdbcTemplate.queryForList(sql);
        return mapList;
    }
    /**
     * 首页本地分布统计
     * @param dept
     * @param level  1院级管理员,2科室管理员
     * @return
     */
    public List<Map<String,Object>> selectIndexScheduleTown(String dept, int level) {
        String condition = "";
        if (level==2){
            condition +=" and dh.dept_code = '"+dept+"'";
        }
        String sql = "SELECT\n" +
                "\td.town_name  as townName,\n" +
                "\tCOUNT(DISTINCT d.doctor_id) AS total\n" +
                "FROM\n" +
                "\t(\n" +
                "\t\tSELECT\n" +
                "\t\t\td3.*\n" +
                "\t\tFROM\n" +
                "\t\t\t(\n" +
                "\t\t\t\tSELECT\n" +
                "\t\t\t\t\t*, MAX(d1.create_time) AS createTime\n" +
                "\t\t\t\tFROM\n" +
                "\t\t\t\t\tbase_doctor_health_upload d1\n" +
                "\t\t\t\tGROUP BY\n" +
                "\t\t\t\t\td1.doctor_id\n" +
                "\t\t\t) d2\n" +
                "\t\tLEFT JOIN base_doctor_health_upload d3 ON d2.doctor_id = d3.doctor_id\n" +
                "\t\tAND d2.createTime = d3.create_time\n" +
                "\t) d\n" +
                "LEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.doctor_id and dh.del=1 \n" +
                " LEFT JOIN dict_hospital_dept hd ON dh.dept_code = hd.code "+
                "where  hd.name IS NOT NULL and d.schedule_status = 1 and d.town_name  !=''\n" + condition +
                "GROUP BY d.town_name \n" +
                "ORDER BY COUNT(DISTINCT d.doctor_id) DESC ";
        List<Map<String,Object>> mapList = jdbcTemplate.queryForList(sql);
        return mapList;
    }
    /**
     * 首页异常实时情况
     * @param dept
     * @param level  1院级管理员,2科室管理员
     *
     * @return
     */
    public List<Map<String,Object>> selectIndexYichangList(String dept, int level,String startDate,String endDate,String doctorName) {
        String condition = "";
        if (level==2){
            condition +=" and dh.dept_code = '"+dept+"'";
        }
        if (StringUtils.isNoneBlank(startDate)){
            condition +=" and d.create_time >= '"+startDate+" 00:00:00'";
            condition +=" and d.create_time <= '"+endDate+" 23:59:59'";
        }
        if (StringUtils.isNoneBlank(doctorName)){
            condition +=" and d.doctor_name like '%"+doctorName+"%'";
        }
        String sql = "SELECT\n" +
                "\tdh.dept_name AS deptName,\n" +
                "\td.doctor_name AS doctorName,\n" +
                "\tbd.photo AS photo,\n" +
                "\td.id AS id,\n" +
                "\td.doctor_id AS doctorId,\n" +
                "\td.schedule_status AS scheduleStatus,\n" +
                "\td.province_name AS provinceName,\n" +
                "\td.city_name AS cityName,\n" +
                "\td.town_name AS townName,\n" +
                "\td.tour_code AS tourCode,\n" +
                "\td.health_code AS healthCode,\n" +
                "\td.temperature AS temperature,\n" +
                "\td.is_symptoms AS isSymptoms,\n" +
                "\td.is_epidemic AS isEpidemic,\n" +
                "\td.abnormal_symptoms AS abnormalSymptoms,\n" +
                "\td.abnormal_symptoms_other AS abnormalSymptomsOther,\n" +
                "\td.epidemic_person AS epidemicPerson,\n" +
                "\tdate_format(\n" +
                "\t\td.create_time,\n" +
                "\t\t'%Y-%m-%d %H:%i:%S'\n" +
                "\t) AS createTime\n" +
                "FROM\n" +
                "\t(\n" +
                "\t\tSELECT\n" +
                "\t\t\td3.*\n" +
                "\t\tFROM\n" +
                "\t\t\t(\n" +
                "\t\t\t\tSELECT\n" +
                "\t\t\t\t\t*, MAX(d1.create_time) AS createTime\n" +
                "\t\t\t\tFROM\n" +
                "\t\t\t\t\tbase_doctor_health_upload d1\n" +
                "\t\t\t\tGROUP BY\n" +
                "\t\t\t\t\td1.doctor_id\n" +
                "\t\t\t) d2\n" +
                "\t\tLEFT JOIN base_doctor_health_upload d3 ON d2.doctor_id = d3.doctor_id\n" +
                "\t\tAND d2.createTime = d3.create_time\n" +
                "\t) d\n" +
                "LEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.doctor_id and dh.del=1 " +
                "LEFT JOIN base_doctor bd ON bd.id=dh.doctor_code "+
                "WHERE\n" +
                "\t(\n" +
                "\t\td.health_code IN (2, 3)\n" +
                "\t\tOR CAST(d.temperature AS DECIMAL) >= 37.3\n" +
                "\t\tOR d.is_symptoms = 1\n" +
                "\t\tOR d.is_epidemic = 1\n" +
                "\t)\n" +
                "AND dh.dept_code IS NOT NULL\n" + condition+
                "ORDER BY\n" +
                "\td.create_time DESC ";
        List<Map<String,Object>> mapList = jdbcTemplate.queryForList(sql);
        return mapList;
    }
    /**
     * 首页核酸检测情况
     * @param dept
     * @param level  1院级管理员,2科室管理员
     * @return
     */
    public JSONObject selectIndexNucleicTotal(String dept, int level) {
        String condition = "";
        if (level==2){
            condition +=" and dh.dept_code = '"+dept+"'";
        }
        //已做核酸
        String yizuohesuanSql = "SELECT\n" +
                "\tCOUNT(DISTINCT d.doctor_id) as total\n" +
                "FROM\n" +
                "\t(\n" +
                "\t\tSELECT\n" +
                "\t\t\td3.*\n" +
                "\t\tFROM\n" +
                "\t\t\t(\n" +
                "\t\t\t\tSELECT\n" +
                "\t\t\t\t\t*, MAX(d1.create_time) AS createTime\n" +
                "\t\t\t\tFROM\n" +
                "\t\t\t\t\tbase_doctor_health_upload d1\n" +
                "\t\t\t\tGROUP BY\n" +
                "\t\t\t\t\td1.doctor_id\n" +
                "\t\t\t) d2\n" +
                "\t\tLEFT JOIN base_doctor_health_upload d3 ON d2.doctor_id = d3.doctor_id\n" +
                "\t\tAND d2.createTime = d3.create_time\n" +
                "\t) d\n" +
                "LEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.doctor_id and dh.del=1 \n" + condition+
                "where d.is_nucleate !=1 and dh.dept_code is not null ";
        Map<String,Object> yizuoMap = jdbcTemplate.queryForMap(yizuohesuanSql);
        String yizuoTotals = "";
        Integer yizuoTotal = 0;//已做核酸统计
        if (yizuoMap != null) {
            yizuoTotals = yizuoMap.get("total").toString();
        }
        if (StringUtils.isNoneBlank(yizuoTotals)) {
            //已做核酸统计
            yizuoTotal = Integer.parseInt(yizuoTotals);
        }
        //未做核酸
        String weizuohesuanSql = "SELECT\n" +
                "\tCOUNT(DISTINCT d.doctor_id) as total\n" +
                "FROM\n" +
                "\t(\n" +
                "\t\tSELECT\n" +
                "\t\t\td3.*\n" +
                "\t\tFROM\n" +
                "\t\t\t(\n" +
                "\t\t\t\tSELECT\n" +
                "\t\t\t\t\t*, MAX(d1.create_time) AS createTime\n" +
                "\t\t\t\tFROM\n" +
                "\t\t\t\t\tbase_doctor_health_upload d1\n" +
                "\t\t\t\tGROUP BY\n" +
                "\t\t\t\t\td1.doctor_id\n" +
                "\t\t\t) d2\n" +
                "\t\tLEFT JOIN base_doctor_health_upload d3 ON d2.doctor_id = d3.doctor_id\n" +
                "\t\tAND d2.createTime = d3.create_time\n" +
                "\t) d\n" +
                "LEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.doctor_id and dh.del=1 \n" +condition+
                "where d.is_nucleate =1 and dh.dept_code is not null \n";
        Map<String,Object> weizuoMap = jdbcTemplate.queryForMap(weizuohesuanSql);
        String weizuoTotals = "";
        Integer weizuoTotal = 0;//未做核酸统计
        if (weizuoMap != null) {
            weizuoTotals = weizuoMap.get("total").toString();
        }
        if (StringUtils.isNoneBlank(weizuoTotals)) {
            //未做核酸统计
            weizuoTotal = Integer.parseInt(weizuoTotals);
        }
        JSONObject object = new JSONObject();
        object.put("weizuoTotal",weizuoTotal);//未做核酸统计
        object.put("yizuoTotal",yizuoTotal);//已做核酸统计
        return object;
    }
    /**
     * 首页当日新增统计
     * @param dept
     * @param level  1院级管理员,2科室管理员
     * @return
     */
    public JSONObject selectIndexNewAdd(String dept, int level) {
        String condition = "";
        if (level==2){
            condition +=" and dh.dept_code = '"+dept+"'";
        }
        String startDate = DateUtil.getStringDateShort()+" 00:00:00";
        String endDate = DateUtil.getStringDateShort()+" 23:59:59";
        JSONObject object = new JSONObject();
        String sql = "SELECT\n" +
                "\tCOUNT(DISTINCT d.doctor_id) AS total\n" +
                "FROM\n" +
                "\t(\n" +
                "\t\tSELECT\n" +
                "\t\t\td3.*\n" +
                "\t\tFROM\n" +
                "\t\t\t(\n" +
                "\t\t\t\tSELECT\n" +
                "\t\t\t\t\t*, MAX(d1.create_time) AS createTime\n" +
                "\t\t\t\tFROM\n" +
                "\t\t\t\t\tbase_doctor_health_upload d1\n" +
                "\t\t\t\tGROUP BY\n" +
                "\t\t\t\t\td1.doctor_id\n" +
                "\t\t\t) d2\n" +
                "\t\tLEFT JOIN base_doctor_health_upload d3 ON d2.doctor_id = d3.doctor_id \n" +
                "\t\tAND d2.createTime = d3.create_time\n" +
                "\t) d "+
                "LEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.doctor_id and dh.del=1 \n where 1=1 and dh.dept_code is not null  "+condition+" ";
        String highSql = sql +" AND d.is_high=1 and d.create_time >='"+startDate+"' and d.create_time <='"+endDate+"'";
        String redSql = sql +" AND d.health_code=2 and d.create_time >='"+startDate+"' and d.create_time <='"+endDate+"'";
        String yellowSql = sql +" AND d.health_code=3 and d.create_time >='"+startDate+"' and d.create_time <='"+endDate+"'";
        String greenSql = sql +" AND d.health_code=1 and d.create_time >='"+startDate+"' and d.create_time <='"+endDate+"'";
        Map<String, Object> highMap = jdbcTemplate.queryForMap(highSql);
        String highTotals = "";
        Integer highTotal = 0;//中高风险统计
        if (highMap != null) {
            highTotals = highMap.get("total").toString();
        }
        if (StringUtils.isNoneBlank(highTotals)) {
            //中高风险统计
            highTotal = Integer.parseInt(highTotals);
        }
        Map<String, Object> redMap = jdbcTemplate.queryForMap(redSql);
        String redTotals = "";
        Integer redTotal = 0;//红码统计
        if (redMap != null) {
            redTotals = redMap.get("total").toString();
        }
        if (StringUtils.isNoneBlank(redTotals)) {
            //红码统计
            redTotal = Integer.parseInt(redTotals);
        }
        Map<String, Object> yellowMap = jdbcTemplate.queryForMap(yellowSql);
        String yellowTotals = "";
        Integer yellowTotal = 0;//黄码统计
        if (yellowMap != null) {
            yellowTotals = yellowMap.get("total").toString();
        }
        if (StringUtils.isNoneBlank(yellowTotals)) {
            //黄码统计
            yellowTotal = Integer.parseInt(yellowTotals);
        }
        Map<String, Object> greenMap = jdbcTemplate.queryForMap(greenSql);
        String greenTotals = "";
        Integer greenTotal = 0;//中高风险统计
        if (greenMap != null) {
            greenTotals = greenMap.get("total").toString();
        }
        if (StringUtils.isNoneBlank(greenTotals)) {
            //中高风险统计
            greenTotal = Integer.parseInt(greenTotals);
        }
        object.put("highTotal", highTotal);//中高风险统计
        object.put("redTotal", redTotal);//红码统计
        object.put("yellowTotal", yellowTotal);//黄码统计
        object.put("greenTotal", greenTotal);//绿码统计
        return object;
    }
    /**
     * 首页上报分析
     *
     * @param flag 1周2月
     * @param dept
     * @param level  1院级管理员,2科室管理员
     * @return
     */
    public JSONObject selectIndexTotalCircle(Integer flag,String dept, int level) {
        JSONObject object = new JSONObject();
        String startDate="";
        String endDate="";
        if (flag==1){
            startDate = DateUtil.getMondayOfThisWeek();
            endDate = DateUtil.getSundayOfThisWeek();
        }else if (flag==2){
            startDate = DateUtil.getFristDayOfMonth();
            endDate = DateUtil.getLastDayOfMonth();
        }
        String day = DateUtil.getTwoDay(endDate, startDate);
        String doctorSql = " select COUNT(1) as \"total\" from base_doctor d where d.del=1 ";
        Integer total = 0;//总人次
        String sqlCondition = "";
        if (level==2){
            sqlCondition =" and d.doctor_id IN (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 ) ";
        }
        String sql = "SELECT SUM(d1.total) as total from (select COUNT(DISTINCT d.doctor_id) as \"total\",date_format(d.create_time ,'%Y-%m-%d' ) from base_doctor_health_upload d where 1=1 "+sqlCondition+" and  d.create_time >='" + startDate + " 00:00:00' and d.create_time<='" + endDate + " 23:59:59' GROUP BY date_format(d.create_time ,'%Y-%m-%d' ))d1 ";
        if (level==2){
            doctorSql +=" and d.id IN (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 ) ";
        }
        Map<String, Object> map = jdbcTemplate.queryForMap(doctorSql);
        String doctorTotal = "";
        if (map != null) {
            doctorTotal = map.get("total").toString();
        }
        if (StringUtils.isNoneBlank(doctorTotal)) {
            //总人次
            if (!day.equalsIgnoreCase("0")) {
                total = Integer.parseInt(doctorTotal) * Integer.parseInt(day);
            } else {
                total = Integer.parseInt(doctorTotal);
            }
        }
        Integer yishangbaoTotal = 0;
        Integer weishangbaoTotal = 0;
        Integer zhengchangTotal = 0;
        Integer yichangTotal = 0;
        //已上传
        Map<String, Object> yishangchaungMap = jdbcTemplate.queryForMap(sql);
        if (yishangchaungMap != null) {
            if (yishangchaungMap.get("total") != null) {
                yishangbaoTotal = Integer.parseInt(yishangchaungMap.get("total").toString());
            }
        }
        //未上报
        weishangbaoTotal = total - yishangbaoTotal;
        //上传总次数
        Integer shangchuanTotal = 0;
        String shangchuanTotalSql = "select COUNT(1) as \"total\" from base_doctor_health_upload d where 1=1  ";
        if (StringUtils.isNoneBlank(startDate)) {
            shangchuanTotalSql += " and d.create_time >='" + startDate + " 00:00:00' and d.create_time<='" + endDate + " 23:59:59' ";
        }
        if (level==2){
            shangchuanTotalSql +=" and d.doctor_id IN (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 ) ";
        }
        Map<String, Object> shangchuanMap = jdbcTemplate.queryForMap(shangchuanTotalSql);
        if (shangchuanMap != null) {
            if (shangchuanMap.get("total") != null) {
                shangchuanTotal = Integer.parseInt(shangchuanMap.get("total").toString());
            }
        }
        //正常、异常
        String sqlZhengchang = "select COUNT(1) as \"total\" from base_doctor_health_upload d where 1=1 and (d.health_code not in(2,3) AND CAST(d.temperature as DECIMAL)<37.3 AND  d.is_symptoms=2 and  d.is_epidemic=2) ";
        if (StringUtils.isNoneBlank(startDate)) {
            sqlZhengchang += " and d.create_time >='" + startDate + " 00:00:00' and d.create_time<='" + endDate + " 23:59:59' ";
        }
        if (level==2){
            sqlZhengchang +=" and d.doctor_id IN (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 ) ";
        }
        //正常
        Map<String, Object> zhengchangMap = jdbcTemplate.queryForMap(sqlZhengchang);
        if (zhengchangMap != null) {
            if (zhengchangMap.get("total") != null) {
                zhengchangTotal = Integer.parseInt(zhengchangMap.get("total").toString());
            }
        }
        String sqlYichang = "select COUNT(1) as \"total\" from base_doctor_health_upload d where 1=1 and (d.health_code in(2,3) OR CAST(d.temperature as DECIMAL)>=37.3 OR  d.is_symptoms=1 OR d.is_epidemic=1)  ";
        if (StringUtils.isNoneBlank(startDate)) {
            sqlYichang += " and d.create_time >='" + startDate + " 00:00:00' and d.create_time<='" + endDate + " 23:59:59' ";
        }
        if (level==2){
            sqlYichang +=" and d.doctor_id IN (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 ) ";
        }
        //正常
        Map<String, Object> yichangMap = jdbcTemplate.queryForMap(sqlYichang);
        if (yichangMap != null) {
            if (yichangMap.get("total") != null) {
                yichangTotal = Integer.parseInt(yichangMap.get("total").toString());
            }
        }
        object.put("total", total);//总人次
        object.put("yishangbaoTotal", yishangbaoTotal);//已上报
        object.put("weishangbaoTotal", weishangbaoTotal);//未上报
        object.put("zhengchangTotal", zhengchangTotal);//上报正常
        object.put("yichangTotal", yichangTotal);//上报异常
        object.put("shangchuanTotal", shangchuanTotal);//上传总次数
        return object;
    }
    /**
     * 首页未报科室统计
     * @param dept
     * @param level  1院级管理员,2科室管理员
     * @return
     */
    public List<Map<String, Object>> selectIndexDeptList(String dept, int level) {
        String startDate = DateUtil.getStringDateShort();
        String condition = "";
        if (StringUtils.isNoneBlank(startDate)) {
            condition = "  and d.create_time >='" + startDate + " 00:00:00' and d.create_time<='" + startDate + " 23:59:59'  ";
        }
        String deptSql = "SELECT\n" +
                "\tcode,\n" +
                "\tname,\n" +
                "\tdh1.total,\n" +
                "\tdh2.total as yishangbaoTotal,\n" +
                "\tdh3.total as shangchuanTotal,\n" +
                "\tdh4.total as zhengchangTotal,\n" +
                "\tdh5.total as yichangTotal,\n" +
                "\tdh6.total as yichangPersonTotal\n" +
                "FROM\n" +
                "\tdict_hospital_dept hd\n" +
                "LEFT JOIN (\n" +
                "\tSELECT\n" +
                "\t\tdh.dept_code,\n" +
                "\t\tCOUNT(1) AS \"total\"\n" +
                "\tFROM\n" +
                "\t\tbase_doctor d\n" +
                "\tLEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.id\n" +
                "\tWHERE\n" +
                "\t\td.del = 1\n" +
                "\tAND dh.del = 1\n" +
                "\tGROUP BY\n" +
                "\t\tdh.dept_code\n" +
                ") dh1 ON hd. CODE = dh1.dept_code\n" +
                "LEFT JOIN (\n" +
                "\tSELECT\n" +
                "\t\tdh.dept_code,\n" +
                "\t\tCOUNT(DISTINCT d.doctor_id) AS total\n" +
                "\tFROM\n" +
                "\t\tbase_doctor_health_upload d\n" +
                "\tLEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.doctor_id and dh.del=1 \n" +
                "\tWHERE\n" +
                "\t\t1 = 1\n" +
                condition+
                "\tGROUP BY\n" +
                "\t\tdh.dept_code\n" +
                ")dh2 ON dh2.dept_code=hd.code\n" +
                "LEFT JOIN (\n" +
                "\tSELECT\n" +
                "\t\tdh.dept_code,\n" +
                "\t\tCOUNT(1) AS total\n" +
                "\tFROM\n" +
                "\t\tbase_doctor_health_upload d\n" +
                "\tLEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.doctor_id and dh.del=1 \n" +
                "\tWHERE\n" +
                "\t\t1 = 1\n" +
                condition+
                "\tGROUP BY\n" +
                "\t\tdh.dept_code\n" +
                ")dh3 ON dh3.dept_code=hd.code\n" +
                "LEFT JOIN (\n" +
                "\tSELECT\n" +
                "\t\tdh.dept_code,\n" +
                "\t\tCOUNT(1) AS total\n" +
                "\tFROM\n" +
                "\t\tbase_doctor_health_upload d\n" +
                "\tLEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.doctor_id and dh.del=1 \n" +
                "\tWHERE\n" +
                "\t\t1 = 1\n" +
                condition+
                "\tand (d.health_code not in(2,3) AND CAST(d.temperature as DECIMAL)<37.3 AND  d.is_symptoms=2 and  d.is_epidemic=2)\n" +
                "\tGROUP BY\n" +
                "\t\tdh.dept_code\n" +
                ")dh4 ON dh4.dept_code=hd.code\n" +
                "LEFT JOIN (\n" +
                "\tSELECT\n" +
                "\t\tdh.dept_code,\n" +
                "\t\tCOUNT(1) AS total\n" +
                "\tFROM\n" +
                "\t\tbase_doctor_health_upload d\n" +
                "\tLEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.doctor_id and dh.del=1 \n" +
                "\tWHERE\n" +
                "\t\t1 = 1\n" +
                condition+
                "\tand (d.health_code in(2,3) OR CAST(d.temperature as DECIMAL)>=37.3 OR  d.is_symptoms=1 OR d.is_epidemic=1)\n" +
                "\tGROUP BY\n" +
                "\t\tdh.dept_code\n" +
                ")dh5 ON dh5.dept_code=hd.code\n" +
                "LEFT JOIN (\n" +
                "\tSELECT\n" +
                "\t\tdh.dept_code,\n" +
                "\t\tCOUNT(DISTINCT d.doctor_id) AS total\n" +
                "\tFROM\n" +
                "\t\tbase_doctor_health_upload d\n" +
                "\tLEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.doctor_id and dh.del=1 \n" +
                "\tWHERE\n" +
                "\t\t1 = 1\n" +
                condition+
                "\tand (d.health_code in(2,3) OR CAST(d.temperature as DECIMAL)>=37.3 OR  d.is_symptoms=1 OR d.is_epidemic=1)\n" +
                "\tGROUP BY\n" +
                "\t\tdh.dept_code\n" +
                ")dh6 ON dh6.dept_code=hd.code\n" +
                "WHERE\n" +
                "\thd.consult_dept_flag = 1 ";
        if (level==2) {
            deptSql += " and hd.code = '" + dept + "' ";
        }
        deptSql +=" ORDER BY (IF(ISNULL(dh1.total),0,dh1.total)-IF(ISNULL(dh2.total),0,dh2.total)) DESC ";
        List<Map<String, Object>> mapList = jdbcTemplate.queryForList(deptSql);
        for (Map<String,Object> deptMap:mapList){
            String day = DateUtil.getTwoDay(startDate, startDate);
            Integer total = 0;
            Integer yishangbaoTotal = 0;
            Integer weishangbaoTotal = 0;
            Integer zhengchangTotal = 0;
            Integer yichangTotal = 0;
            Integer shangchuanTotal = 0;
            Integer yichangPersonTotal = 0;
            if (deptMap.get("total")!=null){
                String doctorTotal = deptMap.get("total").toString();
                //总人次
                if (!day.equalsIgnoreCase("0")) {
                    total = Integer.parseInt(doctorTotal) * Integer.parseInt(day);
                } else {
                    total = Integer.parseInt(doctorTotal);
                }
            }
            if (deptMap.get("yishangbaoTotal")!=null){
                yishangbaoTotal = Integer.parseInt(deptMap.get("yishangbaoTotal").toString());
            }
            //未上报
            weishangbaoTotal = total - yishangbaoTotal;
            if (deptMap.get("zhengchangTotal")!=null){
                zhengchangTotal = Integer.parseInt(deptMap.get("zhengchangTotal").toString());
            }
            if (deptMap.get("yichangTotal")!=null){
                yichangTotal = Integer.parseInt(deptMap.get("yichangTotal").toString());
            }
            if (deptMap.get("yichangPersonTotal")!=null){
                yichangPersonTotal = Integer.parseInt(deptMap.get("yichangPersonTotal").toString());
            }
            if (deptMap.get("shangchuanTotal")!=null){
                shangchuanTotal = Integer.parseInt(deptMap.get("shangchuanTotal").toString());
            }
            JSONObject object = new JSONObject();
            object.put("total", total);//总人次
            object.put("yishangbaoTotal", yishangbaoTotal);//已上报
            object.put("weishangbaoTotal", weishangbaoTotal);//未上报
            object.put("zhengchangTotal", zhengchangTotal);//上报正常
            object.put("yichangTotal", yichangTotal);//上报异常
            object.put("yichangPersonTotal", yichangPersonTotal);//上报人异常
            object.put("shangchuanTotal", shangchuanTotal);//上传总次数
            deptMap.put("tongyishuju", object);
        }
        return mapList;
    }
}

+ 8 - 0
business/base-service/src/main/java/com/yihu/jw/inpatient/dao/BaseInpatientRegistrationDao.java

@ -3,6 +3,9 @@ package com.yihu.jw.inpatient.dao;
import com.yihu.jw.entity.base.inpatient.BaseInpatientRegistrationDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
/**
 * Created by yeshijie on 2022/12/5.
@ -10,5 +13,10 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
public interface BaseInpatientRegistrationDao extends JpaRepository<BaseInpatientRegistrationDO, String>,
        JpaSpecificationExecutor<BaseInpatientRegistrationDO> {
    @Query("from BaseInpatientRegistrationDO where idcard=?1 and name=?2 and status in ('2','3') order by createTime desc")
    List<BaseInpatientRegistrationDO> findByIdcardAndName(String idcard,String name);
    @Query("from BaseInpatientRegistrationDO where patient=?1 and status in ('2','3') order by createTime desc")
    List<BaseInpatientRegistrationDO> findByPatient(String patient);
}

+ 14 - 0
business/base-service/src/main/java/com/yihu/jw/inpatient/service/BaseInpatientRegistrationService.java

@ -26,6 +26,20 @@ public class BaseInpatientRegistrationService extends BaseJpaService {
    @Autowired
    private WlyyHospitalSysDictService hospitalSysDictService;
    /**
     * 查找住院中的患者
     * @param idcard
     * @param name
     * @return
     */
    public BaseInpatientRegistrationDO findRecently(String idcard,String name){
        List<BaseInpatientRegistrationDO> list = inpatientRegistrationDao.findByIdcardAndName(idcard,name);
        if(list.size()>0){
            return list.get(0);
        }
        return null;
    }
    /**
     * 获取住院登记list
     * @param patient

+ 2 - 0
business/base-service/src/main/java/com/yihu/jw/nurse/dao/BaseNursingCardDao.java

@ -17,5 +17,7 @@ public interface BaseNursingCardDao extends JpaRepository<BaseNursingCardDO, Str
    @Query(value = "select count(a.id) from base_nursing_card a where a.patient=?1 and (a.status=0 or (a.status=1 and a.end_time>now()))",nativeQuery = true)
    int countByPatientAndStatus(String patient);
    @Query(value = "select count(a.id) from base_nursing_card a where a.inpatient_area_id=?1 and (a.status=0 or (a.status=1 and a.end_time>now()))",nativeQuery = true)
    int countByInpatientAreaIdAndStatus(String inpatientAreaId);
}

+ 88 - 11
business/base-service/src/main/java/com/yihu/jw/nurse/service/BaseNursingCardService.java

@ -1,15 +1,27 @@
package com.yihu.jw.nurse.service;
import com.yihu.jw.area.dao.BaseInpatientAreaDao;
import com.yihu.jw.dict.service.BaseCopywritingService;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.entity.base.area.BaseInpatientAreaDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.inpatient.BaseInpatientRegistrationDO;
import com.yihu.jw.entity.base.nurse.BaseNursingCardDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.inpatient.dao.BaseInpatientRegistrationDao;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.nurse.dao.BaseNursingCardDao;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.entity.ServiceException;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
 * Created by yeshijie on 2022/11/16.
@ -21,15 +33,69 @@ public class BaseNursingCardService extends BaseJpaService<BaseNursingCardDO, Ba
    private BaseNursingCardDao nursingCardDao;
    @Resource
    private BaseDoctorDao doctorDao;
    @Resource
    private BasePatientDao patientDao;
    @Autowired
    private BaseInpatientRegistrationDao inpatientRegistrationDao;
    @Autowired
    private BaseInpatientAreaDao inpatientAreaDao;
    @Resource
    private BaseCopywritingService copywritingService;
    /**
     * 是否可申请
     * @param patient
     * @return
     */
    public boolean ifCanApply(String patient){
    public String ifCanApply(String idcard,String name){
        List<BaseInpatientRegistrationDO> list = inpatientRegistrationDao.findByIdcardAndName(idcard,name);
        if(list.size()>0){
            return list.get(0).getId();
        }
        return null;
    }
    public BaseNursingCardDO ifCanApply(BaseNursingCardDO nursingCardDO) throws Exception{
        String inpatientRegistrationId = nursingCardDO.getInpatientRegistrationId();
        if(StringUtils.isBlank(inpatientRegistrationId)){
            throw new ServiceException(copywritingService.findCopywriting("nursingCard","ifCanApply_error1"));
        }
        BaseInpatientRegistrationDO registrationDO = inpatientRegistrationDao.findById(inpatientRegistrationId).orElse(null);
        if(registrationDO==null){
            throw new ServiceException(copywritingService.findCopywriting("nursingCard","ifCanApply_error1"));
        }
        String patient = registrationDO.getPatient();
        String areaId = registrationDO.getInpatientAreaId();
        return true;
        BaseInpatientAreaDO areaDO = inpatientAreaDao.findById(areaId).orElse(null);
        if(areaDO!=null){
            //判断每日允许最大陪护数
            if(areaDO.getDayMaxNum()!=null){
                int count = nursingCardDao.countByInpatientAreaIdAndStatus(areaId);
                if(count>=areaDO.getDayMaxNum()){
                    throw new ServiceException(copywritingService.findCopywriting("nursingCard","ifCanApply_error2"));
                }
            }
            //住院病区陪护规则判断,若未设置则不判断 单患者同时允许陪护数
            int count = countByPatientAndStatus(patient);
            if(count>0){
                BasePatientDO patientDO = patientDao.findById(patient).orElse(null);
                int age = IdCardUtil.getAgeByBirthdayOrIdcard(patientDO.getIdcard(),patientDO.getBirthday());
                if(age<75){
                    if(areaDO.getYangNum()!=null&&areaDO.getYangNum()<=count){
                        throw new ServiceException(copywritingService.findCopywriting("nursingCard","ifCanApply_error3"));
                    }
                }else{
                    if(areaDO.getOlderNum()!=null&&count>=areaDO.getOlderNum()){
                        throw new ServiceException(copywritingService.findCopywriting("nursingCard","ifCanApply_error4"));
                    }
                }
            }
        }
        nursingCardDO.setPatient(patient);
        nursingCardDO.setInpatientAreaId(areaId);
        nursingCardDO.setInpatientAreaName(registrationDO.getInpatientAreaName());
        return nursingCardDO;
    }
    /**
@ -51,17 +117,24 @@ public class BaseNursingCardService extends BaseJpaService<BaseNursingCardDO, Ba
     * @param doctor
     */
    public void doctorCheck(String id,Integer status,String doctor,String checkReason){
        BaseNursingCardDO cardDO = nursingCardDao.getOne(id);
        BaseNursingCardDO cardDO =  nursingCardDao.findById(id).orElse(null);
        cardDO.setStatus(status);
        if(status==1){
            cardDO.setEndTime(DateUtil.getPreDays(new Date(),-3));
            //计算到期时间
            BaseInpatientAreaDO areaDO = inpatientAreaDao.findById(cardDO.getInpatientAreaId()).orElse(null);
            if(areaDO!=null&&StringUtils.isNotBlank(areaDO.getTermOfValidity())){
                cardDO.setEndTime(DateUtil.getPreHours(new Date(),Integer.parseInt(areaDO.getTermOfValidity())));
            }else{
                cardDO.setEndTime(DateUtil.getPreHours(new Date(),24));
            }
        }
        if(status!=-2){
            BaseDoctorDO doctorDO = doctorDao.findById(doctor).orElse(null);
            cardDO.setDoctor(doctor);
            cardDO.setDoctorName(doctorDO.getName());
            cardDO.setCheckTime(new Date());
            cardDO.setCheckReason(checkReason);
        }
        BaseDoctorDO doctorDO = doctorDao.findById(doctor).orElse(null);
        cardDO.setDoctor(doctor);
        cardDO.setDoctorName(doctorDO.getName());
        cardDO.setCheckTime(new Date());
        cardDO.setCheckReason(checkReason);
        nursingCardDao.save(cardDO);
    }
@ -74,4 +147,8 @@ public class BaseNursingCardService extends BaseJpaService<BaseNursingCardDO, Ba
        return nursingCardDao.countByPatientAndStatus(patient);
    }
    public int countByInpatientAreaIdAndStatus(String inpatientAreaId){
        return nursingCardDao.countByInpatientAreaIdAndStatus(inpatientAreaId);
    }
}

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/base/inpatient/BaseInpatientRegistrationDO.java

@ -31,7 +31,7 @@ public class BaseInpatientRegistrationDO extends UuidIdentityEntityWithCreateTim
    private String contactsMobile;//联系人电话
    private String doctor;
    private String doctorName;//开单医生
    private String status;//状态(0未提交/立即登记,1已提交,2已登记) 字典编码inpatientRegist_status
    private String status;//状态(0未提交/立即登记,1已提交,2已登记 3已入院 4已出院) 字典编码inpatientRegist_status
    private String statusName;//状态名称 inpatientRegist_status
    private Date inpatientTime;//入院时间

+ 16 - 16
common/common-entity/src/main/java/com/yihu/jw/entity/base/menu/BaseAppMenu.java

@ -24,8 +24,8 @@ public class BaseAppMenu extends UuidIdentityEntityWithCreateTime {
    private String code;//菜单编码
    private String img;//图标
    private String url;//跳转链接
    private Integer isTop;//是否展示在app首页(1是 0否)
    private String isTopName;
    private Integer type;//类型 1医生 2居民
    private Integer del;//删除标志 1正常0删除
    private Integer status;//状态(1有效,0失效)
    private String statusName;
    private Integer sort;//排序字段
@ -78,15 +78,6 @@ public class BaseAppMenu extends UuidIdentityEntityWithCreateTime {
        this.url = url;
    }
    @Column(name = "is_top")
    public Integer getIsTop() {
        return isTop;
    }
    public void setIsTop(Integer isTop) {
        this.isTop = isTop;
    }
    @Column(name = "status")
    public Integer getStatus() {
        return status;
@ -123,13 +114,22 @@ public class BaseAppMenu extends UuidIdentityEntityWithCreateTime {
        this.children = children;
    }
    @Transient
    public String getIsTopName() {
        return isTopName;
    @Column(name = "type")
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    @Column(name = "del")
    public Integer getDel() {
        return del;
    }
    public void setIsTopName(String isTopName) {
        this.isTopName = isTopName;
    public void setDel(Integer del) {
        this.del = del;
    }
    @Transient

+ 70 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/nurse/BaseNursingCardDO.java

@ -17,6 +17,9 @@ import java.util.Date;
@Table(name = "base_nursing_card")
public class BaseNursingCardDO extends UuidIdentityEntityWithCreateTime {
    private String inpatientRegistrationId;//住院登记id
    private String inpatientAreaId;//病区id
    private String inpatientAreaName;//病区
    private Integer type;//陪护类型 2住院
    private Integer status;//状态 -2已失效 -1未通过 0审核中 1生效中
    private String statusName;//状态 -2已失效 -1未通过 0审核中 1生效中
@ -26,6 +29,7 @@ public class BaseNursingCardDO extends UuidIdentityEntityWithCreateTime {
    private String idcard;//居民身份证
    private String bedNo;//床位号
    private String qrCode;//二维码
    private String nursePatient;//陪护人id
    private String nurseName;//陪护人姓名
    private String nurseMobile;//陪护人手机
    private String nurseIdcard;//陪护人身份证
@ -40,7 +44,10 @@ public class BaseNursingCardDO extends UuidIdentityEntityWithCreateTime {
    private Date checkTime;//审核时间
    private Long remainingTimes;//陪护证剩余时间(秒)
    private Integer nursingNum;//已存在陪护人数
    private Integer remainingNum;//剩余陪护名额
    private Boolean hasNucleicReport;//是否已上传核酸报告
    /**
     * 状态:
@ -88,6 +95,33 @@ public class BaseNursingCardDO extends UuidIdentityEntityWithCreateTime {
        }
    }
    @Column(name = "inpatient_registration_id")
    public String getInpatientRegistrationId() {
        return inpatientRegistrationId;
    }
    public void setInpatientRegistrationId(String inpatientRegistrationId) {
        this.inpatientRegistrationId = inpatientRegistrationId;
    }
    @Column(name = "inpatient_area_id")
    public String getInpatientAreaId() {
        return inpatientAreaId;
    }
    public void setInpatientAreaId(String inpatientAreaId) {
        this.inpatientAreaId = inpatientAreaId;
    }
    @Column(name = "inpatient_area_name")
    public String getInpatientAreaName() {
        return inpatientAreaName;
    }
    public void setInpatientAreaName(String inpatientAreaName) {
        this.inpatientAreaName = inpatientAreaName;
    }
    @Column(name = "type")
    public Integer getType() {
        return type;
@ -279,6 +313,15 @@ public class BaseNursingCardDO extends UuidIdentityEntityWithCreateTime {
        this.checkReason = checkReason;
    }
    @Column(name = "nurse_patient")
    public String getNursePatient() {
        return nursePatient;
    }
    public void setNursePatient(String nursePatient) {
        this.nursePatient = nursePatient;
    }
    @Transient
    public Integer getNursingNum() {
        return nursingNum;
@ -287,4 +330,31 @@ public class BaseNursingCardDO extends UuidIdentityEntityWithCreateTime {
    public void setNursingNum(Integer nursingNum) {
        this.nursingNum = nursingNum;
    }
    @Transient
    public Long getRemainingTimes() {
        return remainingTimes;
    }
    public void setRemainingTimes(Long remainingTimes) {
        this.remainingTimes = remainingTimes;
    }
    @Transient
    public Integer getRemainingNum() {
        return remainingNum;
    }
    public void setRemainingNum(Integer remainingNum) {
        this.remainingNum = remainingNum;
    }
    @Transient
    public Boolean getHasNucleicReport() {
        return hasNucleicReport;
    }
    public void setHasNucleicReport(Boolean hasNucleicReport) {
        this.hasNucleicReport = hasNucleicReport;
    }
}

+ 0 - 9
common/common-entity/src/main/java/com/yihu/jw/entity/healthUpload/BaseDoctorHealthUploadDO.java

@ -60,7 +60,6 @@ public class BaseDoctorHealthUploadDO extends UuidIdentityEntityWithOperator {
    private String doctorName;
    private String idCard;
    private String mobile;
    private Integer userTpye;//用户类型 1医生 1居民
    private String consumer;
    private String consumerName;
    private String healthCodeDesc;
@ -563,12 +562,4 @@ public class BaseDoctorHealthUploadDO extends UuidIdentityEntityWithOperator {
    public void setConsumerName(String consumerName) {
        this.consumerName = consumerName;
    }
    public Integer getUserTpye() {
        return userTpye;
    }
    public void setUserTpye(Integer userTpye) {
        this.userTpye = userTpye;
    }
}

+ 565 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/healthUpload/BasePatientHealthUploadDO.java

@ -0,0 +1,565 @@
package com.yihu.jw.entity.healthUpload;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * 健康上报表-居民
 *
 * Created by yeshijie on 2022/12/6.
 *
 */
@Entity
@Table(name = "base_patient_health_upload")
public class BasePatientHealthUploadDO extends UuidIdentityEntityWithOperator {
    private String provinceName;
    private String cityName;
    private String townName;
    private String streetName;
    private String address;
    private String temperature;
    private Integer healthCode;
    private String healthCodeUrl;
    private Integer tourCode;
    private String tourCodeUrl;
    private Integer isSymptoms;
    private String abnormalSymptoms;
    private Integer isEpidemic;
    private String epidemicPerson;
    private Integer  isOutside;
    private String outsideProvinceCode;
    private String outsideProvinceName;
    private String outsideCityCode;
    private String outsideCityName;
    private String outsideTownCode;
    private String outsideTownName;
    private String outsideStreetName;
    private String outsideStreetCode;
    private String outsideAddress;
    private Date outsideDate;
    private Integer isNucleate;
    private String nucleateCodeUrl;
    private Integer  isOutsideHigh;
    private String outsideHighProvinceCode;
    private String outsideHighProvinceName;
    private String outsideHighCityCode;
    private String outsideHighCityName;
    private String outsideHighTownCode;
    private String outsideHighTownName;
    private String outsideHighStreetName;
    private String outsideHighStreetCode;
    private String outsideHighAddress;
    private Date outsideHighDate;
    private String patientId;
    private String patientName;
    private String idCard;
    private String mobile;
    private String consumer;
    private String consumerName;
    private String healthCodeDesc;
    private Integer outsideHighNucleate;
    private String abnormalSymptomsOther;
    private Integer scheduleStatus;//1本地2出差3外出
    private String startProvinceName;
    private String startCityName;
    private String startTownName;
    private String startStreetName;//开始市
    private String endProvinceName;//终止省
    private String endCityName;//终止市
    private String endTownName;//终止区
    private String endStreetName;//终止街道
    private Integer transportType;//交通方式(1自驾2火车3飞机)
    private String licenseNumber;//车牌号
    private String number;//座位
    private Integer isHigh;//1是2否
    public Integer getScheduleStatus() {
        return scheduleStatus;
    }
    public void setScheduleStatus(Integer scheduleStatus) {
        this.scheduleStatus = scheduleStatus;
    }
    public String getStartProvinceName() {
        return startProvinceName;
    }
    public void setStartProvinceName(String startProvinceName) {
        this.startProvinceName = startProvinceName;
    }
    public String getStartCityName() {
        return startCityName;
    }
    public void setStartCityName(String startCityName) {
        this.startCityName = startCityName;
    }
    public String getStartTownName() {
        return startTownName;
    }
    public void setStartTownName(String startTownName) {
        this.startTownName = startTownName;
    }
    public String getStartStreetName() {
        return startStreetName;
    }
    public void setStartStreetName(String startStreetName) {
        this.startStreetName = startStreetName;
    }
    public String getEndProvinceName() {
        return endProvinceName;
    }
    public void setEndProvinceName(String endProvinceName) {
        this.endProvinceName = endProvinceName;
    }
    public String getEndCityName() {
        return endCityName;
    }
    public void setEndCityName(String endCityName) {
        this.endCityName = endCityName;
    }
    public String getEndTownName() {
        return endTownName;
    }
    public void setEndTownName(String endTownName) {
        this.endTownName = endTownName;
    }
    public String getEndStreetName() {
        return endStreetName;
    }
    public void setEndStreetName(String endStreetName) {
        this.endStreetName = endStreetName;
    }
    public Integer getTransportType() {
        return transportType;
    }
    public void setTransportType(Integer transportType) {
        this.transportType = transportType;
    }
    public String getLicenseNumber() {
        return licenseNumber;
    }
    public void setLicenseNumber(String licenseNumber) {
        this.licenseNumber = licenseNumber;
    }
    public String getNumber() {
        return number;
    }
    public void setNumber(String number) {
        this.number = number;
    }
    public Integer getIsHigh() {
        return isHigh;
    }
    public void setIsHigh(Integer isHigh) {
        this.isHigh = isHigh;
    }
    public String getAbnormalSymptomsOther() {
        return abnormalSymptomsOther;
    }
    public void setAbnormalSymptomsOther(String abnormalSymptomsOther) {
        this.abnormalSymptomsOther = abnormalSymptomsOther;
    }
    public Integer getOutsideHighNucleate() {
        return outsideHighNucleate;
    }
    public void setOutsideHighNucleate(Integer outsideHighNucleate) {
        this.outsideHighNucleate = outsideHighNucleate;
    }
    public String getHealthCodeDesc() {
        return healthCodeDesc;
    }
    public void setHealthCodeDesc(String healthCodeDesc) {
        this.healthCodeDesc = healthCodeDesc;
    }
    public String getNucleateCodeUrl() {
        return nucleateCodeUrl;
    }
    public void setNucleateCodeUrl(String nucleateCodeUrl) {
        this.nucleateCodeUrl = nucleateCodeUrl;
    }
    public String getProvinceName() {
        return provinceName;
    }
    public void setProvinceName(String provinceName) {
        this.provinceName = provinceName;
    }
    public String getCityName() {
        return cityName;
    }
    public void setCityName(String cityName) {
        this.cityName = cityName;
    }
    public String getTownName() {
        return townName;
    }
    public void setTownName(String townName) {
        this.townName = townName;
    }
    public String getStreetName() {
        return streetName;
    }
    public void setStreetName(String streetName) {
        this.streetName = streetName;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getTemperature() {
        return temperature;
    }
    public void setTemperature(String temperature) {
        this.temperature = temperature;
    }
    public Integer getHealthCode() {
        return healthCode;
    }
    public void setHealthCode(Integer healthCode) {
        this.healthCode = healthCode;
    }
    public String getHealthCodeUrl() {
        return healthCodeUrl;
    }
    public void setHealthCodeUrl(String healthCodeUrl) {
        this.healthCodeUrl = healthCodeUrl;
    }
    public Integer getTourCode() {
        return tourCode;
    }
    public void setTourCode(Integer tourCode) {
        this.tourCode = tourCode;
    }
    public String getTourCodeUrl() {
        return tourCodeUrl;
    }
    public void setTourCodeUrl(String tourCodeUrl) {
        this.tourCodeUrl = tourCodeUrl;
    }
    public Integer getIsSymptoms() {
        return isSymptoms;
    }
    public void setIsSymptoms(Integer isSymptoms) {
        this.isSymptoms = isSymptoms;
    }
    public String getAbnormalSymptoms() {
        return abnormalSymptoms;
    }
    public void setAbnormalSymptoms(String abnormalSymptoms) {
        this.abnormalSymptoms = abnormalSymptoms;
    }
    public Integer getIsEpidemic() {
        return isEpidemic;
    }
    public void setIsEpidemic(Integer isEpidemic) {
        this.isEpidemic = isEpidemic;
    }
    public String getEpidemicPerson() {
        return epidemicPerson;
    }
    public void setEpidemicPerson(String epidemicPerson) {
        this.epidemicPerson = epidemicPerson;
    }
    public Integer getIsOutside() {
        return isOutside;
    }
    public void setIsOutside(Integer isOutside) {
        this.isOutside = isOutside;
    }
    public String getOutsideProvinceCode() {
        return outsideProvinceCode;
    }
    public void setOutsideProvinceCode(String outsideProvinceCode) {
        this.outsideProvinceCode = outsideProvinceCode;
    }
    public String getOutsideProvinceName() {
        return outsideProvinceName;
    }
    public void setOutsideProvinceName(String outsideProvinceName) {
        this.outsideProvinceName = outsideProvinceName;
    }
    public String getOutsideCityCode() {
        return outsideCityCode;
    }
    public void setOutsideCityCode(String outsideCityCode) {
        this.outsideCityCode = outsideCityCode;
    }
    public String getOutsideCityName() {
        return outsideCityName;
    }
    public void setOutsideCityName(String outsideCityName) {
        this.outsideCityName = outsideCityName;
    }
    public String getOutsideTownCode() {
        return outsideTownCode;
    }
    public void setOutsideTownCode(String outsideTownCode) {
        this.outsideTownCode = outsideTownCode;
    }
    public String getOutsideTownName() {
        return outsideTownName;
    }
    public void setOutsideTownName(String outsideTownName) {
        this.outsideTownName = outsideTownName;
    }
    public String getOutsideStreetName() {
        return outsideStreetName;
    }
    public void setOutsideStreetName(String outsideStreetName) {
        this.outsideStreetName = outsideStreetName;
    }
    public String getOutsideStreetCode() {
        return outsideStreetCode;
    }
    public void setOutsideStreetCode(String outsideStreetCode) {
        this.outsideStreetCode = outsideStreetCode;
    }
    public String getOutsideAddress() {
        return outsideAddress;
    }
    public void setOutsideAddress(String outsideAddress) {
        this.outsideAddress = outsideAddress;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "outside_date", nullable = false, length = 0,updatable = false)
    public Date getOutsideDate() {
        return outsideDate;
    }
    public void setOutsideDate(Date outsideDate) {
        this.outsideDate = outsideDate;
    }
    public Integer getIsNucleate() {
        return isNucleate;
    }
    public void setIsNucleate(Integer isNucleate) {
        this.isNucleate = isNucleate;
    }
    public Integer getIsOutsideHigh() {
        return isOutsideHigh;
    }
    public void setIsOutsideHigh(Integer isOutsideHigh) {
        this.isOutsideHigh = isOutsideHigh;
    }
    public String getOutsideHighProvinceCode() {
        return outsideHighProvinceCode;
    }
    public void setOutsideHighProvinceCode(String outsideHighProvinceCode) {
        this.outsideHighProvinceCode = outsideHighProvinceCode;
    }
    public String getOutsideHighProvinceName() {
        return outsideHighProvinceName;
    }
    public void setOutsideHighProvinceName(String outsideHighProvinceName) {
        this.outsideHighProvinceName = outsideHighProvinceName;
    }
    public String getOutsideHighCityCode() {
        return outsideHighCityCode;
    }
    public void setOutsideHighCityCode(String outsideHighCityCode) {
        this.outsideHighCityCode = outsideHighCityCode;
    }
    public String getOutsideHighCityName() {
        return outsideHighCityName;
    }
    public void setOutsideHighCityName(String outsideHighCityName) {
        this.outsideHighCityName = outsideHighCityName;
    }
    public String getOutsideHighTownCode() {
        return outsideHighTownCode;
    }
    public void setOutsideHighTownCode(String outsideHighTownCode) {
        this.outsideHighTownCode = outsideHighTownCode;
    }
    public String getOutsideHighTownName() {
        return outsideHighTownName;
    }
    public void setOutsideHighTownName(String outsideHighTownName) {
        this.outsideHighTownName = outsideHighTownName;
    }
    public String getOutsideHighStreetName() {
        return outsideHighStreetName;
    }
    public void setOutsideHighStreetName(String outsideHighStreetName) {
        this.outsideHighStreetName = outsideHighStreetName;
    }
    public String getOutsideHighStreetCode() {
        return outsideHighStreetCode;
    }
    public void setOutsideHighStreetCode(String outsideHighStreetCode) {
        this.outsideHighStreetCode = outsideHighStreetCode;
    }
    public String getOutsideHighAddress() {
        return outsideHighAddress;
    }
    public void setOutsideHighAddress(String outsideHighAddress) {
        this.outsideHighAddress = outsideHighAddress;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "outside_high_date", nullable = false, length = 0,updatable = false)
    public Date getOutsideHighDate() {
        return outsideHighDate;
    }
    public void setOutsideHighDate(Date outsideHighDate) {
        this.outsideHighDate = outsideHighDate;
    }
    public String getPatientId() {
        return patientId;
    }
    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    public String getIdCard() {
        return idCard;
    }
    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }
    public String getMobile() {
        return mobile;
    }
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
    public String getConsumer() {
        return consumer;
    }
    public void setConsumer(String consumer) {
        this.consumer = consumer;
    }
    public String getConsumerName() {
        return consumerName;
    }
    public void setConsumerName(String consumerName) {
        this.consumerName = consumerName;
    }
}

+ 20 - 0
common/common-util/src/main/java/com/yihu/jw/util/date/DateUtil.java

@ -478,6 +478,17 @@ public class DateUtil {
        return day;
    }
    public static Date getPreHours(Date date, int hours) {
        Date day = null;
        try {
            LocalDateTime localDateTime = dateToLocalDateTime(date).plusHours(hours);
            day = Date.from(localDateTime.atZone(zone).toInstant());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return day;
    }
    /**
     * 得到一个时间延后或前移几分钟的时间,nowdate为时间,delay为前移或后延的分钟数
     */
@ -1461,6 +1472,15 @@ public class DateUtil {
        return new Long((dateTo.getTime() - dateFrom.getTime()) / 1000 / 60 / 60 / 24).intValue();
    }
    public static long getDifferenceOfSeconds(Date dateFrom, Date dateTo) {
        if(dateFrom==null||dateTo==null){
            return 0L;
        }
        long seconds = (dateTo.getTime() - dateFrom.getTime()) / 1000;
        seconds = seconds>0?seconds:0;
        return seconds;
    }
    public static int getDifferenceOfDays(String dateFromStr, String dateToStr, String dateFormat) {
        Date dateFrom = parseDate(dateFromStr, dateFormat);

+ 4 - 4
svr/svr-base/src/main/java/com/yihu/jw/base/dao/menu/BaseAppMenuDao.java

@ -13,11 +13,11 @@ import java.util.List;
 */
public interface BaseAppMenuDao extends JpaRepository<BaseAppMenu, String>, JpaSpecificationExecutor<BaseAppMenu> {
    @Query(" FROM BaseAppMenu rc WHERE rc.pid = :pid ")
    List<BaseAppMenu> getChildrenByPid(@Param("pid") String pid);
    @Query(" FROM BaseAppMenu rc WHERE rc.pid =?1 and rc.type=?2")
    List<BaseAppMenu> getChildrenByPid(String pid,Integer type);
    @Query(" FROM BaseAppMenu rc WHERE rc.pid = '0' ")
    List<BaseAppMenu> getTopParents();
    @Query(" FROM BaseAppMenu rc WHERE rc.pid = '0' and rc.type=?1")
    List<BaseAppMenu> getTopParents(Integer type);
    @Query(" FROM BaseAppMenu rc WHERE rc.id <> :id AND rc.code = :code ")
    BaseAppMenu isUniqueCode(@Param("id") String id, @Param("code") String code);

+ 8 - 19
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/menu/BaseAppMenuEndPoint.java

@ -35,19 +35,13 @@ public class BaseAppMenuEndPoint extends EnvelopRestEndpoint {
    @Resource
    private BaseAppMenuDao baseAppMenuDao;
    public static Map<Integer,String> isTopName = new HashMap<>();
    public static Map<Integer,String> statusName = new HashMap<>();
    static {
        isTopName.put(1,"是");
        isTopName.put(0,"否");
        isTopName.put(null,"否");
        statusName.put(1,"生效");
        statusName.put(0,"失效");
        statusName.put(null,"失效");
    }
    @RequestMapping("/save")
    @ApiOperation(value = "保存或修改")
    public Envelop save(@ApiParam(name = "data", value = "data",required = true)
@ -72,9 +66,6 @@ public class BaseAppMenuEndPoint extends EnvelopRestEndpoint {
                if(newBaseApp.getStatus() == null){
                    newBaseApp.setStatus(1);
                }
                if(newBaseApp.getIsTop() == null){
                    newBaseApp.setStatus(0);
                }
                //新增判断名称和code 是否唯一
                if(!baseAppMenuService.isUniqueCode("0", newBaseApp.getCode())){
                    return ObjEnvelop.getError("编码已存在",-1);
@ -100,7 +91,6 @@ public class BaseAppMenuEndPoint extends EnvelopRestEndpoint {
                oldBaseApp.setPid(newBaseApp.getPid());
                oldBaseApp.setSort(null == newBaseApp.getSort() ? 99 : newBaseApp.getSort());
                oldBaseApp.setRemark(newBaseApp.getRemark());
                oldBaseApp.setIsTop(newBaseApp.getIsTop());
                oldBaseApp.setStatus(newBaseApp.getStatus());
                oldBaseApp.setImg(newBaseApp.getImg());
                oldBaseApp.setUrl(newBaseApp.getUrl());
@ -133,7 +123,6 @@ public class BaseAppMenuEndPoint extends EnvelopRestEndpoint {
        try {
            List<BaseAppMenu> list = baseAppMenuDao.findAll();
            list.forEach(one->{
                one.setIsTopName(isTopName.get(one.getIsTop()));
                one.setStatusName(statusName.get(one.getStatus()));
            });
            return ListEnvelop.getSuccess ("查询成功",list);
@ -152,7 +141,6 @@ public class BaseAppMenuEndPoint extends EnvelopRestEndpoint {
            if(one == null){
                return failed("查询失败");
            }
            one.setIsTopName(isTopName.get(one.getIsTop()));
            one.setStatusName(statusName.get(one.getStatus()));
            return ObjEnvelop.getSuccess("查询成功",one);
        } catch (Exception e) {
@ -163,13 +151,15 @@ public class BaseAppMenuEndPoint extends EnvelopRestEndpoint {
    @RequestMapping("/getTreeData")
    @ApiOperation(value = "根据条件,获取菜单列表(树形结构)")
    public Envelop getTreeData(@ApiParam(name = "codeName", value = "codeName")
                               @RequestParam(value = "codeName",required = false) String codeName) {
    public Envelop getTreeData(@ApiParam(name = "codeName", value = "资源报表分类编码或名称")
                               @RequestParam(value = "codeName",required = false) String codeName,
                               @ApiParam(name = "type",required = true, value = "类型 1医生 2居民")
                               @RequestParam(value = "type") Integer type) {
        try {
            List<BaseAppMenu> resultList = new ArrayList<>();
            // 获取最顶层的资源报表分类集合
            List<BaseAppMenu> topNodeList = baseAppMenuService.getChildrenByPid(BaseAppMenu.topPid);
            List<BaseAppMenu> topNodeList = baseAppMenuService.getChildrenByPid(BaseAppMenu.topPid,type);
            if (topNodeList.size() == 0) {
                return success("查询成功");
            }
@ -180,7 +170,7 @@ public class BaseAppMenuEndPoint extends EnvelopRestEndpoint {
            List<BaseAppMenu> topNodeListOut = new ArrayList<>();
            if (StringUtils.isEmpty(codeName)) {
                List<BaseAppMenu> treeList = baseAppMenuService.getTreeByParents(topNodeList);
                List<BaseAppMenu> treeList = baseAppMenuService.getTreeByParents(topNodeList,type);
                return ListEnvelop.getSuccess("查询成功",treeList);
            }
@ -192,14 +182,13 @@ public class BaseAppMenuEndPoint extends EnvelopRestEndpoint {
                topNodeListOut.add(reportCategory);
            }
            if (topNodeListIn.size() != 0) {
                List<BaseAppMenu> inList = baseAppMenuService.getTreeByParents(topNodeListIn);
                List<BaseAppMenu> inList = baseAppMenuService.getTreeByParents(topNodeListIn,type);
                resultList.addAll(inList);
            }
            List<BaseAppMenu> outList = baseAppMenuService.getTreeByParentsAndCodeName(topNodeListOut, codeName);
            List<BaseAppMenu> outList = baseAppMenuService.getTreeByParentsAndCodeName(topNodeListOut, codeName,type);
            resultList.addAll(outList);
            resultList.forEach(one->{
                one.setIsTopName(isTopName.get(one.getIsTop()));
                one.setStatusName(statusName.get(one.getStatus()));
            });

+ 10 - 10
svr/svr-base/src/main/java/com/yihu/jw/base/service/menu/BaseAppMenuService.java

@ -36,12 +36,12 @@ public class BaseAppMenuService extends BaseJpaService {
     * @param pid 父级ID。
     * @return 子节点集合
     */
    public List<BaseAppMenu> getChildrenByPid(String pid) {
    public List<BaseAppMenu> getChildrenByPid(String pid,Integer type) {
        List<BaseAppMenu> children;
        if (BaseAppMenu.topPid.equals(pid)) {
            children = baseAppMenuDao.getTopParents();
            children = baseAppMenuDao.getTopParents(type);
        } else {
            children = baseAppMenuDao.getChildrenByPid(pid);
            children = baseAppMenuDao.getChildrenByPid(pid,type);
        }
        return children;
    }
@ -51,12 +51,12 @@ public class BaseAppMenuService extends BaseJpaService {
     * @param parentList 父级集合
     * @return 父级及其子集的树形结构数据
     */
    public List<BaseAppMenu> getTreeByParents(List<BaseAppMenu> parentList) {
    public List<BaseAppMenu> getTreeByParents(List<BaseAppMenu> parentList,Integer type) {
        List<BaseAppMenu> resultList = new ArrayList<>();
        for (int i = 0; i < parentList.size(); i++) {
            BaseAppMenu parent = parentList.get(i);
            List<BaseAppMenu> childList = this.getChildrenByPid(parent.getId());
            List<BaseAppMenu> childTreeList = getTreeByParents(childList);
            List<BaseAppMenu> childList = this.getChildrenByPid(parent.getId(),type);
            List<BaseAppMenu> childTreeList = getTreeByParents(childList,type);
            parent.setChildren(childTreeList);
            resultList.add(parent);
        }
@ -70,25 +70,25 @@ public class BaseAppMenuService extends BaseJpaService {
     * @param codeName 资源报表分类编码或名称
     * @return 满足条件的子集及其父级的树形结构
     */
    public List<BaseAppMenu> getTreeByParentsAndCodeName(List<BaseAppMenu> parents, String codeName) throws ParseException {
    public List<BaseAppMenu> getTreeByParentsAndCodeName(List<BaseAppMenu> parents, String codeName,Integer type) throws ParseException {
        List<BaseAppMenu> treeData = new ArrayList<>();
        for (BaseAppMenu parent : parents) {
            String parentId = parent.getId();
            List<BaseAppMenu> childrenTree = new ArrayList<>();
            List<BaseAppMenu> children = this.getChildrenByPid(parentId);
            List<BaseAppMenu> children = this.getChildrenByPid(parentId,type);
            if (children.size() == 0) continue;
            // 获取满足条件的子节点
            String filters = "pid=" + parentId + ";code?" + codeName + " g1;name?" + codeName + " g1;";
            List<BaseAppMenu> childrenIin = (List<BaseAppMenu>) this.search(filters);
            if (childrenIin.size() != 0) {
                childrenTree.addAll(getTreeByParents(childrenIin));
                childrenTree.addAll(getTreeByParents(childrenIin,type));
            }
            // 递归不满足条件的子节点
            children.removeAll(childrenIin);
            if (children.size() != 0) {
                childrenTree.addAll(getTreeByParentsAndCodeName(children, codeName));
                childrenTree.addAll(getTreeByParentsAndCodeName(children, codeName,type));
            }
            if (childrenTree.size() != 0) {

+ 68 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/healthUpload/PatientHealthUploadPoint.java

@ -0,0 +1,68 @@
package com.yihu.jw.hospital.endpoint.healthUpload;
import com.yihu.jw.entity.healthUpload.BasePatientHealthUploadDO;
import com.yihu.jw.healthUpload.service.BasePatientHealthUploadService;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * Created by yeshijie on 2022/12/6.
 */
@RestController
@RequestMapping(value = "healthUpload/patient")
@Api(value = "居民端-马銮湾医院健康上报功能", tags = "居民端-马銮湾医院健康上报功能")
public class PatientHealthUploadPoint extends EnvelopRestEndpoint {
    @Autowired
    private BasePatientHealthUploadService patientHealthUploadService;
    @PostMapping(value = "createHealthUploadInfo")
    @ApiOperation(value = "提交健康信息")
    public ObjEnvelop createHealthUploadInfo(@ApiParam(name = "jsonData", value = "健康信息实体")
                                             @RequestParam(value = "jsonData", required = true) String jsonData) {
        try {
            BasePatientHealthUploadDO healthUploadDO = objectMapper.readValue(jsonData, BasePatientHealthUploadDO.class);
            healthUploadDO = patientHealthUploadService.createHealthUploadInfo(healthUploadDO);
            return success(healthUploadDO);
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "selectHealthUploadInfoByPatientId")
    @ApiOperation(value = "查询成员的健康上报记录")
    public MixEnvelop selectHealthUploadInfoByPatientId(@ApiParam(name = "patientId", value = "医生id")
                                                       @RequestParam(value = "patientId", required = true) String patientId,
                                                       @ApiParam(name = "startDate", value = "开始时间")
                                                       @RequestParam(value = "startDate", required = false) String startDate,
                                                       @ApiParam(name = "endDate", value = "结束时间")
                                                       @RequestParam(value = "endDate", required = false) String endDate,
                                                       @ApiParam(name = "page", value = "页码")
                                                       @RequestParam(value = "page", required = false) Integer page,
                                                       @ApiParam(name = "pageSize", value = "大小")
                                                       @RequestParam(value = "pageSize", required = false) Integer pageSize) {
        try {
            MixEnvelop mixEnvelop = patientHealthUploadService.selectHealthUploadInfoByPatientId(patientId,startDate,endDate,page,pageSize);
            return mixEnvelop;
        } catch (Exception e) {
            return failedMixEnvelopException(e);
        }
    }
    @GetMapping(value = "selectHealthInfoById")
    @ApiOperation(value = "根据id查询健康上报情况")
    public ObjEnvelop selectHealthInfoById(@ApiParam(name = "id", value = "医生id")
                                                       @RequestParam(value = "id", required = true) String id) {
        try {
            BasePatientHealthUploadDO healthUploadDO = patientHealthUploadService.selectHealthInfoById(id);
            return success(healthUploadDO);
        } catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
}

+ 42 - 34
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/nurse/NursingCardEndpoint.java

@ -1,22 +1,25 @@
package com.yihu.jw.hospital.endpoint.nurse;
import com.yihu.jw.entity.base.nurse.BaseNursingCardDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.healthUpload.service.BasePatientHealthUploadService;
import com.yihu.jw.nurse.service.BaseNursingCardService;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.entity.ServiceException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 陪护证
@ -29,8 +32,8 @@ public class NursingCardEndpoint extends EnvelopRestEndpoint {
    @Resource
    private BaseNursingCardService nursingCardService;
    @Resource
    private BasePatientDao patientDao;
    @Autowired
    private BasePatientHealthUploadService patientHealthUploadService;
    @PostMapping(value = "doctor/check")
    @ApiOperation(value = "审核")
@ -41,7 +44,7 @@ public class NursingCardEndpoint extends EnvelopRestEndpoint {
            @RequestParam(value = "doctor") String doctor,
            @ApiParam(name = "checkReason", value = "审核说明/拒绝原因")
            @RequestParam(value = "checkReason", required = false) String checkReason,
            @ApiParam(name = "status", value = "状态 -1拒绝 1通过", required = true)
            @ApiParam(name = "status", value = "状态 -2失效,-1拒绝 1通过", required = true)
            @RequestParam(value = "status") Integer status) {
        try {
            nursingCardService.doctorCheck(id, status, doctor, checkReason);
@ -54,11 +57,13 @@ public class NursingCardEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = "ifCanApply")
    @ApiOperation(value = "是否可申请")
    public Envelop ifCanApply(
            @ApiParam(name = "patient", value = "居民id", required = true)
            @RequestParam(value = "patient") String patient) {
            @ApiParam(name = "idcard", value = "患者身份证", required = true)
            @RequestParam(value = "idcard") String idcard,
            @ApiParam(name = "name", value = "患者姓名", required = true)
            @RequestParam(value = "name") String name) {
        try {
            //院内存在门诊或住院患者时,才可提交页面
            return success("获取成功", nursingCardService.ifCanApply(patient));
            //院内存在住院患者时,才可提交页面
            return success("获取成功", nursingCardService.ifCanApply(idcard,name));
        }catch (Exception e){
            return failedException(e);
        }
@ -82,20 +87,21 @@ public class NursingCardEndpoint extends EnvelopRestEndpoint {
    public PageEnvelop patientPage (
            @ApiParam(name = "patient", required = true, value = "居民id")
            @RequestParam(value = "patient") String patient,
            @ApiParam(name = "type", value = "陪护类型 2住院")
            @RequestParam(value = "type", required = false) Integer type,
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
            @RequestParam(value = "page") Integer page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") Integer size) {
        try {
            String filters = "patient="+patient;
            if(type!=null){
                filters+=";type="+type+";status=1";
            }
            String filters = "nursePatient="+patient;
            List<BaseNursingCardDO> list = nursingCardService.search(null, filters, null, page, size);
            boolean hasNucleicReport = false;
            if(list.size()>0){
                //判断是否上传健康上报
                hasNucleicReport = patientHealthUploadService.isUploadType3(patient);
            }
            for (BaseNursingCardDO cardDO:list){
                cardDO.setStatusName(BaseNursingCardDO.Status.getStatusName(cardDO.getStatus()));
                cardDO.setHasNucleicReport(hasNucleicReport);
            }
            int count = (int)nursingCardService.getCount(filters);
            return success(list, count, page, size, BaseNursingCardDO.class);
@ -128,8 +134,22 @@ public class NursingCardEndpoint extends EnvelopRestEndpoint {
                filters+="name?"+name+" g1;idcard?"+name+" g1";
            }
            List<BaseNursingCardDO> list = nursingCardService.search(null, filters, null, page, size);
            Map<String,Integer> areaMaxNum = new HashMap<>();
            for (BaseNursingCardDO cardDO:list){
                cardDO.setStatusName(BaseNursingCardDO.Status.getStatusName(cardDO.getStatus()));
                String inpatientAreaId = cardDO.getInpatientAreaId();
                int remainingNum = 0;
                if(StringUtils.isNotBlank(inpatientAreaId)){
                    if(!areaMaxNum.containsKey(inpatientAreaId)){
                        areaMaxNum.put(inpatientAreaId,nursingCardService.countByInpatientAreaIdAndStatus(inpatientAreaId));
                    }
                    remainingNum = areaMaxNum.get(inpatientAreaId);
                }
                cardDO.setRemainingNum(remainingNum);
                cardDO.setNursingNum(nursingCardService.countByPatientAndStatus(cardDO.getPatient()));
                if(cardDO.getStatus()==1){
                    cardDO.setRemainingTimes(DateUtil.getDifferenceOfSeconds(cardDO.getEndTime(),new Date()));
                }
            }
            int count = (int)nursingCardService.getCount(filters);
            return success(list, count, page, size, BaseNursingCardDO.class);
@ -147,30 +167,18 @@ public class NursingCardEndpoint extends EnvelopRestEndpoint {
            @RequestParam(value = "jsonData") String jsonData ) {
        try {
            BaseNursingCardDO nursingCardDO = toEntity(jsonData, BaseNursingCardDO.class);
            String pateint = nursingCardDO.getPatient();
            if(!nursingCardService.ifCanApply(pateint)){
                return Envelop.getError("未找到门诊或住院患者,不可提交申请",-1);
            }
            int count = nursingCardService.countByPatientAndStatus(pateint);
            if(count>0){
                if(count>=2){
                    return Envelop.getError("每个患者最多可申请2人陪护",-1);
                }
                BasePatientDO patientDO = patientDao.findById(pateint).orElse(null);
                int age = IdCardUtil.getAgeByBirthdayOrIdcard(patientDO.getIdcard(),patientDO.getBirthday());
                if(age<75){
                    return Envelop.getError("75岁以下患者仅能申请1人陪护",-1);
                }
            }
            //是否可申请,及病区字段获取
            nursingCardDO = nursingCardService.ifCanApply(nursingCardDO);
            nursingCardDO.setType(2);
            nursingCardDO.setCreateTime(new Date());
            nursingCardDO.setStatus(0);//审核中
            nursingCardDO = nursingCardService.save(nursingCardDO);
            return success("申请成功!", nursingCardDO);
        }catch (ServiceException se){
            return Envelop.getError(se.getMessage());
        }catch (Exception e){
            return failedException(e);
            return failedException2(e);
        }
    }

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

@ -288,7 +288,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
                                                             @RequestParam(value = "page",required = false) Integer page,
                                                            @ApiParam(name = "pagesize", value = "分页大小")
                                                             @RequestParam(value = "pagesize",required = false) Integer pagesize
    ) throws Exception{
    ) {
        try {
            logger.info("findDoctorByHospitalAndDiseaseAndDept start:"+ DateUtil.dateToStr(new Date(),"yyyy-MM-dd HH:mm:ss:SSS"));
            return prescriptionService.findDoctorByHospitalAndDiseaseAndDept2(iswork,patientid,
@ -297,7 +297,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
                    jobTitleNameKey,outpatientType,
                    keyName,workingTime,consultStatus,chargType,consutlSort,isAttention,page,pagesize);
        } catch (Exception e){
            return  failedMixEnvelopException(e);
            return  failedMixEnvelopException2(e);
        }
    }
    @GetMapping("/testFrontQuery")
@ -343,7 +343,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
                    jobTitleNameKey,outpatientType,
                    keyName,workingTime,consultStatus,chargType,consutlSort,isAttention,page,pagesize);
        } catch (Exception e){
            return  failedMixEnvelopException(e);
            return  failedMixEnvelopException2(e);
        }
    }
@ -356,7 +356,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return success(prescriptionService.findHotDeptAndDiseaseDict(dictName));
        } catch (Exception e){
            return  failedListEnvelopException(e);
            return  failedListEnvelopException2(e);
        }
    }
@ -369,7 +369,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return success(prescriptionService.getTodayOutpatinetList(patient,wxId));
        } catch (Exception e){
            return  failedListEnvelopException(e);
            return  failedListEnvelopException2(e);
        }
    }
@ -381,7 +381,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return success(prescriptionService.findByDeptTypeCode(deptTypeCode));
        } catch (Exception e){
            return  failedListEnvelopException(e);
            return  failedListEnvelopException2(e);
        }
    }
@ -399,7 +399,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            List<Map<String, Object>> list = sysDictService.findByHosAndDict(hospital, dictName);
            return success("查询成功",list);
        } catch (Exception e){
            return  failedException(e);
            return  failedException2(e);
        }
    }
@ -417,7 +417,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return success(prescriptionService.findDoctorInfo(doctor,idcard,withWork,patient));
        }catch (Exception e){
            return  failedException(e);
            return  failedException2(e);
        }
    }
@ -437,7 +437,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            String consultCode = imService.getUnfinishedConsult(patient, doctor);
            return success("请求成功",consultCode);
        }catch (Exception e){
            return  failedException(e);
            return  failedException2(e);
        }
    }
@ -461,7 +461,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
                return success("无法获取该机构的部门列表信息!");
            }
        }catch (Exception e){
            return  failedException(e);
            return  failedException2(e);
        }
    }
@ -482,7 +482,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
                return success("无法获取该机构的职称信息!");
            }
        }catch (Exception e){
            return  failedException(e);
            return  failedException2(e);
        }
    }
@ -495,7 +495,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return success(prescriptionService.findWorkTimeInfo(id));
        }catch (Exception e){
            return  failedListEnvelopException(e);
            return  failedListEnvelopException2(e);
        }
    }
@ -526,7 +526,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            }
            return success("请求成功",result);
        }catch (Exception e){
            return  failedObjEnvelopException(e);
            return  failedObjEnvelopException2(e);
        }
    }
@ -556,7 +556,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            return success("请求成功",result);
        } catch (Exception e){
            return  failedException(e);
            return  failedException2(e);
        }
    }
@ -601,7 +601,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            redisTemplate.expire(key,10, TimeUnit.SECONDS);
            return success(PatientRequestMapping.Wechat.api_success,openid);
        } catch (Exception e){
            return  failedException(e);
            return  failedException2(e);
        }
    }
@ -861,7 +861,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return success(workTimeService.findWorkTimeRule(hospital));
        } catch (Exception e){
            return  failedObjEnvelopException(e);
            return  failedObjEnvelopException2(e);
        }
    }
@ -875,7 +875,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return success(workTimeService.checkDoctorWork(doctor,ywCode));
        } catch (Exception e){
            return  failedObjEnvelopException(e);
            return  failedObjEnvelopException2(e);
        }
    }
@ -903,7 +903,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
                return ObjEnvelop.getSuccess("获取面单信息成功",result);
            }
        } catch (Exception e) {
            return failedObjEnvelopException(e);
            return failedObjEnvelopException2(e);
        }
    }
@ -943,7 +943,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            }
            return success(articleDO);
        }catch (Exception e) {
            return failedException(e);
            return failedException2(e);
        }
    }
@ -1017,7 +1017,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
           qrcodeService.makeAllSpecialistQrcode();
           return success("操作成功");
       }catch (Exception e) {
           return failedException(e);
           return failedException2(e);
       }
    }
@ -1030,7 +1030,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            String uri = qrcodeService.makeSpecialistQrcode(doctor);
            return success("操作成功",uri);
        } catch (Exception e) {
            return failedException(e);
            return failedException2(e);
        }
    }
@ -1043,7 +1043,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            String uri = qrcodeService.makeSpecialistXcxQrcode(doctor);
            return success("操作成功",uri);
        } catch (Exception e) {
            return failedException(e);
            return failedException2(e);
        }
    }
@ -1056,7 +1056,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            String uri = wechatInfoService.getUserPhoneByApplets(code);
            return success("操作成功",uri);
        } catch (Exception e) {
            return failedException(e);
            return failedException2(e);
        }
    }
@ -1069,7 +1069,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            String uri = qrcodeService.makeUrlQrcode(flag);
            return success("操作成功",uri);
        } catch (Exception e) {
            return failedException(e);
            return failedException2(e);
        }
    }
@ -1097,7 +1097,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
           logger.info(result);
           return success("操作成功",result);
       }catch (Exception e) {
           return failedException(e);
           return failedException2(e);
       }
    }
@ -1132,7 +1132,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            logger.info(result);
            return success("操作成功",result);
        } catch (Exception e) {
            return failedException(e);
            return failedException2(e);
        }
    }
    /**
@ -1519,7 +1519,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return wlyyHttpLogService.findLog(startTime,endTime,interfaceName,patient,doctor,page,pageSize);
        } catch (Exception e) {
            return failedMixEnvelopException(e);
            return failedMixEnvelopException2(e);
        }
    }
@ -1550,7 +1550,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            }
            return success(object);
        } catch (Exception e) {
            return failedObjEnvelopException(e);
            return failedObjEnvelopException2(e);
        }
    }
@ -1580,7 +1580,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return success(prescriptionService.findOutpatientAndPatient(startTime,endTime));
        } catch (Exception e) {
            return failedListEnvelopException(e);
            return failedListEnvelopException2(e);
        }
    }
@ -1635,7 +1635,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return success(baseDoctorService.findChargeDicts());
        } catch (Exception e) {
            return failedListEnvelopException(e);
            return failedListEnvelopException2(e);
        }
    }
    @GetMapping("/deleteChargeDict")
@ -1650,7 +1650,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            baseDoctorService.deleteChargeDict(id,del);
            return success("操作成功");
        } catch (Exception e) {
            return failedException(e);
            return failedException2(e);
        }
    }
    @GetMapping(value = BaseHospitalRequestMapping.PatientNoLogin.findWorkDoctorCount)
@ -1664,7 +1664,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return success(prescriptionService.getWorkDoctorCount(nowTime,orgCode));
        }catch (Exception e) {
            return failedObjEnvelopException(e);
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = BaseHospitalRequestMapping.PatientNoLogin.findAllDict)
@ -1675,7 +1675,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return success(prescriptionService.findAllDict());
        } catch (Exception e) {
            return failedListEnvelopException(e);
            return failedListEnvelopException2(e);
        }
    }
    @GetMapping(value = BaseHospitalRequestMapping.PatientNoLogin.findDictById)
@ -1687,7 +1687,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return success(prescriptionService.findDictById(dictId));
        } catch (Exception e) {
            return failedException(e);
            return failedException2(e);
        }
    }
    @GetMapping(value = BaseHospitalRequestMapping.PatientNoLogin.updateDictById)
@ -1701,7 +1701,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return success(prescriptionService.updateDictById(dictId,dictValue));
        }catch (Exception e) {
            return failedException(e);
            return failedException2(e);
        }
    }
    @GetMapping(value = BaseHospitalRequestMapping.PatientNoLogin.findDictByCode)
@ -1713,7 +1713,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return success(prescriptionService.findSysByDictCode(dictCode));
        }catch (Exception e) {
            return failedListEnvelopException(e);
            return failedListEnvelopException2(e);
        }
    }
    @GetMapping(value = BaseHospitalRequestMapping.PatientIM.getDoctorConsultCount)
@ -1747,7 +1747,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return baseUserMsgService.getMessage(doctor,showAll,showAllType,beginTime,endTime,patient,page,pageSize,isShow);
        } catch (Exception e) {
            return failedException(e);
            return failedException2(e);
        }
    }
    @GetMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.searchKnowledgePageList)
@ -1806,7 +1806,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            return success(result);
        }catch (Exception e) {
            return failedException(e);
            return failedException2(e);
        }
    }
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.popularityIncrease)
@ -1819,7 +1819,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            BaseDoctorDO baseDoctorDO=baseDoctorService.popularityIncrease(doctor);
            return  success("操作成功",baseDoctorDO);
        } catch (Exception e) {
            return failedException(e);
            return failedException2(e);
        }
    }
    @ApiOperation("查询赠送锦旗")
@ -1831,7 +1831,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            JSONObject jsonObject = baseBannerDoctorService.getDoctorBanners(doctor);
            return success(jsonObject);
        }catch (Exception e) {
            return failedException(e);
            return failedException2(e);
        }
    }
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.findDeptByHospital)
@ -1846,7 +1846,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return success(prescriptionService.findDeptByHospital(orgCode,dept,consultDeptFlag));
        }catch (Exception e) {
            return failedListEnvelopException(e);
            return failedListEnvelopException2(e);
        }
    }
    @GetMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.getArticleGroup)
@ -1857,7 +1857,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            MixEnvelop envelop = knowledgeCategoryService.findAllGroup();
            return envelop;
        }catch (Exception e) {
            return failedMixEnvelopException(e);
            return failedMixEnvelopException2(e);
        }
    }
@ -1879,7 +1879,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            MixEnvelop mixEnvelop=knowledgeArticleService.findArticleByCategoryAndName(categoryFirst,categorySecond,keyWords,page,pageSize);
            return mixEnvelop;
        }catch (Exception e) {
            return failedMixEnvelopException(e);
            return failedMixEnvelopException2(e);
        }
    }
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.findAllHospital)
@ -1892,7 +1892,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return success(prescriptionService.findAllHospital(level,keyWord));
        }catch (Exception e) {
            return failedListEnvelopException(e);
            return failedListEnvelopException2(e);
        }
    }
    @PostMapping(value = BaseHospitalRequestMapping.Prescription.appointmentRevisitOnDoor)
@ -1911,7 +1911,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            WlyyOutpatientDO wlyyOutpatientDO = prescriptionService.appointmentRevisitOnDoor(outpatientJson,expressageJson,registerJson,chargeType);
            return success(BaseHospitalRequestMapping.Prescription.api_success,wlyyOutpatientDO);
        }catch (Exception e) {
            return failedObjEnvelopException(e);
            return failedObjEnvelopException2(e);
        }
@ -1924,7 +1924,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return prescriptionService.findJobCategory();
        }catch (Exception e) {
            return failedMixEnvelopException(e);
            return failedMixEnvelopException2(e);
        }
    }
@ -1957,7 +1957,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            logger.info("同步数据成功");
            return  prescriptionService.getNatRecords(patientId,id,payStatus,appointmentTime,isSuccess,idcard,page,pageSize);
        } catch (Exception e) {
            return failedMixEnvelopException(e);
            return failedMixEnvelopException2(e);
        }
    }
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.findBaseAddress)
@ -1972,7 +1972,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return  success(prescriptionService.findBaseAddress(addressFlag,parentName));
        } catch (Exception e) {
            return failedListEnvelopException(e);
            return failedListEnvelopException2(e);
        }
    }
    @GetMapping("/testsms")
@ -1985,7 +1985,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            ConsultDo consultDo = consultDao.findById(consult).orElse(null);
            return  success(systemMessageService.sendDoctorRemindSms(consultDo));
        } catch (Exception e) {
            return failedException(e);
            return failedException2(e);
        }
    }
    /**
@ -2037,7 +2037,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return success(prescriptionService.findByIdCard(idCard));
        }catch (Exception e) {
            return failedException(e);
            return failedException2(e);
        }
    }
@ -2053,7 +2053,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            prescriptionService.updateChannelId(id,channelId);
            return success("保存成功");
        }catch (Exception e) {
            return failedException(e);
            return failedException2(e);
        }
    }
@ -2215,7 +2215,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        try {
            return businessOrderService.findYktCardCharge(startTime,endTime,orderNo,yktOrderNo,patientName,idCard,medicard,status,page,pageSize, orderType, orderCategory);
        }catch (Exception e) {
            return failedMixEnvelopException(e);
            return failedMixEnvelopException2(e);
        }
    }
@ -2309,7 +2309,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            }
            return success(result);
        } catch (Exception e) {
            return failedObjEnvelopException(e);
            return failedObjEnvelopException2(e);
        }
    }
@ -2333,7 +2333,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            return success(result);
        }catch (Exception e) {
            return failedObjEnvelopException(e);
            return failedObjEnvelopException2(e);
        }
    }
@ -2544,7 +2544,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            return success("");
        } catch (Exception e){
            return  failedException(e);
            return  failedException2(e);
        }
    }