Browse Source

添加大屏统计接口

sd
zhangye 3 years ago
parent
commit
2264c8add1
  1. 129
      ht/src/main/java/com/ccsens/ht/api/StatisticsController.java
  2. 27
      ht/src/main/java/com/ccsens/ht/bean/dto/StatisticsDto.java
  3. 103
      ht/src/main/java/com/ccsens/ht/bean/vo/StatisticsVo.java
  4. 7
      ht/src/main/java/com/ccsens/ht/persist/dao/HtReportDao.java
  5. 66
      ht/src/main/java/com/ccsens/ht/persist/dao/StatisticsDao.java
  6. 76
      ht/src/main/java/com/ccsens/ht/service/IStatisticsService.java
  7. 124
      ht/src/main/java/com/ccsens/ht/service/StatisticsService.java
  8. 41
      ht/src/main/resources/mapper_dao/HtReportDao.xml
  9. 223
      ht/src/main/resources/mapper_dao/StatisticsDao.xml
  10. 2
      question/src/main/java/com/ccsens/question/api/QuestionController.java

129
ht/src/main/java/com/ccsens/ht/api/StatisticsController.java

@ -0,0 +1,129 @@
package com.ccsens.ht.api;
import com.ccsens.ht.bean.dto.StatisticsDto;
import com.ccsens.ht.bean.vo.PositionVo;
import com.ccsens.ht.bean.vo.StatisticsVo;
import com.ccsens.ht.service.IStatisticsService;
import com.ccsens.util.JsonResponse;
import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* @author
*/
@Slf4j
@Api(tags = "大屏查询统计数据",value = "")
@RestController
@RequestMapping("/statistics")
public class StatisticsController {
@Resource
private IStatisticsService statisticsService;
@ApiOperation(value = "查询医院",notes = "")
@ApiImplicitParams({
})
@RequestMapping(value="/hospital", method = RequestMethod.GET)
public JsonResponse<List<PositionVo.Position>> queryHospital(){
log.info("查询医院");
List<PositionVo.Position> positionList = statisticsService.queryHospital();
log.info("返回医院信息:{}",positionList);
return JsonResponse.newInstance().ok(positionList);
}
@ApiOperation(value = "查询测评类型和分项",notes = "")
@ApiImplicitParams({
})
@RequestMapping(value="/queryCode", method = RequestMethod.POST)
public JsonResponse<List<StatisticsVo.ReportCode>> queryReportCode(@RequestBody @ApiParam @Validated StatisticsDto.HospitalId hospitalId){
log.info("查询测评类型和分项");
List<StatisticsVo.ReportCode> reportCodeList = statisticsService.queryReportCode(hospitalId.getId());
log.info("返回查询测评类型和分项:{}",reportCodeList);
return JsonResponse.newInstance().ok(reportCodeList);
}
@ApiOperation(value = "测评人数实时统计",notes = "")
@ApiImplicitParams({
})
@RequestMapping(value="/realtime", method = RequestMethod.POST)
public JsonResponse<StatisticsVo.Realtime> realtime(@RequestBody @ApiParam @Validated StatisticsDto.HospitalId hospitalId){
log.info("测评人数实时统计:{}", hospitalId);
StatisticsVo.Realtime realtime = statisticsService.realtime(hospitalId.getId());
log.info("测评人数实时统计完成");
return JsonResponse.newInstance().ok(realtime);
}
@ApiOperation(value = "查询性别年龄分布",notes = "")
@ApiImplicitParams({
})
@RequestMapping(value="/age", method = RequestMethod.POST)
public JsonResponse<StatisticsVo.AgeAndSex> ageAndSex(@RequestBody @ApiParam @Validated StatisticsDto.HospitalId hospitalId){
log.info("查询性别年龄分布:{}", hospitalId);
StatisticsVo.AgeAndSex ageAndSex = statisticsService.ageAndSex(hospitalId.getId());
log.info("查询性别年龄分布完成");
return JsonResponse.newInstance().ok(ageAndSex);
}
@ApiOperation(value = "区域分布",notes = "")
@ApiImplicitParams({
})
@RequestMapping(value="/area", method = RequestMethod.POST)
public JsonResponse<StatisticsVo.AreaDistribution> areaDistribution(@RequestBody @ApiParam @Validated StatisticsDto.HospitalId hospitalId){
log.info("查询区域分布:{}", hospitalId);
StatisticsVo.AreaDistribution areaDistribution = statisticsService.areaDistribution(hospitalId.getId());
log.info("查询区域分布完成");
return JsonResponse.newInstance().ok(areaDistribution);
}
@ApiOperation(value = "测评结果总评分布",notes = "")
@ApiImplicitParams({
})
@RequestMapping(value="/appraise", method = RequestMethod.POST)
public JsonResponse<List<StatisticsVo.Chart>> appraise(@RequestBody @ApiParam @Validated StatisticsDto.HospitalId hospitalId){
log.info("查询测评结果总评分布:{}", hospitalId);
List<StatisticsVo.Chart> chartList = statisticsService.appraise(hospitalId.getId());
log.info("查询测评结果总评分布完成");
return JsonResponse.newInstance().ok(chartList);
}
@ApiOperation(value = "报告单总分分布 ",notes = "")
@ApiImplicitParams({
})
@RequestMapping(value="/report", method = RequestMethod.POST)
public JsonResponse<StatisticsVo.ReportDistribution> reportScore(@RequestBody @ApiParam @Validated StatisticsDto.Report report){
log.info("查询报告单总分分布:{}", report);
StatisticsVo.ReportDistribution reportDistribution = statisticsService.reportScore(report);
log.info("查询报告单总分分布完成");
return JsonResponse.newInstance().ok(reportDistribution);
}
@ApiOperation(value = "报告单分项分数分布 ",notes = "")
@ApiImplicitParams({
})
@RequestMapping(value="/subentry", method = RequestMethod.POST)
public JsonResponse<StatisticsVo.ReportDistribution> subentryScore(@RequestBody @ApiParam @Validated StatisticsDto.Report report){
log.info("查询报告单分项分数分布:{}", report);
StatisticsVo.ReportDistribution reportDistribution = statisticsService.subentryScore(report);
log.info("查询报告单分项分数分布完成");
return JsonResponse.newInstance().ok(reportDistribution);
}
@ApiOperation(value = "报告单分数散点图",notes = "")
@ApiImplicitParams({
})
@RequestMapping(value="/scatter", method = RequestMethod.POST)
public JsonResponse<StatisticsVo.ReportScatterDiagram> scatterDiagram(@RequestBody @ApiParam @Validated StatisticsDto.Report report){
log.info("查询报告单分数散点图:{}", report);
StatisticsVo.ReportScatterDiagram reportScatterDiagram = statisticsService.scatterDiagram(report);
log.info("查询报告单分数散点图完成");
return JsonResponse.newInstance().ok(reportScatterDiagram);
}
}

27
ht/src/main/java/com/ccsens/ht/bean/dto/StatisticsDto.java

@ -0,0 +1,27 @@
package com.ccsens.ht.bean.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class StatisticsDto {
@Data
@ApiModel("请求-医院id")
public static class HospitalId{
@ApiModelProperty("医院id")
private Long id;
}
@Data
@ApiModel("请求-报告单类型信息")
public static class Report{
@ApiModelProperty("医院id")
private Long hospitalId;
@ApiModelProperty("报告单类型code")
private Long reportCode;
@ApiModelProperty("报告单分项code")
private Long subentryCode;
}
}

103
ht/src/main/java/com/ccsens/ht/bean/vo/StatisticsVo.java

@ -0,0 +1,103 @@
package com.ccsens.ht.bean.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jnr.ffi.annotations.In;
import lombok.Data;
import java.util.List;
/**
* @author
*/
@Data
public class StatisticsVo {
@ApiModel("返回-测评人数实时统计")
@Data
public static class Realtime{
@ApiModelProperty("累计")
private int totalNum;
@ApiModelProperty("本月")
private int monthNum;
@ApiModelProperty("本日")
private int dayNum;
@ApiModelProperty("折线图数据")
private List<Chart> chartList;
}
@ApiModel("图表数据-类型数据")
@Data
public static class Chart{
@ApiModelProperty("类型")
private String type;
@ApiModelProperty("数量")
private int num;
}
@Data
@ApiModel("返回-性别年龄分布")
public static class AgeAndSex{
@ApiModelProperty("男性人数")
private int man;
@ApiModelProperty("女性人数")
private int woman;
@ApiModelProperty("年龄分布数据")
private List<Chart> chartList;
}
@Data
@ApiModel("返回-区域分布")
public static class AreaDistribution{
@ApiModelProperty("当前省份")
private String name;
@ApiModelProperty("当前省份数量")
private int num;
@ApiModelProperty("省份分布数据")
private List<Chart> chartList;
}
@Data
@ApiModel("返回-报告单分数分布")
public static class ReportDistribution{
@ApiModelProperty("数据类型")
private List<String> types;
@ApiModelProperty("横坐标类型")
private List<String> xAxis;
@ApiModelProperty("数据")
private List<ChartManWoman> chartList;
}
@Data
@ApiModel("图表数据-男女")
public static class ChartManWoman{
@ApiModelProperty("男生数据")
private List<Integer> manList;
@ApiModelProperty("女生数据")
private List<Integer> womanList;
}
@Data
@ApiModel("返回-报告单分数散点图")
public static class ReportScatterDiagram{
@ApiModelProperty("测评类型的最大分")
private int allMax;
@ApiModelProperty("分项的最大分")
private int mMax;
@ApiModelProperty("数据")
private List<List<Integer>> list;
}
@Data
@ApiModel("返回-查询试题类型")
public static class ReportCode{
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("类型名")
private String name;
@ApiModelProperty("code")
private String code;
@ApiModelProperty("分项信息")
private List<ReportCode> subentryList;
}
}

7
ht/src/main/java/com/ccsens/ht/persist/dao/HtReportDao.java

@ -3,6 +3,7 @@ package com.ccsens.ht.persist.dao;
import com.ccsens.ht.bean.po.HtReport;
import com.ccsens.ht.bean.vo.PatientReportSearchVo;
import com.ccsens.ht.bean.vo.QuestionVo;
import com.ccsens.ht.bean.vo.StatisticsVo;
import com.ccsens.ht.persist.mapper.HtReportMapper;
import org.apache.ibatis.annotations.Param;
@ -54,5 +55,9 @@ public interface HtReportDao extends HtReportMapper {
*/
QuestionVo.Report queryReportAndRecord(@Param("code") String code, @Param("patientReportId") Long patientReportId);
/**
* 查询测评类型和分项id
* @return 返回类型和分项id
*/
List<StatisticsVo.ReportCode> queryReportAndSubentry();
}

66
ht/src/main/java/com/ccsens/ht/persist/dao/StatisticsDao.java

@ -0,0 +1,66 @@
package com.ccsens.ht.persist.dao;
import com.ccsens.ht.bean.vo.StatisticsVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author
*/
@Repository
public interface StatisticsDao {
/**
* 查找总数 当月数量 当天数量
* @param hospitalId 医院id
* @param beginOfMonth 本月开始时间
* @param endOfMonth 本月结束时间
* @param beginOfDay 当天开始时间
* @param endOfDay 当天结束时间
* @return 返回总数 本月数量 当天数量
*/
StatisticsVo.Realtime getTotalNum(@Param("hospitalId") long hospitalId, @Param("beginOfMonth") long beginOfMonth,@Param("endOfMonth") long endOfMonth,@Param("beginOfDay") long beginOfDay,@Param("endOfDay") long endOfDay);
/**
* 查找实时数据
* @param hospitalId 医院Id
* @return 返回实时数据
*/
List<StatisticsVo.Chart> getRealtimeNum(@Param("hospitalId") Long hospitalId);
/**
* 查找年龄分布信息
* @param hospitalId 医院id
* @return 返回各个年龄段的数量
*/
List<StatisticsVo.Chart> getWithAge(@Param("hospitalId")Long hospitalId);
/**
* 查找男女占比
* @param hospitalId 医院id
* @return 返回男女数量
*/
StatisticsVo.AgeAndSex getWithSex(@Param("hospitalId")Long hospitalId);
/**
* 查找测评结果总评分布
* @param hospitalId 医院id
* @return 返回总评分布
*/
List<StatisticsVo.Chart> getAppraise(@Param("hospitalId")Long hospitalId);
/**
* 查找各省份的数据
* @return 返回省份数据
*/
List<StatisticsVo.Chart> areaDistribution();
/**
* 查找医院所在省份的数据
* @param hospitalId 医院id
* @return 返回医院所在省份的数据
*/
StatisticsVo.AreaDistribution hospitalProvince(@Param("hospitalId")Long hospitalId);
}

76
ht/src/main/java/com/ccsens/ht/service/IStatisticsService.java

@ -0,0 +1,76 @@
package com.ccsens.ht.service;
import com.ccsens.ht.bean.dto.StatisticsDto;
import com.ccsens.ht.bean.vo.PositionVo;
import com.ccsens.ht.bean.vo.StatisticsVo;
import java.util.List;
/**
* @author
*/
public interface IStatisticsService {
/**
* 查找医院信息
* @return 返回医院信息
*/
List<PositionVo.Position> queryHospital();
/**
* 查找测评类型和分项
* @param hospitalId 医院id
* @return 返回测评类型和分项
*/
List<StatisticsVo.ReportCode> queryReportCode(Long hospitalId);
/**
* 测评人数实时统计
* @param hospitalId 医院id
* @return 返回实时统计数据
*/
StatisticsVo.Realtime realtime(Long hospitalId);
/**
* 查找性别年龄分布图
* @param hospitalId 医院id
* @return 返回性别年龄分布信息
*/
StatisticsVo.AgeAndSex ageAndSex(Long hospitalId);
/**
* 查询区域分布信息
* @param hospitalId 医院id
* @return 返回区域分布信息
*/
StatisticsVo.AreaDistribution areaDistribution(Long hospitalId);
/**
* 测评结果总评分布
* @param hospitalId 医院id
* @return 返回总评分布
*/
List<StatisticsVo.Chart> appraise(Long hospitalId);
/**
* 查询报告单总分分布
* @param report 测评类型信息
* @return 返回报告单总分分布
*/
StatisticsVo.ReportDistribution reportScore(StatisticsDto.Report report);
/**
* 报告单分项分数分布
* @param report 测评类型信息
* @return 返回报告单分项分数分布
*/
StatisticsVo.ReportDistribution subentryScore(StatisticsDto.Report report);
/**
* 查询报告单分数散点图
* @param report 测评类型信息
* @return 返回散点图信息
*/
StatisticsVo.ReportScatterDiagram scatterDiagram(StatisticsDto.Report report);
}

124
ht/src/main/java/com/ccsens/ht/service/StatisticsService.java

@ -0,0 +1,124 @@
package com.ccsens.ht.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.ht.bean.dto.StatisticsDto;
import com.ccsens.ht.bean.po.HtPosition;
import com.ccsens.ht.bean.po.HtPositionExample;
import com.ccsens.ht.bean.vo.PositionVo;
import com.ccsens.ht.bean.vo.StatisticsVo;
import com.ccsens.ht.persist.dao.HtPositionDao;
import com.ccsens.ht.persist.dao.HtReportDao;
import com.ccsens.ht.persist.dao.StatisticsDao;
import com.ccsens.ht.uitl.Constant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
/**
* @author
*/
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class StatisticsService implements IStatisticsService {
@Resource
private HtPositionDao htPositionDao;
@Resource
private HtReportDao htReportDao;
@Resource
private StatisticsDao statisticsDao;
@Override
public List<PositionVo.Position> queryHospital() {
List<PositionVo.Position> list = null;
//查找所有的医院信息
HtPositionExample example = new HtPositionExample();
example.createCriteria().andTypeEqualTo(Constant.Ht.Position.POSITION_MAP_HOSPITAL);
List<HtPosition> positionList = htPositionDao.selectByExample(example);
if(CollectionUtil.isNotEmpty(positionList)){
list = PositionVo.Position.copy(positionList);
}
return list;
}
@Override
public List<StatisticsVo.ReportCode> queryReportCode(Long hospitalId) {
return htReportDao.queryReportAndSubentry();
}
@Override
public StatisticsVo.Realtime realtime(Long hospitalId) {
//获取当前月的开始结束时间
long beginOfMonth = DateUtil.beginOfMonth(new Date()).getTime();
long endOfMonth = DateUtil.endOfMonth(new Date()).getTime();
//获取当前开始结束时间
long beginOfDay = DateUtil.beginOfDay(new Date()).getTime();
long endOfDay = DateUtil.endOfDay(new Date()).getTime();
//查找总数,当月,当天数量
StatisticsVo.Realtime realtime = statisticsDao.getTotalNum(hospitalId,beginOfMonth,endOfMonth,beginOfDay,endOfDay);
//查找折线图里的数据
List<StatisticsVo.Chart> chartList = statisticsDao.getRealtimeNum(hospitalId);
//返回
if(ObjectUtil.isNotNull(realtime)){
realtime.setChartList(chartList);
}
return realtime;
}
@Override
public StatisticsVo.AgeAndSex ageAndSex(Long hospitalId) {
//查找男女分布信息
StatisticsVo.AgeAndSex ageAndSex = statisticsDao.getWithSex(hospitalId);
//0~18未成年 19~44青年 45~59中年 60~74老人 75~89老年人 90以上长寿老年人
List<StatisticsVo.Chart> chartList = statisticsDao.getWithAge(hospitalId);
//返回
if(ObjectUtil.isNotNull(ageAndSex)){
ageAndSex.setChartList(chartList);
}
return ageAndSex;
}
@Override
public StatisticsVo.AreaDistribution areaDistribution(Long hospitalId) {
//查找医院所在省的数据
StatisticsVo.AreaDistribution areaDistribution = statisticsDao.hospitalProvince(hospitalId);
//查找各省份的数据
List<StatisticsVo.Chart> chartList = statisticsDao.areaDistribution();
//返回
if(ObjectUtil.isNotNull(areaDistribution)){
areaDistribution.setChartList(chartList);
}
return areaDistribution;
}
@Override
public List<StatisticsVo.Chart> appraise(Long hospitalId) {
return statisticsDao.getAppraise(hospitalId);
}
@Override
public StatisticsVo.ReportDistribution reportScore(StatisticsDto.Report report) {
return null;
}
@Override
public StatisticsVo.ReportDistribution subentryScore(StatisticsDto.Report report) {
return null;
}
@Override
public StatisticsVo.ReportScatterDiagram scatterDiagram(StatisticsDto.Report report) {
return null;
}
}

41
ht/src/main/resources/mapper_dao/HtReportDao.xml

@ -103,5 +103,46 @@
) record on report.id = record.question_id
</select>
<resultMap id="reportAndSubentry" type="com.ccsens.ht.bean.vo.StatisticsVo$ReportCode">
<id column="id" property="id" />
<result column="code" property="code" />
<result column="name" property="name" />
<collection property="subentryList" ofType="com.ccsens.ht.bean.vo.StatisticsVo$ReportCode">
<id column="subentryId" property="id" />
<result column="subentryCode" property="code" />
<result column="subentryName" property="name" />
</collection>
</resultMap>
<select id="queryReportAndSubentry" resultMap="reportAndSubentry">
SELECT
r1.id,
r1.`code`,
r1.`name`,
r2.id as subentryId,
r2.`code` as subentryCode,
r2.`name` as subentryName
FROM
t_ht_report r1,
(
SELECT
id,
`code`,
`name`,
parent_code
FROM
t_ht_report
WHERE
type = 3
and is_show = 1
and is_del = 0
) r2
WHERE
r1.`code` = r2.parent_code
and r1.type = 2
and r1.is_show = 1
and r1.is_del = 0
</select>
</mapper>

223
ht/src/main/resources/mapper_dao/StatisticsDao.xml

@ -0,0 +1,223 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccsens.ht.persist.dao.StatisticsDao">
<select id="getTotalNum" resultType="com.ccsens.ht.bean.vo.StatisticsVo$Realtime">
SELECT
MAX( CASE a.type WHEN 'total' THEN num ELSE 0 END ) as `totalNum`,
MAX( CASE a.type WHEN 'month' THEN num ELSE 0 END ) as `monthNum`,
MAX( CASE a.type WHEN 'day' THEN num ELSE 0 END ) as `dayNum`
FROM
(
SELECT
'total' as type,
count(r.id) as num
FROM
t_ht_position p,
t_ht_patient_report r
WHERE
p.`name` = r.hospital
and r.complete_status = 1
AND r.show_status = 1
and p.id = #{hospitalId}
and p.is_del = 0
and r.is_del = 0
UNION
SELECT
'month' as type,
count(r.id) as num
FROM
t_ht_position p,
t_ht_patient_report r
WHERE
p.`name` = r.hospital
and r.complete_status = 1
AND r.show_status = 1
and p.id = #{hospitalId}
and r.report_time >= #{beginOfMonth}
and r.report_time &lt;= #{endOfMonth}
and p.is_del = 0
and r.is_del = 0
UNION
SELECT
'day' as type,
count(r.id) as num
FROM
t_ht_position p,
t_ht_patient_report r
WHERE
p.`name` = r.hospital
and r.complete_status = 1
AND r.show_status = 1
and p.id = #{hospitalId}
and r.report_time >= #{beginOfDay}
and r.report_time &lt;= #{endOfDay}
and p.is_del = 0
and r.is_del = 0
)a
</select>
<select id="getRealtimeNum" resultType="com.ccsens.ht.bean.vo.StatisticsVo$Chart">
SELECT
count(a.id) as num,
a.type as type
FROM
(
SELECT
r.id,
FROM_UNIXTIME(r.report_time/1000, '%Y-%m-%d') as type
FROM
t_ht_position p,
t_ht_patient_report r
WHERE
p.`name` = r.hospital
and r.complete_status = 1
AND r.show_status = 1
and p.id = #{hospitalId}
and p.is_del = 0
and r.is_del = 0
)a
GROUP BY a.type
order BY a.type
</select>
<select id="getWithAge" resultType="com.ccsens.ht.bean.vo.StatisticsVo$Chart">
SELECT
count(a.id) as num,
a.type
FROM
(
SELECT
r.id,
CASE 1
WHEN
IF( r.patient_age &lt;= 18, 1, 0 ) THEN '0~18'
WHEN
IF( r.patient_age &lt;= 44, 1, 0 ) THEN '19~44'
WHEN
IF( r.patient_age &lt;= 59, 1, 0 ) THEN '45~59'
WHEN
IF( r.patient_age &lt;= 74, 1, 0 ) THEN '60~74'
WHEN
IF( r.patient_age &lt;= 89, 1, 0 ) THEN '75~89' ELSE '90以上'
END as type
FROM
t_ht_position p,
t_ht_patient_report r
WHERE
p.`name` = r.hospital
and r.complete_status = 1
AND r.show_status = 1
and p.id = #{hospitalId}
and p.is_del = 0
and r.is_del = 0
GROUP BY r.id
)a
GROUP BY a.type
</select>
<select id="getWithSex" resultType="com.ccsens.ht.bean.vo.StatisticsVo$AgeAndSex">
SELECT
MAX( CASE p.sex WHEN '女' THEN p.num ELSE 0 END ) as `woman`,
MAX( CASE p.sex WHEN '男' THEN p.num ELSE 0 END ) as `man`
FROM
(
SELECT
if(a.sex = 0, '女', '男') as sex,
count(a.id) as num
FROM
(
SELECT
r.id,
pa.sex
FROM
t_ht_position p,
t_ht_patient_report r,
t_ht_patient pa
WHERE
p.`name` = r.hospital
and r.patient_id = pa.id
and r.complete_status = 1
AND r.show_status = 1
and p.id = #{hospitalId}
and p.is_del = 0
and r.is_del = 0
and pa.is_del = 0
GROUP BY r.id
)a
GROUP BY a.sex
)p
</select>
<select id="getAppraise" resultType="com.ccsens.ht.bean.vo.StatisticsVo$Chart">
SELECT
clinical_diagnosis AS type,
count(*) AS num
FROM
t_ht_position p,
t_ht_patient_report r
WHERE
p.`name` = r.hospital
and r.complete_status = 1
AND r.show_status = 1
and r.clinical_diagnosis != ''
and p.id = #{hospitalId}
and p.is_del = 0
and r.is_del = 0
GROUP BY r.clinical_diagnosis
ORDER BY num DESC
</select>
<select id="areaDistribution" resultType="com.ccsens.ht.bean.vo.StatisticsVo$Chart">
SELECT
i.province as type,
count(r.id) as num
FROM
t_ht_patient_report r,
t_ht_position p,
t_ht_hospital_info i
WHERE
p.`name` = r.hospital
and p.id = i.position_id
and r.complete_status = 1
AND r.show_status = 1
and p.is_del = 0
and r.is_del = 0
and i.is_del = 0
GROUP BY i.province
</select>
<select id="hospitalProvince" resultType="com.ccsens.ht.bean.vo.StatisticsVo$AreaDistribution">
SELECT
count(r.id) as num,
p.province as `name`
FROM
(
SELECT
p.`name`,
a.province
FROM
(
SELECT
i.province
FROM
t_ht_position p,
t_ht_hospital_info i
WHERE
p.id = i.position_id
and p.id = #{hospitalId}
and p.is_del = 0
and i.is_del = 0
)a,
t_ht_hospital_info i,
t_ht_position p
WHERE
i.province = a.province
and i.position_id = p.id
and p.is_del = 0
and i.is_del = 0
)p,
t_ht_patient_report r
WHERE
p.`name` = r.hospital
and r.complete_status = 1
and r.show_status = 1
and r.is_del = 0
</select>
</mapper>

2
question/src/main/java/com/ccsens/question/api/QuestionController.java

@ -120,7 +120,7 @@ public class QuestionController {
@MustLogin
@DoctorAudit
@ApiOperation(value = "根据上级code查询测评类型",notes = "zy:删除画图的轨迹,可以一次删除多条")
@ApiOperation(value = "根据上级code查询测评类型",notes = "")
@ApiImplicitParams({
})
@RequestMapping(value="/queryReportCode", method = RequestMethod.POST)

Loading…
Cancel
Save