Compare commits

...

3 Commits

  1. 43
      src/main/java/com/ccsens/carbasics/api/manage/ManageQuestionnaireController.java
  2. 100
      src/main/java/com/ccsens/carbasics/api/manage/ManageStatisticalController.java
  3. 43
      src/main/java/com/ccsens/carbasics/bean/dto/QuestionnaireDto.java
  4. 22
      src/main/java/com/ccsens/carbasics/bean/dto/StatisticalDto.java
  5. 11
      src/main/java/com/ccsens/carbasics/bean/po/Questionnaire.java
  6. 70
      src/main/java/com/ccsens/carbasics/bean/po/QuestionnaireExample.java
  7. 10
      src/main/java/com/ccsens/carbasics/bean/vo/QuestionnaireVo.java
  8. 233
      src/main/java/com/ccsens/carbasics/bean/vo/StatisticalVo.java
  9. 38
      src/main/java/com/ccsens/carbasics/persist/dao/ManageStatisticalDao.java
  10. 7
      src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDao.java
  11. 7
      src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireRecordDao.java
  12. 3
      src/main/java/com/ccsens/carbasics/service/AccountManageService.java
  13. 17
      src/main/java/com/ccsens/carbasics/service/IManageQuestionnaireService.java
  14. 50
      src/main/java/com/ccsens/carbasics/service/IManageStatisticalService.java
  15. 74
      src/main/java/com/ccsens/carbasics/service/ManageQuestionnaireService.java
  16. 151
      src/main/java/com/ccsens/carbasics/service/ManageStatisticalService.java
  17. 6
      src/main/resources/application-test.yml
  18. 4
      src/main/resources/application.yml
  19. 2
      src/main/resources/druid-dev.yml
  20. 314
      src/main/resources/mapper_dao/ManageStatisticalDao.xml
  21. 12
      src/main/resources/mapper_dao/QuestionnaireDao.xml
  22. 63
      src/main/resources/mapper_dao/QuestionnaireRecordDao.xml
  23. 25
      src/main/resources/mapper_raw/QuestionnaireMapper.xml
  24. 6
      src/main/resources/mbg.xml

43
src/main/java/com/ccsens/carbasics/api/manage/ManageQuestionnaireController.java

@ -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);
}
}

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

@ -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);
}
}

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

@ -205,4 +205,47 @@ public class QuestionnaireDto {
private Byte healthTracking; private Byte healthTracking;
} }
@Data
@ApiModel("后台查找问卷填写信息列表-返回")
public static class BackQueryQuestionnaire {
@ApiModelProperty("地区信息 市/县")
private String county;
@ApiModelProperty("医院名称")
private String hospitalName;
@ApiModelProperty("医院等级")
private String hospitalLevel;
@ApiModelProperty("联系人")
private String contacts;
@ApiModelProperty("手机号")
private String phone;
@ApiModelProperty("是否为脑防委高级卒中中心")
private String cuzhong;
@ApiModelProperty("是否为脑防委卒中防治中心")
private String fangzhi;
@ApiModelProperty("是否为山西省溶栓2.0版地图医院")
private String hosMap;
@ApiModelProperty("是否开展血管内治疗")
private String xgzl;
@ApiModelProperty("提交时间开始")
private Long submitTimeStart;
@ApiModelProperty("提交时间结束")
private Long submitTimeEnd;
@ApiModelProperty("第几页")
@Min(value = 1)
private int pageNum = 1;
@ApiModelProperty("每页多少条")
@Min(value = 1)
@Max(value=100)
private int pageSize = 10;
}
@Data
@ApiModel("根据类型查看问卷")
public static class QueryQuestionnaireByType {
@ApiModelProperty("问卷类型 0卒中 1高危筛查")
private Byte type = 0;
}
} }

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

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

11
src/main/java/com/ccsens/carbasics/bean/po/Questionnaire.java

@ -24,6 +24,8 @@ public class Questionnaire implements Serializable {
private Long writeEndTime; private Long writeEndTime;
private String dataScope;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public Long getId() { public Long getId() {
@ -106,6 +108,14 @@ public class Questionnaire implements Serializable {
this.writeEndTime = writeEndTime; this.writeEndTime = writeEndTime;
} }
public String getDataScope() {
return dataScope;
}
public void setDataScope(String dataScope) {
this.dataScope = dataScope == null ? null : dataScope.trim();
}
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
@ -122,6 +132,7 @@ public class Questionnaire implements Serializable {
sb.append(", recStatus=").append(recStatus); sb.append(", recStatus=").append(recStatus);
sb.append(", writeStartTime=").append(writeStartTime); sb.append(", writeStartTime=").append(writeStartTime);
sb.append(", writeEndTime=").append(writeEndTime); sb.append(", writeEndTime=").append(writeEndTime);
sb.append(", dataScope=").append(dataScope);
sb.append("]"); sb.append("]");
return sb.toString(); return sb.toString();
} }

70
src/main/java/com/ccsens/carbasics/bean/po/QuestionnaireExample.java

@ -714,6 +714,76 @@ public class QuestionnaireExample {
addCriterion("write_end_time not between", value1, value2, "writeEndTime"); addCriterion("write_end_time not between", value1, value2, "writeEndTime");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andDataScopeIsNull() {
addCriterion("data_scope is null");
return (Criteria) this;
}
public Criteria andDataScopeIsNotNull() {
addCriterion("data_scope is not null");
return (Criteria) this;
}
public Criteria andDataScopeEqualTo(String value) {
addCriterion("data_scope =", value, "dataScope");
return (Criteria) this;
}
public Criteria andDataScopeNotEqualTo(String value) {
addCriterion("data_scope <>", value, "dataScope");
return (Criteria) this;
}
public Criteria andDataScopeGreaterThan(String value) {
addCriterion("data_scope >", value, "dataScope");
return (Criteria) this;
}
public Criteria andDataScopeGreaterThanOrEqualTo(String value) {
addCriterion("data_scope >=", value, "dataScope");
return (Criteria) this;
}
public Criteria andDataScopeLessThan(String value) {
addCriterion("data_scope <", value, "dataScope");
return (Criteria) this;
}
public Criteria andDataScopeLessThanOrEqualTo(String value) {
addCriterion("data_scope <=", value, "dataScope");
return (Criteria) this;
}
public Criteria andDataScopeLike(String value) {
addCriterion("data_scope like", value, "dataScope");
return (Criteria) this;
}
public Criteria andDataScopeNotLike(String value) {
addCriterion("data_scope not like", value, "dataScope");
return (Criteria) this;
}
public Criteria andDataScopeIn(List<String> values) {
addCriterion("data_scope in", values, "dataScope");
return (Criteria) this;
}
public Criteria andDataScopeNotIn(List<String> values) {
addCriterion("data_scope not in", values, "dataScope");
return (Criteria) this;
}
public Criteria andDataScopeBetween(String value1, String value2) {
addCriterion("data_scope between", value1, value2, "dataScope");
return (Criteria) this;
}
public Criteria andDataScopeNotBetween(String value1, String value2) {
addCriterion("data_scope not between", value1, value2, "dataScope");
return (Criteria) this;
}
} }
public static class Criteria extends GeneratedCriteria { public static class Criteria extends GeneratedCriteria {

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

@ -2,7 +2,6 @@ package com.ccsens.carbasics.bean.vo;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.ccsens.carbasics.bean.po.QuestionnaireDetail;
import com.ccsens.util.DesensitizedUtils; import com.ccsens.util.DesensitizedUtils;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
@ -410,4 +409,13 @@ public class QuestionnaireVo {
} }
} }
@Data
@ApiModel("根据type查找问卷-请求")
public static class QuestionnaireByType {
@ApiModelProperty("问卷id")
private Long id;
@ApiModelProperty("问卷名称")
private String questionnaireName;
}
} }

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

@ -1,11 +1,14 @@
package com.ccsens.carbasics.bean.vo; package com.ccsens.carbasics.bean.vo;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ArrayUtil;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -119,4 +122,234 @@ public class StatisticalVo {
@ApiModelProperty("下级机构") @ApiModelProperty("下级机构")
private List<ProvinceCity> children; private List<ProvinceCity> children;
} }
@ApiModel("对比两个问卷的AIS-返回")
@Data
public static class ComparisonAis{
@ApiModelProperty("总数据")
private Integer totalNum = 0;
@ApiModelProperty("第一个问卷的数量")
private Integer oneNum = 0;
@ApiModelProperty("第二个问卷的数量")
private Integer towNum = 0;
@ApiModelProperty("表格数据")
private List<Ais> aisList;
public Integer getTotalNum() {
return oneNum + towNum;
}
public Integer getOneNum() {
if(CollectionUtil.isNotEmpty(aisList)){
for (Ais ais : aisList) {
oneNum += ais.oneNum;
}
}
return oneNum;
}
public Integer getTowNum() {
if(CollectionUtil.isNotEmpty(aisList)){
for (Ais ais : aisList) {
towNum += ais.towNum;
}
}
return towNum;
}
@ApiModel("对比两个问卷的AI-表格数据-返回")
@Data
public static class Ais{
@ApiModelProperty("列名")
private String name;
@ApiModelProperty("第一个数量")
private Integer oneNum = 0;
@ApiModelProperty("第二个数量")
private Integer towNum = 0;
public Ais(String name, Integer oneNum, Integer towNum) {
this.name = name;
this.oneNum = oneNum;
this.towNum = towNum;
}
public Ais() {
}
}
}
@ApiModel("对比两个问卷的AIS-返回")
@Data
public static class ComparisonAisPercent{
@ApiModelProperty("总数据")
private Integer totalNum = 0;
@ApiModelProperty("4.5小时的总数据")
private Integer num = 0;
@ApiModelProperty("4.5小时的百分比")
private BigDecimal percent = new BigDecimal(0);
@ApiModelProperty("表格数据")
private List<Ais> aisList;
public Integer getTotalNum() {
if(CollectionUtil.isNotEmpty(aisList)){
for (Ais ais : aisList) {
totalNum += (ais.oneNum + ais.towNum);
}
}
return totalNum;
}
public Integer getNum() {
if(CollectionUtil.isNotEmpty(aisList)){
for (Ais ais : aisList) {
num += (ais.oneHourNum + ais.towHourNum);
}
}
return num;
}
public BigDecimal getPercent() {
return totalNum == 0 ? percent : (new BigDecimal(num*100.00).divide(new BigDecimal(totalNum), 2, BigDecimal.ROUND_HALF_UP));
}
@ApiModel("对比两个问卷的AI-表格数据-返回")
@Data
public static class Ais{
@ApiModelProperty("列名")
private String name;
@ApiModelProperty("第一个AIS数量")
private Integer oneNum = 0;
@ApiModelProperty("第二个AIS数量")
private Integer towNum = 0;
@ApiModelProperty("第一个4.5小时AIS数量")
private Integer oneHourNum = 0;
@ApiModelProperty("第二个4.5小时AIS数量")
private Integer towHourNum = 0;
@ApiModelProperty("第一个4.5小时AIS百分比")
private BigDecimal oneHourPercent = new BigDecimal(0);
@ApiModelProperty("第二个4.5小时AIS百分比")
private BigDecimal towHourPercent = new BigDecimal(0);
public BigDecimal getOneHourPercent() {
return oneNum == 0 ? oneHourPercent : (new BigDecimal(oneHourNum*100.00).divide(new BigDecimal(oneNum), 2, BigDecimal.ROUND_HALF_UP));
}
public BigDecimal getTowHourPercent() {
return towNum == 0 ? towHourPercent : (new BigDecimal(towHourNum*100.00).divide(new BigDecimal(towNum), 2, BigDecimal.ROUND_HALF_UP));
}
}
}
@ApiModel("对比两个问卷的静脉溶栓率-返回")
@Data
public static class ComparisonThrombolysis {
@ApiModelProperty("静脉溶栓率")
private BigDecimal totalPercent = new BigDecimal(0);
@ApiModelProperty("二级医院溶栓率")
private BigDecimal secondLevelPercent = new BigDecimal(0);
@ApiModelProperty("三级医院溶栓率")
private BigDecimal threeLevelPercent = new BigDecimal(0);
@ApiModelProperty("进阶目标")
private BigDecimal advancedGoal = new BigDecimal(0);
@ApiModelProperty("基础目标")
private BigDecimal basicGoal = new BigDecimal(0);
@ApiModelProperty("表格数据")
private List<Thrombolysis> thrombolysisList;
public BigDecimal getTotalPercent() {
int totalNum = 0;
int num = 0;
if(CollectionUtil.isNotEmpty(thrombolysisList)){
for (Thrombolysis thrombolysis : thrombolysisList) {
totalNum += thrombolysis.getTotalNum();
num += thrombolysis.getOneNum() + thrombolysis.getTowNum();
}
}
return totalNum == 0 ? totalPercent : (new BigDecimal(num * 100.00).divide(new BigDecimal(totalNum), 2, BigDecimal.ROUND_HALF_UP));
}
public BigDecimal getSecondLevelPercent() {
int totalNum = 0;
int num = 0;
if(CollectionUtil.isNotEmpty(thrombolysisList)){
for (Thrombolysis thrombolysis : thrombolysisList) {
totalNum += thrombolysis.getTotalNum();
num += thrombolysis.getOneSecondLevelNum() + thrombolysis.getTowSecondLevelNum();
}
}
return totalNum == 0 ? secondLevelPercent : (new BigDecimal(num * 100.00).divide(new BigDecimal(totalNum), 2, BigDecimal.ROUND_HALF_UP));
}
public BigDecimal getThreeLevelPercent() {
int totalNum = 0;
int num = 0;
if(CollectionUtil.isNotEmpty(thrombolysisList)){
for (Thrombolysis thrombolysis : thrombolysisList) {
totalNum += thrombolysis.getTotalNum();
num += thrombolysis.getOneThreeLevelNum() + thrombolysis.getTowThreeLevelNum();
}
}
return totalNum == 0 ? threeLevelPercent : (new BigDecimal(num * 100.00).divide(new BigDecimal(totalNum), 2, BigDecimal.ROUND_HALF_UP));
}
@ApiModel("对比两个问卷的静脉溶栓率-返回")
@Data
public static class Thrombolysis {
@ApiModelProperty("列名")
private String name;
@ApiModelProperty("第一个静脉溶栓率")
private BigDecimal onePercent = new BigDecimal(0);
@ApiModelProperty("第二个静脉溶栓率")
private BigDecimal towPercent = new BigDecimal(0);
@ApiModelProperty("第一个二级静脉溶栓率")
private BigDecimal oneSecondLevelPercent = new BigDecimal(0);
@ApiModelProperty("第二个二级静脉溶栓率")
private BigDecimal towSecondLevelPercent = new BigDecimal(0);
@ApiModelProperty("第一个三级静脉溶栓率")
private BigDecimal oneThreeLevelPercent = new BigDecimal(0);
@ApiModelProperty("第一个三级静脉溶栓率")
private BigDecimal towThreeLevelPercent = new BigDecimal(0);
@JsonIgnore
private Integer totalNum = 0;
@JsonIgnore
private Integer oneNum = 0;
@JsonIgnore
private Integer towNum = 0;
@JsonIgnore
private Integer oneSecondLevelNum = 0;
@JsonIgnore
private Integer towSecondLevelNum = 0;
@JsonIgnore
private Integer oneThreeLevelNum = 0;
@JsonIgnore
private Integer towThreeLevelNum = 0;
public BigDecimal getOnePercent() {
return totalNum == 0 ? onePercent : (new BigDecimal(oneNum * 100.00).divide(new BigDecimal(totalNum), 2, BigDecimal.ROUND_HALF_UP));
}
public BigDecimal getTowPercent() {
return totalNum == 0 ? towPercent : (new BigDecimal(towNum * 100.00).divide(new BigDecimal(totalNum), 2, BigDecimal.ROUND_HALF_UP));
}
public BigDecimal getOneSecondLevelPercent() {
return totalNum == 0 ? oneSecondLevelPercent : (new BigDecimal(oneSecondLevelNum * 100.00).divide(new BigDecimal(totalNum), 2, BigDecimal.ROUND_HALF_UP));
}
public BigDecimal getTowSecondLevelPercent() {
return totalNum == 0 ? towSecondLevelPercent : (new BigDecimal(towSecondLevelNum * 100.00).divide(new BigDecimal(totalNum), 2, BigDecimal.ROUND_HALF_UP));
}
public BigDecimal getOneThreeLevelPercent() {
return totalNum == 0 ? oneThreeLevelPercent : (new BigDecimal(oneThreeLevelNum * 100.00).divide(new BigDecimal(totalNum), 2, BigDecimal.ROUND_HALF_UP));
}
public BigDecimal getTowThreeLevelPercent() {
return totalNum == 0 ? towThreeLevelPercent : (new BigDecimal(towThreeLevelNum * 100.00).divide(new BigDecimal(totalNum), 2, BigDecimal.ROUND_HALF_UP));
}
}
}
} }

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

@ -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);
}

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

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

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

@ -47,4 +47,11 @@ public interface QuestionnaireRecordDao extends QuestionnaireRecordMapper {
* @return 医院列表 * @return 医院列表
*/ */
List<QuestionnaireVo.HospitalName> queryHospitalList(@Param("param") QuestionnaireDto.QueryHospitalList param); List<QuestionnaireVo.HospitalName> queryHospitalList(@Param("param") QuestionnaireDto.QueryHospitalList param);
/**
* 后台查看问卷提交记录
* @param codes
* @return
*/
List<Map<String, String>> backQueryRecordList(@Param("param")QuestionnaireDto.BackQueryQuestionnaire param, @Param("codes") List<CodeVo.Basic> codes);
} }

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

@ -108,7 +108,8 @@ public class AccountManageService implements IAccountManageService {
} }
//查询职位id //查询职位id
Long positionId = positionDao.queryByCode(accountManageInfo.getPositionCode(),accountManageInfo.getHospitalName()); // Long positionId = positionDao.queryByCode(accountManageInfo.getPositionCode(),accountManageInfo.getHospitalName());
Long positionId = null;
questionnaireService.createOrganization(accountManageInfo.getHospitalName(),accountManageInfo.getDepartmentName(),accountManageInfo.getSubmitterUserId(), questionnaireService.createOrganization(accountManageInfo.getHospitalName(),accountManageInfo.getDepartmentName(),accountManageInfo.getSubmitterUserId(),
accountManageInfo.getSubmitter(),accountManageInfo.getSubmitterPhone(),positionId,accountManageInfo.getPositionName(),accountManageInfo.getPositionCode(),accountManageInfo.getDepartmentCode()); accountManageInfo.getSubmitter(),accountManageInfo.getSubmitterPhone(),positionId,accountManageInfo.getPositionName(),accountManageInfo.getPositionCode(),accountManageInfo.getDepartmentCode());
// questionnaireService.createHospitalAndProject(accountManageInfo.getSubmitterPhone(),accountManageInfo.getSubmitterUserId(),"", // questionnaireService.createHospitalAndProject(accountManageInfo.getSubmitterPhone(),accountManageInfo.getSubmitterUserId(),"",

17
src/main/java/com/ccsens/carbasics/service/IManageQuestionnaireService.java

@ -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);
}

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

@ -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);
}

74
src/main/java/com/ccsens/carbasics/service/ManageQuestionnaireService.java

@ -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);
}
}

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

@ -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;
}
}

6
src/main/resources/application-test.yml

@ -40,12 +40,12 @@ mybatisCache:
timeout: 1000 timeout: 1000
eureka: eureka:
instance: instance:
ip-address: 127.0.0.1 ip-address: 101.201.226.163
file: file:
path: /home/cloud/carbasics/uploads/ path: /home/cloud/carbasics/uploads/
domain: https://sd.tall.wiki/gateway/carbasics/v4.0 domain: https://test.tall.wiki/gateway/carbasics/v4.0
imgDomain: https://sd.tall.wiki/gateway/carbasics/v4.0/uploads/ imgDomain: https://test.tall.wiki/gateway/carbasics/v4.0/uploads/
wisdom: wisdom:
weight: 10000 weight: 10000
time: 600000 time: 600000

4
src/main/resources/application.yml

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

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

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

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

@ -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>

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

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

63
src/main/resources/mapper_dao/QuestionnaireRecordDao.xml

@ -87,5 +87,68 @@
</if> </if>
</select> </select>
<select id="backQueryRecordList" resultType="java.util.Map">
SELECT
*
FROM
(
select t1.id,
if(t1.submit_status=0,'保存','提交') as submitStatus,
DATE_FORMAT(t1.updated_at, '%Y-%m-%d %H:%i:%s') as updateTime,
<foreach collection="codes" item="code" separator="," close=",">
<if test="code.questionCode != 'HOS-TEL'">
(select t2.answer from
(select d.id, r.answer from t_qcp_questionnaire_detail d, t_qcp_questionnaire_record r where d.id =
r.questionnaire_detail_id and r.question_code = #{code.questionCode} and d.rec_status = 0 and
r.rec_status = 0 group by d.id) t2 where t2.id = t1.id) as #{code.questionCode}
</if>
</foreach>
(select t2.identifier from
(select d.id, a.identifier from t_qcp_questionnaire_detail d, tall3.t_sys_auth a where d.user_id = a.user_id and
a.identify_type = 1 and d.rec_status = 0 and a.rec_status = 0 group by d.id) t2 where t1.id = t2.id) as
'HOS-TEL'
from
(select d.id, d.submit_status, d.updated_at from t_qcp_questionnaire_detail d, t_qcp_questionnaire_record
r,t_qcp_questionnaire AS q where d.id = r.questionnaire_detail_id and d.rec_status = 0 and r.rec_status = 0 AND
q.rec_status = 0
) t1
group by t1.id
ORDER BY updateTime
) r
<where>
<if test="param.county != null and param.county != ''">
and r.`CITY-COUNTY` = #{param.county}
</if>
<if test="param.hospitalName != null and param.hospitalName != ''">
and r.`HOS-NAME` like concat('%',#{param.hospitalName},'%')
</if>
<if test="param.hospitalLevel != null and param.hospitalLevel != ''">
and r.`HOS-LEVEL` = #{param.hospitalLevel}
</if>
<if test="param.contacts != null and param.contacts != ''">
and r.`HOS-MAN` like concat('%',#{param.contacts},'%')
</if>
<if test="param.phone != null and param.phone != ''">
and r.`HOS-TEL` = #{param.phone}
</if>
<if test="param.cuzhong != null and param.cuzhong != ''">
and r.`HOS-CUZHONG` = #{param.cuzhong}
</if>
<if test="param.fangzhi != null and param.fangzhi != ''">
and r.`HOS-FANGZHI` = #{param.fangzhi}
</if>
<if test="param.hosMap != null and param.hosMap != ''">
and r.`HOS-MAP` = #{param.hosMap}
</if>
<if test="param.xgzl != null and param.xgzl != ''">
and r.`XGZL` = #{param.xgzl}
</if>
<if test="param.submitTimeStart != null and param.submitTimeEnd != null">
and UNIX_TIMESTAMP(r.`updateTime`)*1000 >= #{param.submitTimeStart}
and UNIX_TIMESTAMP(r.`updateTime`)*1000 &lt;= #{param.submitTimeEnd}
</if>
</where>
</select>
</mapper> </mapper>

25
src/main/resources/mapper_raw/QuestionnaireMapper.xml

@ -12,6 +12,7 @@
<result column="rec_status" jdbcType="TINYINT" property="recStatus" /> <result column="rec_status" jdbcType="TINYINT" property="recStatus" />
<result column="write_start_time" jdbcType="BIGINT" property="writeStartTime" /> <result column="write_start_time" jdbcType="BIGINT" property="writeStartTime" />
<result column="write_end_time" jdbcType="BIGINT" property="writeEndTime" /> <result column="write_end_time" jdbcType="BIGINT" property="writeEndTime" />
<result column="data_scope" jdbcType="VARCHAR" property="dataScope" />
</resultMap> </resultMap>
<sql id="Example_Where_Clause"> <sql id="Example_Where_Clause">
<where> <where>
@ -73,7 +74,7 @@
</sql> </sql>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, questionnaire_name, start_time, end_time, type, created_at, updated_at, rec_status, id, questionnaire_name, start_time, end_time, type, created_at, updated_at, rec_status,
write_start_time, write_end_time write_start_time, write_end_time, data_scope
</sql> </sql>
<select id="selectByExample" parameterType="com.ccsens.carbasics.bean.po.QuestionnaireExample" resultMap="BaseResultMap"> <select id="selectByExample" parameterType="com.ccsens.carbasics.bean.po.QuestionnaireExample" resultMap="BaseResultMap">
select select
@ -109,11 +110,11 @@
insert into t_qcp_questionnaire (id, questionnaire_name, start_time, insert into t_qcp_questionnaire (id, questionnaire_name, start_time,
end_time, type, created_at, end_time, type, created_at,
updated_at, rec_status, write_start_time, updated_at, rec_status, write_start_time,
write_end_time) write_end_time, data_scope)
values (#{id,jdbcType=BIGINT}, #{questionnaireName,jdbcType=VARCHAR}, #{startTime,jdbcType=BIGINT}, values (#{id,jdbcType=BIGINT}, #{questionnaireName,jdbcType=VARCHAR}, #{startTime,jdbcType=BIGINT},
#{endTime,jdbcType=BIGINT}, #{type,jdbcType=TINYINT}, #{createdAt,jdbcType=TIMESTAMP}, #{endTime,jdbcType=BIGINT}, #{type,jdbcType=TINYINT}, #{createdAt,jdbcType=TIMESTAMP},
#{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}, #{writeStartTime,jdbcType=BIGINT}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}, #{writeStartTime,jdbcType=BIGINT},
#{writeEndTime,jdbcType=BIGINT}) #{writeEndTime,jdbcType=BIGINT}, #{dataScope,jdbcType=VARCHAR})
</insert> </insert>
<insert id="insertSelective" parameterType="com.ccsens.carbasics.bean.po.Questionnaire"> <insert id="insertSelective" parameterType="com.ccsens.carbasics.bean.po.Questionnaire">
insert into t_qcp_questionnaire insert into t_qcp_questionnaire
@ -148,6 +149,9 @@
<if test="writeEndTime != null"> <if test="writeEndTime != null">
write_end_time, write_end_time,
</if> </if>
<if test="dataScope != null">
data_scope,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null"> <if test="id != null">
@ -180,6 +184,9 @@
<if test="writeEndTime != null"> <if test="writeEndTime != null">
#{writeEndTime,jdbcType=BIGINT}, #{writeEndTime,jdbcType=BIGINT},
</if> </if>
<if test="dataScope != null">
#{dataScope,jdbcType=VARCHAR},
</if>
</trim> </trim>
</insert> </insert>
<select id="countByExample" parameterType="com.ccsens.carbasics.bean.po.QuestionnaireExample" resultType="java.lang.Long"> <select id="countByExample" parameterType="com.ccsens.carbasics.bean.po.QuestionnaireExample" resultType="java.lang.Long">
@ -221,6 +228,9 @@
<if test="record.writeEndTime != null"> <if test="record.writeEndTime != null">
write_end_time = #{record.writeEndTime,jdbcType=BIGINT}, write_end_time = #{record.writeEndTime,jdbcType=BIGINT},
</if> </if>
<if test="record.dataScope != null">
data_scope = #{record.dataScope,jdbcType=VARCHAR},
</if>
</set> </set>
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
@ -237,7 +247,8 @@
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
rec_status = #{record.recStatus,jdbcType=TINYINT}, rec_status = #{record.recStatus,jdbcType=TINYINT},
write_start_time = #{record.writeStartTime,jdbcType=BIGINT}, write_start_time = #{record.writeStartTime,jdbcType=BIGINT},
write_end_time = #{record.writeEndTime,jdbcType=BIGINT} write_end_time = #{record.writeEndTime,jdbcType=BIGINT},
data_scope = #{record.dataScope,jdbcType=VARCHAR}
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
</if> </if>
@ -272,6 +283,9 @@
<if test="writeEndTime != null"> <if test="writeEndTime != null">
write_end_time = #{writeEndTime,jdbcType=BIGINT}, write_end_time = #{writeEndTime,jdbcType=BIGINT},
</if> </if>
<if test="dataScope != null">
data_scope = #{dataScope,jdbcType=VARCHAR},
</if>
</set> </set>
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
@ -285,7 +299,8 @@
updated_at = #{updatedAt,jdbcType=TIMESTAMP}, updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT}, rec_status = #{recStatus,jdbcType=TINYINT},
write_start_time = #{writeStartTime,jdbcType=BIGINT}, write_start_time = #{writeStartTime,jdbcType=BIGINT},
write_end_time = #{writeEndTime,jdbcType=BIGINT} write_end_time = #{writeEndTime,jdbcType=BIGINT},
data_scope = #{dataScope,jdbcType=VARCHAR}
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
</mapper> </mapper>

6
src/main/resources/mbg.xml

@ -59,10 +59,10 @@
<!-- <table tableName="t_organization" domainObjectName="Organization"></table>--> <!-- <table tableName="t_organization" domainObjectName="Organization"></table>-->
<!-- <table tableName="t_qcp_ocr_keyword" domainObjectName="OcrKeyword"></table>--> <!-- <table tableName="t_qcp_ocr_keyword" domainObjectName="OcrKeyword"></table>-->
<!-- <table tableName="t_qcp_ocr_keyword_option" domainObjectName="OcrKeywordOption"></table>--> <!-- <table tableName="t_qcp_ocr_keyword_option" domainObjectName="OcrKeywordOption"></table>-->
<!-- <table tableName="t_qcp_questionnaire" domainObjectName="Questionnaire"></table>--> <table tableName="t_qcp_questionnaire" domainObjectName="Questionnaire"></table>
<!-- <table tableName="t_qcp_questionnaire_detail" domainObjectName="QuestionnaireDetail"></table>--> <!-- <table tableName="t_qcp_questionnaire_detail" domainObjectName="QuestionnaireDetail"></table>-->
<!-- <table tableName="t_qcp_questionnaire_record" domainObjectName="QuestionnaireRecord"></table>--> <!-- <table tableName="t_qcp_questionnaire_record" domainObjectName="QuestionnaireRecord"></table>-->
<table tableName="t_qcp_button_config" domainObjectName="ButtonConfig"></table> <!-- <table tableName="t_qcp_button_config" domainObjectName="ButtonConfig"></table>-->
<!-- <table tableName="t_qcp_equipment_status" domainObjectName="EquipmentStatus"></table>--> <!-- <table tableName="t_qcp_equipment_status" domainObjectName="EquipmentStatus"></table>-->
<!-- <table tableName="t_qcp_equipment_inform" domainObjectName="EquipmentInform"></table>--> <!-- <table tableName="t_qcp_equipment_inform" domainObjectName="EquipmentInform"></table>-->
<!-- <table tableName="t_area" domainObjectName="Area"></table>--> <!-- <table tableName="t_area" domainObjectName="Area"></table>-->
@ -92,7 +92,7 @@
<!-- <table tableName="t_organization" domainObjectName="Organization"></table>--> <!-- <table tableName="t_organization" domainObjectName="Organization"></table>-->
<!-- <table tableName="t_bl_hospital" domainObjectName="BlHospital"></table>--> <!-- <table tableName="t_bl_hospital" domainObjectName="BlHospital"></table>-->
<!-- <table tableName="t_bl_doctor" domainObjectName="BlDoctor"></table>--> <!-- <table tableName="t_bl_doctor" domainObjectName="BlDoctor"></table>-->
<table tableName="t_bl_case" domainObjectName="BlCase"></table> <!-- <table tableName="t_bl_case" domainObjectName="BlCase"></table>-->
<!-- <table tableName="t_bl_case_img" domainObjectName="BlCaseImg"></table>--> <!-- <table tableName="t_bl_case_img" domainObjectName="BlCaseImg"></table>-->
<!-- <table tableName="t_bl_department" domainObjectName="BlDepartment"></table>--> <!-- <table tableName="t_bl_department" domainObjectName="BlDepartment"></table>-->

Loading…
Cancel
Save