LAPTOP-KB9HII50\70708 преди 2 години
родител
ревизия
8388c6145d
променени са 33 файла, в които са добавени 1082 реда и са изтрити 252 реда
  1. 13 0
      business/base-service/src/main/java/com/yihu/jw/healthUpload/dao/HealthReportingFrequencyDao.java
  2. 50 108
      business/base-service/src/main/java/com/yihu/jw/healthUpload/service/BaseDoctorHealthUploadService.java
  3. 31 0
      business/base-service/src/main/java/com/yihu/jw/healthUpload/service/HealthReportingFrequencyService.java
  4. 77 0
      business/base-service/src/main/java/com/yihu/jw/message/service/WxMessageUtil.java
  5. 21 0
      business/base-service/src/main/java/com/yihu/jw/nurse/dao/BaseNursingCardDao.java
  6. 76 0
      business/base-service/src/main/java/com/yihu/jw/nurse/service/BaseNursingCardService.java
  7. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceDao.java
  8. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceDeptDao.java
  9. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceNodeAppDao.java
  10. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceNodeDao.java
  11. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceNodeSmsDao.java
  12. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceNodeWxDao.java
  13. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidancePresetDao.java
  14. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidancePushLogDao.java
  15. 2 2
      svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceDeptService.java
  16. 2 2
      svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceNodeAppService.java
  17. 2 2
      svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceNodeService.java
  18. 2 2
      svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceNodeSmsService.java
  19. 2 2
      svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceNodeWxService.java
  20. 2 2
      svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidancePresetService.java
  21. 2 2
      svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidancePushLogService.java
  22. 2 2
      svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceService.java
  23. 15 0
      business/base-service/src/main/java/com/yihu/jw/processGuidance/service/ProcessGuidanceService.java
  24. 248 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/nurse/BaseNursingCardDO.java
  25. 70 61
      common/common-entity/src/main/java/com/yihu/jw/entity/healthUpload/BaseDoctorHealthUploadDO.java
  26. 28 0
      common/common-entity/src/main/java/com/yihu/jw/entity/healthUpload/DeptVO.java
  27. 99 0
      common/common-entity/src/main/java/com/yihu/jw/entity/healthUpload/HealthReportingFrequencyDO.java
  28. 14 1
      common/common-util/src/main/java/com/yihu/jw/util/common/IdCardUtil.java
  29. 6 5
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/processGuidance/BaseProcessGuidanceEndpoint.java
  30. 10 45
      svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/channel/HealthUploadService.java
  31. 79 8
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/healthUpload/HealthUploadPoint.java
  32. 177 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/nurse/NursingCardEndpoint.java
  33. 44 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/processGuidance/ProcessGuidanceEndpoint.java

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

@ -0,0 +1,13 @@
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;
/**
 * Created by yeshijie on 2022/11/17.
 */
public interface HealthReportingFrequencyDao  extends JpaRepository<HealthReportingFrequencyDO, String>,
        JpaSpecificationExecutor<HealthReportingFrequencyDO> {
}

+ 50 - 108
business/base-service/src/main/java/com/yihu/jw/healthUpload/service/BaseDoctorHealthUploadService.java

@ -1,4 +1,5 @@
package com.yihu.jw.healthUpload.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.dict.dao.DictHospitalDeptDao;
@ -8,36 +9,31 @@ import com.yihu.jw.doctor.dao.BaseDoctorRoleDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO;
import com.yihu.jw.entity.base.wx.WxAccessTokenDO;
import com.yihu.jw.entity.base.wx.WxPushLogDO;
import com.yihu.jw.entity.base.wx.WxTemplateConfigDO;
import com.yihu.jw.entity.healthUpload.BaseDoctorHealthUploadDO;
import com.yihu.jw.entity.healthUpload.BaseDoctorMemberDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.healthUpload.dao.BaseDoctorHealthUploadDao;
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;
import com.yihu.jw.util.idcard.IdCardUtil;
import com.yihu.jw.util.wechat.WeixinMessagePushUtils;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.jw.wechat.dao.WxPushLogDao;
import com.yihu.jw.wechat.dao.WxTemplateConfigDao;
import com.yihu.jw.wechat.service.WxAccessTokenService;
import com.yihu.jw.mysql.query.BaseJpaService;
import jxl.write.*;
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.BeanUtils;
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.io.IOException;
import java.io.OutputStream;
@ -52,6 +48,8 @@ public class BaseDoctorHealthUploadService extends BaseJpaService<BaseDoctorHeal
    @Autowired
    private BaseDoctorDao baseDoctorDao;
    @Autowired
    private BasePatientDao patientDao;
    @Autowired
    private BaseDoctorHealthUploadDao baseDoctorHealthUploadDao;
    @Autowired
    private BaseDoctorHospitalDao baseDoctorHospitalDao;
@ -60,19 +58,14 @@ public class BaseDoctorHealthUploadService extends BaseJpaService<BaseDoctorHeal
    @Autowired
    private BaseDoctorRoleDao doctorRoleDao;
    @Autowired
    private WeixinMessagePushUtils weixinMessagePushUtils;
    @Autowired
    private WxTemplateConfigDao wxTemplateConfigDao;
    @Autowired
    private WxAccessTokenService wxAccessTokenService;
    @Autowired
    private WxPushLogDao wxPushLogDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    @Value("${wechat.id}")
    private String wechatId;
    @Autowired
    private WlyyHospitalSysDictDao hospitalSysDictDao;
    @Resource
    private WxMessageUtil wxMessageUtil;
    /**
     * 新增医生成员关系
@ -181,113 +174,62 @@ public class BaseDoctorHealthUploadService extends BaseJpaService<BaseDoctorHeal
    /**
     * 提交健康信息
     *
     * @param baseDoctorHealthUploadDO 健康信息实体类
     * @return
     */
    public BaseDoctorHealthUploadDO createHealthUploadInfo(BaseDoctorHealthUploadDO baseDoctorHealthUploadDO) {
        baseDoctorHealthUploadDO.setCreateTime(new Date());
        baseDoctorHealthUploadDO = baseDoctorHealthUploadDao.save(baseDoctorHealthUploadDO);
        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());
        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());
                                            }
                                        }
                                    }
                                    logger.info("startEnd:"+startEnd+total);
                                    if (StringUtils.isNoneBlank(count)){
                                        if (total<Integer.parseInt(count)){
                                            if (!StringUtils.isNoneBlank(doctorDO.getOpenid())) {
                                                logger.info("该用户" + doctorDO.getName() + "没有openid,无法推送模版消息,用户ID:" + doctorDO.getId() + "wechatId:xm_mlwyy_wx");
                                            } else {
                                                WxTemplateConfigDO config = wxTemplateConfigDao.findByWechatIdAndTemplateNameAndSceneAndStatus("xm_mlwyy_wx", "template_unusual_notice", "jkzlyctxtz", 1);
                                                WxTemplateConfigDO newConfig = new WxTemplateConfigDO();
                                                BeanUtils.copyProperties(config, newConfig);
                                                if (doctorHospitalDOS != null && doctorHospitalDOS.size() != 0) {
                                                    newConfig.setFirst(config.getFirst().replace("key1", doctorHospitalDOS.get(0).getDeptName()).replace("key2", baseDoctorHealthUploadDO.getDoctorName()));
                                                } else {
                                                    newConfig.setFirst(config.getFirst().replace("key1的", "").replace("key2", baseDoctorHealthUploadDO.getDoctorName()));
                                                }
                                                newConfig.setKeyword2(baseDoctorHealthUploadDO.getDoctorName());
                                                newConfig.setKeyword3(DateUtil.getStringDate());
                                                newConfig.setUrl("https://ehr.yihu.com/hlwyy/healthMonitoring/#/health/commit?id=" + baseDoctorHealthUploadDO.getId() + "&docCode=" + baseDoctorHealthUploadDO.getDoctorId() + "");
                                                WxAccessTokenDO wxAccessTokenDO = wxAccessTokenService.getWxAccessTokenById("xm_mlwyy_wx");
                                                logger.info("=======setUrl========" + newConfig.getUrl());
                                                weixinMessagePushUtils.putWxMsg(wxAccessTokenDO.getAccessToken(), doctorDO.getOpenid(), newConfig);
                                        logger.info("startEnd:"+startEnd+total);
                                        if (StringUtils.isNoneBlank(count)){
                                            if (total<Integer.parseInt(count)){
                                                wxMessageUtil.sendHealthUploadWxTemplage(doctorDO,doctorHospitalDOS,baseDoctorHealthUploadDO);
                                            }
                                            //保存发送模板记录,
                                            WxPushLogDO wxPushLogDO = new WxPushLogDO();
                                            wxPushLogDO.setCreateTime(new Date());
                                            wxPushLogDO.setOpenid(doctorDO.getOpenid());
                                            wxPushLogDO.setReceiver(doctorDO.getId());
                                            wxPushLogDO.setWechatId("xm_mlwyy_wx");
                                            wxPushLogDO.setReceiverName(doctorDO.getName());
                                            wxPushLogDO.setScene("jkzlyctxtz");
                                            wxPushLogDao.save(wxPushLogDO);
                                        }
                                    }
                                }
                            }else {
                                wxMessageUtil.sendHealthUploadWxTemplage(doctorDO,doctorHospitalDOS,baseDoctorHealthUploadDO);
                            }
                        }else {
                            if (!StringUtils.isNoneBlank(doctorDO.getOpenid())) {
                                logger.info("该用户" + doctorDO.getName() + "没有openid,无法推送模版消息,用户ID:" + doctorDO.getId() + "wechatId:xm_mlwyy_wx");
                            } else {
                                WxTemplateConfigDO config = wxTemplateConfigDao.findByWechatIdAndTemplateNameAndSceneAndStatus("xm_mlwyy_wx", "template_unusual_notice", "jkzlyctxtz", 1);
                                WxTemplateConfigDO newConfig = new WxTemplateConfigDO();
                                BeanUtils.copyProperties(config, newConfig);
                                if (doctorHospitalDOS != null && doctorHospitalDOS.size() != 0) {
                                    newConfig.setFirst(config.getFirst().replace("key1", doctorHospitalDOS.get(0).getDeptName()).replace("key2", baseDoctorHealthUploadDO.getDoctorName()));
                                } else {
                                    newConfig.setFirst(config.getFirst().replace("key1的", "").replace("key2", baseDoctorHealthUploadDO.getDoctorName()));
                                }
                                newConfig.setKeyword2(baseDoctorHealthUploadDO.getDoctorName());
                                newConfig.setKeyword3(DateUtil.getStringDate());
                                newConfig.setUrl("https://ehr.yihu.com/hlwyy/healthMonitoring/#/health/commit?id=" + baseDoctorHealthUploadDO.getId() + "&docCode=" + baseDoctorHealthUploadDO.getDoctorId() + "");
                                WxAccessTokenDO wxAccessTokenDO = wxAccessTokenService.getWxAccessTokenById("xm_mlwyy_wx");
                                logger.info("=======setUrl========" + newConfig.getUrl());
                                weixinMessagePushUtils.putWxMsg(wxAccessTokenDO.getAccessToken(), doctorDO.getOpenid(), newConfig);
                            }
                            //保存发送模板记录,
                            WxPushLogDO wxPushLogDO = new WxPushLogDO();
                            wxPushLogDO.setCreateTime(new Date());
                            wxPushLogDO.setOpenid(doctorDO.getOpenid());
                            wxPushLogDO.setReceiver(doctorDO.getId());
                            wxPushLogDO.setWechatId("xm_mlwyy_wx");
                            wxPushLogDO.setReceiverName(doctorDO.getName());
                            wxPushLogDO.setScene("jkzlyctxtz");
                            wxPushLogDao.save(wxPushLogDO);
                        }
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }else {
            //居民 暂无提醒需求
        }
        return baseDoctorHealthUploadDO;
    }
@ -1325,7 +1267,7 @@ public class BaseDoctorHealthUploadService extends BaseJpaService<BaseDoctorHeal
                    "date_format(dhu.create_time ,'%Y-%m-%d %H:%i:%S' ) AS createTime " +
                    " FROM\n" +
                    "\tbase_doctor d\n" +
                    "LEFT JOIN /* (SELECT * FROM base_doctor_health_upload dhu1*/ base_doctor_health_upload dhu ON dhu.doctor_id = d.id WHERE dhu.create_time >= '" + date + " 00:00:00' AND dhu.create_time <= '" + date + " 23:59:59'  ";
                    "LEFT JOIN base_doctor_health_upload dhu ON dhu.doctor_id = d.id WHERE dhu.create_time >= '" + date + " 00:00:00' AND dhu.create_time <= '" + date + " 23:59:59'  ";
            if (StringUtils.isNoneBlank(dept)) {
                doctorSql += " and d.id in (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 )";
            }

+ 31 - 0
business/base-service/src/main/java/com/yihu/jw/healthUpload/service/HealthReportingFrequencyService.java

@ -0,0 +1,31 @@
package com.yihu.jw.healthUpload.service;
import com.yihu.jw.entity.healthUpload.HealthReportingFrequencyDO;
import com.yihu.jw.healthUpload.dao.HealthReportingFrequencyDao;
import com.yihu.jw.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * Created by yeshijie on 2022/11/17.
 */
@Service
public class HealthReportingFrequencyService extends BaseJpaService<HealthReportingFrequencyDO,HealthReportingFrequencyDao> {
    @Resource
    private HealthReportingFrequencyDao healthReportingFrequencyDao;
    public String getTypeName(Integer type){
        String name = "院内科室";
        switch (type){
            case 2:
                name = "门诊陪护";
                break;
            case 3:
                name = "住院陪护";
                break;
        }
        return name;
    }
}

+ 77 - 0
business/base-service/src/main/java/com/yihu/jw/message/service/WxMessageUtil.java

@ -0,0 +1,77 @@
package com.yihu.jw.message.service;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.wx.WxAccessTokenDO;
import com.yihu.jw.entity.base.wx.WxPushLogDO;
import com.yihu.jw.entity.base.wx.WxTemplateConfigDO;
import com.yihu.jw.entity.healthUpload.BaseDoctorHealthUploadDO;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.wechat.WeixinMessagePushUtils;
import com.yihu.jw.wechat.dao.WxPushLogDao;
import com.yihu.jw.wechat.dao.WxTemplateConfigDao;
import com.yihu.jw.wechat.service.WxAccessTokenService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
 * Created by yeshijie on 2022/11/18.
 */
@Service
public class WxMessageUtil {
    private static final Logger logger = LoggerFactory.getLogger(WxMessageUtil.class);
    @Resource
    private WxTemplateConfigDao wxTemplateConfigDao;
    @Resource
    private WxAccessTokenService wxAccessTokenService;
    @Resource
    private WxPushLogDao wxPushLogDao;
    @Resource
    private WeixinMessagePushUtils weixinMessagePushUtils;
    @Value("${wechat.id}")
    private String wechatId;
    /**
     * 发送健康上报微信模板
     */
    public void sendHealthUploadWxTemplage(BaseDoctorDO doctorDO, List<BaseDoctorHospitalDO> doctorHospitalDOS, BaseDoctorHealthUploadDO baseDoctorHealthUploadDO){
        if (!StringUtils.isNoneBlank(doctorDO.getOpenid())) {
            logger.info("该用户" + doctorDO.getName() + "没有openid,无法推送模版消息,用户ID:" + doctorDO.getId() + "wechatId:"+wechatId);
        } else {
            WxTemplateConfigDO config = wxTemplateConfigDao.findByWechatIdAndTemplateNameAndSceneAndStatus(wechatId, "template_unusual_notice", "jkzlyctxtz", 1);
            WxTemplateConfigDO newConfig = new WxTemplateConfigDO();
            BeanUtils.copyProperties(config, newConfig);
            if (doctorHospitalDOS != null && doctorHospitalDOS.size() != 0) {
                newConfig.setFirst(config.getFirst().replace("key1", doctorHospitalDOS.get(0).getDeptName()).replace("key2", baseDoctorHealthUploadDO.getDoctorName()));
            } else {
                newConfig.setFirst(config.getFirst().replace("key1的", "").replace("key2", baseDoctorHealthUploadDO.getDoctorName()));
            }
            newConfig.setKeyword2(baseDoctorHealthUploadDO.getDoctorName());
            newConfig.setKeyword3(DateUtil.getStringDate());
            newConfig.setUrl(config.getUrl() + baseDoctorHealthUploadDO.getId() + "&docCode=" + baseDoctorHealthUploadDO.getDoctorId() + "");
            WxAccessTokenDO wxAccessTokenDO = wxAccessTokenService.getWxAccessTokenById(wechatId);
            logger.info("=======setUrl========" + newConfig.getUrl());
            weixinMessagePushUtils.putWxMsg(wxAccessTokenDO.getAccessToken(), doctorDO.getOpenid(), newConfig);
        }
        //保存发送模板记录,
        WxPushLogDO wxPushLogDO = new WxPushLogDO();
        wxPushLogDO.setCreateTime(new Date());
        wxPushLogDO.setOpenid(doctorDO.getOpenid());
        wxPushLogDO.setReceiver(doctorDO.getId());
        wxPushLogDO.setWechatId(wechatId);
        wxPushLogDO.setReceiverName(doctorDO.getName());
        wxPushLogDO.setScene("jkzlyctxtz");
        wxPushLogDao.save(wxPushLogDO);
    }
}

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

@ -0,0 +1,21 @@
package com.yihu.jw.nurse.dao;
import com.yihu.jw.entity.base.nurse.BaseNursingCardDO;
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/16.
 */
public interface BaseNursingCardDao extends JpaRepository<BaseNursingCardDO, String>, JpaSpecificationExecutor<BaseNursingCardDO> {
    List<BaseNursingCardDO> findByPatientAndStatus(String patient,Integer status);
    @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);
}

+ 76 - 0
business/base-service/src/main/java/com/yihu/jw/nurse/service/BaseNursingCardService.java

@ -0,0 +1,76 @@
package com.yihu.jw.nurse.service;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.nurse.BaseNursingCardDO;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.nurse.dao.BaseNursingCardDao;
import com.yihu.jw.util.date.DateUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
/**
 * Created by yeshijie on 2022/11/16.
 */
@Service
public class BaseNursingCardService extends BaseJpaService<BaseNursingCardDO, BaseNursingCardDao> {
    @Resource
    private BaseNursingCardDao nursingCardDao;
    @Resource
    private BaseDoctorDao doctorDao;
    /**
     * 是否可申请
     * @param patient
     * @return
     */
    public boolean ifCanApply(String patient){
        return true;
    }
    /**
     * 陪护详情
     * @param id
     * @return
     */
    public BaseNursingCardDO nursingDetail(String id){
        BaseNursingCardDO cardDO = nursingCardDao.findById(id).orElse(null);
        cardDO.setStatusName(BaseNursingCardDO.Status.getStatusName(cardDO.getStatus()));
        return cardDO;
    }
    /**
     * 医生审核
     * @param id
     * @param status
     * @param doctor
     */
    public void doctorCheck(String id,Integer status,String doctor){
        BaseNursingCardDO cardDO = nursingCardDao.getOne(id);
        cardDO.setStatus(status);
        if(status==1){
            cardDO.setEndTime(DateUtil.getPreDays(new Date(),-3));
        }
        BaseDoctorDO doctorDO = doctorDao.findById(doctor).orElse(null);
        cardDO.setDoctor(doctor);
        cardDO.setDoctorName(doctorDO.getName());
        cardDO.setCheckTime(new Date());
        nursingCardDao.save(cardDO);
    }
    /**
     * 统计申请中,已生效的陪护数
     * @param patient
     * @return
     */
    public int countByPatientAndStatus(String patient){
        return nursingCardDao.countByPatientAndStatus(patient);
    }
}

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceDao.java

@ -1,4 +1,4 @@
package com.yihu.jw.base.dao.processGuidance;
package com.yihu.jw.processGuidance.dao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceDO;
import org.springframework.data.jpa.repository.JpaRepository;

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceDeptDao.java

@ -1,4 +1,4 @@
package com.yihu.jw.base.dao.processGuidance;
package com.yihu.jw.processGuidance.dao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceDeptDO;
import org.springframework.data.jpa.repository.JpaRepository;

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceNodeAppDao.java

@ -1,4 +1,4 @@
package com.yihu.jw.base.dao.processGuidance;
package com.yihu.jw.processGuidance.dao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceNodeAppDO;
import org.springframework.data.jpa.repository.JpaRepository;

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceNodeDao.java

@ -1,4 +1,4 @@
package com.yihu.jw.base.dao.processGuidance;
package com.yihu.jw.processGuidance.dao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceNodeDO;
import org.springframework.data.jpa.repository.JpaRepository;

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceNodeSmsDao.java

@ -1,4 +1,4 @@
package com.yihu.jw.base.dao.processGuidance;
package com.yihu.jw.processGuidance.dao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceNodeSmsDO;
import org.springframework.data.jpa.repository.JpaRepository;

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceNodeWxDao.java

@ -1,4 +1,4 @@
package com.yihu.jw.base.dao.processGuidance;
package com.yihu.jw.processGuidance.dao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceNodeWxDO;
import org.springframework.data.jpa.repository.JpaRepository;

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidancePresetDao.java

@ -1,4 +1,4 @@
package com.yihu.jw.base.dao.processGuidance;
package com.yihu.jw.processGuidance.dao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidancePresetDO;
import org.springframework.data.jpa.repository.JpaRepository;

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidancePushLogDao.java

@ -1,4 +1,4 @@
package com.yihu.jw.base.dao.processGuidance;
package com.yihu.jw.processGuidance.dao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidancePushLogDO;
import org.springframework.data.jpa.repository.JpaRepository;

+ 2 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceDeptService.java

@ -1,8 +1,8 @@
package com.yihu.jw.base.service.processGuidance;
package com.yihu.jw.processGuidance.service;
import com.yihu.jw.base.dao.processGuidance.BaseProcessGuidanceDeptDao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceDeptDO;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.processGuidance.dao.BaseProcessGuidanceDeptDao;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;

+ 2 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceNodeAppService.java

@ -1,8 +1,8 @@
package com.yihu.jw.base.service.processGuidance;
package com.yihu.jw.processGuidance.service;
import com.yihu.jw.base.dao.processGuidance.BaseProcessGuidanceNodeAppDao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceNodeAppDO;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.processGuidance.dao.BaseProcessGuidanceNodeAppDao;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;

+ 2 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceNodeService.java

@ -1,8 +1,8 @@
package com.yihu.jw.base.service.processGuidance;
package com.yihu.jw.processGuidance.service;
import com.yihu.jw.base.dao.processGuidance.BaseProcessGuidanceNodeDao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceNodeDO;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.processGuidance.dao.BaseProcessGuidanceNodeDao;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;

+ 2 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceNodeSmsService.java

@ -1,8 +1,8 @@
package com.yihu.jw.base.service.processGuidance;
package com.yihu.jw.processGuidance.service;
import com.yihu.jw.base.dao.processGuidance.BaseProcessGuidanceNodeSmsDao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceNodeSmsDO;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.processGuidance.dao.BaseProcessGuidanceNodeSmsDao;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;

+ 2 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceNodeWxService.java

@ -1,8 +1,8 @@
package com.yihu.jw.base.service.processGuidance;
package com.yihu.jw.processGuidance.service;
import com.yihu.jw.base.dao.processGuidance.BaseProcessGuidanceNodeWxDao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceNodeWxDO;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.processGuidance.dao.BaseProcessGuidanceNodeWxDao;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;

+ 2 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidancePresetService.java

@ -1,8 +1,8 @@
package com.yihu.jw.base.service.processGuidance;
package com.yihu.jw.processGuidance.service;
import com.yihu.jw.base.dao.processGuidance.BaseProcessGuidancePresetDao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidancePresetDO;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.processGuidance.dao.BaseProcessGuidancePresetDao;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;

+ 2 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidancePushLogService.java

@ -1,8 +1,8 @@
package com.yihu.jw.base.service.processGuidance;
package com.yihu.jw.processGuidance.service;
import com.yihu.jw.base.dao.processGuidance.BaseProcessGuidancePushLogDao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidancePushLogDO;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.processGuidance.dao.BaseProcessGuidancePushLogDao;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;

+ 2 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceService.java

@ -1,8 +1,8 @@
package com.yihu.jw.base.service.processGuidance;
package com.yihu.jw.processGuidance.service;
import com.yihu.jw.base.dao.processGuidance.*;
import com.yihu.jw.entity.base.processGuidance.*;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.processGuidance.dao.*;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import org.apache.commons.lang3.StringUtils;

+ 15 - 0
business/base-service/src/main/java/com/yihu/jw/processGuidance/service/ProcessGuidanceService.java

@ -0,0 +1,15 @@
package com.yihu.jw.processGuidance.service;
import org.springframework.stereotype.Service;
/**
 * Created by yeshijie on 2022/11/18.
 */
@Service
public class ProcessGuidanceService {
    public void sendGuidance(String patient,String type,String orderId) {
    }
}

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

@ -0,0 +1,248 @@
package com.yihu.jw.entity.base.nurse;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
/**
 * 陪护证
 * Created by yeshijie on 2022/11/16.
 */
@Entity
@Table(name = "base_nursing_card")
public class BaseNursingCardDO extends UuidIdentityEntityWithCreateTime {
    private Integer type;//陪护类型 1门诊 2住院
    private Integer status;//状态 -2已失效 -1未通过 0审核中 1生效中
    private String statusName;//状态 -2已失效 -1未通过 0审核中 1生效中
    private Date endTime;//到期时间
    private String patient;//居民id
    private String name;//居民姓名
    private String idcard;//居民身份证
    private String bedNo;//床位号
    private String qrCode;//二维码
    private String nurseName;//陪护人姓名
    private String nurseMobile;//陪护人手机
    private String nurseIdcard;//陪护人身份证
    private Integer nurseAge;//陪护人年龄
    private Integer nurseSex;//陪护人性别
    private String nucleicReport;//核酸报告
    private String doctor;//审核医生
    private String doctorName;
    private Date checkTime;//审核时间
    /**
     * 状态:
     */
    public enum Status {
        invalid(-2, "已失效"),
        unpass(-1, "未通过"),
        checking(0, "审核中"),
        inForce(1, "生效中");
        private Integer type;
        private String desc;
        Status(Integer type, String desc) {
            this.type = type;
            this.desc = desc;
        }
        public static String getStatusName(Integer type){
            String name = "";
            switch (type){
                case -2:
                    name = invalid.desc;
                    break;
                case -1:
                    name = unpass.desc;
                    break;
                case 0:
                    name = checking.desc;
                    break;
                case 1:
                    name = inForce.desc;
                    break;
            }
            return name;
        }
        public Integer getType() {
            return type;
        }
        public void setType(Integer type) {
            this.type = type;
        }
    }
    @Column(name = "type")
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    @Column(name = "status")
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    @Column(name = "end_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getEndTime() {
        return endTime;
    }
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
    @Column(name = "patient")
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "idcard")
    public String getIdcard() {
        return idcard;
    }
    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }
    @Column(name = "bed_no")
    public String getBedNo() {
        return bedNo;
    }
    public void setBedNo(String bedNo) {
        this.bedNo = bedNo;
    }
    @Column(name = "qr_code")
    public String getQrCode() {
        return qrCode;
    }
    public void setQrCode(String qrCode) {
        this.qrCode = qrCode;
    }
    @Column(name = "nurse_name")
    public String getNurseName() {
        return nurseName;
    }
    public void setNurseName(String nurseName) {
        this.nurseName = nurseName;
    }
    @Column(name = "nurse_mobile")
    public String getNurseMobile() {
        return nurseMobile;
    }
    public void setNurseMobile(String nurseMobile) {
        this.nurseMobile = nurseMobile;
    }
    @Column(name = "nurse_idcard")
    public String getNurseIdcard() {
        return nurseIdcard;
    }
    public void setNurseIdcard(String nurseIdcard) {
        this.nurseIdcard = nurseIdcard;
    }
    @Column(name = "nurse_age")
    public Integer getNurseAge() {
        return nurseAge;
    }
    public void setNurseAge(Integer nurseAge) {
        this.nurseAge = nurseAge;
    }
    @Column(name = "nurse_sex")
    public Integer getNurseSex() {
        return nurseSex;
    }
    public void setNurseSex(Integer nurseSex) {
        this.nurseSex = nurseSex;
    }
    @Column(name = "nucleic_report")
    public String getNucleicReport() {
        return nucleicReport;
    }
    public void setNucleicReport(String nucleicReport) {
        this.nucleicReport = nucleicReport;
    }
    @Transient
    public String getStatusName() {
        return statusName;
    }
    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }
    @Column(name = "doctor")
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    @Column(name = "doctor_name")
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    @Column(name = "check_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getCheckTime() {
        return checkTime;
    }
    public void setCheckTime(Date checkTime) {
        this.checkTime = checkTime;
    }
}

+ 70 - 61
common/common-entity/src/main/java/com/yihu/jw/entity/healthUpload/BaseDoctorHealthUploadDO.java

@ -10,7 +10,7 @@ import java.util.Date;
/**
 * 医生成员表
 * 健康上报表
 *
 * @author Administrator on  2018年09月05日
 *
@ -18,66 +18,67 @@ import java.util.Date;
@Entity
@Table(name = "base_doctor_health_upload")
public class BaseDoctorHealthUploadDO extends UuidIdentityEntityWithOperator {
    public String provinceName;
    public String cityName;
    public String townName;
    public String streetName;
    public String address;
    public String temperature;
    public Integer healthCode;
    public String healthCodeUrl;
    public Integer tourCode;
    public String tourCodeUrl;
    public Integer isSymptoms;
    public String abnormalSymptoms;
    public Integer isEpidemic;
    public String epidemicPerson;
    public Integer  isOutside;
    public String outsideProvinceCode;
    public String outsideProvinceName;
    public String outsideCityCode;
    public String outsideCityName;
    public String outsideTownCode;
    public String outsideTownName;
    public String outsideStreetName;
    public String outsideStreetCode;
    public String outsideAddress;
    public Date outsideDate;
    public Integer isNucleate;
    public String nucleateCodeUrl;
    public Integer  isOutsideHigh;
    public String outsideHighProvinceCode;
    public String outsideHighProvinceName;
    public String outsideHighCityCode;
    public String outsideHighCityName;
    public String outsideHighTownCode;
    public String outsideHighTownName;
    public String outsideHighStreetName;
    public String outsideHighStreetCode;
    public String outsideHighAddress;
    public Date outsideHighDate;
    public String doctorId;
    public String doctorName;
    public String idCard;
    public String mobile;
    public String consumer;
    public String consumerName;
    public String healthCodeDesc;
    public Integer outsideHighNucleate;
    public String abnormalSymptomsOther;
    public Integer scheduleStatus;//1本地2出差3外出
    public String startProvinceName;
    public String startCityName;
    public String startTownName;
    public String startStreetName;//开始市
    public String endProvinceName;//终止省
    public String endCityName;//终止市
    public String endTownName;//终止区
    public String endStreetName;//终止街道
    public Integer transportType;//交通方式(1自驾2火车3飞机)
    public String licenseNumber;//车牌号
    public String number;//座位
    public Integer isHigh;//1是2否
    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 doctorId;
    private String doctorName;
    private String idCard;
    private String mobile;
    private Integer userTpye;//用户类型 1医生 1居民
    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;
@ -562,4 +563,12 @@ 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;
    }
}

+ 28 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/healthUpload/DeptVO.java

@ -0,0 +1,28 @@
package com.yihu.jw.entity.healthUpload;
import java.io.Serializable;
/**
 * Created by yeshijie on 2022/11/17.
 */
public class DeptVO implements Serializable {
    private String code;//科室编码
    private String name;//科室名称
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

+ 99 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/healthUpload/HealthReportingFrequencyDO.java

@ -0,0 +1,99 @@
package com.yihu.jw.entity.healthUpload;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.List;
/**
 * Created by yeshijie on 2022/11/17.
 */
@Entity
@Table(name = "base_health_reporting_frequency")
public class HealthReportingFrequencyDO extends UuidIdentityEntityWithCreateTime {
    private Integer type;//类型 1院内科室 2门诊陪护 3住院陪护
    private String typeName;
    private String day;//几天
    private String checks;//几检
    private String reportInterval;//上报间隔
    private String deptJson;//关联科室 逗号间隔
    private String doctor;//医生code
    private List<DeptVO> deptList;//关联科室列表
    @Column(name = "type")
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    @Column(name = "day")
    public String getDay() {
        return day;
    }
    public void setDay(String day) {
        this.day = day;
    }
    @Column(name = "checks")
    public String getChecks() {
        return checks;
    }
    public void setChecks(String checks) {
        this.checks = checks;
    }
    @Column(name = "report_interval")
    public String getReportInterval() {
        return reportInterval;
    }
    public void setReportInterval(String reportInterval) {
        this.reportInterval = reportInterval;
    }
    @Column(name = "dept_json")
    public String getDeptJson() {
        return deptJson;
    }
    public void setDeptJson(String deptJson) {
        this.deptJson = deptJson;
    }
    @Column(name = "doctor")
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    @Transient
    public String getTypeName() {
        return typeName;
    }
    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }
    @Transient
    public List<DeptVO> getDeptList() {
        return deptList;
    }
    public void setDeptList(List<DeptVO> deptList) {
        this.deptList = deptList;
    }
}

+ 14 - 1
common/common-util/src/main/java/com/yihu/jw/util/common/IdCardUtil.java

@ -239,6 +239,20 @@ public class IdCardUtil {
    public static int getAgeByIdcardOrBirthday(String idcard,Date birthday){
        int age = getAgeForIdcard(idcard);
        if(age<=0&&birthday!=null){
            return getAgeByBirthday(birthday);
        }
        return age;
    }
    public static int getAgeByBirthdayOrIdcard(String idcard,Date birthday){
        int age = getAgeByBirthday(birthday);
        if(age<=0){
            return getAgeForIdcard(idcard);
        }
        return age;
    }
    public static int getAgeByBirthday(Date birthday){
        int age = 0;
        if(birthday!=null){
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(birthday);
            int year = calendar.get(Calendar.YEAR);
@ -250,7 +264,6 @@ public class IdCardUtil {
            if (cal.get(Calendar.MONTH) < (month - 1) || (cal.get(Calendar.MONTH) == (month - 1) && cal.get(Calendar.DATE) < day)) {
                age--;
            }
            return age;
        }
        return age;
    }

+ 6 - 5
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/processGuidance/BaseProcessGuidanceEndpoint.java

@ -1,11 +1,12 @@
package com.yihu.jw.base.endpoint.processGuidance;
import com.yihu.jw.base.dao.processGuidance.*;
import com.yihu.jw.base.service.processGuidance.BaseProcessGuidanceNodeService;
import com.yihu.jw.base.service.processGuidance.BaseProcessGuidanceNodeWxService;
import com.yihu.jw.base.service.processGuidance.BaseProcessGuidancePushLogService;
import com.yihu.jw.base.service.processGuidance.BaseProcessGuidanceService;
import com.yihu.jw.entity.base.processGuidance.*;
import com.yihu.jw.processGuidance.dao.*;
import com.yihu.jw.processGuidance.service.BaseProcessGuidanceNodeService;
import com.yihu.jw.processGuidance.service.BaseProcessGuidanceNodeWxService;
import com.yihu.jw.processGuidance.service.BaseProcessGuidancePushLogService;
import com.yihu.jw.processGuidance.service.BaseProcessGuidanceService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;

+ 10 - 45
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/channel/HealthUploadService.java

@ -1,55 +1,19 @@
package com.yihu.jw.service.channel;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.doctor.dao.BaseDoctorRoleDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO;
import com.yihu.jw.entity.base.im.ConsultTeamDo;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.wx.*;
import com.yihu.jw.entity.base.wx.WxAccessTokenDO;
import com.yihu.jw.entity.base.wx.WxPushLogDO;
import com.yihu.jw.entity.base.wx.WxTemplateConfigDO;
import com.yihu.jw.entity.healthUpload.BaseDoctorHealthUploadDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.hospital.enterprise.WxEnterpriseUserDO;
import com.yihu.jw.entity.hospital.prescription.WlyyOutpatientDO;
import com.yihu.jw.entity.hospital.prescription.WlyyPrescriptionDO;
import com.yihu.jw.entity.hospital.prescription.WlyyPrescriptionDiagnosisDO;
import com.yihu.jw.entity.hospital.prescription.WlyyPrescriptionInfoDO;
import com.yihu.jw.entity.order.BusinessOrderDO;
import com.yihu.jw.healthUpload.dao.BaseDoctorHealthUploadDao;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.prescription.dao.OutpatientDao;
import com.yihu.jw.hospital.prescription.dao.PrescriptionDao;
import com.yihu.jw.hospital.prescription.dao.PrescriptionDiagnosisDao;
import com.yihu.jw.hospital.prescription.dao.PrescriptionInfoDao;
import com.yihu.jw.hospital.prescription.service.PrescriptionLogService;
import com.yihu.jw.hospital.prescription.service.PrescriptionService;
import com.yihu.jw.hospital.prescription.service.entrance.XzzxEntranceService;
import com.yihu.jw.hospital.prescription.service.entrance.YkyyEntranceService;
import com.yihu.jw.im.service.ImService;
import com.yihu.jw.oauth.OauthSsoService;
import com.yihu.jw.order.dao.BusinessOrderDao;
import com.yihu.jw.order.dao.ConsultOrderDao;
import com.yihu.jw.order.dao.ConsultTeamOrderDao;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionDiagnosisVO;
import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionInfoVO;
import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.sms.dao.BaseSmsTemplateDao;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.wechat.WeixinMessagePushUtils;
import com.yihu.jw.util.wechat.wxhttp.HttpUtil;
import com.yihu.jw.utils.RSAEncrypt;
import com.yihu.jw.utils.StringUtil;
import com.yihu.jw.utils.YkyySMSService;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.jw.wechat.dao.BasePatientWechatDao;
import com.yihu.jw.wechat.dao.WxPushLogDao;
import com.yihu.jw.wechat.dao.WxTemplateConfigDao;
import com.yihu.jw.wechat.dao.WxTemplateDao;
@ -65,8 +29,9 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.net.URLEncoder;
import java.util.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * Created by Administrator on 2017/5/19 0019.
@ -167,7 +132,7 @@ public class HealthUploadService {
        List<BaseDoctorRoleDO> deptAdminRoleList = doctorRoleDao.findByRoleCode("deptAdmin");
        //管理员
        for (BaseDoctorRoleDO adminRole:adminRoleList){
            BaseDoctorDO doctorDO = doctorDao.findById(adminRole.getDoctorCode());
            BaseDoctorDO doctorDO = doctorDao.findById(adminRole.getDoctorCode()).orElse(null);
            WxEnterpriseUserDO enterpriseUserDO = wxEnterpriseUserDao.findByEnterpriseIdAndMobile(wechatId,doctorDO.getMobile());
            if(enterpriseUserDO==null){
                logger.info("该用户"+doctorDO.getName()+"没有企业微信手机号,无法推送模版消息,用户ID:"+doctorDO.getId()+"wechatId:"+wechatId);
@ -216,7 +181,7 @@ public class HealthUploadService {
        //科室管理员
        for (BaseDoctorRoleDO deptRole:deptAdminRoleList){
            BaseDoctorDO doctorDO = doctorDao.findById(deptRole.getDoctorCode());
            BaseDoctorDO doctorDO = doctorDao.findById(deptRole.getDoctorCode()).orElse(null);
            WxEnterpriseUserDO enterpriseUserDO = wxEnterpriseUserDao.findByEnterpriseIdAndMobile(wechatId,doctorDO.getMobile());
            if(enterpriseUserDO==null){
                logger.info("该用户"+doctorDO.getName()+"没有企业微信手机号,无法推送模版消息,用户ID:"+doctorDO.getId()+"wechatId:"+wechatId);
@ -273,7 +238,7 @@ public class HealthUploadService {
        List<BaseDoctorRoleDO> deptAdminRoleList = doctorRoleDao.findByRoleCode("deptAdmin");
        //管理员
        for (BaseDoctorRoleDO adminRole:adminRoleList){
            BaseDoctorDO doctorDO = doctorDao.findById(adminRole.getDoctorCode());
            BaseDoctorDO doctorDO = doctorDao.findById(adminRole.getDoctorCode()).orElse(null);
            //总人数
            Integer doctorTotal=0;
            String doctorSql = " select COUNT(1) as \"total\" from base_doctor d where d.del=1 ";
@ -353,7 +318,7 @@ public class HealthUploadService {
        //科室管理员
        for (BaseDoctorRoleDO deptRole:deptAdminRoleList){
            BaseDoctorDO doctorDO = doctorDao.findById(deptRole.getDoctorCode());
            BaseDoctorDO doctorDO = doctorDao.findById(deptRole.getDoctorCode()).orElse(null);
            List<BaseDoctorHospitalDO> doctorHospitalDOS = baseDoctorHospitalDao.findByDoctorCode(deptRole.getDoctorCode());
            if (doctorHospitalDOS!=null&&doctorHospitalDOS.size()!=0){
                String dept = doctorHospitalDOS.get(0).getDeptCode();

+ 79 - 8
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/healthUpload/HealthUploadPoint.java

@ -3,31 +3,34 @@ package com.yihu.jw.hospital.endpoint.healthUpload;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.dict.dao.DictHospitalDeptDao;
import com.yihu.jw.entity.base.dict.DictHospitalDeptDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.healthUpload.BaseDoctorHealthUploadDO;
import com.yihu.jw.entity.healthUpload.BaseDoctorMemberDO;
import com.yihu.jw.entity.hospital.prescription.BaseNationalDrugDictDO;
import com.yihu.jw.entity.healthUpload.DeptVO;
import com.yihu.jw.entity.healthUpload.HealthReportingFrequencyDO;
import com.yihu.jw.healthUpload.service.BaseDoctorHealthUploadService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.healthUpload.service.HealthReportingFrequencyService;
import com.yihu.jw.restmodel.web.*;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
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.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @author wangzhinan
@ -36,13 +39,81 @@ import java.util.Map;
 */
@RestController
@RequestMapping(value = "healthUpload")
@Api(value = "马銮湾医院健康上报功能", description = "马銮湾医院健康上报功能")
@Api(value = "马銮湾医院健康上报功能", tags = "马銮湾医院健康上报功能")
public class HealthUploadPoint extends EnvelopRestEndpoint {
    private static final Logger logger = LoggerFactory.getLogger(HealthUploadPoint.class);
    @Autowired
    private BaseDoctorHealthUploadService baseDoctorHealthUploadService;
    @Resource
    private HealthReportingFrequencyService healthReportingFrequencyService;
    @Resource
    private DictHospitalDeptDao hospitalDeptDao;
    @PostMapping(value = "delReportingFrequency")
    @ApiOperation(value = "新增上报频率")
    public Envelop delReportingFrequency (
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            healthReportingFrequencyService.delete(id);
            return success("删除成功");
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("保存失败");
        }
    }
    @PostMapping(value = "saveReportingFrequency")
    @ApiOperation(value = "新增/修改上报频率")
    public Envelop saveReportingFrequency (
            @ApiParam(name = "jsonData", value = "jsonData", required = true)
            @RequestParam(value = "jsonData") String jsonData) {
        try {
            HealthReportingFrequencyDO frequencyDO = toEntity(jsonData, HealthReportingFrequencyDO.class);
            frequencyDO.setCreateTime(new Date());
            frequencyDO = healthReportingFrequencyService.save(frequencyDO);
            return success("保存成功",frequencyDO);
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("保存失败");
        }
    }
    @GetMapping(value = "reportingFrequencyPage")
    @ApiOperation(value = "获取上报频率分页")
    public PageEnvelop reportingFrequencyPage (
            @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 {
            List<HealthReportingFrequencyDO> list = healthReportingFrequencyService.search(null, null, null, page, size);
            for (HealthReportingFrequencyDO frequencyDO:list){
                frequencyDO.setTypeName(healthReportingFrequencyService.getTypeName(frequencyDO.getType()));
                if(StringUtils.isNotBlank(frequencyDO.getDeptJson())){
                    List<DeptVO> deptVOList = new ArrayList<>();
                    String depts[] = frequencyDO.getDeptJson().split(",");
                    for (String dep:depts){
                        DictHospitalDeptDO deptDO = hospitalDeptDao.findByCode(dep);
                        if(deptDO!=null){
                            DeptVO deptVO = new DeptVO();
                            deptVO.setCode(dep);
                            deptVO.setName(deptDO.getName());
                            deptVOList.add(deptVO);
                        }
                    }
                    frequencyDO.setDeptList(deptVOList);
                }
            }
            int count = (int)healthReportingFrequencyService.getCount(null);
            return success(list, count, page, size, HealthReportingFrequencyDO.class);
        }catch (Exception e){
            e.printStackTrace();
            return PageEnvelop.getError("查询失败");
        }
    }
    @PostMapping(value = "saveAndCreateMember")
    @ApiOperation(value = "新增医生成员关系")

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

@ -0,0 +1,177 @@
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.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 io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
 * 陪护证
 * Created by yeshijie on 2022/11/16.
 */
@RestController
@RequestMapping(value = "nursing")
@Api(value = "陪护证", tags = "陪护证")
public class NursingCardEndpoint extends EnvelopRestEndpoint {
    @Resource
    private BaseNursingCardService nursingCardService;
    @Resource
    private BasePatientDao patientDao;
    @PostMapping(value = "doctor/check")
    @ApiOperation(value = "审核")
    public Envelop doctorCheck(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id,
            @ApiParam(name = "doctor", value = "医生id", required = true)
            @RequestParam(value = "doctor") String doctor,
            @ApiParam(name = "status", value = "状态 -1拒绝 1通过")
            @RequestParam(value = "status", required = false) Integer status) {
        try {
            nursingCardService.doctorCheck(id, status, doctor);
            return success("操作成功!");
        }catch (Exception e){
            return failedException(e);
        }
    }
    @GetMapping(value = "ifCanApply")
    @ApiOperation(value = "是否可申请")
    public Envelop ifCanApply(
            @ApiParam(name = "patient", value = "居民id", required = true)
            @RequestParam(value = "patient") String patient) {
        try {
            //院内存在门诊或住院患者时,才可提交页面
            return success("获取成功", nursingCardService.ifCanApply(patient));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @GetMapping(value = "nursingDetail")
    @ApiOperation(value = "陪护明细")
    public Envelop nursingDetail(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            BaseNursingCardDO cardDO = nursingCardService.nursingDetail(id);
            return success("申请成功!", cardDO);
        }catch (Exception e){
            return failedException(e);
        }
    }
    @GetMapping(value = "patient/page")
    @ApiOperation(value = "获取分页")
    public PageEnvelop patientPage (
            @ApiParam(name = "patient", required = true, value = "居民id")
            @RequestParam(value = "patient") String patient,
            @ApiParam(name = "type", value = "陪护类型 1门诊 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";
            }
            List<BaseNursingCardDO> list = nursingCardService.search(null, filters, null, page, size);
            for (BaseNursingCardDO cardDO:list){
                cardDO.setStatusName(BaseNursingCardDO.Status.getStatusName(cardDO.getStatus()));
            }
            int count = (int)nursingCardService.getCount(filters);
            return success(list, count, page, size, BaseNursingCardDO.class);
        }catch (Exception e){
            e.printStackTrace();
            return PageEnvelop.getError("查询失败");
        }
    }
    @GetMapping(value = "doctor/page")
    @ApiOperation(value = "获取分页")
    public PageEnvelop page (
            @ApiParam(name = "status", value = "状态 -2已失效 -1未通过 0审核中 1生效中")
            @RequestParam(value = "status", required = false) Integer status,
            @ApiParam(name = "name", value = "姓名或身份证号")
            @RequestParam(value = "name", required = false) String name,
            @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 = null;
            if (status != null){
                filters = "status="+status;
            }
            if(StringUtils.isNotBlank(name)){
                if(StringUtils.isNotBlank(filters)){
                    filters +=";";
                }
                filters+="name?"+name+" g1;idcard?"+name+" g1";
            }
            List<BaseNursingCardDO> list = nursingCardService.search(null, filters, null, page, size);
            for (BaseNursingCardDO cardDO:list){
                cardDO.setStatusName(BaseNursingCardDO.Status.getStatusName(cardDO.getStatus()));
            }
            int count = (int)nursingCardService.getCount(filters);
            return success(list, count, page, size, BaseNursingCardDO.class);
        }catch (Exception e){
            e.printStackTrace();
            return PageEnvelop.getError("查询失败");
        }
    }
    @PostMapping(value = "patient/create")
    @ApiOperation(value = "申请陪护证")
    public Envelop createNursing(
            @ApiParam(name = "jsonData", value = "JSON数据", required = true)
            @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.setCreateTime(new Date());
            nursingCardDO.setStatus(0);//审核中
            nursingCardDO = nursingCardService.save(nursingCardDO);
            return success("申请成功!", nursingCardDO);
        }catch (Exception e){
            return failedException(e);
        }
    }
}

+ 44 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/processGuidance/ProcessGuidanceEndpoint.java

@ -0,0 +1,44 @@
package com.yihu.jw.hospital.endpoint.processGuidance;
import com.yihu.jw.processGuidance.service.ProcessGuidanceService;
import com.yihu.jw.restmodel.web.Envelop;
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.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
 * Created by yeshijie on 2022/11/18.
 */
@RestController
@RequestMapping(value = "processGuidance")
@Api(value = "全流程指引-居民端", tags = {"全流程指引-居民端"})
public class ProcessGuidanceEndpoint extends EnvelopRestEndpoint {
    @Resource
    private ProcessGuidanceService processGuidanceService;
    @PostMapping(value = "sendGuidance")
    @ApiOperation(value = "推送全流程指引")
    public Envelop sendGuidance(@ApiParam(name = "patient", value = "居民id", required = true)
                                @RequestParam(value = "patient") String patient,
                                @ApiParam(name = "type", value = "类型", required = true)
                                @RequestParam(value = "type") String type,
                                @ApiParam(name = "orderId", value = "工单id", required = true)
                                @RequestParam(value = "orderId") String orderId) {
        try {
            processGuidanceService.sendGuidance(patient, type, orderId);
            return success("操作成功");
        }catch (Exception e){
            e.printStackTrace();
        }
        return Envelop.getError("保存失败");
    }
}