Browse Source

重写问卷相关接口

master
ma 4 years ago
parent
commit
80a50a6e0c
  1. 62
      src/main/java/com/ccsens/carbasics/api/QuestionnaireController.java
  2. 113
      src/main/java/com/ccsens/carbasics/bean/dto/QuestionnaireDto.java
  3. 95
      src/main/java/com/ccsens/carbasics/bean/po/QuestionnaireRecord.java
  4. 641
      src/main/java/com/ccsens/carbasics/bean/po/QuestionnaireRecordExample.java
  5. 31
      src/main/java/com/ccsens/carbasics/bean/vo/QuestionnaireVo.java
  6. 15
      src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDao.java
  7. 32
      src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireDetailDao.java
  8. 15
      src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireRecordDao.java
  9. 30
      src/main/java/com/ccsens/carbasics/persist/mapper/QuestionnaireRecordMapper.java
  10. 312
      src/main/java/com/ccsens/carbasics/service/AsyncService.java
  11. 19
      src/main/java/com/ccsens/carbasics/service/IQuestionnaireService.java
  12. 281
      src/main/java/com/ccsens/carbasics/service/QuestionnaireService.java
  13. 16
      src/main/java/com/ccsens/carbasics/util/Constant.java
  14. 1
      src/main/java/com/ccsens/carbasics/util/DefaultCodeError.java
  15. 101
      src/main/resources/mapper_dao/QuestionnaireDao.xml
  16. 38
      src/main/resources/mapper_dao/QuestionnaireDetailDao.xml
  17. 16
      src/main/resources/mapper_dao/QuestionnaireRecordDao.xml
  18. 243
      src/main/resources/mapper_raw/QuestionnaireRecordMapper.xml
  19. 3
      src/main/resources/mbg.xml

62
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<List<QuestionnaireVo.PositionInfo>> queryPosition(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{
log.info("查询职位开始{}",params);
List<QuestionnaireVo.PositionInfo> 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<List<QuestionnaireVo.WriteStatus>> queryNotWrite(@ApiParam @Validated @RequestBody QueryDto<QuestionnaireDto.QueryNotWrite> params) throws Exception{
log.info("保存调查问卷开始{}",params);
List<QuestionnaireVo.WriteStatus> 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<QuestionnaireVo.QuestionnaireInfo> queryQuestionnaire(@ApiParam @Validated @RequestBody QueryDto<QuestionnaireDto.QueryQuestionnaire> 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<HashMap<String,String>> queryQuestionnaire(@ApiParam @Validated @RequestBody QueryDto<QuestionnaireDto.QueryQuestionnaire> params) throws Exception{
log.info("查询问卷详情开始{}",params);
HashMap<String,String> 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<List<QuestionnaireVo.WriteStatus>> queryNotWrite(@ApiParam @Validated @RequestBody QueryDto<QuestionnaireDto.QueryNotWrite> params) throws Exception{
log.info("保存调查问卷开始{}",params);
List<QuestionnaireVo.WriteStatus> 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<QuestionnaireDto.SubmitQuestionnaire> 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<List<QuestionnaireVo.PositionInfo>> queryPosition(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{
log.info("查询职位开始{}",params);
List<QuestionnaireVo.PositionInfo> 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<QuestionnaireVo.DetailInfo> createDetail(@ApiParam @Validated @RequestBody QueryDto<QuestionnaireDto.CreateDetail> params) throws Exception{
log.info("创建问卷详情{}",params);
QuestionnaireVo.DetailInfo detailInfo = questionnaireService.createDetail(params.getParam(),params.getUserId());
log.info("创建问卷详情结束");
return JsonResponse.newInstance().ok(detailInfo);
}
}

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

95
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();
}
}

641
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<Criteria> oredCriteria;
public QuestionnaireRecordExample() {
oredCriteria = new ArrayList<Criteria>();
}
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<Criteria> 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<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> 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<Long> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Long> 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<Long> values) {
addCriterion("questionnaire_detail_id in", values, "questionnaireDetailId");
return (Criteria) this;
}
public Criteria andQuestionnaireDetailIdNotIn(List<Long> 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<String> values) {
addCriterion("question_code in", values, "questionCode");
return (Criteria) this;
}
public Criteria andQuestionCodeNotIn(List<String> 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<String> values) {
addCriterion("answer in", values, "answer");
return (Criteria) this;
}
public Criteria andAnswerNotIn(List<String> 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<Date> values) {
addCriterion("created_at in", values, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtNotIn(List<Date> 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<Date> values) {
addCriterion("updated_at in", values, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtNotIn(List<Date> 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<Byte> values) {
addCriterion("rec_status in", values, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusNotIn(List<Byte> 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);
}
}
}

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

15
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<QuestionnaireVo.WriteStatus> queryByTime(@Param("time") Long time);
}

32
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<QuestionnaireVo.QuestionnaireInfo> queryDetail(@Param("qid") Long qid, @Param("userId") Long userId);
}

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

30
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<QuestionnaireRecord> 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);
}

312
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);
// }
}
}

19
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<String,String> queryQuestionnaire(QuestionnaireDto.QueryQuestionnaire param, Long userId);
/**
*
@ -46,4 +48,19 @@ public interface IQuestionnaireService {
* @return
*/
List<QuestionnaireVo.PositionInfo> 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);
}

281
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<QuestionnaireVo.AreaInfo> 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<String,String> queryQuestionnaire(QuestionnaireDto.QueryQuestionnaire param, Long userId) {
List<QuestionnaireVo.QuestionnaireInfo> infoList = questionnaireDetailDao.queryDetail(param.getId(),userId);
HashMap<String, String> 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<QuestionnaireVo.WriteStatus> writeStatusList = questionnaireDao.queryNotWrite(organization.getName(),param.getTime());
for (QuestionnaireVo.WriteStatus writeStatus : writeStatusList) {
if (ObjectUtil.isNull(writeStatus.getIsWrite())) {
writeStatus.setIsWrite((byte) -1);
//查询问卷列表
List<QuestionnaireVo.WriteStatus> 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;
}
}

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

1
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);

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

@ -42,73 +42,33 @@
</collection>
</resultMap>
<select id="queryQuestionnaire" resultMap="questionnaire">
SELECT
q.id,
q.questionnaire_name AS questionnaire_name,
q.start_time AS `start`,
q.end_time AS `end`,
q.type,
qd.id AS detailId,
qd.province,
qd.city,
qd.county,
qd.hospital_level,
qd.hospital_name,
qd.departments,
qd.`name`,
qd.phone,
qd.advanced_stroke_center,
qd.stroke_center,
qd.map_hospital,
qd.stroke_number,
qd.ais_number_four,
qd.jmrs_number_four,
qd.rtpa_number,
qd.dnt_number,
qd.dnt_number_four,
qd.dnt_number_six,
qd.sich_number,
qd.jmrs_number_one,
qd.ais_number_six,
qd.should_directly,
qd.dpt_median_number,
qd.prt_median_number,
qd.jmrs_number_two,
qd.death_number,
qd.submit_status,
qd.pci_status AS pciStatus,
qd.position_id AS positionId
FROM
t_qcp_questionnaire AS q
LEFT JOIN t_qcp_questionnaire_detail AS qd ON q.id = qd.questionnaire_id
AND qd.user_id = #{userId} AND qd.rec_status = 0
WHERE
q.write_start_time &lt; #{time}
AND q.write_end_time &gt; #{time}
AND type = #{type}
AND q.rec_status = 0
</select>
<select id="queryNotWrite" resultType="com.ccsens.carbasics.bean.vo.QuestionnaireVo$WriteStatus">
SELECT
q.id,
q.questionnaire_name,
q.start_time AS `start`,
q.end_time AS `end`,
q.type,
q.write_start_time,
q.write_end_time,
qd.id AS detailId,
qd.submit_status AS isWrite
q.id,
q.questionnaire_name,
q.start_time AS start,
q.end_time AS `end`,
q.write_start_time,
q.write_end_time,
q.type,
qd.id AS detailId,
qd.submit_status AS isWrite,
qr.id AS recordId,
qr.answer AS `name`
FROM
t_qcp_questionnaire AS q
LEFT JOIN t_qcp_questionnaire_detail AS qd ON q.id = qd.questionnaire_id
AND qd.hospital_name = #{name} AND qd.rec_status = 0
t_qcp_questionnaire AS q
LEFT JOIN t_qcp_questionnaire_detail AS qd ON q.id = qd.questionnaire_id AND qd.rec_status = 0
LEFT JOIN t_qcp_questionnaire_record AS qr ON qd.id = qr.questionnaire_detail_id
AND qr.question_code = 'HOS-NAME'
AND qr.answer = #{name}
AND qr.rec_status = 0
WHERE
q.write_start_time &lt; #{time}
AND q.write_end_time &gt; #{time}
AND q.rec_status = 0
q.rec_status = 0
AND q.write_start_time &lt; #{time}
AND q.write_end_time &gt; #{time}
AND q.rec_status = 0
</select>
<select id="queryRepeat" resultMap="questionnaire">
@ -156,5 +116,22 @@
AND q.id = #{qid}
</select>
<select id="queryByTime" resultType="com.ccsens.carbasics.bean.vo.QuestionnaireVo$WriteStatus">
SELECT
id,
questionnaire_name,
`type`,
start_time AS `start`,
end_time AS `end`,
write_start_time,
write_end_time
FROM
t_qcp_questionnaire AS q
WHERE
rec_status = 0
AND q.write_start_time &lt; #{time}
AND q.write_end_time &gt; #{time}
</select>
</mapper>

38
src/main/resources/mapper_dao/QuestionnaireDetailDao.xml

@ -3,4 +3,42 @@
<mapper namespace="com.ccsens.carbasics.persist.dao.QuestionnaireDetailDao">
<select id="querySubmitStatus" resultType="java.lang.Integer">
SELECT
submit_status
FROM
t_qcp_questionnaire_detail AS qd
WHERE
qd.user_id = #{userId}
AND questionnaire_id = #{qid}
</select>
<select id="queryIsExist" resultType="com.ccsens.carbasics.bean.vo.QuestionnaireVo$DetailInfo">
SELECT
q.id,
qd.id AS detailId
FROM
t_qcp_questionnaire AS q
LEFT JOIN t_qcp_questionnaire_detail AS qd ON q.id = qd.questionnaire_id
AND qd.rec_status = 0
AND qd.user_id = #{userId}
WHERE
q.write_start_time &lt; #{time}
AND q.write_end_time &gt; #{time}
AND q.type = #{type}
</select>
<select id="queryDetail" resultType="com.ccsens.carbasics.bean.vo.QuestionnaireVo$QuestionnaireInfo">
SELECT
qr.question_code AS code,
qr.answer
FROM
t_qcp_questionnaire_detail AS qd
LEFT JOIN t_qcp_questionnaire_record AS qr ON qd.id = qr.questionnaire_detail_id
WHERE qd.rec_status = 0
AND qr.rec_status = 0
AND qd.user_id = #{userId}
AND qd.questionnaire_id = #{qid}
</select>
</mapper>

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

@ -0,0 +1,16 @@
<?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.QuestionnaireRecordDao">
<select id="queryIsExist" resultType="java.lang.Long">
SELECT
id
FROM
t_qcp_questionnaire_record
WHERE
rec_status = 0
AND question_code = #{code}
AND questionnaire_detail_id = #{detailId}
</select>
</mapper>

243
src/main/resources/mapper_raw/QuestionnaireRecordMapper.xml

@ -0,0 +1,243 @@
<?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.mapper.QuestionnaireRecordMapper">
<resultMap id="BaseResultMap" type="com.ccsens.carbasics.bean.po.QuestionnaireRecord">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="questionnaire_detail_id" jdbcType="BIGINT" property="questionnaireDetailId" />
<result column="question_code" jdbcType="VARCHAR" property="questionCode" />
<result column="answer" jdbcType="VARCHAR" property="answer" />
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="rec_status" jdbcType="TINYINT" property="recStatus" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, questionnaire_detail_id, question_code, answer, created_at, updated_at, rec_status
</sql>
<select id="selectByExample" parameterType="com.ccsens.carbasics.bean.po.QuestionnaireRecordExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from t_qcp_questionnaire_record
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from t_qcp_questionnaire_record
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from t_qcp_questionnaire_record
where id = #{id,jdbcType=BIGINT}
</delete>
<delete id="deleteByExample" parameterType="com.ccsens.carbasics.bean.po.QuestionnaireRecordExample">
delete from t_qcp_questionnaire_record
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.ccsens.carbasics.bean.po.QuestionnaireRecord">
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>
<insert id="insertSelective" parameterType="com.ccsens.carbasics.bean.po.QuestionnaireRecord">
insert into t_qcp_questionnaire_record
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="questionnaireDetailId != null">
questionnaire_detail_id,
</if>
<if test="questionCode != null">
question_code,
</if>
<if test="answer != null">
answer,
</if>
<if test="createdAt != null">
created_at,
</if>
<if test="updatedAt != null">
updated_at,
</if>
<if test="recStatus != null">
rec_status,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="questionnaireDetailId != null">
#{questionnaireDetailId,jdbcType=BIGINT},
</if>
<if test="questionCode != null">
#{questionCode,jdbcType=VARCHAR},
</if>
<if test="answer != null">
#{answer,jdbcType=VARCHAR},
</if>
<if test="createdAt != null">
#{createdAt,jdbcType=TIMESTAMP},
</if>
<if test="updatedAt != null">
#{updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="recStatus != null">
#{recStatus,jdbcType=TINYINT},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.carbasics.bean.po.QuestionnaireRecordExample" resultType="java.lang.Long">
select count(*) from t_qcp_questionnaire_record
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update t_qcp_questionnaire_record
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.questionnaireDetailId != null">
questionnaire_detail_id = #{record.questionnaireDetailId,jdbcType=BIGINT},
</if>
<if test="record.questionCode != null">
question_code = #{record.questionCode,jdbcType=VARCHAR},
</if>
<if test="record.answer != null">
answer = #{record.answer,jdbcType=VARCHAR},
</if>
<if test="record.createdAt != null">
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
</if>
<if test="record.updatedAt != null">
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="record.recStatus != null">
rec_status = #{record.recStatus,jdbcType=TINYINT},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
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}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="com.ccsens.carbasics.bean.po.QuestionnaireRecord">
update t_qcp_questionnaire_record
<set>
<if test="questionnaireDetailId != null">
questionnaire_detail_id = #{questionnaireDetailId,jdbcType=BIGINT},
</if>
<if test="questionCode != null">
question_code = #{questionCode,jdbcType=VARCHAR},
</if>
<if test="answer != null">
answer = #{answer,jdbcType=VARCHAR},
</if>
<if test="createdAt != null">
created_at = #{createdAt,jdbcType=TIMESTAMP},
</if>
<if test="updatedAt != null">
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="recStatus != null">
rec_status = #{recStatus,jdbcType=TINYINT},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.ccsens.carbasics.bean.po.QuestionnaireRecord">
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}
</update>
</mapper>

3
src/main/resources/mbg.xml

@ -60,7 +60,8 @@
<!-- <table tableName="t_qcp_ocr_keyword" domainObjectName="OcrKeyword"></table>-->
<!-- <table tableName="t_qcp_ocr_keyword_option" domainObjectName="OcrKeywordOption"></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_area" domainObjectName="Area"></table>-->
<!-- <table tableName="t_organization_department" domainObjectName="OrganizationDepartment"></table>-->
<!-- <table tableName="t_organization_member" domainObjectName="OrganizationMember"></table>-->

Loading…
Cancel
Save