Browse Source

20221116统计AIS数据

bfyMa
zhangye 3 years ago
parent
commit
b754986fbb
  1. 61
      src/main/java/com/ccsens/carbasics/api/manage/ManageStatisticalController.java
  2. 8
      src/main/java/com/ccsens/carbasics/bean/dto/QuestionnaireDto.java
  3. 13
      src/main/java/com/ccsens/carbasics/bean/dto/StatisticalDto.java
  4. 9
      src/main/java/com/ccsens/carbasics/bean/vo/QuestionnaireVo.java
  5. 122
      src/main/java/com/ccsens/carbasics/bean/vo/StatisticalVo.java
  6. 36
      src/main/java/com/ccsens/carbasics/persist/dao/ManageStatisticalDao.java
  7. 7
      src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDao.java
  8. 48
      src/main/java/com/ccsens/carbasics/service/IManageStatisticalService.java
  9. 102
      src/main/java/com/ccsens/carbasics/service/ManageStatisticalService.java
  10. 2
      src/main/resources/druid-dev.yml
  11. 254
      src/main/resources/mapper_dao/ManageStatisticalDao.xml
  12. 12
      src/main/resources/mapper_dao/QuestionnaireDao.xml

61
src/main/java/com/ccsens/carbasics/api/manage/ManageStatisticalController.java

@ -1,7 +1,10 @@
package com.ccsens.carbasics.api.manage; package com.ccsens.carbasics.api.manage;
import com.ccsens.carbasics.bean.dto.QuestionnaireDto;
import com.ccsens.carbasics.bean.dto.StatisticalDto; import com.ccsens.carbasics.bean.dto.StatisticalDto;
import com.ccsens.carbasics.bean.vo.QuestionnaireVo;
import com.ccsens.carbasics.bean.vo.StatisticalVo; import com.ccsens.carbasics.bean.vo.StatisticalVo;
import com.ccsens.carbasics.service.IManageStatisticalService;
import com.ccsens.carbasics.service.IStatisticalService; import com.ccsens.carbasics.service.IStatisticalService;
import com.ccsens.cloudutil.annotation.MustLogin; import com.ccsens.cloudutil.annotation.MustLogin;
import com.ccsens.util.JsonResponse; import com.ccsens.util.JsonResponse;
@ -24,24 +27,64 @@ import java.util.List;
* @author: whj * @author: whj
* @time: 2021/7/28 8:54 * @time: 2021/7/28 8:54
*/ */
@Api(tags = "统计查询") @Api(tags = "后台统计查询")
@RestController @RestController
@RequestMapping("/manage/statistical") @RequestMapping("/manage/statistical")
@Slf4j @Slf4j
public class ManageStatisticalController { public class ManageStatisticalController {
@Resource @Resource
private IStatisticalService statisticalService; private IManageStatisticalService manageStatisticalService;
@MustLogin
@ApiOperation(value = "查找卒中问卷", notes = "")
@RequestMapping(value = "/questionnaireByType", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<QuestionnaireVo.QuestionnaireByType>> questionnaireByType(@ApiParam @Validated @RequestBody QueryDto<QuestionnaireDto.QueryQuestionnaireByType> params) {
log.info("查找卒中问卷:{}", params);
List<QuestionnaireVo.QuestionnaireByType> questionnaireByTypes = manageStatisticalService.questionnaireByType(params.getParam(), params.getUserId());
log.info("查找卒中问卷结果:{}", questionnaireByTypes);
return JsonResponse.newInstance().ok(questionnaireByTypes);
}
@MustLogin
@ApiOperation(value = "按医院等级-收治急性缺血性脑卒中(AIS)总例数", notes = "")
@RequestMapping(value = "/allLevel", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<StatisticalVo.ComparisonAis> comparisonAllByLevel(@ApiParam @Validated @RequestBody QueryDto<StatisticalDto.Comparison> params) {
log.info("按医院等级-对比AIS患者数据:{}", params);
StatisticalVo.ComparisonAis comparisonAis = manageStatisticalService.comparisonAllByLevel(params.getParam(), params.getUserId());
log.info("按医院等级-对比AIS患者数据结果:{}", comparisonAis);
return JsonResponse.newInstance().ok(comparisonAis);
}
@MustLogin
@ApiOperation(value = "按地区-收治急性缺血性脑卒中(AIS)总例数", notes = "")
@RequestMapping(value = "/allArea", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<StatisticalVo.ComparisonAis> comparisonAllByArea(@ApiParam @Validated @RequestBody QueryDto<StatisticalDto.Comparison> params) {
log.info("按地区-对比AIS患者数据:{}", params);
StatisticalVo.ComparisonAis comparisonAis = manageStatisticalService.comparisonAllByArea(params.getParam(), params.getUserId());
log.info("按地区-对比AIS患者数据结果:{}", comparisonAis);
return JsonResponse.newInstance().ok(comparisonAis);
}
@MustLogin @MustLogin
@ApiOperation(value = "跑道图", notes = "跑道图") @ApiOperation(value = "按地区-AIS就诊患者总数", notes = "")
@RequestMapping(value = "/runway", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "/aisArea", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<StatisticalVo.Common> runway(@ApiParam @Validated @RequestBody QueryDto<StatisticalDto.Time> params) { public JsonResponse<StatisticalVo.ComparisonAis> comparisonAisByArea(@ApiParam @Validated @RequestBody QueryDto<StatisticalDto.Comparison> params) {
log.info("跑道图:{}", params); log.info("按地区-对比AIS患者数据:{}", params);
StatisticalVo.Common common = statisticalService.runway(params.getParam(), params.getUserId()); StatisticalVo.ComparisonAis comparisonAis = manageStatisticalService.comparisonAisByArea(params.getParam(), params.getUserId());
log.info("跑道图结果:{}", common); log.info("按地区-对比AIS患者数据结果:{}", comparisonAis);
return JsonResponse.newInstance().ok(common); return JsonResponse.newInstance().ok(comparisonAis);
} }
@MustLogin
@ApiOperation(value = "按地区-发病4.5h内AIS患者总数和百分比", notes = "")
@RequestMapping(value = "/aisPercentArea", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<StatisticalVo.ComparisonAisPercent> comparisonAisPercentByArea(@ApiParam @Validated @RequestBody QueryDto<StatisticalDto.Comparison> params) {
log.info("按地区-发病4.5h内AIS患者总数和百分比:{}", params);
StatisticalVo.ComparisonAisPercent comparisonAis = manageStatisticalService.comparisonAisPercentByArea(params.getParam(), params.getUserId());
log.info("按地区-发病4.5h内AIS患者总数和百分比结果:{}", comparisonAis);
return JsonResponse.newInstance().ok(comparisonAis);
}
} }

8
src/main/java/com/ccsens/carbasics/bean/dto/QuestionnaireDto.java

@ -240,4 +240,12 @@ public class QuestionnaireDto {
private int pageSize = 10; private int pageSize = 10;
} }
@Data
@ApiModel("根据类型查看问卷")
public static class QueryQuestionnaireByType {
@ApiModelProperty("问卷类型 0卒中 1高危筛查")
private Byte type = 0;
}
} }

13
src/main/java/com/ccsens/carbasics/bean/dto/StatisticalDto.java

@ -198,4 +198,17 @@ public class StatisticalDto {
@ApiModelProperty("省质控code") @ApiModelProperty("省质控code")
private String code; private String code;
} }
@Data
@ApiModel("后台对比两个问卷的AIS数据-请求")
public static class Comparison {
@ApiModelProperty("第一个问卷Id")
private Long oneId;
@ApiModelProperty("第二个问卷Id")
private Long twoId;
@ApiModelProperty("排序字段 0第一个AIS数量 1第二个AIS数量 2第一个4.5小时AIS数量 3第二个4.5小时AIS数量 4第一个4.5小时AIS百分比 5第二个4.5小时AIS百分比")
private byte desc = 0;
}
} }

9
src/main/java/com/ccsens/carbasics/bean/vo/QuestionnaireVo.java

@ -409,4 +409,13 @@ public class QuestionnaireVo {
} }
} }
@Data
@ApiModel("根据type查找问卷-请求")
public static class QuestionnaireByType {
@ApiModelProperty("问卷id")
private Long id;
@ApiModelProperty("问卷名称")
private String questionnaireName;
}
} }

122
src/main/java/com/ccsens/carbasics/bean/vo/StatisticalVo.java

@ -1,11 +1,14 @@
package com.ccsens.carbasics.bean.vo; package com.ccsens.carbasics.bean.vo;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ArrayUtil;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -119,4 +122,123 @@ public class StatisticalVo {
@ApiModelProperty("下级机构") @ApiModelProperty("下级机构")
private List<ProvinceCity> children; private List<ProvinceCity> children;
} }
@ApiModel("对比两个问卷的AIS-返回")
@Data
public static class ComparisonAis{
@ApiModelProperty("总数据")
private Integer totalNum = 0;
@ApiModelProperty("第一个问卷的数量")
private Integer oneNum = 0;
@ApiModelProperty("第二个问卷的数量")
private Integer towNum = 0;
@ApiModelProperty("表格数据")
private List<Ais> aisList;
public Integer getTotalNum() {
return oneNum + towNum;
}
public Integer getOneNum() {
if(CollectionUtil.isNotEmpty(aisList)){
for (Ais ais : aisList) {
oneNum += ais.oneNum;
}
}
return oneNum;
}
public Integer getTowNum() {
if(CollectionUtil.isNotEmpty(aisList)){
for (Ais ais : aisList) {
towNum += ais.towNum;
}
}
return towNum;
}
@ApiModel("对比两个问卷的AI-表格数据-返回")
@Data
public static class Ais{
@ApiModelProperty("列名")
private String name;
@ApiModelProperty("第一个数量")
private Integer oneNum = 0;
@ApiModelProperty("第二个数量")
private Integer towNum = 0;
public Ais(String name, Integer oneNum, Integer towNum) {
this.name = name;
this.oneNum = oneNum;
this.towNum = towNum;
}
public Ais() {
}
}
}
@ApiModel("对比两个问卷的AIS-返回")
@Data
public static class ComparisonAisPercent{
@ApiModelProperty("总数据")
private Integer totalNum = 0;
@ApiModelProperty("4.5小时的总数据")
private Integer num = 0;
@ApiModelProperty("4.5小时的百分比")
private BigDecimal percent = new BigDecimal(0);
@ApiModelProperty("表格数据")
private List<Ais> aisList;
public Integer getTotalNum() {
if(CollectionUtil.isNotEmpty(aisList)){
for (Ais ais : aisList) {
totalNum += (ais.oneNum + ais.towNum);
}
}
return totalNum;
}
public Integer getNum() {
if(CollectionUtil.isNotEmpty(aisList)){
for (Ais ais : aisList) {
num += (ais.oneHourNum + ais.towHourNum);
}
}
return num;
}
public BigDecimal getPercent() {
return totalNum == 0 ? percent : (new BigDecimal(num*100.00).divide(new BigDecimal(totalNum), 2, BigDecimal.ROUND_HALF_UP));
}
@ApiModel("对比两个问卷的AI-表格数据-返回")
@Data
public static class Ais{
@ApiModelProperty("列名")
private String name;
@ApiModelProperty("第一个AIS数量")
private Integer oneNum = 0;
@ApiModelProperty("第二个AIS数量")
private Integer towNum = 0;
@ApiModelProperty("第一个4.5小时AIS数量")
private Integer oneHourNum = 0;
@ApiModelProperty("第二个4.5小时AIS数量")
private Integer towHourNum = 0;
@ApiModelProperty("第一个4.5小时AIS百分比")
private BigDecimal oneHourPercent = new BigDecimal(0);
@ApiModelProperty("第二个4.5小时AIS百分比")
private BigDecimal towHourPercent = new BigDecimal(0);
public BigDecimal getOneHourPercent() {
return oneNum == 0 ? oneHourPercent : (new BigDecimal(oneHourNum*100.00).divide(new BigDecimal(oneNum), 2, BigDecimal.ROUND_HALF_UP));
}
public BigDecimal getTowHourPercent() {
return towNum == 0 ? towHourPercent : (new BigDecimal(towHourNum*100.00).divide(new BigDecimal(towNum), 2, BigDecimal.ROUND_HALF_UP));
}
}
}
} }

36
src/main/java/com/ccsens/carbasics/persist/dao/ManageStatisticalDao.java

@ -0,0 +1,36 @@
package com.ccsens.carbasics.persist.dao;
import com.ccsens.carbasics.bean.vo.StatisticalVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @author
*/
@Repository
public interface ManageStatisticalDao {
/**
*
* @param oneId
* @param twoId
* @return
*/
Map<String, Long> comparisonAllByLevel(@Param("oneId")Long oneId, @Param("twoId")Long twoId);
List<StatisticalVo.ComparisonAis.Ais> comparisonAllByArea(@Param("oneId")Long oneId, @Param("twoId")Long twoId, @Param("desc")byte desc);
/**
*
* @param oneId
* @param twoId
* @param desc
* @return
*/
List<StatisticalVo.ComparisonAis.Ais> comparisonAisByArea(@Param("oneId")Long oneId, @Param("twoId")Long twoId, @Param("desc")byte desc);
List<StatisticalVo.ComparisonAisPercent.Ais> comparisonAisPercentByArea(@Param("oneId")Long oneId, @Param("twoId")Long twoId, @Param("desc")byte desc);
}

7
src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDao.java

@ -87,4 +87,11 @@ public interface QuestionnaireDao extends QuestionnaireMapper {
* @return 返回类表 * @return 返回类表
*/ */
List<QuestionnaireVo.BackQueryScreening> backQueryScreening(@Param("param")QuestionnaireDto.BackQueryScreening param, @Param("now")long now); List<QuestionnaireVo.BackQueryScreening> backQueryScreening(@Param("param")QuestionnaireDto.BackQueryScreening param, @Param("now")long now);
/**
* 通过type查找问卷
* @param type
* @return
*/
List<QuestionnaireVo.QuestionnaireByType> questionnaireByType(@Param("type")Byte type);
} }

48
src/main/java/com/ccsens/carbasics/service/IManageStatisticalService.java

@ -0,0 +1,48 @@
package com.ccsens.carbasics.service;
import com.ccsens.carbasics.bean.dto.QuestionnaireDto;
import com.ccsens.carbasics.bean.dto.StatisticalDto;
import com.ccsens.carbasics.bean.vo.QuestionnaireVo;
import com.ccsens.carbasics.bean.vo.StatisticalVo;
import java.util.List;
/**
* @author
*/
public interface IManageStatisticalService {
/**
* 通过type查找问卷
* @param param
* @param userId
* @return
*/
List<QuestionnaireVo.QuestionnaireByType> questionnaireByType(QuestionnaireDto.QueryQuestionnaireByType param, Long userId);
/**
* 根据等级统计Ais数据
* @param param
* @param userId
* @return
*/
StatisticalVo.ComparisonAis comparisonAllByLevel(StatisticalDto.Comparison param, Long userId);
/**
* 根据地区统计AIS数据
* @param param
* @param userId
* @return
*/
StatisticalVo.ComparisonAis comparisonAllByArea(StatisticalDto.Comparison param, Long userId);
/**
*
* @param param
* @param userId
* @return
*/
StatisticalVo.ComparisonAis comparisonAisByArea(StatisticalDto.Comparison param, Long userId);
StatisticalVo.ComparisonAisPercent comparisonAisPercentByArea(StatisticalDto.Comparison param, Long userId);
}

102
src/main/java/com/ccsens/carbasics/service/ManageStatisticalService.java

@ -0,0 +1,102 @@
package com.ccsens.carbasics.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.carbasics.bean.dto.QuestionnaireDto;
import com.ccsens.carbasics.bean.dto.StatisticalDto;
import com.ccsens.carbasics.bean.vo.QuestionnaireVo;
import com.ccsens.carbasics.bean.vo.StatisticalVo;
import com.ccsens.carbasics.persist.dao.ManageStatisticalDao;
import com.ccsens.carbasics.persist.dao.QuestionnaireDao;
import javafx.print.Collation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
/**
* @author
*/
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class ManageStatisticalService implements IManageStatisticalService {
@Resource
private QuestionnaireDao questionnaireDao;
@Resource
private ManageStatisticalDao manageStatisticalDao;
@Override
public List<QuestionnaireVo.QuestionnaireByType> questionnaireByType(QuestionnaireDto.QueryQuestionnaireByType param, Long userId) {
return questionnaireDao.questionnaireByType(param.getType());
}
@Override
public StatisticalVo.ComparisonAis comparisonAllByLevel(StatisticalDto.Comparison param, Long userId) {
//查找“收治急性缺血性脑卒中(AIS)总例数”
Map<String, Long> map = manageStatisticalDao.comparisonAllByLevel(param.getOneId(),param.getTwoId());
StatisticalVo.ComparisonAis comparisonAis = new StatisticalVo.ComparisonAis();
List<StatisticalVo.ComparisonAis.Ais> aisList = new ArrayList<>();
if(ObjectUtil.isNull(map)){
aisList.add(new StatisticalVo.ComparisonAis.Ais("二级",0,0));
aisList.add(new StatisticalVo.ComparisonAis.Ais("三级",0,0));
aisList.add(new StatisticalVo.ComparisonAis.Ais("溶栓地图外",0,0));
}else {
aisList.add(new StatisticalVo.ComparisonAis.Ais("二级",
map.get("secondLevel1") == null ? 0 : map.get("secondLevel1").intValue(),
map.get("secondLevel2") == null ? 0 : map.get("secondLevel2").intValue()));
aisList.add(new StatisticalVo.ComparisonAis.Ais("三级",
map.get("threeLevel1") == null ? 0 : map.get("threeLevel1").intValue(),
map.get("threeLevel2") == null ? 0 : map.get("threeLevel2").intValue()));
aisList.add(new StatisticalVo.ComparisonAis.Ais("溶栓地图外",
map.get("notMap1") == null ? 0 : map.get("notMap1").intValue(),
map.get("notMap2") == null ? 0 : map.get("notMap2").intValue()));
}
comparisonAis.setAisList(aisList);
return comparisonAis;
}
@Override
public StatisticalVo.ComparisonAis comparisonAllByArea(StatisticalDto.Comparison param, Long userId) {
//查找“收治急性缺血性脑卒中(AIS)总例数”
List<StatisticalVo.ComparisonAis.Ais> aisList = manageStatisticalDao.comparisonAllByArea(param.getOneId(),param.getTwoId(),param.getDesc());
StatisticalVo.ComparisonAis comparisonAis = new StatisticalVo.ComparisonAis();
comparisonAis.setAisList(aisList);
return comparisonAis;
}
@Override
public StatisticalVo.ComparisonAis comparisonAisByArea(StatisticalDto.Comparison param, Long userId) {
//查找“收治急性缺血性脑卒中(AIS)总例数”
List<StatisticalVo.ComparisonAis.Ais> aisList = manageStatisticalDao.comparisonAisByArea(param.getOneId(),param.getTwoId(),param.getDesc());
StatisticalVo.ComparisonAis comparisonAis = new StatisticalVo.ComparisonAis();
comparisonAis.setAisList(aisList);
return comparisonAis;
}
@Override
public StatisticalVo.ComparisonAisPercent comparisonAisPercentByArea(StatisticalDto.Comparison param, Long userId) {
StatisticalVo.ComparisonAisPercent comparisonAis = new StatisticalVo.ComparisonAisPercent();
List<StatisticalVo.ComparisonAisPercent.Ais> aisList = manageStatisticalDao.comparisonAisPercentByArea(param.getOneId(),param.getTwoId(),param.getDesc());
if(param.getDesc() == 4){
CollectionUtil.sort(aisList, (o1, o2) -> o2.getOneHourPercent().compareTo(o1.getOneHourPercent()));
}else {
CollectionUtil.sort(aisList, (o1, o2) -> o2.getTowHourPercent().compareTo(o1.getTowHourPercent()));
}
comparisonAis.setAisList(aisList);
return comparisonAis;
}
}

2
src/main/resources/druid-dev.yml

@ -29,7 +29,7 @@ spring:
testWhileIdle: true testWhileIdle: true
timeBetweenEvictionRunsMillis: 60000 timeBetweenEvictionRunsMillis: 60000
url: jdbc:mysql://49.233.89.188:3306/carbasics?useUnicode=true&characterEncoding=UTF-8 url: jdbc:mysql://49.233.89.188:3306/carbasics?useUnicode=true&characterEncoding=UTF-8
# url: jdbc:mysql://www.tall.wiki:3306/carbasics?useUnicode=true&characterEncoding=UTF-8 # url: jdbc:mysql://121.36.3.207:3306/carbasics?useUnicode=true&characterEncoding=UTF-8
username: root username: root
validationQuery: SELECT 1 FROM DUAL validationQuery: SELECT 1 FROM DUAL
# env: CCSENS_GAME # env: CCSENS_GAME

254
src/main/resources/mapper_dao/ManageStatisticalDao.xml

@ -0,0 +1,254 @@
<?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.carbasics.persist.dao.ManageStatisticalDao">
<select id="comparisonAllByLevel" resultType="java.util.Map">
SELECT
cast(SUM(if(t1.map = '否', t1.num, null)) as SIGNED) as notMap1,
cast(SUM(if(t2.map = '否', t2.num, null)) as SIGNED) as notMap2,
cast(SUM(if(t1.map = '是' and t1.hospitalLevel = '二级', t1.num, null)) as SIGNED) as secondLevel1,
cast(SUM(if(t2.map = '是' and t2.hospitalLevel = '二级', t2.num, null)) as SIGNED) as secondLevel2,
cast(SUM(if(t1.map = '是' and t1.hospitalLevel = '三级', t1.num, null)) as SIGNED) as threeLevel1,
cast(SUM(if(t2.map = '是' and t2.hospitalLevel = '三级', t2.num, null)) as SIGNED) as threeLevel2
FROM
(
SELECT
d.id,
a.answer as num,
m.answer as map,
n.answer as hospitalName,
l.answer as hospitalLevel
FROM
(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'All-Nnt') a
LEFT JOIN(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'HOS-MAP') m on a.questionnaire_detail_id = m.questionnaire_detail_id
LEFT JOIN(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'HOS-NAME') n on a.questionnaire_detail_id = n.questionnaire_detail_id
LEFT JOIN(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'HOS-LEVEL') l on a.questionnaire_detail_id = l.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_detail d on d.id = a.questionnaire_detail_id
WHERE
d.rec_status = 0
and a.rec_status = 0
and m.rec_status = 0
and n.rec_status = 0
and l.rec_status = 0
and d.questionnaire_id = #{oneId}
and d.submit_status = 1
)t1,
(
SELECT
d.id,
a.answer as num,
m.answer as map,
n.answer as hospitalName,
l.answer as hospitalLevel
FROM
(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'All-Nnt') a
LEFT JOIN(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'HOS-MAP') m on a.questionnaire_detail_id = m.questionnaire_detail_id
LEFT JOIN(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'HOS-NAME') n on a.questionnaire_detail_id = n.questionnaire_detail_id
LEFT JOIN(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'HOS-LEVEL') l on a.questionnaire_detail_id = l.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_detail d on d.id = a.questionnaire_detail_id
WHERE
d.rec_status = 0
and a.rec_status = 0
and m.rec_status = 0
and n.rec_status = 0
and l.rec_status = 0
and d.questionnaire_id = #{twoId}
and d.submit_status = 1
)t2
WHERE
t1.hospitalName = t2.hospitalName
</select>
<select id="comparisonAllByArea" resultType="com.ccsens.carbasics.bean.vo.StatisticalVo$ComparisonAis$Ais">
SELECT
*
FROM
(
SELECT
t1.area_name as name,
SUM(t1.num) as oneNum,
SUM(t2.num) as towNum
FROM
(
SELECT
d.id,
a.answer as num,
n.answer as hospitalName,
c.area_name
FROM
(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'All-Nnt') a
LEFT JOIN(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'HOS-NAME') n on a.questionnaire_detail_id = n.questionnaire_detail_id
LEFT JOIN(SELECT r.questionnaire_detail_id, a.`area_name` FROM t_qcp_questionnaire_record r, t_area a
WHERE r.`question_code` = 'CITY-COUNTY' and a.id = SUBSTRING_INDEX(r.answer,",",1)) c on a.questionnaire_detail_id = c.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_detail d on d.id = a.questionnaire_detail_id
WHERE
d.rec_status = 0
and a.rec_status = 0
and n.rec_status = 0
and d.questionnaire_id = #{oneId}
and d.submit_status = 1
)t1,
(
SELECT
d.id,
a.answer as num,
n.answer as hospitalName,
c.area_name
FROM
(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'All-Nnt') a
LEFT JOIN(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'HOS-NAME') n on a.questionnaire_detail_id = n.questionnaire_detail_id
LEFT JOIN(SELECT r.questionnaire_detail_id, a.`area_name` FROM t_qcp_questionnaire_record r, t_area a
WHERE r.`question_code` = 'CITY-COUNTY' and a.id = SUBSTRING_INDEX(r.answer,",",1)) c on a.questionnaire_detail_id = c.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_detail d on d.id = a.questionnaire_detail_id
WHERE
d.rec_status = 0
and a.rec_status = 0
and n.rec_status = 0
and d.questionnaire_id = #{twoId}
and d.submit_status = 1
)t2
WHERE
t1.hospitalName = t2.hospitalName
GROUP BY t1.area_name, t2.area_name
) a
<if test="desc == 0">
ORDER BY a.oneNum DESC
</if>
<if test="desc == 1">
ORDER BY a.towNum DESC
</if>
</select>
<select id="comparisonAisByArea" resultType="com.ccsens.carbasics.bean.vo.StatisticalVo$ComparisonAis$Ais">
SELECT
*
FROM
(
SELECT
t1.area_name as name,
SUM(t1.num) as oneNum,
SUM(t2.num) as towNum
FROM
(
SELECT
d.id,
a.answer as num,
n.answer as hospitalName,
c.area_name
FROM
(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'AIS-Nnt') a
LEFT JOIN(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'HOS-NAME') n on a.questionnaire_detail_id = n.questionnaire_detail_id
LEFT JOIN(SELECT r.questionnaire_detail_id, a.`area_name` FROM t_qcp_questionnaire_record r, t_area a
WHERE r.`question_code` = 'CITY-COUNTY' and a.id = SUBSTRING_INDEX(r.answer,",",1)) c on a.questionnaire_detail_id = c.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_detail d on d.id = a.questionnaire_detail_id
WHERE
d.rec_status = 0
and a.rec_status = 0
and n.rec_status = 0
and d.questionnaire_id = #{oneId}
and d.submit_status = 1
)t1,
(
SELECT
d.id,
a.answer as num,
n.answer as hospitalName,
c.area_name
FROM
(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'AIS-Nnt') a
LEFT JOIN(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'HOS-NAME') n on a.questionnaire_detail_id = n.questionnaire_detail_id
LEFT JOIN(SELECT r.questionnaire_detail_id, a.`area_name` FROM t_qcp_questionnaire_record r, t_area a
WHERE r.`question_code` = 'CITY-COUNTY' and a.id = SUBSTRING_INDEX(r.answer,",",1)) c on a.questionnaire_detail_id = c.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_detail d on d.id = a.questionnaire_detail_id
WHERE
d.rec_status = 0
and a.rec_status = 0
and n.rec_status = 0
and d.questionnaire_id = #{twoId}
and d.submit_status = 1
)t2
WHERE
t1.hospitalName = t2.hospitalName
GROUP BY t1.area_name, t2.area_name
) a
<if test="desc == 0">
ORDER BY a.oneNum DESC
</if>
<if test="desc == 1">
ORDER BY a.towNum DESC
</if>
</select>
<select id="comparisonAisPercentByArea"
resultType="com.ccsens.carbasics.bean.vo.StatisticalVo$ComparisonAisPercent$Ais">
SELECT
*
FROM
(
SELECT
t1.area_name as name,
SUM(t1.num) as oneNum,
SUM(t2.num) as towNum,
SUM(t1.aisNum) as oneHourNum,
SUM(t2.aisNum) as towHourNum
FROM
(
SELECT
d.id,
a.answer as num,
ais.answer as aisNum,
n.answer as hospitalName,
c.area_name
FROM
(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'All-Nnt') a
LEFT JOIN(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'AIS-Nnt') ais on a.questionnaire_detail_id = ais.questionnaire_detail_id
LEFT JOIN(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'HOS-NAME') n on a.questionnaire_detail_id = n.questionnaire_detail_id
LEFT JOIN(SELECT r.questionnaire_detail_id, a.`area_name` FROM t_qcp_questionnaire_record r, t_area a
WHERE r.`question_code` = 'CITY-COUNTY' and a.id = SUBSTRING_INDEX(r.answer,",",1)) c on a.questionnaire_detail_id = c.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_detail d on d.id = a.questionnaire_detail_id
WHERE
d.rec_status = 0
and a.rec_status = 0
and n.rec_status = 0
and d.questionnaire_id = #{oneId}
and d.submit_status = 1
)t1,
(
SELECT
d.id,
a.answer as num,
ais.answer as aisNum,
n.answer as hospitalName,
c.area_name
FROM
(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'All-Nnt') a
LEFT JOIN(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'AIS-Nnt') ais on a.questionnaire_detail_id = ais.questionnaire_detail_id
LEFT JOIN(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'HOS-NAME') n on a.questionnaire_detail_id = n.questionnaire_detail_id
LEFT JOIN(SELECT r.questionnaire_detail_id, a.`area_name` FROM t_qcp_questionnaire_record r, t_area a
WHERE r.`question_code` = 'CITY-COUNTY' and a.id = SUBSTRING_INDEX(r.answer,",",1)) c on a.questionnaire_detail_id = c.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_detail d on d.id = a.questionnaire_detail_id
WHERE
d.rec_status = 0
and a.rec_status = 0
and n.rec_status = 0
and d.questionnaire_id = #{twoId}
and d.submit_status = 1
)t2
WHERE
t1.hospitalName = t2.hospitalName
GROUP BY t1.area_name, t2.area_name
) a
<if test="desc == 0">
ORDER BY a.oneNum DESC
</if>
<if test="desc == 1">
ORDER BY a.towNum DESC
</if>
<if test="desc == 2">
ORDER BY a.oneHourNum DESC
</if>
<if test="desc == 3">
ORDER BY a.towHourNum DESC
</if>
</select>
</mapper>

12
src/main/resources/mapper_dao/QuestionnaireDao.xml

@ -501,6 +501,18 @@
</where> </where>
ORDER BY t.submitTime DESC ORDER BY t.submitTime DESC
</select> </select>
<select id="questionnaireByType"
resultType="com.ccsens.carbasics.bean.vo.QuestionnaireVo$QuestionnaireByType">
select
id,
questionnaire_name as questionnaireName
from
t_qcp_questionnaire
where
`type` = #{type}
and rec_status = 0
</select>
</mapper> </mapper>
Loading…
Cancel
Save