Browse Source

修改bug,DNT统计接口,sich统计接口

master
ma 4 years ago
parent
commit
43b4cb03d8
  1. 2
      src/main/java/com/ccsens/carbasics/api/AccountManageController.java
  2. 61
      src/main/java/com/ccsens/carbasics/api/DataStatisticsController.java
  3. 80
      src/main/java/com/ccsens/carbasics/bean/vo/StatisticsVo.java
  4. 58
      src/main/java/com/ccsens/carbasics/persist/dao/DataStatisticsDao.java
  5. 13
      src/main/java/com/ccsens/carbasics/persist/dao/OrganizationPositionDao.java
  6. 2
      src/main/java/com/ccsens/carbasics/service/AccountManageService.java
  7. 89
      src/main/java/com/ccsens/carbasics/service/DataStatisticsService.java
  8. 46
      src/main/java/com/ccsens/carbasics/service/IDataStatisticsService.java
  9. 51
      src/main/java/com/ccsens/carbasics/service/QuestionnaireService.java
  10. 22
      src/main/java/com/ccsens/carbasics/util/Constant.java
  11. 4
      src/main/resources/application.yml
  12. 1
      src/main/resources/mapper_dao/AccountManageDao.xml
  13. 781
      src/main/resources/mapper_dao/DataStatisticsDao.xml
  14. 3
      src/main/resources/mapper_dao/FirstAidDao.xml
  15. 6
      src/main/resources/mapper_dao/OrganizationMemberDao.xml
  16. 10
      src/main/resources/mapper_dao/OrganizationPositionDao.xml

2
src/main/java/com/ccsens/carbasics/api/AccountManageController.java

@ -74,7 +74,7 @@ public class AccountManageController {
return JsonResponse.newInstance().ok(departmentList); return JsonResponse.newInstance().ok(departmentList);
} }
@MustLogin
@ApiOperation(value = "查询医院下的申请", notes = "") @ApiOperation(value = "查询医院下的申请", notes = "")
@RequestMapping(value = "/queryApplyOfHospital", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "/queryApplyOfHospital", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<AccountVo.ApplyOfHospital>> queryApplyOfHospital(@ApiParam @Validated @RequestBody QueryDto<AccountDto.QueryApplyOfHospital> params) throws Exception{ public JsonResponse<List<AccountVo.ApplyOfHospital>> queryApplyOfHospital(@ApiParam @Validated @RequestBody QueryDto<AccountDto.QueryApplyOfHospital> params) throws Exception{

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

@ -62,4 +62,65 @@ public class DataStatisticsController {
log.info("市或地区静脉溶率统计结束:{}",result); log.info("市或地区静脉溶率统计结束:{}",result);
return JsonResponse.newInstance().ok(result); return JsonResponse.newInstance().ok(result);
} }
@MustLogin
@ApiOperation(value = "DNT总统计数据", notes = "")
@RequestMapping(value = "/dntTotalStatistics", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<StatisticsVo.DntTotalStatistics> dntTotalStatistics(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{
log.info("DNT总统计数据开始{}",params);
StatisticsVo.DntTotalStatistics result = dataStatisticsService.dntTotalStatistics(params.getUserId());
log.info("DNT总统计数据结束:{}",result);
return JsonResponse.newInstance().ok(result);
}
@MustLogin
@ApiOperation(value = "DNT概要统计", notes = "")
@RequestMapping(value = "/dntSynopsis", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<StatisticsVo.DntSynopsis> dntSynopsis(@ApiParam @Validated @RequestBody QueryDto<StatisticsDto.QueryStandards> params) throws Exception{
log.info("DNT概要统计开始{}",params);
StatisticsVo.DntSynopsis result = dataStatisticsService.dntSynopsis(params.getParam(),params.getUserId());
log.info("DNT概要统计结束:{}",result);
return JsonResponse.newInstance().ok(result);
}
@MustLogin
@ApiOperation(value = "DNT具体统计", notes = "")
@RequestMapping(value = "/dntData", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<StatisticsVo.DntData> dntData(@ApiParam @Validated @RequestBody QueryDto<StatisticsDto.QueryStandards> params) throws Exception{
log.info("DNT具体统计开始{}",params);
List<StatisticsVo.DntData> result = dataStatisticsService.dntData(params.getParam(),params.getUserId());
log.info("DNT具体统计结束:{}",result);
return JsonResponse.newInstance().ok(result);
}
@MustLogin
@ApiOperation(value = "sich发生率总统计", notes = "")
@RequestMapping(value = "/sichTotal", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<StatisticsVo.SichTotal> sichTotal(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{
log.info("sich发生率总统计开始{}",params);
StatisticsVo.SichTotal result = dataStatisticsService.sichTotal(params.getUserId());
log.info("sich发生率总统计结束:{}",result);
return JsonResponse.newInstance().ok(result);
}
@MustLogin
@ApiOperation(value = "sich发生率概要统计", notes = "")
@RequestMapping(value = "/sichSynopsis", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<StatisticsVo.SichSynopsis> sichSynopsis(@ApiParam @Validated @RequestBody QueryDto<StatisticsDto.QueryStandards> params) throws Exception{
log.info("sich发生率概要统计开始{}",params);
StatisticsVo.SichSynopsis result = dataStatisticsService.sichSynopsis(params.getParam(),params.getUserId());
log.info("sich发生率概要统计结束:{}",result);
return JsonResponse.newInstance().ok(result);
}
@MustLogin
@ApiOperation(value = "sich发生率具体统计", notes = "")
@RequestMapping(value = "/sichData", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<StatisticsVo.SichData>> sichData(@ApiParam @Validated @RequestBody QueryDto<StatisticsDto.QueryStandards> params) throws Exception{
log.info("sich发生率具体统计开始{}",params);
List<StatisticsVo.SichData> result = dataStatisticsService.sichData(params.getParam(),params.getUserId());
log.info("sich发生率具体统计结束:{}",result);
return JsonResponse.newInstance().ok(result);
}
} }

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

@ -88,4 +88,84 @@ public class StatisticsVo {
@ApiModelProperty("各市总溶栓率") @ApiModelProperty("各市总溶栓率")
private BigDecimal cityAllJmrsl; private BigDecimal cityAllJmrsl;
} }
@Data
@ApiModel("DNT总统记-返参")
public static class DntTotalStatistics {
@ApiModelProperty("DNT≤60min的比例")
private String dntLess60;
@ApiModelProperty("DNT≤45min的比例")
private String dntLess45;
}
@Data
@ApiModel("DNT概要统记-返参")
public static class DntSynopsis {
@ApiModelProperty("市名")
private String cityName;
@ApiModelProperty("等级")
private String level;
@ApiModelProperty("DNT≤60min的比例")
private String dntLess60;
@ApiModelProperty("DNT≤45min的比例")
private String dntLess45;
}
@Data
@ApiModel("DNT具体统记-返参")
public static class DntData {
@ApiModelProperty("市id")
private Long areaId;
@ApiModelProperty("地区或者医院名称")
private String name;
@ApiModelProperty("各市DNT≤60min的比例")
private BigDecimal dntLess60All;
@ApiModelProperty("各市DNT≤45min的比例")
private BigDecimal dntLess45All;
@ApiModelProperty("三级医院/二级医院DNT≤60min的比例")
private BigDecimal dntLess60;
@ApiModelProperty("三级医院/二级医院DNT≤45min的比例")
private BigDecimal dntLess45;
@ApiModelProperty("医院:DNT≦45min例数")
private String dntLess45H;
@ApiModelProperty("医院:45min<DNT≦60min例数+DNT")
private String dntLess60H;
@ApiModelProperty("医院:DNT>60min例数")
private String dnt61H;
}
@Data
@ApiModel("sich总统记-返参")
public static class SichTotal {
@ApiModelProperty("地区或者医院名称")
private String sichTotal;
}
@Data
@ApiModel("sich概要统记-返参")
public static class SichSynopsis {
@ApiModelProperty("市名")
private String cityName;
@ApiModelProperty("等级")
private String level;
@ApiModelProperty("sich发生率")
private String sichFsl;
@ApiModelProperty("sich发生率超过%5")
private int moreThan5;
}
@Data
@ApiModel("sich具体统记-返参")
public static class SichData {
@ApiModelProperty("市id")
private String areaId;
@ApiModelProperty("市名")
private String name;
@ApiModelProperty("sich发生率")
private BigDecimal sichFsl;
@ApiModelProperty("sich发生率(不分二三级医院)")
private BigDecimal sichFslAll;
@ApiModelProperty("各医院溶栓后sICH例数")
private BigDecimal sICHNnt;
}
} }

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

@ -1,5 +1,6 @@
package com.ccsens.carbasics.persist.dao; package com.ccsens.carbasics.persist.dao;
import com.ccsens.carbasics.bean.dto.StatisticsDto;
import com.ccsens.carbasics.bean.vo.StatisticsVo; import com.ccsens.carbasics.bean.vo.StatisticsVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -29,4 +30,61 @@ public interface DataStatisticsDao {
* @return 三级医院溶栓率 * @return 三级医院溶栓率
*/ */
List<StatisticsVo.AreaResult> queryJmrslForCity(@Param("type") Byte type); List<StatisticsVo.AreaResult> queryJmrslForCity(@Param("type") Byte type);
/**
* DNT总统记(DNT60min的比例/DNT45min的比例)
* @return DNT总统记(DNT60min的比例/DNT45min的比例)
*/
StatisticsVo.DntTotalStatistics dntTotalStatistics();
/**
* 查询DNT概要统计
*
* @return DNT概要统计
*/
StatisticsVo.DntSynopsis dntSynopsis(@Param("queryType") Byte queryType,@Param("queryLevel") Byte queryLevel,@Param("areaId") Long areaId);
/**
* 查询具体DNT统计(城市)
* @param param 参数
* @return 具体DNT统计
*/
List<StatisticsVo.DntData> dntDataForCity(@Param("param") StatisticsDto.QueryStandards param);
/**
* 查询具体DNT统计(具体医院)
* @param param 参数
* @return 具体DNT统计
*/
List<StatisticsVo.DntData> dntDataForHospital(@Param("param") StatisticsDto.QueryStandards param);
/**
* 查询sich总统计率
* @return sich总统计率
*/
StatisticsVo.SichTotal sichTotal();
/**
* 查询sich概要统计
* @param queryType 查询类型
* @param queryLevel 查询等级
* @param areaId 市id
* @return
*/
StatisticsVo.SichSynopsis sichSynopsis(@Param("queryType") Byte queryType,@Param("queryLevel") Byte queryLevel,@Param("areaId") Long areaId);
/**
* 查询sich具体统计率
* @param param 入参
* @return sich具体统计率(城市)
*/
List<StatisticsVo.SichData> sichDataForCity(@Param("param")StatisticsDto.QueryStandards param);
/**
* 查询sich具体统计率
* @param param 入参
* @return sich具体统计率(具体医院)
*/
List<StatisticsVo.SichData> sichDataForHospital(@Param("param") StatisticsDto.QueryStandards param);
} }

13
src/main/java/com/ccsens/carbasics/persist/dao/OrganizationPositionDao.java

@ -15,9 +15,16 @@ public interface OrganizationPositionDao extends OrganizationPositionMapper {
List<QuestionnaireVo.PositionInfo> queryPosition(); List<QuestionnaireVo.PositionInfo> queryPosition();
/** /**
* 根据名称查询职位id * 根据code查询职位id
* @param name 职位名称 * @param code 职位职位code
* @return 职位id * @return 职位id
*/ */
Long queryByName(@Param("name") String name); Long queryByCode(@Param("code") String code);
/**
* 根据名称查询职务
* @param name 职务名称
* @return 职务id
*/
Long queryByName(@Param("name")String name);
} }

2
src/main/java/com/ccsens/carbasics/service/AccountManageService.java

@ -81,7 +81,7 @@ public class AccountManageService implements IAccountManageService {
//创建项目 //创建项目
AccountManage accountManageInfo = accountManageDao.selectByPrimaryKey(param.getAccountManageId()); AccountManage accountManageInfo = accountManageDao.selectByPrimaryKey(param.getAccountManageId());
//查询职位id //查询职位id
Long positionId = positionDao.queryByName(accountManageInfo.getPositionName()); Long positionId = positionDao.queryByCode(accountManageInfo.getPositionCode());
questionnaireService.createHospitalAndProject(accountManageInfo.getSubmitterPhone(),accountManageInfo.getSubmitterUserId(),"", questionnaireService.createHospitalAndProject(accountManageInfo.getSubmitterPhone(),accountManageInfo.getSubmitterUserId(),"",
accountManageInfo.getHospitalName(),accountManageInfo.getDepartmentName(),accountManageInfo.getSubmitter(),positionId,accountManageInfo.getDepartmentCode()); accountManageInfo.getHospitalName(),accountManageInfo.getDepartmentName(),accountManageInfo.getSubmitter(),positionId,accountManageInfo.getDepartmentCode());
} }

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

@ -101,4 +101,93 @@ public class DataStatisticsService implements IDataStatisticsService {
List<StatisticsVo.AreaResult> results = areaResults.stream().sorted(Comparator.comparing(StatisticsVo.AreaResult::getValue).reversed()).collect(Collectors.toList()); List<StatisticsVo.AreaResult> results = areaResults.stream().sorted(Comparator.comparing(StatisticsVo.AreaResult::getValue).reversed()).collect(Collectors.toList());
return results; return results;
} }
@Override
public StatisticsVo.DntTotalStatistics dntTotalStatistics(Long userId) {
return dataStatisticsDao.dntTotalStatistics();
}
@Override
public StatisticsVo.DntSynopsis dntSynopsis(StatisticsDto.QueryStandards param, Long userId) {
log.info("参数:{},{},{}",param.getQueryType(),param.getQueryLevel(),param.getAreaId());
return dataStatisticsDao.dntSynopsis(param.getQueryType(),param.getQueryLevel(),param.getAreaId());
}
@Override
public List<StatisticsVo.DntData> dntData(StatisticsDto.QueryStandards param, Long userId) {
List<StatisticsVo.DntData> dntDataListForCity;
if (0 == param.getQueryType()) {
dntDataListForCity = dataStatisticsDao.dntDataForCity(param);
}else {
dntDataListForCity = dataStatisticsDao.dntDataForHospital(param);
}
return dntDataListForCity;
}
@Override
public StatisticsVo.SichTotal sichTotal(Long userId) {
return dataStatisticsDao.sichTotal();
}
@Override
public StatisticsVo.SichSynopsis sichSynopsis(StatisticsDto.QueryStandards param, Long userId) {
List<QuestionnaireDataDatumLine> dataDatumLineList = dataDatumLineDao.queryAll((byte) 1);
QuestionnaireDataDatumLine basics = new QuestionnaireDataDatumLine();
if (CollectionUtil.isNotEmpty(dataDatumLineList)) {
for (QuestionnaireDataDatumLine dataDatumLine : dataDatumLineList) {
if ("目标".equals(dataDatumLine.getName())) {
BeanUtil.copyProperties(dataDatumLine,basics);
}
}
}
List<StatisticsVo.SichData> sichDataList = new ArrayList<>();
if (0 == param.getQueryType()) {
sichDataList = dataStatisticsDao.sichDataForCity(param);
}
if (1 == param.getQueryType()) {
sichDataList = dataStatisticsDao.sichDataForHospital(param);
}
int moreThan5 = 0;
for (StatisticsVo.SichData sichData : sichDataList) {
if (basics.getDatumLine().compareTo(sichData.getSichFsl()) == -1){
moreThan5++;
}
}
StatisticsVo.SichSynopsis sichSynopsis = dataStatisticsDao.sichSynopsis(param.getQueryType(), param.getQueryLevel(), param.getAreaId());
sichSynopsis.setMoreThan5(moreThan5);
return sichSynopsis;
}
@Override
public List<StatisticsVo.SichData> sichData(StatisticsDto.QueryStandards param, Long userId) {
List<StatisticsVo.SichData> result = new ArrayList<>();
//查询基准线
List<StatisticsVo.SichData> sichDatumLineList = new ArrayList<>();
List<QuestionnaireDataDatumLine> dataDatumLineList = dataDatumLineDao.queryAll((byte) 1);
if (CollectionUtil.isNotEmpty(dataDatumLineList)) {
for (QuestionnaireDataDatumLine dataDatumLine : dataDatumLineList) {
StatisticsVo.SichData sichData = new StatisticsVo.SichData();
sichData.setName(dataDatumLine.getName());
sichData.setSichFsl(dataDatumLine.getDatumLine());
sichData.setSichFslAll(dataDatumLine.getDatumLine());
sichDatumLineList.add(sichData);
}
}
if (0 == param.getQueryType()) {
List<StatisticsVo.SichData> sichDataList = dataStatisticsDao.sichDataForCity(param);
sichDataList.addAll(sichDatumLineList);
result = sichDataList.stream().sorted(Comparator.comparing(StatisticsVo.SichData::getSichFsl)).collect(Collectors.toList());
}else {
List<StatisticsVo.SichData> sichDataList = dataStatisticsDao.sichDataForHospital(param);
sichDataList.addAll(sichDatumLineList);
result = sichDataList.stream().sorted(Comparator.comparing(StatisticsVo.SichData::getSichFsl)).collect(Collectors.toList());
}
return result;
}
} }

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

@ -32,4 +32,50 @@ public interface IDataStatisticsService {
* @return 各市/医院的溶栓率 * @return 各市/医院的溶栓率
*/ */
List<StatisticsVo.AreaResult> queryData(StatisticsDto.QueryStandards param, Long userId); List<StatisticsVo.AreaResult> queryData(StatisticsDto.QueryStandards param, Long userId);
/**
* 查询DNT总统记
* @param userId 用户id
* @return DNT总统记
*/
StatisticsVo.DntTotalStatistics dntTotalStatistics(Long userId);
/**
* 查询DNT概要统计
* @param param 入参
* @param userId 用户id
* @return DNT概要统计
*/
StatisticsVo.DntSynopsis dntSynopsis(StatisticsDto.QueryStandards param, Long userId);
/**
* DNT具体统计
* @param param 参数
* @param userId 用户id
* @return DNT具体统计
*/
List<StatisticsVo.DntData> dntData(StatisticsDto.QueryStandards param, Long userId);
/**
* sich 总统计
* @param userId 用户id
* @return sich 总统记
*/
StatisticsVo.SichTotal sichTotal(Long userId);
/**
* sich概要统计
* @param param 入参
* @param userId 用户id
* @return sich概要统计
*/
StatisticsVo.SichSynopsis sichSynopsis(StatisticsDto.QueryStandards param, Long userId);
/**
* sich具体统计
* @param param 参数
* @param userId 用户id
* @return sich具体统计
*/
List<StatisticsVo.SichData> sichData(StatisticsDto.QueryStandards param, Long userId);
} }

51
src/main/java/com/ccsens/carbasics/service/QuestionnaireService.java

@ -404,7 +404,7 @@ public class QuestionnaireService implements IQuestionnaireService{
organizationMemberPositionDao.insertSelective(position); organizationMemberPositionDao.insertSelective(position);
} }
//创建项目 //创建项目
return createProject(newOrganization.getId(), hospitalName, memberName, phone, userId); return createProject(newOrganization.getId(), hospitalName, memberName, phone, userId,positionId);
}else { }else {
OrganizationDepartment department = departmentDao.queryByOrganization(organization.getId(),departmentCode); OrganizationDepartment department = departmentDao.queryByOrganization(organization.getId(),departmentCode);
if (ObjectUtil.isNull(department)) { if (ObjectUtil.isNull(department)) {
@ -442,7 +442,7 @@ public class QuestionnaireService implements IQuestionnaireService{
organizationMemberPositionDao.insertSelective(position); organizationMemberPositionDao.insertSelective(position);
} }
//创建项目 //创建项目
return createProject(organization.getId(),hospitalName,memberName,phone,userId); return createProject(organization.getId(),hospitalName,memberName,phone,userId,positionId);
}else { }else {
//创建用户 //创建用户
//查询用户是否存在 //查询用户是否存在
@ -471,13 +471,13 @@ public class QuestionnaireService implements IQuestionnaireService{
organizationMemberPositionDao.insertSelective(position); organizationMemberPositionDao.insertSelective(position);
} }
//创建项目 //创建项目
return createProject(organization.getId(), hospitalName, memberName, phone, userId); return createProject(organization.getId(), hospitalName, memberName, phone, userId,positionId);
} }
} }
} }
public Long createProject(Long organizationId,String hospitalName,String memberName,String phone,Long userId) { public Long createProject(Long organizationId,String hospitalName,String memberName,String phone,Long userId,Long positionId) {
OrganizationProject project = organizationProjectDao.queryByOrganizationId(organizationId); OrganizationProject project = organizationProjectDao.queryByOrganizationId(organizationId);
if (ObjectUtil.isNull(project)) { if (ObjectUtil.isNull(project)) {
//创建项目 //创建项目
@ -489,7 +489,9 @@ public class QuestionnaireService implements IQuestionnaireService{
//添加角色 //添加角色
CMemberDto.SaveMember saveMember = new CMemberDto.SaveMember(); CMemberDto.SaveMember saveMember = new CMemberDto.SaveMember();
saveMember.setProjectId(copyProjectInfo.getId()); saveMember.setProjectId(copyProjectInfo.getId());
saveMember.setRoleName(Constant.RoleName.SHEN_NEI); //查询角色code
saveMember.setRoleName(queryRole(positionId));
// saveMember.setRoleName(Constant.RoleName.SHEN_NEI);
saveMember.setName(memberName); saveMember.setName(memberName);
saveMember.setPhone(phone); saveMember.setPhone(phone);
saveMember.setUserId(userId); saveMember.setUserId(userId);
@ -518,7 +520,9 @@ public class QuestionnaireService implements IQuestionnaireService{
}else { }else {
CMemberDto.SaveMember saveMember = new CMemberDto.SaveMember(); CMemberDto.SaveMember saveMember = new CMemberDto.SaveMember();
saveMember.setProjectId(project.getProjectId()); saveMember.setProjectId(project.getProjectId());
saveMember.setRoleName(Constant.RoleName.SHEN_NEI); //查询角色code
saveMember.setRoleName(queryRole(positionId));
// saveMember.setRoleName(Constant.RoleName.SHEN_NEI);
saveMember.setName(memberName); saveMember.setName(memberName);
saveMember.setPhone(phone); saveMember.setPhone(phone);
saveMember.setUserId(userId); saveMember.setUserId(userId);
@ -555,4 +559,39 @@ public class QuestionnaireService implements IQuestionnaireService{
} }
return isShow; return isShow;
} }
public String queryRole(Long positionId){
OrganizationPosition position = positionDao.selectByPrimaryKey(positionId);
if (position.getCode().equals(Constant.PositionIdAndRole.CuZhongZhongXinBanGongShiZhuRen.positionCode)){
return Constant.PositionIdAndRole.CuZhongZhongXinBanGongShiZhuRen.roleName;
}
if (position.getCode().equals(Constant.PositionIdAndRole.CuZhongZhongXinZhuRen.positionCode)){
return Constant.PositionIdAndRole.CuZhongZhongXinZhuRen.roleName;
}
if (position.getCode().equals(Constant.PositionIdAndRole.HuSHi.positionCode)){
return Constant.PositionIdAndRole.HuSHi.roleName;
}
if (position.getCode().equals(Constant.PositionIdAndRole.YiSheng.positionCode)){
return Constant.PositionIdAndRole.YiSheng.roleName;
}
if (position.getCode().equals(Constant.PositionIdAndRole.ZhiKong.positionCode)){
return Constant.PositionIdAndRole.ZhiKong.roleName;
}
if (position.getCode().equals(Constant.PositionIdAndRole.MiShu.positionCode)){
return Constant.PositionIdAndRole.MiShu.roleName;
}
if (position.getCode().equals(Constant.PositionIdAndRole.KeZhuRen.positionCode)){
return Constant.PositionIdAndRole.KeZhuRen.roleName;
}
if (position.getCode().equals(Constant.PositionIdAndRole.FuZhuRen.positionCode)){
return Constant.PositionIdAndRole.FuZhuRen.roleName;
}
if (position.getCode().equals(Constant.PositionIdAndRole.WeiJianWei.positionCode)){
return Constant.PositionIdAndRole.WeiJianWei.roleName;
}
if (position.getCode().equals(Constant.PositionIdAndRole.HuShiZhang.positionCode)){
return Constant.PositionIdAndRole.HuShiZhang.roleName;
}
return "";
}
} }

22
src/main/java/com/ccsens/carbasics/util/Constant.java

@ -363,6 +363,28 @@ public class Constant {
/**神外医生*/ /**神外医生*/
public static final String SHEN_WAI = "神外医生"; public static final String SHEN_WAI = "神外医生";
} }
public enum PositionIdAndRole {
/**神内医生*/
HuSHi("HuShi","分诊护士"),
YiSheng("YiSheng","神内医生"),
ZhiKong("ZhiKong","质控医生"),
MiShu("MiShu","秘书"),
KeZhuRen("KeZhuRen","科主任"),
FuZhuRen("FuZhuRen","副主任"),
WeiJianWei("WeiJianWei","卫健委"),
CuZhongZhongXinZhuRen("CuZhongZhongXinZhuRen","卒中中心主任"),
CuZhongZhongXinBanGongShiZhuRen("CuZhongZhongXinBanGongShiZhuRen","卒中中心办公室主任"),
HuShiZhang("HuShiZhang","急诊护士长"),
;
public String positionCode;
public String roleName;
PositionIdAndRole(String positionCode, String roleName) {
this.positionCode = positionCode;
this.roleName = roleName;
}
}
public enum DataStatus { public enum DataStatus {
/** /**
* 病例状态 * 病例状态

4
src/main/resources/application.yml

@ -1,4 +1,4 @@
spring: spring:
profiles: profiles:
active: dev active: test
include: common, util-dev include: common, util-test

1
src/main/resources/mapper_dao/AccountManageDao.xml

@ -30,6 +30,7 @@
<if test="userId != null"> <if test="userId != null">
AND submitter_user_id = #{userId} AND submitter_user_id = #{userId}
</if> </if>
ORDER BY created_at DESC
</select> </select>
</mapper> </mapper>

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

@ -221,4 +221,785 @@
AND SUBSTRING_INDEX(gediRszs.area,',',1) = a.id AND SUBSTRING_INDEX(gediRszs.area,',',1) = a.id
</select> </select>
<select id="dntTotalStatistics" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$DntTotalStatistics">
SELECT
round((answer45.value40+answer60.value60)*100/(answer45.value40+answer60.value60+answer61.value61),2) AS dntLess60,
round(answer45.value40*100/(answer45.value40+answer60.value60+answer61.value61),2) AS dntLess45
FROM
(
SELECT
SUM( actual.answer ) AS `value40`
FROM
t_qcp_questionnaire_record AS actual
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = '45-Nnt'
) AS answer45,
(
SELECT
SUM( actual.answer ) AS `value60`
FROM
t_qcp_questionnaire_record AS actual
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = '60-Nnt'
) AS answer60,
(
SELECT
SUM( actual.answer ) AS `value61`
FROM
t_qcp_questionnaire_record AS actual
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = '61-Nnt'
) AS answer61
</select>
<select id="dntSynopsis" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$DntSynopsis">
SELECT
<if test="areaId != null">
a.area_name AS cityName,
</if>
answer45.level AS `level`,
round((answer45.value40+answer60.value60)*100/(answer45.value40+answer60.value60+answer61.value61),2) AS dntLess60,
round(answer45.value40*100/(answer45.value40+answer60.value60+answer61.value61),2) AS dntLess45
FROM
(
SELECT
SUBSTRING_INDEX(area.answer,',',1) AS area,
LEFT(`level`.answer,1) AS level,
SUM( actual.answer ) AS `value40`
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 `level` ON `level`.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = '45-Nnt'
<if test="queryLevel == 0">
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '三级'
</if>
<if test="queryLevel == 1">
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '二级'
</if>
<if test="areaId != null">
AND `area`.rec_status = 0
AND `area`.question_code = 'CITY-COUNTY'
AND SUBSTRING_INDEX(area.answer,',',1) = #{areaId}
</if>
) AS answer45,
(
SELECT
SUM( actual.answer ) AS `value60`
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 `level` ON `level`.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = '60-Nnt'
<if test="queryLevel == 0">
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '三级'
</if>
<if test="queryLevel == 1">
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '二级'
</if>
<if test="areaId != null">
AND `area`.rec_status = 0
AND `area`.question_code = 'CITY-COUNTY'
AND SUBSTRING_INDEX(area.answer,',',1) = #{areaId}
</if>
) AS answer60,
(
SELECT
SUM( actual.answer ) AS `value61`
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 `level` ON `level`.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = '61-Nnt'
<if test="queryLevel == 0">
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '三级'
</if>
<if test="queryLevel == 1">
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '二级'
</if>
<if test="areaId != null">
AND `area`.rec_status = 0
AND `area`.question_code = 'CITY-COUNTY'
AND SUBSTRING_INDEX(area.answer,',',1) = #{areaId}
</if>
) AS answer61
<if test="areaId != null">
,
t_area AS a WHERE a.id = answer45.area AND a.rec_status = 0
</if>
</select>
<select id="dntDataForCity" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$DntData">
SELECT
a.id AS areaId,
a.area_name AS name,
answer45.level,
round((answer45.value40+answer60.value60)*100/(answer45.value40+answer60.value60+answer61.value61),2) AS dntLess60,
round(answer45.value40*100/(answer45.value40+answer60.value60+answer61.value61),2) AS dntLess45,
round((answer45all.value40+answer60all.value60)*100/(answer45all.value40+answer60all.value60+answer61all.value61),2) AS dntLess60All,
round(answer45all.value40*100/(answer45all.value40+answer60all.value60+answer61all.value61),2) AS dntLess45All
FROM
(
SELECT
SUBSTRING_INDEX(area.answer,',',1) AS area,
LEFT(`level`.answer,1) AS level,
SUM(actual.answer) AS `value40`
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 `level` ON `level`.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = '45-Nnt'
<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 answer45,
(
SELECT
SUBSTRING_INDEX(area.answer,',',1) AS area,
LEFT(`level`.answer,1) AS level,
SUM(actual.answer) AS `value60`
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 `level` ON `level`.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = '60-Nnt'
<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 answer60,
(
SELECT
SUBSTRING_INDEX(area.answer,',',1) AS area,
LEFT(`level`.answer,1) AS level,
SUM(actual.answer) AS `value61`
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 `level` ON `level`.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = '61-Nnt'
<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 answer61,
-- 各市DNT统计 不包含二三级
(
SELECT
SUBSTRING_INDEX(area.answer,',',1) AS area,
SUM(actual.answer) AS `value40`
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 area ON area.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = '45-Nnt'
-- 地区
AND `area`.rec_status = 0
AND `area`.question_code = 'CITY-COUNTY'
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
) AS answer45all,
(
SELECT
SUBSTRING_INDEX(area.answer,',',1) AS area,
SUM(actual.answer) AS `value60`
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 area ON area.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = '60-Nnt'
-- 地区
AND `area`.rec_status = 0
AND `area`.question_code = 'CITY-COUNTY'
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
) AS answer60all,
(
SELECT
SUBSTRING_INDEX(area.answer,',',1) AS area,
SUM(actual.answer) AS `value61`
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 area ON area.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = '61-Nnt'
-- 地区
AND `area`.rec_status = 0
AND `area`.question_code = 'CITY-COUNTY'
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
) AS answer61all,
t_area AS a
WHERE a.id = answer45.area
AND answer45.area = answer60.area
AND answer60.area = answer61.area
AND answer45.area = answer45all.area
AND answer45all.area = answer60all.area
AND answer60all.area = answer61all.area
</select>
<select id="dntDataForHospital" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$DntData">
SELECT
answer45.hospital AS name,
answer45.`level`,
IFNULL(round((answer45.value40+answer60.value60)*100/(answer45.value40+answer60.value60+answer61.value61),2),0.00) AS dntLess60All,
IFNULL(round(answer45.value40*100/(answer45.value40+answer60.value60+answer61.value61),2),0.00) AS dntLess45All,
answer45.VALUE40 AS dntLess45H,
answer60.value60 AS dntLess60H,
answer61.value61 AS dnt61H
FROM
(
SELECT
hospital.answer AS hospital,
SUBSTRING_INDEX(area.answer,',',1) AS area,
LEFT(`level`.answer,1) AS level,
actual.answer AS `value40`
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 `level` ON `level`.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS hospital ON hospital.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = '45-Nnt'
<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'
AND SUBSTRING_INDEX(area.answer,',',1) = 140100
-- 医院名
AND hospital.rec_status = 0
AND hospital.question_code = 'HOS-NAME'
) AS answer45
LEFT JOIN
(
SELECT
hospital.answer AS hospital,
SUBSTRING_INDEX(area.answer,',',1) AS area,
LEFT(`level`.answer,1) AS level,
actual.answer AS `value60`
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 `level` ON `level`.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS hospital ON hospital.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = '60-Nnt'
<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'
AND SUBSTRING_INDEX(area.answer,',',1) = 140100
-- 医院名
AND hospital.rec_status = 0
AND hospital.question_code = 'HOS-NAME'
) AS answer60 ON answer45.hospital = answer60.hospital
LEFT JOIN
(
SELECT
hospital.answer AS hospital,
SUBSTRING_INDEX(area.answer,',',1) AS area,
LEFT(`level`.answer,1) AS level,
actual.answer AS `value61`
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 `level` ON `level`.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS hospital ON hospital.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = '61-Nnt'
<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'
AND SUBSTRING_INDEX(area.answer,',',1) = 140100
-- 医院名
AND hospital.rec_status = 0
AND hospital.question_code = 'HOS-NAME'
) AS answer61 ON answer61.hospital = answer45.hospital
ORDER BY (answer45.VALUE40+answer60.value60+answer61.value61) DESC
</select>
<select id="sichTotal" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$SichTotal">
SELECT
round(answer1.sich*100/answer2.actual,2) AS sichTotal
FROM
(
SELECT
SUM( actual.answer ) AS sich
FROM
t_qcp_questionnaire_record AS actual
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'sICH-Nnt'
) AS answer1,
(
SELECT
SUM( actual.answer ) AS actual
FROM
t_qcp_questionnaire_record AS actual
LEFT JOIN t_qcp_questionnaire_detail AS qd ON actual.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'actual-Nnt'
) AS answer2
</select>
<select id="sichSynopsis" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$SichSynopsis">
SELECT
<if test="areaId != null">
a.area_name AS cityName,
</if>
answer1.level,
round(answer1.sich*100/answer2.actual,2) AS sichFsl
FROM
(
SELECT
SUBSTRING_INDEX(area.answer,',',1) AS area,
LEFT(`level`.answer,1) AS level,
SUM( actual.answer ) AS sich
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 `level` ON `level`.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'sICH-Nnt'
<if test="queryLevel == 0">
-- 等级
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '三级'
</if>
<if test="queryLevel == 1">
-- 等级
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '二级'
</if>
<if test="areaId != null">
AND `area`.rec_status = 0
AND `area`.question_code = 'CITY-COUNTY'
AND SUBSTRING_INDEX(area.answer,',',1) = #{areaId}
</if>
) AS answer1,
(
SELECT
SUM( actual.answer ) AS actual
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 `level` ON `level`.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'actual-Nnt'
<if test="queryLevel == 0">
-- 等级
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '三级'
</if>
<if test="queryLevel == 1">
-- 等级
AND `level`.rec_status = 0
AND `level`.question_code = 'HOS-LEVEL'
AND `level`.answer = '二级'
</if>
<if test="areaId != null">
AND `area`.rec_status = 0
AND `area`.question_code = 'CITY-COUNTY'
AND SUBSTRING_INDEX(area.answer,',',1) = #{areaId}
</if>
) AS answer2
<if test="areaId != null">
,
t_area AS a
WHERE
answer1.area = a.id
</if>
</select>
<select id="sichDataForCity" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$SichData">
-- 具体查询1
SELECT
a1.areaId AS areaId,
a1.area_name AS name,
a1.lncx AS sichFsl,
a2.lncxAll AS sichFslAll
FROM
(SELECT
a.id AS areaId,
a.area_name,
round(answer1.sich*100/answer2.actual,2) AS lncx
FROM
(
SELECT
qd.id AS detailId,
SUBSTRING_INDEX(area.answer,',',1) AS area,
SUM( actual.answer ) AS sich
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 `level` ON `level`.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'sICH-Nnt'
<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
qd.id AS detailId,
SUM( actual.answer ) AS actual
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 `level` ON `level`.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'actual-Nnt'
<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,
t_area AS a
WHERE
answer1.area = a.id
and answer1.detailId = answer2.detailId) AS a1,
(SELECT
a.area_name,
round(answer3.sich*100/answer4.actual,2) AS lncxAll
FROM
(
SELECT
qd.id AS detailId,
SUBSTRING_INDEX(area.answer,',',1) AS area,
SUM( actual.answer ) AS sich
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 `level` ON `level`.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'sICH-Nnt'
-- 地区
AND `area`.rec_status = 0
AND `area`.question_code = 'CITY-COUNTY'
GROUP BY SUBSTRING_INDEX(area.answer,',',1)
) AS answer3,
(
SELECT
qd.id AS detailId,
SUM( actual.answer ) AS actual
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 `level` ON `level`.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'actual-Nnt'
-- 地区
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
answer3.area = a.id
and answer3.detailId = answer4.detailId) AS a2
WHERE a1.area_name = a2.area_name
</select>
<select id="sichDataForHospital" resultType="com.ccsens.carbasics.bean.vo.StatisticsVo$SichData">
SELECT
answer1.`name` AS name,
IFNULL(round(answer1.sich*100/answer2.actual,2),0.00) AS sichFsl,
answer1.sich AS sICHNnt
FROM
(
SELECT
hospital.answer AS name,
qd.id AS detailId,
SUBSTRING_INDEX(area.answer,',',1) AS area,
actual.answer AS sich
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 `level` ON `level`.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS hospital ON hospital.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'sICH-Nnt'
<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'
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
-- 医院
AND hospital.rec_status = 0
AND hospital.question_code = 'HOS-NAME'
) AS answer1,
(
SELECT
qd.id AS detailId,
actual.answer AS actual
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 `level` ON `level`.questionnaire_detail_id = qd.id
LEFT JOIN t_qcp_questionnaire_record AS area ON area.questionnaire_detail_id = qd.id
WHERE
actual.rec_status = 0
AND qd.rec_status = 0
AND qd.submit_status = 1
AND actual.question_code = 'actual-Nnt'
<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'
AND SUBSTRING_INDEX(area.answer,',',1) = #{param.areaId}
) AS answer2,
t_area AS a
WHERE
answer1.area = a.id
and answer1.detailId = answer2.detailId
</select>
</mapper> </mapper>

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

@ -153,6 +153,9 @@
<if test="param.idcard!=null and param.idcard!=''"> <if test="param.idcard!=null and param.idcard!=''">
AND idcard LIKE concat('%',#{param.idcard},'%') AND idcard LIKE concat('%',#{param.idcard},'%')
</if> </if>
<if test="param.dataStatus != null">
data_status = #{param.dataStatus}
</if>
AND rec_status = 0 AND rec_status = 0
AND hospital_id in AND hospital_id in
<foreach collection="hospitalList" open="(" close=")" separator="," item="hospital"> <foreach collection="hospitalList" open="(" close=")" separator="," item="hospital">

6
src/main/resources/mapper_dao/OrganizationMemberDao.xml

@ -59,17 +59,21 @@
t_organization_member_position mp, t_organization_member_position mp,
t_organization_department d, t_organization_department d,
t_organization o, t_organization o,
t_organization_project p t_organization_project p,
t_organization_position po
WHERE WHERE
m.user_id = #{userId} m.user_id = #{userId}
and m.id = mp.member_id and m.id = mp.member_id
and mp.department_id = d.id and mp.department_id = d.id
and d.organization_id = o.id and d.organization_id = o.id
and o.id = p.organization_id and o.id = p.organization_id
and po.id = mp.position_id
and po.rec_status = 0
and m.rec_status = 0 and m.rec_status = 0
and d.rec_status = 0 and d.rec_status = 0
and o.rec_status = 0 and o.rec_status = 0
and p.rec_status = 0 and p.rec_status = 0
AND po.`code` = 'ZhiKong'
order by o.id order by o.id
limit 1 limit 1
</select> </select>

10
src/main/resources/mapper_dao/OrganizationPositionDao.xml

@ -18,6 +18,16 @@
) )
</select> </select>
<select id="queryByCode" resultType="java.lang.Long">
SELECT
id
FROM
t_organization_position
WHERE
rec_status = 0
AND `code` = #{code}
</select>
<select id="queryByName" resultType="java.lang.Long"> <select id="queryByName" resultType="java.lang.Long">
SELECT SELECT
id id

Loading…
Cancel
Save