Compare commits
3 Commits
3c785b919a
...
0f868e3da0
Author | SHA1 | Date |
---|---|---|
|
0f868e3da0 | 3 years ago |
|
b754986fbb | 3 years ago |
|
aa0feb328e | 3 years ago |
24 changed files with 1295 additions and 16 deletions
@ -0,0 +1,43 @@ |
|||
package com.ccsens.carbasics.api.manage; |
|||
|
|||
import com.ccsens.carbasics.bean.dto.QuestionnaireDto; |
|||
import com.ccsens.carbasics.service.IManageQuestionnaireService; |
|||
import com.ccsens.cloudutil.annotation.MustLogin; |
|||
import com.ccsens.util.JsonResponse; |
|||
import com.ccsens.util.bean.dto.QueryDto; |
|||
import com.github.pagehelper.PageInfo; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
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; |
|||
import java.util.Map; |
|||
|
|||
@Api(tags = "问查调卷相关接口" , description = "") |
|||
@RestController |
|||
@RequestMapping("/manage/questionnaire") |
|||
@Slf4j |
|||
public class ManageQuestionnaireController { |
|||
|
|||
@Resource |
|||
private IManageQuestionnaireService manageQuestionnaireService; |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "后台查看问卷填写记录", notes = "") |
|||
@RequestMapping(value = "/list", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<PageInfo<Map<String, String>>> queryQuestionnaireDetail(@ApiParam @Validated @RequestBody QueryDto<QuestionnaireDto.BackQueryQuestionnaire> params) throws Exception{ |
|||
log.info("后台查看问卷填写记录{}", params); |
|||
// 未添加时间条件
|
|||
PageInfo<Map<String, String>> o = manageQuestionnaireService.queryQuestionnaireDetail(params.getParam(), params.getUserId()); |
|||
|
|||
return JsonResponse.newInstance().ok(o); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,100 @@ |
|||
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.vo.QuestionnaireVo; |
|||
import com.ccsens.carbasics.bean.vo.StatisticalVo; |
|||
import com.ccsens.carbasics.service.IManageStatisticalService; |
|||
import com.ccsens.carbasics.service.IStatisticalService; |
|||
import com.ccsens.cloudutil.annotation.MustLogin; |
|||
import com.ccsens.util.JsonResponse; |
|||
import com.ccsens.util.bean.dto.QueryDto; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
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; |
|||
|
|||
/** |
|||
* @description: 统计查询 |
|||
* @author: whj |
|||
* @time: 2021/7/28 8:54 |
|||
*/ |
|||
@Api(tags = "后台统计查询") |
|||
@RestController |
|||
@RequestMapping("/manage/statistical") |
|||
@Slf4j |
|||
public class ManageStatisticalController { |
|||
|
|||
@Resource |
|||
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 |
|||
@ApiOperation(value = "按地区-AIS就诊患者总数", notes = "") |
|||
@RequestMapping(value = "/aisArea", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<StatisticalVo.ComparisonAis> comparisonAisByArea(@ApiParam @Validated @RequestBody QueryDto<StatisticalDto.Comparison> params) { |
|||
log.info("按地区-对比AIS患者数据:{}", params); |
|||
StatisticalVo.ComparisonAis comparisonAis = manageStatisticalService.comparisonAisByArea(params.getParam(), params.getUserId()); |
|||
log.info("按地区-对比AIS患者数据结果:{}", comparisonAis); |
|||
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); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "按地区-静脉溶栓率", notes = "") |
|||
@RequestMapping(value = "/thrombolysisByArea", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<StatisticalVo.ComparisonThrombolysis> thrombolysisByArea(@ApiParam @Validated @RequestBody QueryDto<StatisticalDto.ComparisonThrombolysis> params) { |
|||
log.info("按地区-静脉溶栓率:{}", params); |
|||
StatisticalVo.ComparisonThrombolysis comparisonThrombolysis = manageStatisticalService.thrombolysisByArea(params.getParam(), params.getUserId()); |
|||
log.info("按地区-静脉溶栓率结果:{}", comparisonThrombolysis); |
|||
return JsonResponse.newInstance().ok(comparisonThrombolysis); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,38 @@ |
|||
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); |
|||
|
|||
List<StatisticalVo.ComparisonThrombolysis.Thrombolysis> thrombolysisByArea(@Param("oneId")Long oneId, @Param("twoId")Long twoId, @Param("desc")byte desc); |
|||
} |
@ -0,0 +1,17 @@ |
|||
package com.ccsens.carbasics.service; |
|||
|
|||
import com.ccsens.carbasics.bean.dto.QuestionnaireDto; |
|||
import com.github.pagehelper.PageInfo; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
public interface IManageQuestionnaireService { |
|||
|
|||
/** |
|||
* 后台查找问卷列表 |
|||
* @param param |
|||
* @param userId |
|||
*/ |
|||
PageInfo<Map<String, String>> queryQuestionnaireDetail(QuestionnaireDto.BackQueryQuestionnaire param, Long userId); |
|||
} |
@ -0,0 +1,50 @@ |
|||
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); |
|||
|
|||
StatisticalVo.ComparisonThrombolysis thrombolysisByArea(StatisticalDto.ComparisonThrombolysis param, Long userId); |
|||
} |
@ -0,0 +1,74 @@ |
|||
package com.ccsens.carbasics.service; |
|||
|
|||
import cn.hutool.core.util.StrUtil; |
|||
import com.ccsens.carbasics.bean.dto.QuestionnaireDto; |
|||
import com.ccsens.carbasics.bean.vo.CodeVo; |
|||
import com.ccsens.carbasics.bean.vo.QuestionnaireVo; |
|||
import com.ccsens.carbasics.persist.dao.AreaDao; |
|||
import com.ccsens.carbasics.persist.dao.CodeDictionariesDao; |
|||
import com.ccsens.carbasics.persist.dao.QuestionnaireRecordDao; |
|||
import com.ccsens.carbasics.util.Constant; |
|||
import com.ccsens.util.PoiUtil; |
|||
import com.github.pagehelper.PageHelper; |
|||
import com.github.pagehelper.PageInfo; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.apache.poi.ss.usermodel.Workbook; |
|||
import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
|||
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.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
@Slf4j |
|||
@Service |
|||
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
|||
public class ManageQuestionnaireService implements IManageQuestionnaireService { |
|||
|
|||
@Resource |
|||
private CodeDictionariesDao codeDictionariesDao; |
|||
@Resource |
|||
private QuestionnaireRecordDao questionnaireRecordDao; |
|||
@Resource |
|||
private AreaDao areaDao; |
|||
|
|||
@Override |
|||
public PageInfo<Map<String, String>> queryQuestionnaireDetail(QuestionnaireDto.BackQueryQuestionnaire param, Long userId) { |
|||
String areaCode = "CITY-COUNTY"; |
|||
|
|||
List<String> parentCodes = new ArrayList<>(); |
|||
parentCodes.add("QXXWJ"); |
|||
parentCodes.add("XGZL"); |
|||
List<CodeVo.Basic> codes = codeDictionariesDao.query(parentCodes); |
|||
log.info("code数量:{}", codes.size()); |
|||
|
|||
PageHelper.startPage(param.getPageNum(),param.getPageSize()); |
|||
List<Map<String, String>> records = questionnaireRecordDao.backQueryRecordList(param,codes); |
|||
log.info("记录结束"); |
|||
records.forEach(record ->{ |
|||
String s = record.get(areaCode); |
|||
if (StrUtil.isNotBlank(s)) { |
|||
String[] split = s.split(Constant.STRING_REGEX); |
|||
List<Long> areaIds = new ArrayList<>(); |
|||
for(String id: split) { |
|||
areaIds.add(Long.parseLong(id)); |
|||
} |
|||
List<QuestionnaireVo.AreaBasic> areaBasics = areaDao.queryByIdArr(areaIds); |
|||
StringBuilder area = new StringBuilder(); |
|||
for (QuestionnaireVo.AreaBasic areaBasic : areaBasics) { |
|||
area.append(areaBasic.getName()); |
|||
} |
|||
record.put(areaCode,area.toString()); |
|||
} |
|||
}); |
|||
|
|||
return new PageInfo<>(records); |
|||
} |
|||
} |
@ -0,0 +1,151 @@ |
|||
package com.ccsens.carbasics.service; |
|||
|
|||
import cn.hutool.core.bean.BeanUtil; |
|||
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.po.QuestionnaireDataDatumLine; |
|||
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 com.ccsens.carbasics.persist.dao.QuestionnaireDataDatumLineDao; |
|||
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; |
|||
@Resource |
|||
private QuestionnaireDataDatumLineDao dataDatumLineDao; |
|||
|
|||
@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; |
|||
} |
|||
|
|||
@Override |
|||
public StatisticalVo.ComparisonThrombolysis thrombolysisByArea(StatisticalDto.ComparisonThrombolysis param, Long userId) { |
|||
StatisticalVo.ComparisonThrombolysis comparisonThrombolysis = new StatisticalVo.ComparisonThrombolysis(); |
|||
|
|||
List<StatisticalVo.ComparisonThrombolysis.Thrombolysis> thrombolyses = manageStatisticalDao.thrombolysisByArea(param.getOneId(),param.getTwoId(),param.getDesc()); |
|||
//排序
|
|||
switch (param.getDesc()){ |
|||
case 0: |
|||
CollectionUtil.sort(thrombolyses, (o1, o2) -> o2.getOneNum().compareTo(o1.getOneNum())); |
|||
break; |
|||
case 1: |
|||
CollectionUtil.sort(thrombolyses, (o1, o2) -> o2.getTowNum().compareTo(o1.getTowNum())); |
|||
break; |
|||
case 2: |
|||
CollectionUtil.sort(thrombolyses, (o1, o2) -> o2.getOneSecondLevelNum().compareTo(o1.getOneSecondLevelNum())); |
|||
break; |
|||
case 3: |
|||
CollectionUtil.sort(thrombolyses, (o1, o2) -> o2.getTowSecondLevelNum().compareTo(o1.getTowSecondLevelNum())); |
|||
break; |
|||
case 4: |
|||
CollectionUtil.sort(thrombolyses, (o1, o2) -> o2.getOneThreeLevelNum().compareTo(o1.getOneThreeLevelNum())); |
|||
break; |
|||
case 5: |
|||
CollectionUtil.sort(thrombolyses, (o1, o2) -> o2.getTowThreeLevelNum().compareTo(o1.getTowThreeLevelNum())); |
|||
break; |
|||
default: |
|||
break; |
|||
} |
|||
comparisonThrombolysis.setThrombolysisList(thrombolyses); |
|||
//查找标准
|
|||
List<QuestionnaireDataDatumLine> dataDatumLineList = dataDatumLineDao.queryAll((byte) 0); |
|||
if (CollectionUtil.isNotEmpty(dataDatumLineList)) { |
|||
for (QuestionnaireDataDatumLine dataDatumLine : dataDatumLineList) { |
|||
if ("基础目标".equals(dataDatumLine.getName())) { |
|||
comparisonThrombolysis.setBasicGoal(dataDatumLine.getDatumLine()); |
|||
} |
|||
if ("进阶目标".equals(dataDatumLine.getName())) { |
|||
comparisonThrombolysis.setAdvancedGoal(dataDatumLine.getDatumLine()); |
|||
} |
|||
} |
|||
} |
|||
return comparisonThrombolysis; |
|||
} |
|||
} |
@ -1,4 +1,4 @@ |
|||
spring: |
|||
profiles: |
|||
active: prod |
|||
include: common, util-prod |
|||
active: test |
|||
include: common, util-test |
|||
|
@ -0,0 +1,314 @@ |
|||
<?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> |
|||
<select id="thrombolysisByArea" |
|||
resultType="com.ccsens.carbasics.bean.vo.StatisticalVo$ComparisonThrombolysis$Thrombolysis"> |
|||
SELECT |
|||
t1.area_name as name, |
|||
SUM(t1.aisNum) as totalNum, |
|||
SUM(t1.num) as oneNum, |
|||
SUM(t2.num) as towNum, |
|||
SUM(CASE t1.hospitalLevel WHEN '二级' THEN t1.num ELSE 0 END) as 'oneSecondLevelNum', |
|||
SUM(CASE t1.hospitalLevel WHEN '二级' THEN t2.num ELSE 0 END) as 'towSecondLevelNum', |
|||
SUM(CASE t1.hospitalLevel WHEN '三级' THEN t1.num ELSE 0 END) as 'oneThreeLevelNum', |
|||
SUM(CASE t1.hospitalLevel WHEN '三级' THEN t2.num ELSE 0 END) as 'towThreeLevelNum' |
|||
FROM |
|||
( |
|||
SELECT |
|||
a.answer as num, |
|||
ais.answer as aisNum, |
|||
n.answer as hospitalName, |
|||
l.answer as hospitalLevel, |
|||
c.area_name |
|||
FROM |
|||
(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'actual-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(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 n.rec_status = 0 |
|||
and d.questionnaire_id = #{oneId} |
|||
and d.submit_status = 1 |
|||
)t1, |
|||
( |
|||
SELECT |
|||
a.answer as num, |
|||
ais.answer as aisNum, |
|||
n.answer as hospitalName, |
|||
l.answer as hospitalLevel, |
|||
c.area_name |
|||
FROM |
|||
(SELECT * FROM t_qcp_questionnaire_record WHERE `question_code` = 'actual-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(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 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 |
|||
|
|||
</select> |
|||
</mapper> |
Loading…
Reference in new issue