Browse Source

血管治疗统计接口

master
ma 4 years ago
parent
commit
dee7fd05f3
  1. 30
      src/main/java/com/ccsens/carbasics/api/DataStatisticsController.java
  2. 48
      src/main/java/com/ccsens/carbasics/bean/vo/StatisticsVo.java
  3. 29
      src/main/java/com/ccsens/carbasics/persist/dao/DataStatisticsDao.java
  4. 9
      src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDataDatumLineDao.java
  5. 66
      src/main/java/com/ccsens/carbasics/service/DataStatisticsService.java
  6. 25
      src/main/java/com/ccsens/carbasics/service/IDataStatisticsService.java
  7. 328
      src/main/resources/mapper_dao/DataStatisticsDao.xml
  8. 2
      src/main/resources/mapper_dao/FirstAidDao.xml
  9. 11
      src/main/resources/mapper_dao/QuestionnaireDataDatumLineDao.xml

30
src/main/java/com/ccsens/carbasics/api/DataStatisticsController.java

@ -123,4 +123,34 @@ public class DataStatisticsController {
log.info("sich发生率具体统计结束:{}",result);
return JsonResponse.newInstance().ok(result);
}
@MustLogin
@ApiOperation(value = "血管内治疗率的总统计", notes = "")
@RequestMapping(value = "/xgzlTotal", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<StatisticsVo.XgzlTotal> xgzlTotal(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{
log.info("血管内治疗率的总统计开始{}",params);
StatisticsVo.XgzlTotal result = dataStatisticsService.xgzlTotal(params.getUserId());
log.info("血管内治疗率的总统计结束:{}",result);
return JsonResponse.newInstance().ok(result);
}
@MustLogin
@ApiOperation(value = "血管内治疗率概要统计", notes = "")
@RequestMapping(value = "/xgzlSynopsis", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<StatisticsVo.XgzlSynopsis> xgzlSynopsis(@ApiParam @Validated @RequestBody QueryDto<StatisticsDto.QueryStandards> params) throws Exception{
log.info("血管内治疗率概要统计开始{}",params);
StatisticsVo.XgzlSynopsis result = dataStatisticsService.xgzlSynopsis(params.getParam(),params.getUserId());
log.info("血管内治疗率概要统计结束:{}",result);
return JsonResponse.newInstance().ok(result);
}
@MustLogin
@ApiOperation(value = "血管内治疗率的具体统计", notes = "")
@RequestMapping(value = "/xgzlData", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<StatisticsVo.XgzlData>> xgzlData(@ApiParam @Validated @RequestBody QueryDto<StatisticsDto.QueryStandards> params) throws Exception{
log.info("血管内治疗率的具体统计开始{}",params);
List<StatisticsVo.XgzlData> result = dataStatisticsService.xgzlData(params.getParam(),params.getUserId());
log.info("血管内治疗率的具体统计结束:{}",result);
return JsonResponse.newInstance().ok(result);
}
}

48
src/main/java/com/ccsens/carbasics/bean/vo/StatisticsVo.java

@ -168,4 +168,52 @@ public class StatisticsVo {
@ApiModelProperty("各医院溶栓后sICH例数")
private BigDecimal sICHNnt;
}
@Data
@ApiModel("血管治疗总统记-返参")
public static class XgzlTotal {
@ApiModelProperty("桥接血管内治疗总数")
private String qjxgnzlzs;
@ApiModelProperty("非桥接血管内治疗总数")
private String fqjxgnzlzs;
@ApiModelProperty("血管内治疗总数")
private String xgnzlzs;
@ApiModelProperty("桥接血管内治疗率")
private String qjxgnzll;
@ApiModelProperty("非桥接血管内治疗率")
private String fqjxgnzll;
@ApiModelProperty("总血管内治疗率")
private String zxgnzll;
}
@Data
@ApiModel("血管治疗概要统记-返参")
public static class XgzlSynopsis {
@ApiModelProperty("市名")
private String cityName;
@ApiModelProperty("等级")
private String level;
@ApiModelProperty("sich发生率")
private BigDecimal zxgnzll;
@ApiModelProperty("没达到50%")
private int less50;
@ApiModelProperty("达到90%")
private int than90;
}
@Data
@ApiModel("血管治疗具体统记-返参")
public static class XgzlData {
@ApiModelProperty("市Id")
private Long areaId;
@ApiModelProperty("市/医院名称")
private String name;
@ApiModelProperty("桥接血管内治疗总数")
private String qjxgnzlzs;
@ApiModelProperty("非桥接血管内治疗总数")
private String fqjxgnzlzs;
@ApiModelProperty("总血管内治疗率")
private BigDecimal zxgnzll;
}
}

29
src/main/java/com/ccsens/carbasics/persist/dao/DataStatisticsDao.java

@ -69,7 +69,7 @@ public interface DataStatisticsDao {
* @param queryType 查询类型
* @param queryLevel 查询等级
* @param areaId 市id
* @return
* @return 查询sich概要统计
*/
StatisticsVo.SichSynopsis sichSynopsis(@Param("queryType") Byte queryType,@Param("queryLevel") Byte queryLevel,@Param("areaId") Long areaId);
@ -86,5 +86,32 @@ public interface DataStatisticsDao {
*/
List<StatisticsVo.SichData> sichDataForHospital(@Param("param") StatisticsDto.QueryStandards param);
/**
* 查询血管治疗总统记
* @return 血管治疗总统记
*/
StatisticsVo.XgzlTotal xgzlTotal();
/**
* 查询血管治疗具体统计
* @param param 参数
* @return 血管治疗具体统计(地区)
*/
List<StatisticsVo.XgzlData> xgzlDataForCity(@Param("param") StatisticsDto.QueryStandards param);
/**
* 查询血管治疗概要统计
* @param param 参数
* @return 血管治疗概要统计
*/
StatisticsVo.XgzlSynopsis xgzlSynopsis(@Param("param") StatisticsDto.QueryStandards param);
/**
* 查询血管治疗具体统计
* @param param 参数
* @return 血管治疗具体统计(具体医院)
*/
List<StatisticsVo.XgzlData> xgzlDataForHospital(@Param("param") StatisticsDto.QueryStandards param);
}

9
src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDataDatumLineDao.java

@ -17,9 +17,16 @@ public interface QuestionnaireDataDatumLineDao extends QuestionnaireDataDatumLin
List<QuestionnaireDataDatumLine> queryAll(@Param("type")Byte type);
/**
* 查询基准线
* 查询基准线 静脉溶栓
* @param type 基准线类型
* @return 基准线列表
*/
List<StatisticsVo.AreaResult> queryAllForJmrsl(@Param("type")Byte type);
/**
* 查询基准线 血管治疗
* @param type 基准线类型
* @return 基准线列表
*/
List<StatisticsVo.XgzlData> queryForXgzl(@Param("type") Byte type);
}

66
src/main/java/com/ccsens/carbasics/service/DataStatisticsService.java

@ -8,6 +8,7 @@ import com.ccsens.carbasics.bean.po.QuestionnaireDataDatumLine;
import com.ccsens.carbasics.bean.vo.StatisticsVo;
import com.ccsens.carbasics.persist.dao.DataStatisticsDao;
import com.ccsens.carbasics.persist.dao.QuestionnaireDataDatumLineDao;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@ -190,4 +191,69 @@ public class DataStatisticsService implements IDataStatisticsService {
}
return result;
}
@Override
public StatisticsVo.XgzlTotal xgzlTotal(Long userId) {
return dataStatisticsDao.xgzlTotal();
}
@Override
public StatisticsVo.XgzlSynopsis xgzlSynopsis(StatisticsDto.QueryStandards param, Long userId) {
//查询基准线
QuestionnaireDataDatumLine basics = new QuestionnaireDataDatumLine();
QuestionnaireDataDatumLine advance = new QuestionnaireDataDatumLine();
List<QuestionnaireDataDatumLine> dataDatumLineList = dataDatumLineDao.queryAll((byte) 2);
if (CollectionUtil.isNotEmpty(dataDatumLineList)) {
for (QuestionnaireDataDatumLine dataDatumLine : dataDatumLineList) {
if ("基础目标".equals(dataDatumLine.getName())) {
BeanUtil.copyProperties(dataDatumLine,basics);
}
if ("进阶目标".equals(dataDatumLine.getName())) {
BeanUtil.copyProperties(dataDatumLine,advance);
}
}
}
StatisticsVo.XgzlSynopsis xgzlSynopsis = dataStatisticsDao.xgzlSynopsis(param);
int arrive = 0;
int unArrive = 0;
List<StatisticsVo.XgzlData> xgzlDataList = new ArrayList<>();
if (0 == param.getQueryType()) {
xgzlDataList = dataStatisticsDao.xgzlDataForCity(param);
}
if (1 == param.getQueryType()) {
xgzlDataList = dataStatisticsDao.xgzlDataForHospital(param);
}
if (CollectionUtil.isNotEmpty(xgzlDataList)) {
for (StatisticsVo.XgzlData xgzlData : xgzlDataList) {
if (xgzlData.getZxgnzll().compareTo(advance.getDatumLine()) > -1) {
arrive++;
}
if (xgzlData.getZxgnzll().compareTo(basics.getDatumLine()) < 1) {
unArrive++;
}
xgzlSynopsis.setLess50(unArrive);
xgzlSynopsis.setThan90(arrive);
}
}
return xgzlSynopsis;
}
@Override
public List<StatisticsVo.XgzlData> xgzlData(StatisticsDto.QueryStandards param, Long userId) {
//查询基准线
List<StatisticsVo.XgzlData> xgzlDatumLineList = dataDatumLineDao.queryForXgzl((byte)2);
List<StatisticsVo.XgzlData> xgzlDataList = new ArrayList<>();
if (0 == param.getQueryType()) {
xgzlDataList = dataStatisticsDao.xgzlDataForCity(param);
xgzlDataList.addAll(xgzlDatumLineList);
}
if (1 == param.getQueryType()) {
xgzlDataList = dataStatisticsDao.xgzlDataForHospital(param);
xgzlDataList.addAll(xgzlDatumLineList);
}
return xgzlDataList;
}
}

25
src/main/java/com/ccsens/carbasics/service/IDataStatisticsService.java

@ -78,4 +78,29 @@ public interface IDataStatisticsService {
* @return sich具体统计
*/
List<StatisticsVo.SichData> sichData(StatisticsDto.QueryStandards param, Long userId);
/**
* 血管治疗总统记
* @param userId 用户id
* @return 血管治疗总统记
*/
StatisticsVo.XgzlTotal xgzlTotal(Long userId);
/**
* 血管治疗概要统计
* @param param 参数
* @param userId 用户id
* @return 血管治疗概要统计
*/
StatisticsVo.XgzlSynopsis xgzlSynopsis(StatisticsDto.QueryStandards param, Long userId);
/**
* 血管治疗具体统计
* @param param 参数
* @param userId 用户id
* @return 血管治疗具体统计
*/
List<StatisticsVo.XgzlData> xgzlData(StatisticsDto.QueryStandards param, Long userId);
}

328
src/main/resources/mapper_dao/DataStatisticsDao.xml

@ -596,7 +596,7 @@
-- 地区
AND `area`.rec_status = 0
AND `area`.question_code = 'CITY-COUNTY'
AND SUBSTRING_INDEX(area.answer,',',1) = 140100
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
-- 医院名
AND hospital.rec_status = 0
AND hospital.question_code = 'HOS-NAME'
@ -634,7 +634,7 @@
-- 地区
AND `area`.rec_status = 0
AND `area`.question_code = 'CITY-COUNTY'
AND SUBSTRING_INDEX(area.answer,',',1) = 140100
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
-- 医院名
AND hospital.rec_status = 0
AND hospital.question_code = 'HOS-NAME'
@ -672,7 +672,7 @@
-- 地区
AND `area`.rec_status = 0
AND `area`.question_code = 'CITY-COUNTY'
AND SUBSTRING_INDEX(area.answer,',',1) = 140100
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
-- 医院名
AND hospital.rec_status = 0
AND hospital.question_code = 'HOS-NAME'
@ -1002,4 +1002,326 @@
and answer1.detailId = answer2.detailId
</select>
<select id="xgzlTotal" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$XgzlTotal">
SELECT
answer1.qjxgnzlzs,
answer2.sjxgnzlzrs AS fqjxgnzlzs,
(answer1.qjxgnzlzs+answer2.sjxgnzlzrs) AS xgnzlzs,
round(answer2.sjxgnzlzrs*100/answer3.rshfhxgnzlzzzrs,2) AS qjxgnzll,
round(answer2.sjxgnzlzrs*100/answer4.fhxgnzlzzzrs,2) AS fqjxgnzll,
round((answer1.qjxgnzlzs+answer2.sjxgnzlzrs)*100/(answer3.rshfhxgnzlzzzrs+answer4.fhxgnzlzzzrs),2) AS zxgnzll
FROM
(
SELECT
SUM(actual.answer) AS qjxgnzlzs
FROM
t_qcp_questionnaire_record AS actual
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'XGZL-sICH-Nnt'
AND yes.rec_status = 0
AND yes.question_code = 'XGZL'
AND yes.answer = '是'
) AS answer1,
(
SELECT
SUM(actual.answer) AS sjxgnzlzrs
FROM
t_qcp_questionnaire_record AS actual
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'XGZL-actual-Nnt'
AND yes.rec_status = 0
AND yes.question_code = 'XGZL'
AND yes.answer = '是'
) AS answer2,
(
SELECT
SUM(actual.answer) AS rshfhxgnzlzzzrs
FROM
t_qcp_questionnaire_record AS actual
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'XGZL-RSH-Nnt'
AND yes.rec_status = 0
AND yes.question_code = 'XGZL'
AND yes.answer = '是'
) AS answer3,
(
SELECT
SUM(actual.answer) AS fhxgnzlzzzrs
FROM
t_qcp_questionnaire_record AS actual
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'XGZL-FIT-Nnt'
AND yes.rec_status = 0
AND yes.question_code = 'XGZL'
AND yes.answer = '是'
) AS answer4
</select>
<select id="xgzlDataForCity" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$XgzlData">
SELECT
a.id AS areaId,
a.area_name AS name,
answer1.qjxgnzlzs,
answer2.fqjxgnzlzs,
IFNULL(round((answer1.qjxgnzlzs+answer2.fqjxgnzlzs)*100/(answer3.rshfhxgnzlzzzrs+answer4.fhxgnzlzzzrs),2),0.00) AS zxgnzll
FROM
(
SELECT
SUBSTRING_INDEX(area.answer,',',1) AS area,
SUM(actual.answer) AS qjxgnzlzs
FROM
t_qcp_questionnaire_record AS actual
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_record AS level ON qd.id = level.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_record AS area ON qd.id = area.questionnaire_detail_id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'XGZL-sICH-Nnt'
AND yes.rec_status = 0
AND yes.question_code = 'XGZL'
AND yes.answer = '是'
<if test="param.queryLevel == 0">
-- 等级
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '三级'
</if>
<if test="param.queryLevel == 1">
-- 等级
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '二级'
</if>
AND area.rec_status = 0
AND area.question_code = 'CITY-COUNTY'
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
) AS answer1,
(
SELECT
SUBSTRING_INDEX(area.answer,',',1) AS area,
SUM(actual.answer) AS fqjxgnzlzs
FROM
t_qcp_questionnaire_record AS actual
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_record AS level ON qd.id = level.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_record AS area ON qd.id = area.questionnaire_detail_id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'XGZL-actual-Nnt'
AND yes.rec_status = 0
AND yes.question_code = 'XGZL'
AND yes.answer = '是'
<if test="param.queryLevel == 0">
-- 等级
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '三级'
</if>
<if test="param.queryLevel == 1">
-- 等级
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '二级'
</if>
AND area.rec_status = 0
AND area.question_code = 'CITY-COUNTY'
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
) AS answer2,
(
SELECT
SUBSTRING_INDEX(area.answer,',',1) AS area,
SUM(actual.answer) AS rshfhxgnzlzzzrs
FROM
t_qcp_questionnaire_record AS actual
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_record AS level ON qd.id = level.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_record AS area ON qd.id = area.questionnaire_detail_id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'XGZL-RSH-Nnt'
AND yes.rec_status = 0
AND yes.question_code = 'XGZL'
AND yes.answer = '是'
<if test="param.queryLevel == 0">
-- 等级
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '三级'
</if>
<if test="param.queryLevel == 1">
-- 等级
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '二级'
</if>
AND area.rec_status = 0
AND area.question_code = 'CITY-COUNTY'
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
) AS answer3,
(
SELECT
SUBSTRING_INDEX(area.answer,',',1) AS area,
SUM(actual.answer) AS fhxgnzlzzzrs
FROM
t_qcp_questionnaire_record AS actual
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_record AS level ON qd.id = level.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_record AS area ON qd.id = area.questionnaire_detail_id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'XGZL-FIT-Nnt'
AND yes.rec_status = 0
AND yes.question_code = 'XGZL'
AND yes.answer = '是'
<if test="param.queryLevel == 0">
-- 等级
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '三级'
</if>
<if test="param.queryLevel == 1">
-- 等级
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '二级'
</if>
AND area.rec_status = 0
AND area.question_code = 'CITY-COUNTY'
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
) AS answer4,
t_area AS a
WHERE a.id = answer1.area
AND answer1.area = answer2.area
AND answer2.area = answer3.area
AND answer3.area = answer4.area
ORDER BY (answer1.qjxgnzlzs+answer2.fqjxgnzlzs) DESC,zxgnzll DESC
</select>
<select id="xgzlDataForHospital" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$XgzlData">
SELECT
hospital.answer AS cityName,
answer1.answer AS qjxgnzlzs,
answer2.answer AS fqjxgnzlzs,
IFNULL(round((answer1.answer+answer2.answer)*100/(answer3.answer+answer4.answer),2),0.00) AS zxgnzll
FROM
t_qcp_questionnaire_record AS answer1
LEFT JOIN t_qcp_questionnaire_detail AS qd ON answer1.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_record AS level ON qd.id = level.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_record AS area ON qd.id = area.questionnaire_detail_id
LEFT JOIN t_area AS a ON a.id = SUBSTRING_INDEX(area.answer,',',1)
LEFT JOIN t_qcp_questionnaire_record AS hospital ON qd.id = hospital.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_record AS answer2 ON qd.id = answer2.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_record AS answer3 ON qd.id = answer3.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_record AS answer4 ON qd.id = answer4.questionnaire_detail_id
WHERE
answer1.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND answer1.question_code = 'XGZL-sICH-Nnt'
AND answer2.rec_status = 0
AND answer2.question_code = 'XGZL-actual-Nnt'
AND answer3.rec_status = 0
AND answer3.question_code = 'XGZL-RSH-Nnt'
AND answer4.rec_status = 0
AND answer4.question_code = 'XGZL-FIT-Nnt'
AND yes.rec_status = 0
AND yes.question_code = 'XGZL'
AND yes.answer = '是'
AND level.rec_status = 0
AND level.question_code = 'HOS-LEVEL'
<if test="param.queryLevel == 0">
AND level.answer = '三级'
</if>
<if test="param.queryLevel == 1">
AND level.answer = '二级'
</if>
AND hospital.rec_status = 0
AND hospital.question_code = 'HOS-NAME'
AND area.rec_status = 0
AND area.question_code = 'CITY-COUNTY'
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
ORDER BY (answer1.answer+answer2.answer) DESC,zxgnzll DESC
</select>
<select id="xgzlSynopsis" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$XgzlSynopsis">
SELECT
<if test="param.queryType == 1">
a.area_name AS `cityName`,
</if>
LEFT(level.answer,1) AS level,
round((SUM(answer1.answer)+SUM(answer2.answer))*100/(SUM(answer3.answer)+SUM(answer4.answer)),2) AS zxgnzll
FROM
t_qcp_questionnaire_record AS answer1
LEFT JOIN t_qcp_questionnaire_detail AS qd ON answer1.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS answer2 ON qd.id = answer2.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_record AS answer3 ON qd.id = answer3.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_record AS answer4 ON qd.id = answer4.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_record AS yes ON qd.id = yes.questionnaire_detail_id
LEFT JOIN t_qcp_questionnaire_record AS level ON qd.id = level.questionnaire_detail_id
<if test="param.queryType == 1">
LEFT JOIN t_qcp_questionnaire_record AS area ON qd.id = area.questionnaire_detail_id
LEFT JOIN t_area AS a ON a.id = SUBSTRING_INDEX(area.answer,',',1)
</if>
WHERE
answer1.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND answer1.question_code = 'XGZL-sICH-Nnt'
AND answer2.rec_status = 0
AND answer2.question_code = 'XGZL-actual-Nnt'
AND answer3.rec_status = 0
AND answer3.question_code = 'XGZL-RSH-Nnt'
AND answer4.rec_status = 0
AND answer4.question_code = 'XGZL-FIT-Nnt'
AND yes.rec_status = 0
AND yes.question_code = 'XGZL'
AND yes.answer = '是'
AND level.rec_status = 0
AND level.question_code = 'HOS-LEVEL'
<if test="param.queryLevel == 0">
AND level.answer = '三级'
</if>
<if test="param.queryLevel == 1">
AND level.answer = '二级'
</if>
<if test="param.queryType == 1">
AND area.rec_status = 0
AND area.question_code = 'CITY-COUNTY'
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
</if>
</select>
</mapper>

2
src/main/resources/mapper_dao/FirstAidDao.xml

@ -154,7 +154,7 @@
AND idcard LIKE concat('%',#{param.idcard},'%')
</if>
<if test="param.dataStatus != null">
data_status = #{param.dataStatus}
AND data_status = #{param.dataStatus}
</if>
AND rec_status = 0
AND hospital_id in

11
src/main/resources/mapper_dao/QuestionnaireDataDatumLineDao.xml

@ -28,4 +28,15 @@
AND type = 0
</select>
<select id="queryForXgzl" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$XgzlData">
SELECT
`name`,
datum_line AS zxgnzll
FROM
t_qcp_questionnaire_data_datum_line
WHERE
rec_status = 0
AND type = 2
</select>
</mapper>
Loading…
Cancel
Save