From dee7fd05f3dd73dfb47f0decd66e81df6622b80a Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Mon, 15 Nov 2021 09:59:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=80=E7=AE=A1=E6=B2=BB=E7=96=97=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/DataStatisticsController.java | 30 ++ .../carbasics/bean/vo/StatisticsVo.java | 48 +++ .../persist/dao/DataStatisticsDao.java | 29 +- .../dao/QuestionnaireDataDatumLineDao.java | 9 +- .../service/DataStatisticsService.java | 66 ++++ .../service/IDataStatisticsService.java | 25 ++ .../mapper_dao/DataStatisticsDao.xml | 328 +++++++++++++++++- src/main/resources/mapper_dao/FirstAidDao.xml | 2 +- .../QuestionnaireDataDatumLineDao.xml | 11 + 9 files changed, 542 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ccsens/carbasics/api/DataStatisticsController.java b/src/main/java/com/ccsens/carbasics/api/DataStatisticsController.java index 6e0e013..fda6ed3 100644 --- a/src/main/java/com/ccsens/carbasics/api/DataStatisticsController.java +++ b/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 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 xgzlSynopsis(@ApiParam @Validated @RequestBody QueryDto 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> xgzlData(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + log.info("血管内治疗率的具体统计开始{}",params); + List result = dataStatisticsService.xgzlData(params.getParam(),params.getUserId()); + log.info("血管内治疗率的具体统计结束:{}",result); + return JsonResponse.newInstance().ok(result); + } } diff --git a/src/main/java/com/ccsens/carbasics/bean/vo/StatisticsVo.java b/src/main/java/com/ccsens/carbasics/bean/vo/StatisticsVo.java index cc28470..327dba6 100644 --- a/src/main/java/com/ccsens/carbasics/bean/vo/StatisticsVo.java +++ b/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; + } + } diff --git a/src/main/java/com/ccsens/carbasics/persist/dao/DataStatisticsDao.java b/src/main/java/com/ccsens/carbasics/persist/dao/DataStatisticsDao.java index cb74bd7..3a9c7cb 100644 --- a/src/main/java/com/ccsens/carbasics/persist/dao/DataStatisticsDao.java +++ b/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 sichDataForHospital(@Param("param") StatisticsDto.QueryStandards param); + /** + * 查询血管治疗总统记 + * @return 血管治疗总统记 + */ + StatisticsVo.XgzlTotal xgzlTotal(); + + /** + * 查询血管治疗具体统计 + * @param param 参数 + * @return 血管治疗具体统计(地区) + */ + List xgzlDataForCity(@Param("param") StatisticsDto.QueryStandards param); + + /** + * 查询血管治疗概要统计 + * @param param 参数 + * @return 血管治疗概要统计 + */ + StatisticsVo.XgzlSynopsis xgzlSynopsis(@Param("param") StatisticsDto.QueryStandards param); + + /** + * 查询血管治疗具体统计 + * @param param 参数 + * @return 血管治疗具体统计(具体医院) + */ + List xgzlDataForHospital(@Param("param") StatisticsDto.QueryStandards param); + } diff --git a/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDataDatumLineDao.java b/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDataDatumLineDao.java index ed1c35c..da1f730 100644 --- a/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDataDatumLineDao.java +++ b/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDataDatumLineDao.java @@ -17,9 +17,16 @@ public interface QuestionnaireDataDatumLineDao extends QuestionnaireDataDatumLin List queryAll(@Param("type")Byte type); /** - * 查询基准线 + * 查询基准线 静脉溶栓 * @param type 基准线类型 * @return 基准线列表 */ List queryAllForJmrsl(@Param("type")Byte type); + + /** + * 查询基准线 血管治疗 + * @param type 基准线类型 + * @return 基准线列表 + */ + List queryForXgzl(@Param("type") Byte type); } diff --git a/src/main/java/com/ccsens/carbasics/service/DataStatisticsService.java b/src/main/java/com/ccsens/carbasics/service/DataStatisticsService.java index 85eb18d..3282460 100644 --- a/src/main/java/com/ccsens/carbasics/service/DataStatisticsService.java +++ b/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 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 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 xgzlData(StatisticsDto.QueryStandards param, Long userId) { + //查询基准线 + List xgzlDatumLineList = dataDatumLineDao.queryForXgzl((byte)2); + List 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; + } } diff --git a/src/main/java/com/ccsens/carbasics/service/IDataStatisticsService.java b/src/main/java/com/ccsens/carbasics/service/IDataStatisticsService.java index f1b55c5..81d3f71 100644 --- a/src/main/java/com/ccsens/carbasics/service/IDataStatisticsService.java +++ b/src/main/java/com/ccsens/carbasics/service/IDataStatisticsService.java @@ -78,4 +78,29 @@ public interface IDataStatisticsService { * @return sich具体统计 */ List 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 xgzlData(StatisticsDto.QueryStandards param, Long userId); + + } diff --git a/src/main/resources/mapper_dao/DataStatisticsDao.xml b/src/main/resources/mapper_dao/DataStatisticsDao.xml index b93e295..022f07c 100644 --- a/src/main/resources/mapper_dao/DataStatisticsDao.xml +++ b/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 + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper_dao/FirstAidDao.xml b/src/main/resources/mapper_dao/FirstAidDao.xml index d34c1f7..53ef94f 100644 --- a/src/main/resources/mapper_dao/FirstAidDao.xml +++ b/src/main/resources/mapper_dao/FirstAidDao.xml @@ -154,7 +154,7 @@ AND idcard LIKE concat('%',#{param.idcard},'%') - data_status = #{param.dataStatus} + AND data_status = #{param.dataStatus} AND rec_status = 0 AND hospital_id in diff --git a/src/main/resources/mapper_dao/QuestionnaireDataDatumLineDao.xml b/src/main/resources/mapper_dao/QuestionnaireDataDatumLineDao.xml index 208de5e..4264229 100644 --- a/src/main/resources/mapper_dao/QuestionnaireDataDatumLineDao.xml +++ b/src/main/resources/mapper_dao/QuestionnaireDataDatumLineDao.xml @@ -28,4 +28,15 @@ AND type = 0 + + \ No newline at end of file