From 80a50a6e0ce1316c0b2bfc05aa02d62d03e88ec7 Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Wed, 29 Sep 2021 15:17:53 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=86=99=E9=97=AE=E5=8D=B7=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/QuestionnaireController.java | 62 +- .../carbasics/bean/dto/QuestionnaireDto.java | 113 +-- .../bean/po/QuestionnaireRecord.java | 95 +++ .../bean/po/QuestionnaireRecordExample.java | 641 ++++++++++++++++++ .../carbasics/bean/vo/QuestionnaireVo.java | 31 +- .../persist/dao/QuestionnaireDao.java | 15 +- .../persist/dao/QuestionnaireDetailDao.java | 32 + .../persist/dao/QuestionnaireRecordDao.java | 15 + .../mapper/QuestionnaireRecordMapper.java | 30 + .../carbasics/service/AsyncService.java | 312 ++++----- .../service/IQuestionnaireService.java | 19 +- .../service/QuestionnaireService.java | 281 +++++--- .../com/ccsens/carbasics/util/Constant.java | 16 + .../carbasics/util/DefaultCodeError.java | 1 + .../resources/mapper_dao/QuestionnaireDao.xml | 101 ++- .../mapper_dao/QuestionnaireDetailDao.xml | 38 ++ .../mapper_dao/QuestionnaireRecordDao.xml | 16 + .../mapper_raw/QuestionnaireRecordMapper.xml | 243 +++++++ src/main/resources/mbg.xml | 3 +- 19 files changed, 1607 insertions(+), 457 deletions(-) create mode 100644 src/main/java/com/ccsens/carbasics/bean/po/QuestionnaireRecord.java create mode 100644 src/main/java/com/ccsens/carbasics/bean/po/QuestionnaireRecordExample.java create mode 100644 src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireRecordDao.java create mode 100644 src/main/java/com/ccsens/carbasics/persist/mapper/QuestionnaireRecordMapper.java create mode 100644 src/main/resources/mapper_dao/QuestionnaireRecordDao.xml create mode 100644 src/main/resources/mapper_raw/QuestionnaireRecordMapper.xml diff --git a/src/main/java/com/ccsens/carbasics/api/QuestionnaireController.java b/src/main/java/com/ccsens/carbasics/api/QuestionnaireController.java index af95e92..511d04e 100644 --- a/src/main/java/com/ccsens/carbasics/api/QuestionnaireController.java +++ b/src/main/java/com/ccsens/carbasics/api/QuestionnaireController.java @@ -19,7 +19,9 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Api(tags = "问查调卷相关接口" , description = "") @RestController @@ -41,13 +43,33 @@ public class QuestionnaireController { } @MustLogin - @ApiOperation(value = "查询问卷", notes = "") + @ApiOperation(value = "查询职位", notes = "") + @RequestMapping(value = "/queryPosition", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryPosition(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + log.info("查询职位开始{}",params); + List positionInfoList = questionnaireService.queryPosition(params.getUserId()); + log.info("查询职位结束{}",positionInfoList); + return JsonResponse.newInstance().ok(positionInfoList); + } + + @MustLogin + @ApiOperation(value = "查询问卷列表", notes = "原:查询医院是否填写了调查问卷") + @RequestMapping(value = "/queryNotWrite", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryNotWrite(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + log.info("保存调查问卷开始{}",params); + List writeStatusList = questionnaireService.queryNotWrite(params.getParam(),params.getUserId()); + log.info("保存调查问卷结束{}",writeStatusList); + return JsonResponse.newInstance().ok(writeStatusList); + } + + @MustLogin + @ApiOperation(value = "查询问卷详情", notes = "") @RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse queryQuestionnaire(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ - log.info("查询问卷开始{}",params); - QuestionnaireVo.QuestionnaireInfo questionnaireInfo = questionnaireService.queryQuestionnaire(params.getParam(),params.getUserId()); - log.info("查询问卷结束{}",questionnaireInfo); - return JsonResponse.newInstance().ok(questionnaireInfo); + public JsonResponse> queryQuestionnaire(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + log.info("查询问卷详情开始{}",params); + HashMap maps = questionnaireService.queryQuestionnaire(params.getParam(), params.getUserId()); + log.info("查询问卷详情结束{}",maps); + return JsonResponse.newInstance().ok(maps); } @MustLogin @@ -61,22 +83,22 @@ public class QuestionnaireController { } @MustLogin - @ApiOperation(value = "查询医院是否填写了调查问卷", notes = "") - @RequestMapping(value = "/queryNotWrite", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse> queryNotWrite(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ - log.info("保存调查问卷开始{}",params); - List writeStatusList = questionnaireService.queryNotWrite(params.getParam(),params.getUserId()); - log.info("保存调查问卷结束{}",writeStatusList); - return JsonResponse.newInstance().ok(writeStatusList); + @ApiOperation(value = "提交问卷", notes = "") + @RequestMapping(value = "/submit", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse submitQuestionnaire(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + log.info("提交问卷开始{}",params); + questionnaireService.submitQuestionnaire(params.getParam(),params.getUserId()); + log.info("提交问卷结束"); + return JsonResponse.newInstance().ok(); } @MustLogin - @ApiOperation(value = "查询职位", notes = "") - @RequestMapping(value = "/queryPosition", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse> queryPosition(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ - log.info("查询职位开始{}",params); - List positionInfoList = questionnaireService.queryPosition(params.getUserId()); - log.info("查询职位结束{}",positionInfoList); - return JsonResponse.newInstance().ok(positionInfoList); + @ApiOperation(value = "创建问卷详情", notes = "") + @RequestMapping(value = "/create", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse createDetail(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + log.info("创建问卷详情{}",params); + QuestionnaireVo.DetailInfo detailInfo = questionnaireService.createDetail(params.getParam(),params.getUserId()); + log.info("创建问卷详情结束"); + return JsonResponse.newInstance().ok(detailInfo); } } diff --git a/src/main/java/com/ccsens/carbasics/bean/dto/QuestionnaireDto.java b/src/main/java/com/ccsens/carbasics/bean/dto/QuestionnaireDto.java index 3f8588d..4591b07 100644 --- a/src/main/java/com/ccsens/carbasics/bean/dto/QuestionnaireDto.java +++ b/src/main/java/com/ccsens/carbasics/bean/dto/QuestionnaireDto.java @@ -18,102 +18,23 @@ public class QuestionnaireDto { } @Data - @ApiModel("查询问卷信息") + @ApiModel("查询问卷信息详情") public static class QueryQuestionnaire { - @ApiModelProperty("当前时间") - private Long time = System.currentTimeMillis(); - @NotNull(message = "请选择类型") - @ApiModelProperty("类型(0-卒中)") - private Byte type; + @NotNull(message = "请选择问卷") + @ApiModelProperty("问卷id") + private Long id; } @Data @ApiModel("保存问卷信息") public static class SaveQuestionnaire { - @NotBlank(message = "请选择市") - @ApiModelProperty("市") - private String city; - @NotBlank(message = "请选择省") - @ApiModelProperty("省") - private String province; - @NotBlank(message = "请选择县/区") - @ApiModelProperty("县/区") - private String county; - @NotNull(message = "请填写医院等级") - @ApiModelProperty("医院等级") - private Byte hospitalLevel; - @NotBlank(message = "请填写医院名称") - @ApiModelProperty("医院名称") - private String hospitalName; - @NotBlank(message = "请选择部门") - @ApiModelProperty("部门") - private String departments; - @NotBlank(message = "请填写姓名") - @ApiModelProperty("姓名") - private String name; - @NotBlank(message = "请填写手机号") - @ApiModelProperty("手机号") - private String phone; - @NotNull(message = "是否为脑防委高级卒中中心不能为空") - @ApiModelProperty("是否为脑防委高级卒中中心") - private Byte advancedStrokeCenter; - @NotNull(message = "是否为脑防委卒中防治中心不能为空") - @ApiModelProperty("是否为脑防委卒中防治中心") - private Byte strokeCenter; - @NotNull(message = "是否为山西省溶栓2.0版地图医院不能为空") - @ApiModelProperty("是否为山西省溶栓2.0版地图医院") - private Byte mapHospital; - @NotNull(message = "收治急性缺血性卒中例数不能为空") - @ApiModelProperty("收治急性缺血性卒中例数") - private Integer strokeNumber; - @NotNull(message = "4.5小时内到院AIS例数不能为空") - @ApiModelProperty("4.5小时内到院AIS例数") - private Integer aisNumberFour; - @NotNull(message = "4.5小时内静脉溶栓治疗例数不能为空") - @ApiModelProperty("4.5小时内静脉溶栓治疗例数") - private Integer jmrsNumberFour; - @NotNull(message = "应用rtPA溶栓例数不能为空") - @ApiModelProperty("应用rtPA溶栓例数") - private Integer rtpaNumber; - @NotNull(message = "DNT<45min例数不能为空") - @ApiModelProperty("DNT<45min例数") - private Integer dntNumber; - @NotNull(message = "45min<DNT<60min例数不能为空") - @ApiModelProperty("45min<DNT<60min例数") - private Integer dntNumberFour; - @NotNull(message = "DNT>60min例数不能为空") - @ApiModelProperty("DNT>60min例数") - private Integer dntNumberSix; - @NotNull(message = "溶栓后sICH例数不能为空") - @ApiModelProperty("溶栓后sICH例数") - private Integer sichNumber; - @NotNull(message = "溶栓后90天mRS 0-1分患者数不能为空") - @ApiModelProperty("溶栓后90天mRS 0-1分患者数(包括电话随访)") - private Integer jmrsNumberOne; - @ApiModelProperty("4.5-6小时到院AIS患者数(有血管内治疗指征)") - private Integer aisNumberSix; - @ApiModelProperty("发病6h到院患者桥接+直接取栓总例数") - private Integer shouldDirectly; - @ApiModelProperty("DPT中位数") - private Integer dptMedianNumber; - @ApiModelProperty("PRT中位数") - private Integer prtMedianNumber; - @ApiModelProperty("术后90天mRS 0-2分患者数(包括电话随访)") - private Integer jmrsNumberTwo; - @ApiModelProperty("术后90天死亡患者数(包括电话随访)") - private Integer deathNumber; - @ApiModelProperty("问卷id") - private Long questionnaireId; - @ApiModelProperty("类型") - private Byte type; - @ApiModelProperty("是否介入治疗(0-否,1-是)") - private Byte pciStatus; + @NotNull(message = "问卷详情id不能为空") @ApiModelProperty("问卷详情id") private Long detailId; - @ApiModelProperty("提交状态(0-保存,1-修改)") - private Byte submitStatus; - @ApiModelProperty("职位id") - private Long positionId; + @ApiModelProperty("题目code") + private String code; + @ApiModelProperty("答案") + private String answer; } @Data @@ -125,4 +46,20 @@ public class QuestionnaireDto { @ApiModelProperty("时间") private Long time = System.currentTimeMillis(); } + + @Data + @ApiModel("提交问卷") + public static class SubmitQuestionnaire { + @NotNull(message = "问卷详情id不能为空") + @ApiModelProperty("问卷详情id") + private Long detailId; + } + + @Data + @ApiModel("创建问卷详情") + public static class CreateDetail { + @NotNull(message = "问卷类型不能为空") + @ApiModelProperty("问卷类型(0-卒中)") + private Byte type; + } } diff --git a/src/main/java/com/ccsens/carbasics/bean/po/QuestionnaireRecord.java b/src/main/java/com/ccsens/carbasics/bean/po/QuestionnaireRecord.java new file mode 100644 index 0000000..4d40da1 --- /dev/null +++ b/src/main/java/com/ccsens/carbasics/bean/po/QuestionnaireRecord.java @@ -0,0 +1,95 @@ +package com.ccsens.carbasics.bean.po; + +import java.io.Serializable; +import java.util.Date; + +public class QuestionnaireRecord implements Serializable { + private Long id; + + private Long questionnaireDetailId; + + private String questionCode; + + private String answer; + + private Date createdAt; + + private Date updatedAt; + + private Byte recStatus; + + private static final long serialVersionUID = 1L; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getQuestionnaireDetailId() { + return questionnaireDetailId; + } + + public void setQuestionnaireDetailId(Long questionnaireDetailId) { + this.questionnaireDetailId = questionnaireDetailId; + } + + public String getQuestionCode() { + return questionCode; + } + + public void setQuestionCode(String questionCode) { + this.questionCode = questionCode == null ? null : questionCode.trim(); + } + + public String getAnswer() { + return answer; + } + + public void setAnswer(String answer) { + this.answer = answer == null ? null : answer.trim(); + } + + public Date getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Date createdAt) { + this.createdAt = createdAt; + } + + public Date getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(Date updatedAt) { + this.updatedAt = updatedAt; + } + + public Byte getRecStatus() { + return recStatus; + } + + public void setRecStatus(Byte recStatus) { + this.recStatus = recStatus; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", questionnaireDetailId=").append(questionnaireDetailId); + sb.append(", questionCode=").append(questionCode); + sb.append(", answer=").append(answer); + sb.append(", createdAt=").append(createdAt); + sb.append(", updatedAt=").append(updatedAt); + sb.append(", recStatus=").append(recStatus); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/src/main/java/com/ccsens/carbasics/bean/po/QuestionnaireRecordExample.java b/src/main/java/com/ccsens/carbasics/bean/po/QuestionnaireRecordExample.java new file mode 100644 index 0000000..a18c54f --- /dev/null +++ b/src/main/java/com/ccsens/carbasics/bean/po/QuestionnaireRecordExample.java @@ -0,0 +1,641 @@ +package com.ccsens.carbasics.bean.po; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class QuestionnaireRecordExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public QuestionnaireRecordExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andQuestionnaireDetailIdIsNull() { + addCriterion("questionnaire_detail_id is null"); + return (Criteria) this; + } + + public Criteria andQuestionnaireDetailIdIsNotNull() { + addCriterion("questionnaire_detail_id is not null"); + return (Criteria) this; + } + + public Criteria andQuestionnaireDetailIdEqualTo(Long value) { + addCriterion("questionnaire_detail_id =", value, "questionnaireDetailId"); + return (Criteria) this; + } + + public Criteria andQuestionnaireDetailIdNotEqualTo(Long value) { + addCriterion("questionnaire_detail_id <>", value, "questionnaireDetailId"); + return (Criteria) this; + } + + public Criteria andQuestionnaireDetailIdGreaterThan(Long value) { + addCriterion("questionnaire_detail_id >", value, "questionnaireDetailId"); + return (Criteria) this; + } + + public Criteria andQuestionnaireDetailIdGreaterThanOrEqualTo(Long value) { + addCriterion("questionnaire_detail_id >=", value, "questionnaireDetailId"); + return (Criteria) this; + } + + public Criteria andQuestionnaireDetailIdLessThan(Long value) { + addCriterion("questionnaire_detail_id <", value, "questionnaireDetailId"); + return (Criteria) this; + } + + public Criteria andQuestionnaireDetailIdLessThanOrEqualTo(Long value) { + addCriterion("questionnaire_detail_id <=", value, "questionnaireDetailId"); + return (Criteria) this; + } + + public Criteria andQuestionnaireDetailIdIn(List values) { + addCriterion("questionnaire_detail_id in", values, "questionnaireDetailId"); + return (Criteria) this; + } + + public Criteria andQuestionnaireDetailIdNotIn(List values) { + addCriterion("questionnaire_detail_id not in", values, "questionnaireDetailId"); + return (Criteria) this; + } + + public Criteria andQuestionnaireDetailIdBetween(Long value1, Long value2) { + addCriterion("questionnaire_detail_id between", value1, value2, "questionnaireDetailId"); + return (Criteria) this; + } + + public Criteria andQuestionnaireDetailIdNotBetween(Long value1, Long value2) { + addCriterion("questionnaire_detail_id not between", value1, value2, "questionnaireDetailId"); + return (Criteria) this; + } + + public Criteria andQuestionCodeIsNull() { + addCriterion("question_code is null"); + return (Criteria) this; + } + + public Criteria andQuestionCodeIsNotNull() { + addCriterion("question_code is not null"); + return (Criteria) this; + } + + public Criteria andQuestionCodeEqualTo(String value) { + addCriterion("question_code =", value, "questionCode"); + return (Criteria) this; + } + + public Criteria andQuestionCodeNotEqualTo(String value) { + addCriterion("question_code <>", value, "questionCode"); + return (Criteria) this; + } + + public Criteria andQuestionCodeGreaterThan(String value) { + addCriterion("question_code >", value, "questionCode"); + return (Criteria) this; + } + + public Criteria andQuestionCodeGreaterThanOrEqualTo(String value) { + addCriterion("question_code >=", value, "questionCode"); + return (Criteria) this; + } + + public Criteria andQuestionCodeLessThan(String value) { + addCriterion("question_code <", value, "questionCode"); + return (Criteria) this; + } + + public Criteria andQuestionCodeLessThanOrEqualTo(String value) { + addCriterion("question_code <=", value, "questionCode"); + return (Criteria) this; + } + + public Criteria andQuestionCodeLike(String value) { + addCriterion("question_code like", value, "questionCode"); + return (Criteria) this; + } + + public Criteria andQuestionCodeNotLike(String value) { + addCriterion("question_code not like", value, "questionCode"); + return (Criteria) this; + } + + public Criteria andQuestionCodeIn(List values) { + addCriterion("question_code in", values, "questionCode"); + return (Criteria) this; + } + + public Criteria andQuestionCodeNotIn(List values) { + addCriterion("question_code not in", values, "questionCode"); + return (Criteria) this; + } + + public Criteria andQuestionCodeBetween(String value1, String value2) { + addCriterion("question_code between", value1, value2, "questionCode"); + return (Criteria) this; + } + + public Criteria andQuestionCodeNotBetween(String value1, String value2) { + addCriterion("question_code not between", value1, value2, "questionCode"); + return (Criteria) this; + } + + public Criteria andAnswerIsNull() { + addCriterion("answer is null"); + return (Criteria) this; + } + + public Criteria andAnswerIsNotNull() { + addCriterion("answer is not null"); + return (Criteria) this; + } + + public Criteria andAnswerEqualTo(String value) { + addCriterion("answer =", value, "answer"); + return (Criteria) this; + } + + public Criteria andAnswerNotEqualTo(String value) { + addCriterion("answer <>", value, "answer"); + return (Criteria) this; + } + + public Criteria andAnswerGreaterThan(String value) { + addCriterion("answer >", value, "answer"); + return (Criteria) this; + } + + public Criteria andAnswerGreaterThanOrEqualTo(String value) { + addCriterion("answer >=", value, "answer"); + return (Criteria) this; + } + + public Criteria andAnswerLessThan(String value) { + addCriterion("answer <", value, "answer"); + return (Criteria) this; + } + + public Criteria andAnswerLessThanOrEqualTo(String value) { + addCriterion("answer <=", value, "answer"); + return (Criteria) this; + } + + public Criteria andAnswerLike(String value) { + addCriterion("answer like", value, "answer"); + return (Criteria) this; + } + + public Criteria andAnswerNotLike(String value) { + addCriterion("answer not like", value, "answer"); + return (Criteria) this; + } + + public Criteria andAnswerIn(List values) { + addCriterion("answer in", values, "answer"); + return (Criteria) this; + } + + public Criteria andAnswerNotIn(List values) { + addCriterion("answer not in", values, "answer"); + return (Criteria) this; + } + + public Criteria andAnswerBetween(String value1, String value2) { + addCriterion("answer between", value1, value2, "answer"); + return (Criteria) this; + } + + public Criteria andAnswerNotBetween(String value1, String value2) { + addCriterion("answer not between", value1, value2, "answer"); + return (Criteria) this; + } + + public Criteria andCreatedAtIsNull() { + addCriterion("created_at is null"); + return (Criteria) this; + } + + public Criteria andCreatedAtIsNotNull() { + addCriterion("created_at is not null"); + return (Criteria) this; + } + + public Criteria andCreatedAtEqualTo(Date value) { + addCriterion("created_at =", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotEqualTo(Date value) { + addCriterion("created_at <>", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtGreaterThan(Date value) { + addCriterion("created_at >", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtGreaterThanOrEqualTo(Date value) { + addCriterion("created_at >=", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtLessThan(Date value) { + addCriterion("created_at <", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtLessThanOrEqualTo(Date value) { + addCriterion("created_at <=", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtIn(List values) { + addCriterion("created_at in", values, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotIn(List values) { + addCriterion("created_at not in", values, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtBetween(Date value1, Date value2) { + addCriterion("created_at between", value1, value2, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotBetween(Date value1, Date value2) { + addCriterion("created_at not between", value1, value2, "createdAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIsNull() { + addCriterion("updated_at is null"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIsNotNull() { + addCriterion("updated_at is not null"); + return (Criteria) this; + } + + public Criteria andUpdatedAtEqualTo(Date value) { + addCriterion("updated_at =", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotEqualTo(Date value) { + addCriterion("updated_at <>", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtGreaterThan(Date value) { + addCriterion("updated_at >", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtGreaterThanOrEqualTo(Date value) { + addCriterion("updated_at >=", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtLessThan(Date value) { + addCriterion("updated_at <", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtLessThanOrEqualTo(Date value) { + addCriterion("updated_at <=", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIn(List values) { + addCriterion("updated_at in", values, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotIn(List values) { + addCriterion("updated_at not in", values, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtBetween(Date value1, Date value2) { + addCriterion("updated_at between", value1, value2, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotBetween(Date value1, Date value2) { + addCriterion("updated_at not between", value1, value2, "updatedAt"); + return (Criteria) this; + } + + public Criteria andRecStatusIsNull() { + addCriterion("rec_status is null"); + return (Criteria) this; + } + + public Criteria andRecStatusIsNotNull() { + addCriterion("rec_status is not null"); + return (Criteria) this; + } + + public Criteria andRecStatusEqualTo(Byte value) { + addCriterion("rec_status =", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotEqualTo(Byte value) { + addCriterion("rec_status <>", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusGreaterThan(Byte value) { + addCriterion("rec_status >", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusGreaterThanOrEqualTo(Byte value) { + addCriterion("rec_status >=", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusLessThan(Byte value) { + addCriterion("rec_status <", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusLessThanOrEqualTo(Byte value) { + addCriterion("rec_status <=", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusIn(List values) { + addCriterion("rec_status in", values, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotIn(List values) { + addCriterion("rec_status not in", values, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusBetween(Byte value1, Byte value2) { + addCriterion("rec_status between", value1, value2, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotBetween(Byte value1, Byte value2) { + addCriterion("rec_status not between", value1, value2, "recStatus"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/ccsens/carbasics/bean/vo/QuestionnaireVo.java b/src/main/java/com/ccsens/carbasics/bean/vo/QuestionnaireVo.java index f1f8951..e2062b0 100644 --- a/src/main/java/com/ccsens/carbasics/bean/vo/QuestionnaireVo.java +++ b/src/main/java/com/ccsens/carbasics/bean/vo/QuestionnaireVo.java @@ -23,18 +23,10 @@ public class QuestionnaireVo { @Data @ApiModel("问卷信息") public static class QuestionnaireInfo { - @ApiModelProperty("问卷id") - private Long id; - @ApiModelProperty("问卷名称") - private String questionnaireName; - @ApiModelProperty("开始时间") - private Long start; - @ApiModelProperty("结束时间") - private Long end; - @ApiModelProperty("类型(0-卒中)") - private Byte type; - @ApiModelProperty("详情") - private QuestionnaireDetail detail; + @ApiModelProperty("code") + private String code; + @ApiModelProperty("答案") + private String answer; } @Data @@ -47,10 +39,10 @@ public class QuestionnaireVo { @ApiModelProperty("问卷类型(0-卒中)") private Byte type; @ApiModelProperty("填写状态(-1-未填写,0-保存,1-修改)") - private Byte isWrite; + private Integer isWrite; @JsonIgnore - @ApiModelProperty("详情id") - private String detailId; + @ApiModelProperty("记录id") + private Long recordId; @ApiModelProperty("问卷开始时间") private Long start; @ApiModelProperty("问卷结束时间") @@ -70,4 +62,13 @@ public class QuestionnaireVo { @ApiModelProperty("职位名称") private String name; } + + @Data + @ApiModel("问卷详情信息") + public static class DetailInfo { + @ApiModelProperty("问卷详情id") + private Long detailId; + @ApiModelProperty("问卷id") + private Long id; + } } diff --git a/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDao.java b/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDao.java index 2589137..6a6987e 100644 --- a/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDao.java +++ b/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDao.java @@ -11,14 +11,6 @@ import java.util.List; @Repository public interface QuestionnaireDao extends QuestionnaireMapper { - /** - * 查询问卷信息 - * @param time 当前时间 - * @param type 问卷类型 - * @param userId 用户id - * @return 问卷信息 - */ - QuestionnaireVo.QuestionnaireInfo queryQuestionnaire(@Param("time") Long time,@Param("type") Byte type,@Param("userId") Long userId); /** * 查询医院是否填写问卷调查 @@ -35,4 +27,11 @@ public interface QuestionnaireDao extends QuestionnaireMapper { * @return 数据 */ QuestionnaireVo.QuestionnaireInfo queryRepeat(@Param("name") String hospitalName,@Param("qid") Long qid); + + /** + * 查询需要填写的问卷列表 + * @param time 当前事件 + * @return 问卷列表 + */ + List queryByTime(@Param("time") Long time); } diff --git a/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDetailDao.java b/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDetailDao.java index ef303da..bc82c45 100644 --- a/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDetailDao.java +++ b/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDetailDao.java @@ -1,8 +1,40 @@ package com.ccsens.carbasics.persist.dao; +import com.ccsens.carbasics.bean.vo.QuestionnaireVo; import com.ccsens.carbasics.persist.mapper.QuestionnaireDetailMapper; +import io.lettuce.core.dynamic.annotation.Key; +import org.apache.ibatis.annotations.MapKey; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + @Repository public interface QuestionnaireDetailDao extends QuestionnaireDetailMapper { + /** + * 查询用户是否填写 + * @param userId 用户id + * @param qid 问卷id + * @return 填写状态 + */ + Integer querySubmitStatus(@Param("userId") Long userId,@Param("qid") Long qid); + + /** + * 查询用户是否有此问卷的详情 + * @param type 问卷类型 + * @param userId 用户id + * @param time 当前时间 + * @return 问卷详情id + */ + QuestionnaireVo.DetailInfo queryIsExist(@Param("type") Byte type,@Param("userId") Long userId,@Param("time") Long time); + + /** + * 查询问卷详情 + * @param qid 问卷id + * @param userId 用户id + * @return code与答案 + */ + List queryDetail(@Param("qid") Long qid, @Param("userId") Long userId); } diff --git a/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireRecordDao.java b/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireRecordDao.java new file mode 100644 index 0000000..064c89d --- /dev/null +++ b/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireRecordDao.java @@ -0,0 +1,15 @@ +package com.ccsens.carbasics.persist.dao; + +import com.ccsens.carbasics.persist.mapper.QuestionnaireRecordMapper; +import org.apache.ibatis.annotations.Param; + +public interface QuestionnaireRecordDao extends QuestionnaireRecordMapper { + + /** + * 查询是否已经填写code + * @param detailId 问卷详情id + * @param code 试题code + * @return 记录id + */ + Long queryIsExist(@Param("detailId") Long detailId,@Param("code") String code); +} diff --git a/src/main/java/com/ccsens/carbasics/persist/mapper/QuestionnaireRecordMapper.java b/src/main/java/com/ccsens/carbasics/persist/mapper/QuestionnaireRecordMapper.java new file mode 100644 index 0000000..688b435 --- /dev/null +++ b/src/main/java/com/ccsens/carbasics/persist/mapper/QuestionnaireRecordMapper.java @@ -0,0 +1,30 @@ +package com.ccsens.carbasics.persist.mapper; + +import com.ccsens.carbasics.bean.po.QuestionnaireRecord; +import com.ccsens.carbasics.bean.po.QuestionnaireRecordExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface QuestionnaireRecordMapper { + long countByExample(QuestionnaireRecordExample example); + + int deleteByExample(QuestionnaireRecordExample example); + + int deleteByPrimaryKey(Long id); + + int insert(QuestionnaireRecord record); + + int insertSelective(QuestionnaireRecord record); + + List selectByExample(QuestionnaireRecordExample example); + + QuestionnaireRecord selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") QuestionnaireRecord record, @Param("example") QuestionnaireRecordExample example); + + int updateByExample(@Param("record") QuestionnaireRecord record, @Param("example") QuestionnaireRecordExample example); + + int updateByPrimaryKeySelective(QuestionnaireRecord record); + + int updateByPrimaryKey(QuestionnaireRecord record); +} \ No newline at end of file diff --git a/src/main/java/com/ccsens/carbasics/service/AsyncService.java b/src/main/java/com/ccsens/carbasics/service/AsyncService.java index b6db4ce..094d758 100644 --- a/src/main/java/com/ccsens/carbasics/service/AsyncService.java +++ b/src/main/java/com/ccsens/carbasics/service/AsyncService.java @@ -75,167 +75,167 @@ public class AsyncService implements IAsyncService { @Override public void createHospitalOfNotExit(QuestionnaireDto.SaveQuestionnaire param, Long userId) throws Exception { - String departmentCode = ""; - if (Constant.DepartmentAndCode.SHEN_NEI.name.equals(param.getDepartments())) { - departmentCode = Constant.DepartmentAndCode.SHEN_NEI.code; - } - if (Constant.DepartmentAndCode.NEI_KE.name.equals(param.getDepartments())) { - departmentCode = Constant.DepartmentAndCode.NEI_KE.code; - } - - Organization organization = organizationDao.queryByName(param.getHospitalName()); - if (ObjectUtil.isNull(organization)) { - //创建医院 - Organization newOrganization = new Organization(); - newOrganization.setId(snowflake.nextId()); - newOrganization.setName(param.getHospitalName()); - newOrganization.setLevel(param.getHospitalLevel()); - newOrganization.setOrganizationType(Constant.OrganizationType.HOSPITAL.status); - organizationDao.insertSelective(newOrganization); - //创建部门 - OrganizationDepartment department = new OrganizationDepartment(); - department.setId(snowflake.nextId()); - department.setName(param.getDepartments()); - department.setCode(departmentCode); - department.setOrganizationId(newOrganization.getId()); - departmentDao.insertSelective(department); - //创建用户 - //查询用户是否存在 - OrganizationMember organizationMember = organizationMemberDao.queryExistByUserId(userId); - Long memberId = 0L; - if (ObjectUtil.isNull(organizationMember)) { - OrganizationMember member = new OrganizationMember(); - member.setId(snowflake.nextId()); - member.setUserId(userId); - member.setName(param.getName()); - member.setContact(param.getPhone()); - organizationMemberDao.insertSelective(member); - memberId = member.getId(); - }else { - memberId = organizationMember.getId(); - } - //添加成员职位 - //判断成员职位是否存在 - Long isExist = organizationMemberPositionDao.queryByExistByMember(memberId,param.getPositionId(),department.getId()); - if (isExist == 0) { - OrganizationMemberPosition position = new OrganizationMemberPosition(); - position.setId(snowflake.nextId()); - position.setPositionId(param.getPositionId()); - position.setDepartmentId(department.getId()); - position.setMemberId(memberId); - organizationMemberPositionDao.insertSelective(position); - } - //创建项目 - createProject(newOrganization.getId(),param,userId); - PatientDto.SavePatient savePatient = new PatientDto.SavePatient(); - firstAidService.getFirstAid(savePatient,userId,(byte)1,newOrganization.getId()); - }else { - OrganizationDepartment department = departmentDao.queryByOrganization(organization.getId(),departmentCode); - //查询项目机构是否绑定项目 - OrganizationProject project = organizationProjectDao.queryByOrganizationId(organization.getId()); - if (ObjectUtil.isNull(project)) { - createProject(organization.getId(),param,userId); - PatientDto.SavePatient savePatient = new PatientDto.SavePatient(); - firstAidService.getFirstAid(savePatient,userId,(byte)1,organization.getId()); - } - if (ObjectUtil.isNull(department)) { - //创建部门 - OrganizationDepartment newDepartment = new OrganizationDepartment(); - newDepartment.setId(snowflake.nextId()); - newDepartment.setCode(departmentCode); - newDepartment.setName(param.getDepartments()); - newDepartment.setOrganizationId(organization.getId()); - departmentDao.insertSelective(newDepartment); - //创建用户 - //查询用户是否存在 - OrganizationMember organizationMember = organizationMemberDao.queryExistByUserId(userId); - Long memberId = 0L; - if (ObjectUtil.isNull(organizationMember)) { - OrganizationMember member = new OrganizationMember(); - member.setId(snowflake.nextId()); - member.setUserId(userId); - member.setName(param.getName()); - member.setContact(param.getPhone()); - organizationMemberDao.insertSelective(member); - memberId = member.getId(); - }else { - memberId = organizationMember.getId(); - } - //添加成员职位 - //判断成员职位是否存在 - Long isExist = organizationMemberPositionDao.queryByExistByMember(memberId,param.getPositionId(),newDepartment.getId()); - if (isExist == 0) { - OrganizationMemberPosition position = new OrganizationMemberPosition(); - position.setId(snowflake.nextId()); - position.setPositionId(param.getPositionId()); - position.setDepartmentId(department.getId()); - position.setMemberId(memberId); - organizationMemberPositionDao.insertSelective(position); - } - }else { - //创建用户 - //查询用户是否存在 - OrganizationMember organizationMember = organizationMemberDao.queryExistByUserId(userId); - Long memberId = 0L; - if (ObjectUtil.isNull(organizationMember)) { - OrganizationMember member = new OrganizationMember(); - member.setId(snowflake.nextId()); - member.setUserId(userId); - member.setName(param.getName()); - member.setContact(param.getPhone()); - organizationMemberDao.insertSelective(member); - memberId = member.getId(); - }else { - memberId = organizationMember.getId(); - } - //添加成员职位 - //判断成员职位是否存在 - Long isExist = organizationMemberPositionDao.queryByExistByMember(memberId,param.getPositionId(),department.getId()); - if (isExist == 0) { - OrganizationMemberPosition position = new OrganizationMemberPosition(); - position.setId(snowflake.nextId()); - position.setPositionId(param.getPositionId()); - position.setDepartmentId(department.getId()); - position.setMemberId(memberId); - organizationMemberPositionDao.insertSelective(position); - } - } - } +// String departmentCode = ""; +// if (Constant.DepartmentAndCode.SHEN_NEI.name.equals(param.getDepartments())) { +// departmentCode = Constant.DepartmentAndCode.SHEN_NEI.code; +// } +// if (Constant.DepartmentAndCode.NEI_KE.name.equals(param.getDepartments())) { +// departmentCode = Constant.DepartmentAndCode.NEI_KE.code; +// } +// +// Organization organization = organizationDao.queryByName(param.getHospitalName()); +// if (ObjectUtil.isNull(organization)) { +// //创建医院 +// Organization newOrganization = new Organization(); +// newOrganization.setId(snowflake.nextId()); +// newOrganization.setName(param.getHospitalName()); +// newOrganization.setLevel(param.getHospitalLevel()); +// newOrganization.setOrganizationType(Constant.OrganizationType.HOSPITAL.status); +// organizationDao.insertSelective(newOrganization); +// //创建部门 +// OrganizationDepartment department = new OrganizationDepartment(); +// department.setId(snowflake.nextId()); +// department.setName(param.getDepartments()); +// department.setCode(departmentCode); +// department.setOrganizationId(newOrganization.getId()); +// departmentDao.insertSelective(department); +// //创建用户 +// //查询用户是否存在 +// OrganizationMember organizationMember = organizationMemberDao.queryExistByUserId(userId); +// Long memberId = 0L; +// if (ObjectUtil.isNull(organizationMember)) { +// OrganizationMember member = new OrganizationMember(); +// member.setId(snowflake.nextId()); +// member.setUserId(userId); +// member.setName(param.getName()); +// member.setContact(param.getPhone()); +// organizationMemberDao.insertSelective(member); +// memberId = member.getId(); +// }else { +// memberId = organizationMember.getId(); +// } +// //添加成员职位 +// //判断成员职位是否存在 +// Long isExist = organizationMemberPositionDao.queryByExistByMember(memberId,param.getPositionId(),department.getId()); +// if (isExist == 0) { +// OrganizationMemberPosition position = new OrganizationMemberPosition(); +// position.setId(snowflake.nextId()); +// position.setPositionId(param.getPositionId()); +// position.setDepartmentId(department.getId()); +// position.setMemberId(memberId); +// organizationMemberPositionDao.insertSelective(position); +// } +// //创建项目 +// createProject(newOrganization.getId(),param,userId); +// PatientDto.SavePatient savePatient = new PatientDto.SavePatient(); +// firstAidService.getFirstAid(savePatient,userId,(byte)1,newOrganization.getId()); +// }else { +// OrganizationDepartment department = departmentDao.queryByOrganization(organization.getId(),departmentCode); +// //查询项目机构是否绑定项目 +// OrganizationProject project = organizationProjectDao.queryByOrganizationId(organization.getId()); +// if (ObjectUtil.isNull(project)) { +// createProject(organization.getId(),param,userId); +// PatientDto.SavePatient savePatient = new PatientDto.SavePatient(); +// firstAidService.getFirstAid(savePatient,userId,(byte)1,organization.getId()); +// } +// if (ObjectUtil.isNull(department)) { +// //创建部门 +// OrganizationDepartment newDepartment = new OrganizationDepartment(); +// newDepartment.setId(snowflake.nextId()); +// newDepartment.setCode(departmentCode); +// newDepartment.setName(param.getDepartments()); +// newDepartment.setOrganizationId(organization.getId()); +// departmentDao.insertSelective(newDepartment); +// //创建用户 +// //查询用户是否存在 +// OrganizationMember organizationMember = organizationMemberDao.queryExistByUserId(userId); +// Long memberId = 0L; +// if (ObjectUtil.isNull(organizationMember)) { +// OrganizationMember member = new OrganizationMember(); +// member.setId(snowflake.nextId()); +// member.setUserId(userId); +// member.setName(param.getName()); +// member.setContact(param.getPhone()); +// organizationMemberDao.insertSelective(member); +// memberId = member.getId(); +// }else { +// memberId = organizationMember.getId(); +// } +// //添加成员职位 +// //判断成员职位是否存在 +// Long isExist = organizationMemberPositionDao.queryByExistByMember(memberId,param.getPositionId(),newDepartment.getId()); +// if (isExist == 0) { +// OrganizationMemberPosition position = new OrganizationMemberPosition(); +// position.setId(snowflake.nextId()); +// position.setPositionId(param.getPositionId()); +// position.setDepartmentId(department.getId()); +// position.setMemberId(memberId); +// organizationMemberPositionDao.insertSelective(position); +// } +// }else { +// //创建用户 +// //查询用户是否存在 +// OrganizationMember organizationMember = organizationMemberDao.queryExistByUserId(userId); +// Long memberId = 0L; +// if (ObjectUtil.isNull(organizationMember)) { +// OrganizationMember member = new OrganizationMember(); +// member.setId(snowflake.nextId()); +// member.setUserId(userId); +// member.setName(param.getName()); +// member.setContact(param.getPhone()); +// organizationMemberDao.insertSelective(member); +// memberId = member.getId(); +// }else { +// memberId = organizationMember.getId(); +// } +// //添加成员职位 +// //判断成员职位是否存在 +// Long isExist = organizationMemberPositionDao.queryByExistByMember(memberId,param.getPositionId(),department.getId()); +// if (isExist == 0) { +// OrganizationMemberPosition position = new OrganizationMemberPosition(); +// position.setId(snowflake.nextId()); +// position.setPositionId(param.getPositionId()); +// position.setDepartmentId(department.getId()); +// position.setMemberId(memberId); +// organizationMemberPositionDao.insertSelective(position); +// } +// } +// } } public void createProject(Long organizationId,QuestionnaireDto.SaveQuestionnaire param,Long userId) { - OrganizationProject project = organizationProjectDao.queryByOrganizationId(organizationId); - if (ObjectUtil.isNull(project)) { - //创建项目 - CProjectDto.CopyProject copyProject = new CProjectDto.CopyProject(); - copyProject.setProjectId((Long) redisUtil.get(Constant.TEMPLATE_PROJECT_KEY_ORGANIZATION)); - copyProject.setProjectName(param.getHospitalName()); - CProjectVo.CopyProjectInfo copyProjectInfo = projectService.copyProject(copyProject, userId); - //添加角色 - CMemberDto.SaveMember saveMember = new CMemberDto.SaveMember(); - saveMember.setProjectId(copyProjectInfo.getId()); - saveMember.setRoleName(Constant.RoleName.SHEN_NEI); - saveMember.setName(param.getName()); - saveMember.setPhone(param.getPhone()); - saveMember.setUserId(userId); - memberService.addMemberForProject(saveMember); - //绑定机构和项目 - OrganizationProject organizationProject = new OrganizationProject(); - organizationProject.setId(snowflake.nextId()); - organizationProject.setOrganizationId(organizationId); - organizationProject.setProjectId(copyProjectInfo.getId()); - organizationProjectDao.insertSelective(organizationProject); - }else { - CMemberDto.SaveMember saveMember = new CMemberDto.SaveMember(); - saveMember.setProjectId(project.getProjectId()); - saveMember.setRoleName(Constant.RoleName.SHEN_NEI); - saveMember.setName(param.getName()); - saveMember.setPhone(param.getPhone()); - saveMember.setUserId(userId); - memberService.addMemberForProject(saveMember); - } +// OrganizationProject project = organizationProjectDao.queryByOrganizationId(organizationId); +// if (ObjectUtil.isNull(project)) { +// //创建项目 +// CProjectDto.CopyProject copyProject = new CProjectDto.CopyProject(); +// copyProject.setProjectId((Long) redisUtil.get(Constant.TEMPLATE_PROJECT_KEY_ORGANIZATION)); +// copyProject.setProjectName(param.getHospitalName()); +// CProjectVo.CopyProjectInfo copyProjectInfo = projectService.copyProject(copyProject, userId); +// //添加角色 +// CMemberDto.SaveMember saveMember = new CMemberDto.SaveMember(); +// saveMember.setProjectId(copyProjectInfo.getId()); +// saveMember.setRoleName(Constant.RoleName.SHEN_NEI); +// saveMember.setName(param.getName()); +// saveMember.setPhone(param.getPhone()); +// saveMember.setUserId(userId); +// memberService.addMemberForProject(saveMember); +// //绑定机构和项目 +// OrganizationProject organizationProject = new OrganizationProject(); +// organizationProject.setId(snowflake.nextId()); +// organizationProject.setOrganizationId(organizationId); +// organizationProject.setProjectId(copyProjectInfo.getId()); +// organizationProjectDao.insertSelective(organizationProject); +// }else { +// CMemberDto.SaveMember saveMember = new CMemberDto.SaveMember(); +// saveMember.setProjectId(project.getProjectId()); +// saveMember.setRoleName(Constant.RoleName.SHEN_NEI); +// saveMember.setName(param.getName()); +// saveMember.setPhone(param.getPhone()); +// saveMember.setUserId(userId); +// memberService.addMemberForProject(saveMember); +// } } } diff --git a/src/main/java/com/ccsens/carbasics/service/IQuestionnaireService.java b/src/main/java/com/ccsens/carbasics/service/IQuestionnaireService.java index 91a6485..396f970 100644 --- a/src/main/java/com/ccsens/carbasics/service/IQuestionnaireService.java +++ b/src/main/java/com/ccsens/carbasics/service/IQuestionnaireService.java @@ -4,7 +4,9 @@ package com.ccsens.carbasics.service; import com.ccsens.carbasics.bean.dto.QuestionnaireDto; import com.ccsens.carbasics.bean.vo.QuestionnaireVo; +import java.util.HashMap; import java.util.List; +import java.util.Map; public interface IQuestionnaireService { /** @@ -21,7 +23,7 @@ public interface IQuestionnaireService { * @param userId 用户id * @return 问卷信息 */ - QuestionnaireVo.QuestionnaireInfo queryQuestionnaire(QuestionnaireDto.QueryQuestionnaire param, Long userId); + HashMap queryQuestionnaire(QuestionnaireDto.QueryQuestionnaire param, Long userId); /** * @@ -46,4 +48,19 @@ public interface IQuestionnaireService { * @return */ List queryPosition(Long userId); + + /** + * 提交问卷(修改问卷详情状态) + * @param param 问卷详情id + * @param userId 用户id + */ + void submitQuestionnaire(QuestionnaireDto.SubmitQuestionnaire param, Long userId); + + /** + * 为用户创建问卷详情 + * @param param 问卷id + * @param userId 用户id + * @return 问卷id与问卷详情id + */ + QuestionnaireVo.DetailInfo createDetail(QuestionnaireDto.CreateDetail param, Long userId); } diff --git a/src/main/java/com/ccsens/carbasics/service/QuestionnaireService.java b/src/main/java/com/ccsens/carbasics/service/QuestionnaireService.java index 19c4020..b496b86 100644 --- a/src/main/java/com/ccsens/carbasics/service/QuestionnaireService.java +++ b/src/main/java/com/ccsens/carbasics/service/QuestionnaireService.java @@ -1,14 +1,17 @@ package com.ccsens.carbasics.service; -import cn.hutool.core.bean.BeanUtil; + +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.ObjectUtil; import com.ccsens.carbasics.bean.dto.QuestionnaireDto; import com.ccsens.carbasics.bean.po.Organization; +import com.ccsens.carbasics.bean.po.Questionnaire; import com.ccsens.carbasics.bean.po.QuestionnaireDetail; +import com.ccsens.carbasics.bean.po.QuestionnaireRecord; import com.ccsens.carbasics.bean.vo.QuestionnaireVo; import com.ccsens.carbasics.persist.dao.*; -import com.ccsens.carbasics.persist.mapper.OrganizationPositionMapper; +import com.ccsens.carbasics.util.Constant; import com.ccsens.carbasics.util.DefaultCodeError; import com.ccsens.util.exception.BaseException; import lombok.extern.slf4j.Slf4j; @@ -18,7 +21,9 @@ 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; @Slf4j @@ -40,6 +45,8 @@ public class QuestionnaireService implements IQuestionnaireService{ private IAsyncService asyncService; @Resource private OrganizationPositionDao positionDao; + @Resource + private QuestionnaireRecordDao recordDao; @Override public List queryArea(QuestionnaireDto.QueryArea param, Long userId) { @@ -51,111 +58,132 @@ public class QuestionnaireService implements IQuestionnaireService{ @Override - public QuestionnaireVo.QuestionnaireInfo queryQuestionnaire(QuestionnaireDto.QueryQuestionnaire param, Long userId) { - return questionnaireDao.queryQuestionnaire(param.getTime(),param.getType(),userId); + public HashMap queryQuestionnaire(QuestionnaireDto.QueryQuestionnaire param, Long userId) { + List infoList = questionnaireDetailDao.queryDetail(param.getId(),userId); + HashMap map = new HashMap<>(); + if (CollectionUtil.isNotEmpty(infoList)) { + for (QuestionnaireVo.QuestionnaireInfo codeAndAnswer : infoList) { + map.put(codeAndAnswer.getCode(),codeAndAnswer.getAnswer()); + } + } + return map; } @Override public void saveQuestionnaire(QuestionnaireDto.SaveQuestionnaire param, Long userId) throws Exception { //校验介入治疗字段 - if (1 == param.getPciStatus()) { - if (ObjectUtil.isNull(param.getAisNumberSix())){ - throw new BaseException(DefaultCodeError.PCI_NOT_NULL); - } - if (ObjectUtil.isNull(param.getShouldDirectly())) { - throw new BaseException(DefaultCodeError.PCI_NOT_NULL); - } - if (ObjectUtil.isNull(param.getDptMedianNumber())) { - throw new BaseException(DefaultCodeError.PCI_NOT_NULL); - } - if (ObjectUtil.isNull(param.getPrtMedianNumber())) { - throw new BaseException(DefaultCodeError.PCI_NOT_NULL); - } - if (ObjectUtil.isNull(param.getJmrsNumberTwo())) { - throw new BaseException(DefaultCodeError.PCI_NOT_NULL); - } - if (ObjectUtil.isNull(param.getDeathNumber())) { - throw new BaseException(DefaultCodeError.PCI_NOT_NULL); - } - } - - //查询是否有已提交的,如果有只能保存 - Long time = System.currentTimeMillis(); - QuestionnaireVo.QuestionnaireInfo questionnaireInfo = questionnaireDao.queryRepeat(param.getHospitalName(),param.getQuestionnaireId()); - if (ObjectUtil.isNotNull(questionnaireInfo.getDetail())) { - //1.提交数据,2.不是修改 - if (1 == param.getSubmitStatus() && ObjectUtil.isNull(param.getDetailId())) { - QuestionnaireDetail questionnaireDetail = new QuestionnaireDetail(); - BeanUtil.copyProperties(param,questionnaireDetail); - questionnaireDetail.setId(snowflake.nextId()); - questionnaireDetail.setQuestionnaireId(param.getQuestionnaireId()); - questionnaireDetail.setUserId(userId); - questionnaireDetail.setSubmitStatus((byte)0); - questionnaireDetailDao.insertSelective(questionnaireDetail); - } - //1.提交数据,2.修改,3.与库中已有提交人一致 - if (1 == param.getSubmitStatus() && ObjectUtil.isNotNull(param.getDetailId()) && userId.equals(questionnaireInfo.getDetail().getUserId())) { - throw new BaseException(DefaultCodeError.HOSPITAL_REPEAT_SUBMIT); - } - //1.提交数据,2.修改,3.与库中已有提交人不一致 - if (1 == param.getSubmitStatus() && ObjectUtil.isNotNull(param.getDetailId()) && !userId.equals(questionnaireInfo.getDetail().getUserId())) { - QuestionnaireDetail questionnaireDetail = new QuestionnaireDetail(); - BeanUtil.copyProperties(param,questionnaireDetail); - questionnaireDetail.setId(param.getDetailId()); - questionnaireDetail.setQuestionnaireId(param.getQuestionnaireId()); - questionnaireDetail.setUserId(userId); - questionnaireDetail.setSubmitStatus((byte)0); - questionnaireDetailDao.updateByPrimaryKeySelective(questionnaireDetail); - } - //1.保存数据,2.修改的数据为已提交数据 - if (0 == param.getSubmitStatus() && ObjectUtil.isNotNull(param.getDetailId()) && param.getDetailId().equals(questionnaireInfo.getDetail().getId())) { - throw new BaseException(DefaultCodeError.HOSPITAL_REPEAT_SUBMIT); - } - - //1.保存数据,2.非修改 - if (0 == param.getSubmitStatus() && ObjectUtil.isNull(param.getDetailId())) { - QuestionnaireDetail questionnaireDetail = new QuestionnaireDetail(); - BeanUtil.copyProperties(param,questionnaireDetail); - questionnaireDetail.setId(snowflake.nextId()); - questionnaireDetail.setQuestionnaireId(param.getQuestionnaireId()); - questionnaireDetail.setUserId(userId); - questionnaireDetail.setSubmitStatus((byte)0); - questionnaireDetailDao.insertSelective(questionnaireDetail); - } - //1.保存数据,2.修改 - if (0 == param.getSubmitStatus() && ObjectUtil.isNotNull(param.getDetailId())) { - QuestionnaireDetail questionnaireDetail = new QuestionnaireDetail(); - BeanUtil.copyProperties(param,questionnaireDetail); - questionnaireDetail.setId(param.getDetailId()); - questionnaireDetail.setQuestionnaireId(param.getQuestionnaireId()); - questionnaireDetail.setUserId(userId); - questionnaireDetail.setSubmitStatus((byte)0); - questionnaireDetailDao.updateByPrimaryKeySelective(questionnaireDetail); - } +// if (1 == param.getPciStatus()) { +// if (ObjectUtil.isNull(param.getAisNumberSix())){ +// throw new BaseException(DefaultCodeError.PCI_NOT_NULL); +// } +// if (ObjectUtil.isNull(param.getShouldDirectly())) { +// throw new BaseException(DefaultCodeError.PCI_NOT_NULL); +// } +// if (ObjectUtil.isNull(param.getDptMedianNumber())) { +// throw new BaseException(DefaultCodeError.PCI_NOT_NULL); +// } +// if (ObjectUtil.isNull(param.getPrtMedianNumber())) { +// throw new BaseException(DefaultCodeError.PCI_NOT_NULL); +// } +// if (ObjectUtil.isNull(param.getJmrsNumberTwo())) { +// throw new BaseException(DefaultCodeError.PCI_NOT_NULL); +// } +// if (ObjectUtil.isNull(param.getDeathNumber())) { +// throw new BaseException(DefaultCodeError.PCI_NOT_NULL); +// } +// } +// +// //查询是否有已提交的,如果有只能保存 +// Long time = System.currentTimeMillis(); +// QuestionnaireVo.QuestionnaireInfo questionnaireInfo = questionnaireDao.queryRepeat(param.getHospitalName(),param.getQuestionnaireId()); +// if (ObjectUtil.isNotNull(questionnaireInfo.getDetail())) { +// //1.提交数据,2.不是修改 +// if (1 == param.getSubmitStatus() && ObjectUtil.isNull(param.getDetailId())) { +// QuestionnaireDetail questionnaireDetail = new QuestionnaireDetail(); +// BeanUtil.copyProperties(param,questionnaireDetail); +// questionnaireDetail.setId(snowflake.nextId()); +// questionnaireDetail.setQuestionnaireId(param.getQuestionnaireId()); +// questionnaireDetail.setUserId(userId); +// questionnaireDetail.setSubmitStatus((byte)0); +// questionnaireDetailDao.insertSelective(questionnaireDetail); +// } +// //1.提交数据,2.修改,3.与库中已有提交人一致 +// if (1 == param.getSubmitStatus() && ObjectUtil.isNotNull(param.getDetailId()) && userId.equals(questionnaireInfo.getDetail().getUserId())) { +// throw new BaseException(DefaultCodeError.HOSPITAL_REPEAT_SUBMIT); +// } +// //1.提交数据,2.修改,3.与库中已有提交人不一致 +// if (1 == param.getSubmitStatus() && ObjectUtil.isNotNull(param.getDetailId()) && !userId.equals(questionnaireInfo.getDetail().getUserId())) { +// QuestionnaireDetail questionnaireDetail = new QuestionnaireDetail(); +// BeanUtil.copyProperties(param,questionnaireDetail); +// questionnaireDetail.setId(param.getDetailId()); +// questionnaireDetail.setQuestionnaireId(param.getQuestionnaireId()); +// questionnaireDetail.setUserId(userId); +// questionnaireDetail.setSubmitStatus((byte)0); +// questionnaireDetailDao.updateByPrimaryKeySelective(questionnaireDetail); +// } +// //1.保存数据,2.修改的数据为已提交数据 +// if (0 == param.getSubmitStatus() && ObjectUtil.isNotNull(param.getDetailId()) && param.getDetailId().equals(questionnaireInfo.getDetail().getId())) { +// throw new BaseException(DefaultCodeError.HOSPITAL_REPEAT_SUBMIT); +// } +// +// //1.保存数据,2.非修改 +// if (0 == param.getSubmitStatus() && ObjectUtil.isNull(param.getDetailId())) { +// QuestionnaireDetail questionnaireDetail = new QuestionnaireDetail(); +// BeanUtil.copyProperties(param,questionnaireDetail); +// questionnaireDetail.setId(snowflake.nextId()); +// questionnaireDetail.setQuestionnaireId(param.getQuestionnaireId()); +// questionnaireDetail.setUserId(userId); +// questionnaireDetail.setSubmitStatus((byte)0); +// questionnaireDetailDao.insertSelective(questionnaireDetail); +// } +// //1.保存数据,2.修改 +// if (0 == param.getSubmitStatus() && ObjectUtil.isNotNull(param.getDetailId())) { +// QuestionnaireDetail questionnaireDetail = new QuestionnaireDetail(); +// BeanUtil.copyProperties(param,questionnaireDetail); +// questionnaireDetail.setId(param.getDetailId()); +// questionnaireDetail.setQuestionnaireId(param.getQuestionnaireId()); +// questionnaireDetail.setUserId(userId); +// questionnaireDetail.setSubmitStatus((byte)0); +// questionnaireDetailDao.updateByPrimaryKeySelective(questionnaireDetail); +// } +// }else { +// // 新加数据 +// if (ObjectUtil.isNull(param.getDetailId())) { +// QuestionnaireDetail questionnaireDetail = new QuestionnaireDetail(); +// BeanUtil.copyProperties(param,questionnaireDetail); +// questionnaireDetail.setId(snowflake.nextId()); +// questionnaireDetail.setQuestionnaireId(param.getQuestionnaireId()); +// questionnaireDetail.setUserId(userId); +// questionnaireDetailDao.insertSelective(questionnaireDetail); +// } +// // 修改数据 +// if (ObjectUtil.isNotNull(param.getDetailId())) { +// QuestionnaireDetail questionnaireDetail = new QuestionnaireDetail(); +// BeanUtil.copyProperties(param,questionnaireDetail); +// questionnaireDetail.setId(param.getDetailId()); +// questionnaireDetail.setUserId(userId); +// questionnaireDetailDao.updateByPrimaryKeySelective(questionnaireDetail); +// } +// +// } + Long recordId = recordDao.queryIsExist(param.getDetailId(),param.getCode()); + if (ObjectUtil.isNotNull(recordId)) { + QuestionnaireRecord record = new QuestionnaireRecord(); + record.setId(recordId); + record.setQuestionCode(param.getCode()); + record.setAnswer(param.getAnswer()); + recordDao.updateByPrimaryKeySelective(record); }else { - // 新加数据 - if (ObjectUtil.isNull(param.getDetailId())) { - QuestionnaireDetail questionnaireDetail = new QuestionnaireDetail(); - BeanUtil.copyProperties(param,questionnaireDetail); - questionnaireDetail.setId(snowflake.nextId()); - questionnaireDetail.setQuestionnaireId(param.getQuestionnaireId()); - questionnaireDetail.setUserId(userId); - questionnaireDetailDao.insertSelective(questionnaireDetail); - } - // 修改数据 - if (ObjectUtil.isNotNull(param.getDetailId())) { - QuestionnaireDetail questionnaireDetail = new QuestionnaireDetail(); - BeanUtil.copyProperties(param,questionnaireDetail); - questionnaireDetail.setId(param.getDetailId()); - questionnaireDetail.setUserId(userId); - questionnaireDetailDao.updateByPrimaryKeySelective(questionnaireDetail); - } - + QuestionnaireRecord record = new QuestionnaireRecord(); + record.setId(snowflake.nextId()); + record.setQuestionnaireDetailId(param.getDetailId()); + record.setQuestionCode(param.getCode()); + record.setAnswer(param.getAnswer()); + recordDao.insertSelective(record); } - //如果医院/部门/用户不存在,则创建对应内容 - asyncService.createHospitalOfNotExit(param,userId); +// asyncService.createHospitalOfNotExit(param,userId); } @@ -165,17 +193,19 @@ public class QuestionnaireService implements IQuestionnaireService{ if (ObjectUtil.isNull(organization)) { throw new BaseException(DefaultCodeError.NOT_ORGANIZATION); } - //是否医院 否:返回null - if (3 == organization.getOrganizationType()){ - List writeStatusList = questionnaireDao.queryNotWrite(organization.getName(),param.getTime()); - for (QuestionnaireVo.WriteStatus writeStatus : writeStatusList) { - if (ObjectUtil.isNull(writeStatus.getIsWrite())) { - writeStatus.setIsWrite((byte) -1); + //查询问卷列表 + List questionnaireList = questionnaireDao.queryByTime(param.getTime()); + if (CollectionUtil.isNotEmpty(questionnaireList)) { + for (QuestionnaireVo.WriteStatus questionnaire : questionnaireList) { + //查询填写状态 + Integer submitStatus = questionnaireDetailDao.querySubmitStatus(userId,questionnaire.getId()); + if (ObjectUtil.isNull(submitStatus)) { + questionnaire.setIsWrite(-1); }else { - writeStatus.setIsWrite(writeStatus.getIsWrite()); + questionnaire.setIsWrite(submitStatus); } } - return writeStatusList; + return questionnaireList; } return new ArrayList<>(); } @@ -185,4 +215,43 @@ public class QuestionnaireService implements IQuestionnaireService{ return positionDao.queryPosition(); } + + @Override + public void submitQuestionnaire(QuestionnaireDto.SubmitQuestionnaire param, Long userId) { + QuestionnaireDetail questionnaireDetail = questionnaireDetailDao.selectByPrimaryKey(param.getDetailId()); + if (ObjectUtil.isNull(questionnaireDetail)) { + throw new BaseException(DefaultCodeError.QUESTIONNAIRE_DETAIL_ERROR); + } + // TODO 1.校验字段是否都填写 2.校验是否已经有提交 3.创建项目或加入项目 + QuestionnaireDetail detail = new QuestionnaireDetail(); + detail.setId(param.getDetailId()); + detail.setSubmitStatus(Constant.SubmitStatus.submit.status); + questionnaireDetailDao.updateByPrimaryKeySelective(detail); +// asyncService.createHospitalOfNotExit(); + } + + + @Override + public QuestionnaireVo.DetailInfo createDetail(QuestionnaireDto.CreateDetail param, Long userId) { + long currentTime = System.currentTimeMillis(); + QuestionnaireVo.DetailInfo detailInfo = questionnaireDetailDao.queryIsExist(param.getType(),userId,currentTime); + if (ObjectUtil.isNull(detailInfo)){ + throw new BaseException(DefaultCodeError.QUESTIONNAIRE_DETAIL_ERROR); + } + if (ObjectUtil.isNull(detailInfo.getId())){ + throw new BaseException(DefaultCodeError.QUESTIONNAIRE_DETAIL_ERROR); + } + if (ObjectUtil.isNull(detailInfo.getDetailId())) { + QuestionnaireDetail detail = new QuestionnaireDetail(); + detail.setId(snowflake.nextId()); + detail.setUserId(userId); + detail.setQuestionnaireId(detailInfo.getId()); + detail.setSubmitStatus(Constant.SubmitStatus.save.status); + questionnaireDetailDao.insertSelective(detail); + detailInfo.setDetailId(detail.getId()); + return detailInfo; + } + return detailInfo; + } + } diff --git a/src/main/java/com/ccsens/carbasics/util/Constant.java b/src/main/java/com/ccsens/carbasics/util/Constant.java index fd7dc4f..c0fdf70 100644 --- a/src/main/java/com/ccsens/carbasics/util/Constant.java +++ b/src/main/java/com/ccsens/carbasics/util/Constant.java @@ -516,4 +516,20 @@ public class Constant { public static final String FILE_DIR = "orcImage" + File.separator; } + + public enum SubmitStatus { + /** + * 问卷提交状态 0:保存 1:提交 + */ + save((byte) 0,"保存"), + submit((byte) 1,"提交"), + ; + public byte status; + public String name; + + SubmitStatus(byte status, String name) { + this.status = status; + this.name = name; + } + } } diff --git a/src/main/java/com/ccsens/carbasics/util/DefaultCodeError.java b/src/main/java/com/ccsens/carbasics/util/DefaultCodeError.java index 923d447..308436c 100644 --- a/src/main/java/com/ccsens/carbasics/util/DefaultCodeError.java +++ b/src/main/java/com/ccsens/carbasics/util/DefaultCodeError.java @@ -43,6 +43,7 @@ public class DefaultCodeError extends CodeError { public static final Code NOT_APPLY_FOR = new Code(34,"未申请修改,无法修改状态", true); public static final Code HOSPITAL_REPEAT_SUBMIT = new Code(35,"数据已提交,无法修改", true); public static final Code PCI_NOT_NULL = new Code(36,"介入治疗相关信息不能为空", true); + public static final Code QUESTIONNAIRE_DETAIL_ERROR = new Code(37,"问卷详情信息错误", true); diff --git a/src/main/resources/mapper_dao/QuestionnaireDao.xml b/src/main/resources/mapper_dao/QuestionnaireDao.xml index d930a0a..53b3b57 100644 --- a/src/main/resources/mapper_dao/QuestionnaireDao.xml +++ b/src/main/resources/mapper_dao/QuestionnaireDao.xml @@ -42,73 +42,33 @@ - + + + \ No newline at end of file diff --git a/src/main/resources/mapper_dao/QuestionnaireDetailDao.xml b/src/main/resources/mapper_dao/QuestionnaireDetailDao.xml index 7766441..5c2c7ab 100644 --- a/src/main/resources/mapper_dao/QuestionnaireDetailDao.xml +++ b/src/main/resources/mapper_dao/QuestionnaireDetailDao.xml @@ -3,4 +3,42 @@ + + + + + + diff --git a/src/main/resources/mapper_dao/QuestionnaireRecordDao.xml b/src/main/resources/mapper_dao/QuestionnaireRecordDao.xml new file mode 100644 index 0000000..f8cbd6b --- /dev/null +++ b/src/main/resources/mapper_dao/QuestionnaireRecordDao.xml @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper_raw/QuestionnaireRecordMapper.xml b/src/main/resources/mapper_raw/QuestionnaireRecordMapper.xml new file mode 100644 index 0000000..3354fcf --- /dev/null +++ b/src/main/resources/mapper_raw/QuestionnaireRecordMapper.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, questionnaire_detail_id, question_code, answer, created_at, updated_at, rec_status + + + + + delete from t_qcp_questionnaire_record + where id = #{id,jdbcType=BIGINT} + + + delete from t_qcp_questionnaire_record + + + + + + insert into t_qcp_questionnaire_record (id, questionnaire_detail_id, question_code, + answer, created_at, updated_at, + rec_status) + values (#{id,jdbcType=BIGINT}, #{questionnaireDetailId,jdbcType=BIGINT}, #{questionCode,jdbcType=VARCHAR}, + #{answer,jdbcType=VARCHAR}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, + #{recStatus,jdbcType=TINYINT}) + + + insert into t_qcp_questionnaire_record + + + id, + + + questionnaire_detail_id, + + + question_code, + + + answer, + + + created_at, + + + updated_at, + + + rec_status, + + + + + #{id,jdbcType=BIGINT}, + + + #{questionnaireDetailId,jdbcType=BIGINT}, + + + #{questionCode,jdbcType=VARCHAR}, + + + #{answer,jdbcType=VARCHAR}, + + + #{createdAt,jdbcType=TIMESTAMP}, + + + #{updatedAt,jdbcType=TIMESTAMP}, + + + #{recStatus,jdbcType=TINYINT}, + + + + + + update t_qcp_questionnaire_record + + + id = #{record.id,jdbcType=BIGINT}, + + + questionnaire_detail_id = #{record.questionnaireDetailId,jdbcType=BIGINT}, + + + question_code = #{record.questionCode,jdbcType=VARCHAR}, + + + answer = #{record.answer,jdbcType=VARCHAR}, + + + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{record.recStatus,jdbcType=TINYINT}, + + + + + + + + update t_qcp_questionnaire_record + set id = #{record.id,jdbcType=BIGINT}, + questionnaire_detail_id = #{record.questionnaireDetailId,jdbcType=BIGINT}, + question_code = #{record.questionCode,jdbcType=VARCHAR}, + answer = #{record.answer,jdbcType=VARCHAR}, + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{record.recStatus,jdbcType=TINYINT} + + + + + + update t_qcp_questionnaire_record + + + questionnaire_detail_id = #{questionnaireDetailId,jdbcType=BIGINT}, + + + question_code = #{questionCode,jdbcType=VARCHAR}, + + + answer = #{answer,jdbcType=VARCHAR}, + + + created_at = #{createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{recStatus,jdbcType=TINYINT}, + + + where id = #{id,jdbcType=BIGINT} + + + update t_qcp_questionnaire_record + set questionnaire_detail_id = #{questionnaireDetailId,jdbcType=BIGINT}, + question_code = #{questionCode,jdbcType=VARCHAR}, + answer = #{answer,jdbcType=VARCHAR}, + created_at = #{createdAt,jdbcType=TIMESTAMP}, + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{recStatus,jdbcType=TINYINT} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/src/main/resources/mbg.xml b/src/main/resources/mbg.xml index 70efec1..82be74a 100644 --- a/src/main/resources/mbg.xml +++ b/src/main/resources/mbg.xml @@ -60,7 +60,8 @@ -
+ +