Explorar o código

医生发送问卷

wangjun %!s(int64=4) %!d(string=hai) anos
pai
achega
c66bb5468a

+ 4 - 1
business/base-service/src/main/java/com/yihu/jw/hospital/survey/dao/SurveyTemplateDao.java

@ -5,10 +5,13 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by Trick on 2019/9/6.
 */
public interface SurveyTemplateDao extends PagingAndSortingRepository<WlyySurveyTemplateDO, String>, JpaSpecificationExecutor<WlyySurveyTemplateDO> {
   /* @Query("select * from wlyy_survey_template t where t.c")*/
    @Query(value = "select * from wlyy_survey_template t where t.creater = ?1" ,nativeQuery = true)
    List<WlyySurveyTemplateDO> getMyTemplate(String doctor);
}

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

@ -1126,6 +1126,8 @@ public class BaseHospitalRequestMapping {
        public static final String findSurveyTemplateResult  = "/findSurveyTemplateResult";
        public static final String findQuestionInfoList  = "/findQuestionInfoList";
        public static final String findAnswerList  = "/findAnswerList";
        public static final String getSurveyList  = "/getSurveyList";
        public static final String setUsed  = "/setUsed";

+ 33 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/survey/SurveyEndpoint.java

@ -1,7 +1,9 @@
package com.yihu.jw.hospital.endpoint.survey;
import com.yihu.jw.hospital.service.consult.BasePatientBusinessService;
import com.yihu.jw.hospital.survey.service.SurveyService;
import com.yihu.jw.restmodel.hospital.consult.WlyyHospitalSysDictVO;
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;
@ -26,6 +28,9 @@ public class SurveyEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private SurveyService surveyService;
    @Autowired
    private BasePatientBusinessService businessService;
    @GetMapping(value = BaseHospitalRequestMapping.WlyySurvey.findSurveyLabel)
    @ApiOperation(value = "问题-查询字典")
    public ListEnvelop findSurveyLabel(@ApiParam(name = "name", value = "1.surveyLabel 标签;2.surveyScreenLabel 问卷类型")
@ -223,4 +228,32 @@ public class SurveyEndpoint extends EnvelopRestEndpoint {
        return surveyService.findAnswerList(tempId,patient,title,page,size);
    }
    //=================
    @GetMapping(value = BaseHospitalRequestMapping.WlyySurvey.getSurveyList)
    @ApiOperation(value = "查询问卷模板")
    public Envelop getUsedList(@ApiParam(name = "title", value = "模板名称")
                                     @RequestParam(value = "title",required = false) String title,
                               @ApiParam(name = "doctor", value = "医生id")
                                     @RequestParam(value = "doctor",required = false) String doctor,
                               @ApiParam(name = "used", value = "是否常用")
                                     @RequestParam(value = "used",required = false) Integer used,
                               @ApiParam(name = "page", value = "第几页,1开始",defaultValue = "1")
                                     @RequestParam(value = "page",required = true,defaultValue = "1")Integer page,
                               @ApiParam(name = "pageSize", value = "每页大小",defaultValue = "10")
                                     @RequestParam(value = "pageSize",required = true,defaultValue = "10")Integer pageSize)throws Exception {
        return success(businessService.getUsedList(title,doctor,used,page,pageSize));
    }
    @GetMapping(value = BaseHospitalRequestMapping.WlyySurvey.setUsed)
    @ApiOperation(value = "设置模板为常用")
    public Envelop setUsed(@ApiParam(name = "tempId", value = "模板id")
                                     @RequestParam(value = "tempId",required = false) String tempId,
                                     @ApiParam(name = "used", value = "是否常用")
                                     @RequestParam(value = "used",required = false) Integer used,
                                     @ApiParam(name = "doctor", value = "医生id")
                                     @RequestParam(value = "doctor",required = false) String doctor)throws Exception {
        businessService.setUsed(tempId,used,doctor);
        return success("操作成功");
    }
}

+ 73 - 16
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/service/consult/BasePatientBusinessService.java

@ -10,10 +10,10 @@ import com.yihu.jw.entity.hospital.survey.WlyySurveyTemplateDO;
import com.yihu.jw.hospital.dao.consult.KnowledgeArticleDao;
import com.yihu.jw.hospital.dao.consult.KnowledgeArticleUserDao;
import com.yihu.jw.hospital.survey.dao.SurveyTemplateDao;
import com.yihu.jw.hospital.utils.HibenateUtils;
import com.yihu.jw.patient.dao.BasePatientBusinessDao;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -192,7 +192,7 @@ public class BasePatientBusinessService extends BaseJpaService<BasePatientBusine
					wlyySurveyTemplateDO.setUsed(wlyySurveyTemplateDO.getUsed()+1);
				}else if (used==0){
					knowledgeArticleUserDO.setUsed(0);
					wlyySurveyTemplateDO.setUsed(wlyySurveyTemplateDO.getUsed()-1);
					wlyySurveyTemplateDO.setUsed(wlyySurveyTemplateDO.getUsed()==0?0:wlyySurveyTemplateDO.getUsed()-1);
				}
			}else {
				if (used==1){
@ -205,24 +205,81 @@ public class BasePatientBusinessService extends BaseJpaService<BasePatientBusine
		knowledgeArticleUserDao.save(knowledgeArticleUserDO);
		surveyTemplateDao.save(wlyySurveyTemplateDO);
	}
	public List<Map<String,Object>> getUsedList(Integer page,Integer pageSize){
	public List<Map<String,Object>> getUsedList(String title,String doctor,Integer used,Integer page,Integer pageSize) {
		StringBuffer sql = new StringBuffer();
		sql.append("select a.id AS \"id\" ,a.title AS \"title\",a.template_comment AS \"template_comment\" ," +
				" a.organization AS \"organization\",a.create_time AS \"create_time\" ," +
				"a.creater AS \"creater\"FROM wlyy_survey_template a " +
				"JOIN wlyy_knowledge_article_user b on a.id = b.relation_code " +
				"where 1=1");
		sql.append(" and b.used = 1");
		List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql.toString(),page,pageSize);
		if (list.size()>0){
			for (Map<String,Object> map :list){
				String createTime= null==map.get("create_time")?"":map.get("create_time").toString();
				map.put("create_time", DateUtil.dateToStrLong(DateUtil.strToDateLong(createTime)));
				"a.creater AS \"creater\"FROM wlyy_survey_template a ");
		//1为查询常用
		if (null != used) {
			if (1 == used) {
				sql.append("JOIN wlyy_knowledge_article_user b on a.id = b.relation_code " +
						"where 1=1");
				sql.append(" and b.used = 1");
				if (StringUtils.isNotEmpty(doctor)) {
					sql.append(" and a.title like '%" + title + "%'");
				}
				if (StringUtils.isNotEmpty(doctor)) {
					sql.append(" and a.creater = '" + doctor + "'");
				}
				List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql.toString(), page, pageSize);
				if (list.size() > 0) {
					for (Map<String, Object> map : list) {
						String createTime = null == map.get("create_time") ? "" : map.get("create_time").toString();
						String creater = null == map.get("creater") ? "" : map.get("creater").toString();
						map.put("create_time", DateUtil.dateToStrLong(DateUtil.strToDateLong(createTime)));
						BaseDoctorDO doctorDO = doctorDao.findById(creater);
						if (null!=doctor){
							map.put("doctrName", doctorDO.getName());
						}
					}
				}
				return list;
				//0为查询模板
			} else {
				sql.append("where a.del = 1");
				if (StringUtils.isNotEmpty(doctor)) {
					sql.append(" and a.title like '%" + title + "%'");
				}
				List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql.toString(), page, pageSize);
				if (list.size() > 0) {
					for (Map<String, Object> map : list) {
						String createTime = null == map.get("create_time") ? "" : map.get("create_time").toString();
						String creater = null == map.get("creater") ? "" : map.get("creater").toString();
						map.put("create_time", DateUtil.dateToStrLong(DateUtil.strToDateLong(createTime)));
						BaseDoctorDO doctorDO = doctorDao.findById(creater);
						if (null!=doctor){
							map.put("doctrName", doctorDO.getName());
						}
					}
				}
				return list;
			}
			//空位查我的问卷
		} else {
			sql.append("where a.del = 1");
			if (StringUtils.isNotEmpty(doctor)) {
				sql.append(" and a.creater = '" + doctor + "'");
			}
			if (StringUtils.isNotEmpty(doctor)) {
				sql.append(" and a.title like '%" + title + "%'");
			}
			List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql.toString(), page, pageSize);
			if (list.size() > 0) {
				for (Map<String, Object> map : list) {
					String createTime = null == map.get("create_time") ? "" : map.get("create_time").toString();
					String creater = null == map.get("creater") ? "" : map.get("creater").toString();
					map.put("create_time", DateUtil.dateToStrLong(DateUtil.strToDateLong(createTime)));
					BaseDoctorDO doctorDO = doctorDao.findById(creater);
					if (null!=doctor){
						map.put("doctrName", doctorDO.getName());
					}
				}
			}
			return list;
		}
		return list;
	}
	/*public List<Map<String,Object>> mySurvey(String doctor,Integer page,Integer pageSize){
	}*/
}

+ 19 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/service/consult/KnowledgeArticleService.java

@ -9,10 +9,12 @@ import com.yihu.jw.entity.hospital.article.KnowledgeArticleDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDeptDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleUserDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.hospital.survey.WlyySurveyUserDO;
import com.yihu.jw.hospital.dao.consult.KnowledgeArticleDao;
import com.yihu.jw.hospital.dao.consult.KnowledgeArticleDeptDao;
import com.yihu.jw.hospital.dao.consult.KnowledgeArticleUserDao;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.survey.dao.SurveyUserDao;
import com.yihu.jw.im.util.ImUtil;
import com.yihu.jw.patient.dao.BasePatientBusinessDao;
import com.yihu.jw.utils.EntityUtils;
@ -49,6 +51,8 @@ public class KnowledgeArticleService extends BaseJpaService<KnowledgeArticleDO,
	private BaseDoctorDao doctorDao;
	@Autowired
	private ImUtil imUtil;
	@Autowired
	private SurveyUserDao surveyUserDao;
	
	/**
	 * 删除,支持批量
@ -233,6 +237,21 @@ public class KnowledgeArticleService extends BaseJpaService<KnowledgeArticleDO,
					object.put("content",knowledgeArticleDO.getIntro());
					object.put("img",knowledgeArticleDO.getImage());
					imUtil.sendImMsg(patientBusinessDO.getDoctor(), patientBusinessDO.getDoctorName(), patientBusinessDO.getSessionId(), "4", object.toJSONString(),"1");
				}else {
					WlyySurveyUserDO wlyySurveyUserDO = new WlyySurveyUserDO();
					String doctor = patientBusinessDO.getDoctor();
					BaseDoctorDO doctorDO = doctorDao.findById(doctor);
					wlyySurveyUserDO.setDept(doctorDO.getVisitDept());
					wlyySurveyUserDO.setDeptName(doctorDO.getVisitDeptName());
					wlyySurveyUserDO.setDoctor(doctor);
					wlyySurveyUserDO.setDoctorName(doctorDO.getName());
					wlyySurveyUserDO.setStatus(0);
					wlyySurveyUserDO.setPatient(patientBusinessDO.getPatient());
					wlyySurveyUserDO.setPatientName(patientBusinessDO.getPatientName());
					wlyySurveyUserDO.setSurveyTempCode(patientBusinessDO.getRelationCode());
					wlyySurveyUserDO.setSurveyTempTitle(patientBusinessDO.getRelationName());
					wlyySurveyUserDO.setCreateTime(new Date());
					surveyUserDao.save(wlyySurveyUserDO);
				}
			}

+ 0 - 186
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/utils/HibenateUtils.java

@ -1,186 +0,0 @@
package com.yihu.jw.hospital.utils;
import com.yihu.jw.entity.hospital.prescription.HlwCf01DO;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.transform.Transformers;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * 数据库查询工具,mysql与Oracle 通用复诊查询
 * 支持原生SQL。联表,动态传参。分页查询
 * 不支持数据库特有的函数
 * <p>
 * Created by Trick on 2019/12/10.
 */
@Component
@Transactional
public class HibenateUtils {
    /**
     * JPA 数据源
     */
    @PersistenceContext
    private EntityManager entityManager;
    /**
     * 创建SQL查询,根据配置,获取数据库方言
     * sql为原生sql语句,查询,Oracle不区分大小写,返回值需要驼峰命名,字段别名需要加 双引号
     * 目前只支持通用的聚合函数,特有的聚合函数不支持
     *
     * @param sql
     * @param page 第几页,1开始
     * @param size 每页记录数
     * @return
     */
    public List<Map<String, Object>> createSQLQuery(String sql, Integer page, Integer size) {
        Session session = (Session) entityManager.getDelegate();
        SQLQuery query = session.createSQLQuery(sql);
        query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
        if(page!=null&&size!=null){
            query.setFirstResult((page - 1) * size);
            query.setMaxResults(size);
        }
        List<Map<String, Object>> list = query.list();
        return list;
    }
    /**
     * 创建SQL查询,根据配置,获取数据库方言
     * sql为原生sql语句,查询,Oracle不区分大小写,返回值需要驼峰命名,字段别名需要加 双引号
     * 目前只支持通用的聚合函数,特有的聚合函数不支持
     * 无分页
     * @param sql
     * @return
     */
    public List<Map<String, Object>> createSQLQuery(String sql) {
        Session session = (Session) entityManager.getDelegate();
        SQLQuery query = session.createSQLQuery(sql);
        query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
        List<Map<String, Object>> list = query.list();
        return list;
    }
    /**
     * 创建SQL查询,根据配置,获取数据库方言
     * sql为原生sql语句,查询,Oracle不区分大小写,返回值需要驼峰命名,字段别名需要加 双引号
     * 目前只支持通用的聚合函数,特有的聚合函数不支持
     * @param sql
     * @param params 动态占位符入参,例如 like:name
     * @param page 第几页,1开始
     * @param size 每页记录数
     * @return
     */
    public List<Map<String, Object>> createSQLQuery(String sql, Map<String, Object> params, Integer page, Integer size) {
        Session session = (Session) entityManager.getDelegate();
        SQLQuery query = session.createSQLQuery(sql);
        query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
        //设置查询参数
        setSqlQueryByMap(query, params);
        if(page!=null&&size!=null){
            query.setFirstResult((page - 1) * size);
            query.setMaxResults(size);
        }
        List<Map<String, Object>> list = query.list();
        return list;
    }
    /**
     * 创建SQL查询,根据配置,获取数据库方言
     * sql为原生sql语句,查询,Oracle不区分大小写,返回值需要驼峰命名,字段别名需要加 双引号
     * 目前只支持通用的聚合函数,特有的聚合函数不支持
     * @param sql
     * @param params 动态占位符入参,例如 like:name
     * @return
     */
    public List<Map<String, Object>> createSQLQuery(String sql, Map<String, Object> params) {
        Session session = (Session) entityManager.getDelegate();
        SQLQuery query = session.createSQLQuery(sql);
        query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
        //设置查询参数
        setSqlQueryByMap(query, params);
        List<Map<String, Object>> list = query.list();
        return list;
    }
    /**
     * 设置查询参数
     * @param sqlQuery
     * @param params
     * @return
     */
    private SQLQuery setSqlQueryByMap(SQLQuery sqlQuery, Map<String, Object> params) {
        if (params != null && !params.isEmpty()) {
            for (String key : params.keySet()) {
                Object obj = params.get(key);
                if (obj instanceof Collection<?>) {
                    sqlQuery.setParameterList(key, (Collection<?>) obj);
                } else if (obj instanceof Object[]) {
                    sqlQuery.setParameterList(key, (Object[]) obj);
                } else {
                    sqlQuery.setParameter(key, obj);
                }
            }
        }
        return sqlQuery;
    }
    /**
     * 聚合函数类型装换
     * @param obj
     * @return
     */
    public Long objTransformLong(Object obj){
        //Oracle count(1) 聚合函数类型装换
        if(obj instanceof BigDecimal){
            return ((BigDecimal) obj).longValue();
        //Mysql count(1) 聚合函数类型装换
        }else if(obj instanceof BigInteger){
            return ((BigInteger)obj).longValue();
        }else{
            return 0L;
        }
    }
    public void updateBySql(String sql){
        Session session = (Session) entityManager.getDelegate();
        session.createSQLQuery(sql).executeUpdate();
    }
    public void save(Object object) {
        entityManager.persist(object);
    }
    /**
     * 更新
     * @param entity
     */
    public void update(Object entity){
        entityManager.merge(entity);
        entityManager.flush();
    }
    public void update(String id,Integer status){
        HlwCf01DO hlwCf01DO = entityManager.find(HlwCf01DO.class,id);
        hlwCf01DO.setFKZT(status);
        update(hlwCf01DO);
    }
}