Browse Source

Merge branch 'master' of dd.tall.wiki:ccsens_wiki/carbasics

master
zhizhi wu 4 years ago
parent
commit
2b8615328e
  1. 6
      src/main/java/com/ccsens/carbasics/api/OcrController.java
  2. 16
      src/main/java/com/ccsens/carbasics/bean/dto/OcrDto.java
  3. 139
      src/main/java/com/ccsens/carbasics/bean/po/OcrKeyword.java
  4. 911
      src/main/java/com/ccsens/carbasics/bean/po/OcrKeywordExample.java
  5. 95
      src/main/java/com/ccsens/carbasics/bean/po/OcrKeywordOption.java
  6. 641
      src/main/java/com/ccsens/carbasics/bean/po/OcrKeywordOptionExample.java
  7. 15
      src/main/java/com/ccsens/carbasics/bean/vo/QuestionOcrVo.java
  8. 7
      src/main/java/com/ccsens/carbasics/persist/dao/FirstAidRecordDao.java
  9. 25
      src/main/java/com/ccsens/carbasics/persist/dao/OcrKeywordDao.java
  10. 18
      src/main/java/com/ccsens/carbasics/persist/dao/OcrKeywordOptionDao.java
  11. 30
      src/main/java/com/ccsens/carbasics/persist/mapper/OcrKeywordMapper.java
  12. 30
      src/main/java/com/ccsens/carbasics/persist/mapper/OcrKeywordOptionMapper.java
  13. 13
      src/main/java/com/ccsens/carbasics/service/IOcrService.java
  14. 462
      src/main/java/com/ccsens/carbasics/service/OcrService.java
  15. 11
      src/main/java/com/ccsens/carbasics/util/Constant.java
  16. 11
      src/main/resources/mapper_dao/FirstAidRecordDao.xml
  17. 41
      src/main/resources/mapper_dao/OcrKeywordDao.xml
  18. 18
      src/main/resources/mapper_dao/OcrKeywordOptionDao.xml
  19. 306
      src/main/resources/mapper_raw/OcrKeywordMapper.xml
  20. 243
      src/main/resources/mapper_raw/OcrKeywordOptionMapper.xml
  21. 4
      src/main/resources/mbg.xml

6
src/main/java/com/ccsens/carbasics/api/OcrController.java

@ -19,6 +19,7 @@ import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
@ -66,10 +67,9 @@ public class OcrController {
@MustLogin
@ApiOperation(value = "图片文字识别",notes = "")
@RequestMapping(value="/general/basic",method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<QuestionOcrVo.GeneralBasic>> queryInpatient(@ApiParam @Validated @RequestBody QueryDto<OcrDto.GeneralBasic> params) throws Exception {
public JsonResponse<List<QuestionOcrVo.CodeAndAnswer>> queryInpatient(QueryDto<List<MultipartFile>> params, Long firstAidId) throws Exception {
log.info("图片文字识别请求:{}", params);
List<QuestionOcrVo.GeneralBasic> words = ocrService.identifyWords(params.getParam(), params.getUserId());
List<QuestionOcrVo.CodeAndAnswer> words = ocrService.discernWords(params.getParam(), params.getUserId(),firstAidId);
log.info("图片文字识别结束:{}", words);
return JsonResponse.newInstance().ok(words);
}

16
src/main/java/com/ccsens/carbasics/bean/dto/OcrDto.java

@ -6,8 +6,10 @@ import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.File;
import java.util.List;
public class OcrDto {
@ -15,17 +17,11 @@ public class OcrDto {
@Data
public static class GeneralBasic{
@NotNull
@ApiModelProperty("患者ID")
private Long patientId;
@ApiModelProperty("报告单类型")
@NotBlank
private String code;
@ApiModelProperty("图片路径")
private String url;
@ApiModelProperty("图片ID")
private Long fileId;
@ApiModelProperty("急救id")
private Long firstAidId;
@NotEmpty
@ApiModelProperty("图片")
private MultipartFile file;
private List<MultipartFile> fileList;
}
}

139
src/main/java/com/ccsens/carbasics/bean/po/OcrKeyword.java

@ -0,0 +1,139 @@
package com.ccsens.carbasics.bean.po;
import java.io.Serializable;
import java.util.Date;
public class OcrKeyword implements Serializable {
private Long id;
private String code;
private String option;
private String keyword;
private String keywordExclude;
private Byte verifyType;
private String queryRule;
private Long organizationId;
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 String getCode() {
return code;
}
public void setCode(String code) {
this.code = code == null ? null : code.trim();
}
public String getOption() {
return option;
}
public void setOption(String option) {
this.option = option == null ? null : option.trim();
}
public String getKeyword() {
return keyword;
}
public void setKeyword(String keyword) {
this.keyword = keyword == null ? null : keyword.trim();
}
public String getKeywordExclude() {
return keywordExclude;
}
public void setKeywordExclude(String keywordExclude) {
this.keywordExclude = keywordExclude == null ? null : keywordExclude.trim();
}
public Byte getVerifyType() {
return verifyType;
}
public void setVerifyType(Byte verifyType) {
this.verifyType = verifyType;
}
public String getQueryRule() {
return queryRule;
}
public void setQueryRule(String queryRule) {
this.queryRule = queryRule == null ? null : queryRule.trim();
}
public Long getOrganizationId() {
return organizationId;
}
public void setOrganizationId(Long organizationId) {
this.organizationId = organizationId;
}
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(", code=").append(code);
sb.append(", option=").append(option);
sb.append(", keyword=").append(keyword);
sb.append(", keywordExclude=").append(keywordExclude);
sb.append(", verifyType=").append(verifyType);
sb.append(", queryRule=").append(queryRule);
sb.append(", organizationId=").append(organizationId);
sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus);
sb.append("]");
return sb.toString();
}
}

911
src/main/java/com/ccsens/carbasics/bean/po/OcrKeywordExample.java

@ -0,0 +1,911 @@
package com.ccsens.carbasics.bean.po;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class OcrKeywordExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public OcrKeywordExample() {
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 andCodeIsNull() {
addCriterion("code is null");
return (Criteria) this;
}
public Criteria andCodeIsNotNull() {
addCriterion("code is not null");
return (Criteria) this;
}
public Criteria andCodeEqualTo(String value) {
addCriterion("code =", value, "code");
return (Criteria) this;
}
public Criteria andCodeNotEqualTo(String value) {
addCriterion("code <>", value, "code");
return (Criteria) this;
}
public Criteria andCodeGreaterThan(String value) {
addCriterion("code >", value, "code");
return (Criteria) this;
}
public Criteria andCodeGreaterThanOrEqualTo(String value) {
addCriterion("code >=", value, "code");
return (Criteria) this;
}
public Criteria andCodeLessThan(String value) {
addCriterion("code <", value, "code");
return (Criteria) this;
}
public Criteria andCodeLessThanOrEqualTo(String value) {
addCriterion("code <=", value, "code");
return (Criteria) this;
}
public Criteria andCodeLike(String value) {
addCriterion("code like", value, "code");
return (Criteria) this;
}
public Criteria andCodeNotLike(String value) {
addCriterion("code not like", value, "code");
return (Criteria) this;
}
public Criteria andCodeIn(List<String> values) {
addCriterion("code in", values, "code");
return (Criteria) this;
}
public Criteria andCodeNotIn(List<String> values) {
addCriterion("code not in", values, "code");
return (Criteria) this;
}
public Criteria andCodeBetween(String value1, String value2) {
addCriterion("code between", value1, value2, "code");
return (Criteria) this;
}
public Criteria andCodeNotBetween(String value1, String value2) {
addCriterion("code not between", value1, value2, "code");
return (Criteria) this;
}
public Criteria andOptionIsNull() {
addCriterion("option is null");
return (Criteria) this;
}
public Criteria andOptionIsNotNull() {
addCriterion("option is not null");
return (Criteria) this;
}
public Criteria andOptionEqualTo(String value) {
addCriterion("option =", value, "option");
return (Criteria) this;
}
public Criteria andOptionNotEqualTo(String value) {
addCriterion("option <>", value, "option");
return (Criteria) this;
}
public Criteria andOptionGreaterThan(String value) {
addCriterion("option >", value, "option");
return (Criteria) this;
}
public Criteria andOptionGreaterThanOrEqualTo(String value) {
addCriterion("option >=", value, "option");
return (Criteria) this;
}
public Criteria andOptionLessThan(String value) {
addCriterion("option <", value, "option");
return (Criteria) this;
}
public Criteria andOptionLessThanOrEqualTo(String value) {
addCriterion("option <=", value, "option");
return (Criteria) this;
}
public Criteria andOptionLike(String value) {
addCriterion("option like", value, "option");
return (Criteria) this;
}
public Criteria andOptionNotLike(String value) {
addCriterion("option not like", value, "option");
return (Criteria) this;
}
public Criteria andOptionIn(List<String> values) {
addCriterion("option in", values, "option");
return (Criteria) this;
}
public Criteria andOptionNotIn(List<String> values) {
addCriterion("option not in", values, "option");
return (Criteria) this;
}
public Criteria andOptionBetween(String value1, String value2) {
addCriterion("option between", value1, value2, "option");
return (Criteria) this;
}
public Criteria andOptionNotBetween(String value1, String value2) {
addCriterion("option not between", value1, value2, "option");
return (Criteria) this;
}
public Criteria andKeywordIsNull() {
addCriterion("keyword is null");
return (Criteria) this;
}
public Criteria andKeywordIsNotNull() {
addCriterion("keyword is not null");
return (Criteria) this;
}
public Criteria andKeywordEqualTo(String value) {
addCriterion("keyword =", value, "keyword");
return (Criteria) this;
}
public Criteria andKeywordNotEqualTo(String value) {
addCriterion("keyword <>", value, "keyword");
return (Criteria) this;
}
public Criteria andKeywordGreaterThan(String value) {
addCriterion("keyword >", value, "keyword");
return (Criteria) this;
}
public Criteria andKeywordGreaterThanOrEqualTo(String value) {
addCriterion("keyword >=", value, "keyword");
return (Criteria) this;
}
public Criteria andKeywordLessThan(String value) {
addCriterion("keyword <", value, "keyword");
return (Criteria) this;
}
public Criteria andKeywordLessThanOrEqualTo(String value) {
addCriterion("keyword <=", value, "keyword");
return (Criteria) this;
}
public Criteria andKeywordLike(String value) {
addCriterion("keyword like", value, "keyword");
return (Criteria) this;
}
public Criteria andKeywordNotLike(String value) {
addCriterion("keyword not like", value, "keyword");
return (Criteria) this;
}
public Criteria andKeywordIn(List<String> values) {
addCriterion("keyword in", values, "keyword");
return (Criteria) this;
}
public Criteria andKeywordNotIn(List<String> values) {
addCriterion("keyword not in", values, "keyword");
return (Criteria) this;
}
public Criteria andKeywordBetween(String value1, String value2) {
addCriterion("keyword between", value1, value2, "keyword");
return (Criteria) this;
}
public Criteria andKeywordNotBetween(String value1, String value2) {
addCriterion("keyword not between", value1, value2, "keyword");
return (Criteria) this;
}
public Criteria andKeywordExcludeIsNull() {
addCriterion("keyword_exclude is null");
return (Criteria) this;
}
public Criteria andKeywordExcludeIsNotNull() {
addCriterion("keyword_exclude is not null");
return (Criteria) this;
}
public Criteria andKeywordExcludeEqualTo(String value) {
addCriterion("keyword_exclude =", value, "keywordExclude");
return (Criteria) this;
}
public Criteria andKeywordExcludeNotEqualTo(String value) {
addCriterion("keyword_exclude <>", value, "keywordExclude");
return (Criteria) this;
}
public Criteria andKeywordExcludeGreaterThan(String value) {
addCriterion("keyword_exclude >", value, "keywordExclude");
return (Criteria) this;
}
public Criteria andKeywordExcludeGreaterThanOrEqualTo(String value) {
addCriterion("keyword_exclude >=", value, "keywordExclude");
return (Criteria) this;
}
public Criteria andKeywordExcludeLessThan(String value) {
addCriterion("keyword_exclude <", value, "keywordExclude");
return (Criteria) this;
}
public Criteria andKeywordExcludeLessThanOrEqualTo(String value) {
addCriterion("keyword_exclude <=", value, "keywordExclude");
return (Criteria) this;
}
public Criteria andKeywordExcludeLike(String value) {
addCriterion("keyword_exclude like", value, "keywordExclude");
return (Criteria) this;
}
public Criteria andKeywordExcludeNotLike(String value) {
addCriterion("keyword_exclude not like", value, "keywordExclude");
return (Criteria) this;
}
public Criteria andKeywordExcludeIn(List<String> values) {
addCriterion("keyword_exclude in", values, "keywordExclude");
return (Criteria) this;
}
public Criteria andKeywordExcludeNotIn(List<String> values) {
addCriterion("keyword_exclude not in", values, "keywordExclude");
return (Criteria) this;
}
public Criteria andKeywordExcludeBetween(String value1, String value2) {
addCriterion("keyword_exclude between", value1, value2, "keywordExclude");
return (Criteria) this;
}
public Criteria andKeywordExcludeNotBetween(String value1, String value2) {
addCriterion("keyword_exclude not between", value1, value2, "keywordExclude");
return (Criteria) this;
}
public Criteria andVerifyTypeIsNull() {
addCriterion("verify_type is null");
return (Criteria) this;
}
public Criteria andVerifyTypeIsNotNull() {
addCriterion("verify_type is not null");
return (Criteria) this;
}
public Criteria andVerifyTypeEqualTo(Byte value) {
addCriterion("verify_type =", value, "verifyType");
return (Criteria) this;
}
public Criteria andVerifyTypeNotEqualTo(Byte value) {
addCriterion("verify_type <>", value, "verifyType");
return (Criteria) this;
}
public Criteria andVerifyTypeGreaterThan(Byte value) {
addCriterion("verify_type >", value, "verifyType");
return (Criteria) this;
}
public Criteria andVerifyTypeGreaterThanOrEqualTo(Byte value) {
addCriterion("verify_type >=", value, "verifyType");
return (Criteria) this;
}
public Criteria andVerifyTypeLessThan(Byte value) {
addCriterion("verify_type <", value, "verifyType");
return (Criteria) this;
}
public Criteria andVerifyTypeLessThanOrEqualTo(Byte value) {
addCriterion("verify_type <=", value, "verifyType");
return (Criteria) this;
}
public Criteria andVerifyTypeIn(List<Byte> values) {
addCriterion("verify_type in", values, "verifyType");
return (Criteria) this;
}
public Criteria andVerifyTypeNotIn(List<Byte> values) {
addCriterion("verify_type not in", values, "verifyType");
return (Criteria) this;
}
public Criteria andVerifyTypeBetween(Byte value1, Byte value2) {
addCriterion("verify_type between", value1, value2, "verifyType");
return (Criteria) this;
}
public Criteria andVerifyTypeNotBetween(Byte value1, Byte value2) {
addCriterion("verify_type not between", value1, value2, "verifyType");
return (Criteria) this;
}
public Criteria andQueryRuleIsNull() {
addCriterion("query_rule is null");
return (Criteria) this;
}
public Criteria andQueryRuleIsNotNull() {
addCriterion("query_rule is not null");
return (Criteria) this;
}
public Criteria andQueryRuleEqualTo(String value) {
addCriterion("query_rule =", value, "queryRule");
return (Criteria) this;
}
public Criteria andQueryRuleNotEqualTo(String value) {
addCriterion("query_rule <>", value, "queryRule");
return (Criteria) this;
}
public Criteria andQueryRuleGreaterThan(String value) {
addCriterion("query_rule >", value, "queryRule");
return (Criteria) this;
}
public Criteria andQueryRuleGreaterThanOrEqualTo(String value) {
addCriterion("query_rule >=", value, "queryRule");
return (Criteria) this;
}
public Criteria andQueryRuleLessThan(String value) {
addCriterion("query_rule <", value, "queryRule");
return (Criteria) this;
}
public Criteria andQueryRuleLessThanOrEqualTo(String value) {
addCriterion("query_rule <=", value, "queryRule");
return (Criteria) this;
}
public Criteria andQueryRuleLike(String value) {
addCriterion("query_rule like", value, "queryRule");
return (Criteria) this;
}
public Criteria andQueryRuleNotLike(String value) {
addCriterion("query_rule not like", value, "queryRule");
return (Criteria) this;
}
public Criteria andQueryRuleIn(List<String> values) {
addCriterion("query_rule in", values, "queryRule");
return (Criteria) this;
}
public Criteria andQueryRuleNotIn(List<String> values) {
addCriterion("query_rule not in", values, "queryRule");
return (Criteria) this;
}
public Criteria andQueryRuleBetween(String value1, String value2) {
addCriterion("query_rule between", value1, value2, "queryRule");
return (Criteria) this;
}
public Criteria andQueryRuleNotBetween(String value1, String value2) {
addCriterion("query_rule not between", value1, value2, "queryRule");
return (Criteria) this;
}
public Criteria andOrganizationIdIsNull() {
addCriterion("organization_id is null");
return (Criteria) this;
}
public Criteria andOrganizationIdIsNotNull() {
addCriterion("organization_id is not null");
return (Criteria) this;
}
public Criteria andOrganizationIdEqualTo(Long value) {
addCriterion("organization_id =", value, "organizationId");
return (Criteria) this;
}
public Criteria andOrganizationIdNotEqualTo(Long value) {
addCriterion("organization_id <>", value, "organizationId");
return (Criteria) this;
}
public Criteria andOrganizationIdGreaterThan(Long value) {
addCriterion("organization_id >", value, "organizationId");
return (Criteria) this;
}
public Criteria andOrganizationIdGreaterThanOrEqualTo(Long value) {
addCriterion("organization_id >=", value, "organizationId");
return (Criteria) this;
}
public Criteria andOrganizationIdLessThan(Long value) {
addCriterion("organization_id <", value, "organizationId");
return (Criteria) this;
}
public Criteria andOrganizationIdLessThanOrEqualTo(Long value) {
addCriterion("organization_id <=", value, "organizationId");
return (Criteria) this;
}
public Criteria andOrganizationIdIn(List<Long> values) {
addCriterion("organization_id in", values, "organizationId");
return (Criteria) this;
}
public Criteria andOrganizationIdNotIn(List<Long> values) {
addCriterion("organization_id not in", values, "organizationId");
return (Criteria) this;
}
public Criteria andOrganizationIdBetween(Long value1, Long value2) {
addCriterion("organization_id between", value1, value2, "organizationId");
return (Criteria) this;
}
public Criteria andOrganizationIdNotBetween(Long value1, Long value2) {
addCriterion("organization_id not between", value1, value2, "organizationId");
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);
}
}
}

95
src/main/java/com/ccsens/carbasics/bean/po/OcrKeywordOption.java

@ -0,0 +1,95 @@
package com.ccsens.carbasics.bean.po;
import java.io.Serializable;
import java.util.Date;
public class OcrKeywordOption implements Serializable {
private Long id;
private String code;
private String answer;
private Long keywordId;
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 String getCode() {
return code;
}
public void setCode(String code) {
this.code = code == null ? null : code.trim();
}
public String getAnswer() {
return answer;
}
public void setAnswer(String answer) {
this.answer = answer == null ? null : answer.trim();
}
public Long getKeywordId() {
return keywordId;
}
public void setKeywordId(Long keywordId) {
this.keywordId = keywordId;
}
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(", code=").append(code);
sb.append(", answer=").append(answer);
sb.append(", keywordId=").append(keywordId);
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/OcrKeywordOptionExample.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 OcrKeywordOptionExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public OcrKeywordOptionExample() {
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 andCodeIsNull() {
addCriterion("code is null");
return (Criteria) this;
}
public Criteria andCodeIsNotNull() {
addCriterion("code is not null");
return (Criteria) this;
}
public Criteria andCodeEqualTo(String value) {
addCriterion("code =", value, "code");
return (Criteria) this;
}
public Criteria andCodeNotEqualTo(String value) {
addCriterion("code <>", value, "code");
return (Criteria) this;
}
public Criteria andCodeGreaterThan(String value) {
addCriterion("code >", value, "code");
return (Criteria) this;
}
public Criteria andCodeGreaterThanOrEqualTo(String value) {
addCriterion("code >=", value, "code");
return (Criteria) this;
}
public Criteria andCodeLessThan(String value) {
addCriterion("code <", value, "code");
return (Criteria) this;
}
public Criteria andCodeLessThanOrEqualTo(String value) {
addCriterion("code <=", value, "code");
return (Criteria) this;
}
public Criteria andCodeLike(String value) {
addCriterion("code like", value, "code");
return (Criteria) this;
}
public Criteria andCodeNotLike(String value) {
addCriterion("code not like", value, "code");
return (Criteria) this;
}
public Criteria andCodeIn(List<String> values) {
addCriterion("code in", values, "code");
return (Criteria) this;
}
public Criteria andCodeNotIn(List<String> values) {
addCriterion("code not in", values, "code");
return (Criteria) this;
}
public Criteria andCodeBetween(String value1, String value2) {
addCriterion("code between", value1, value2, "code");
return (Criteria) this;
}
public Criteria andCodeNotBetween(String value1, String value2) {
addCriterion("code not between", value1, value2, "code");
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 andKeywordIdIsNull() {
addCriterion("keyword_id is null");
return (Criteria) this;
}
public Criteria andKeywordIdIsNotNull() {
addCriterion("keyword_id is not null");
return (Criteria) this;
}
public Criteria andKeywordIdEqualTo(Long value) {
addCriterion("keyword_id =", value, "keywordId");
return (Criteria) this;
}
public Criteria andKeywordIdNotEqualTo(Long value) {
addCriterion("keyword_id <>", value, "keywordId");
return (Criteria) this;
}
public Criteria andKeywordIdGreaterThan(Long value) {
addCriterion("keyword_id >", value, "keywordId");
return (Criteria) this;
}
public Criteria andKeywordIdGreaterThanOrEqualTo(Long value) {
addCriterion("keyword_id >=", value, "keywordId");
return (Criteria) this;
}
public Criteria andKeywordIdLessThan(Long value) {
addCriterion("keyword_id <", value, "keywordId");
return (Criteria) this;
}
public Criteria andKeywordIdLessThanOrEqualTo(Long value) {
addCriterion("keyword_id <=", value, "keywordId");
return (Criteria) this;
}
public Criteria andKeywordIdIn(List<Long> values) {
addCriterion("keyword_id in", values, "keywordId");
return (Criteria) this;
}
public Criteria andKeywordIdNotIn(List<Long> values) {
addCriterion("keyword_id not in", values, "keywordId");
return (Criteria) this;
}
public Criteria andKeywordIdBetween(Long value1, Long value2) {
addCriterion("keyword_id between", value1, value2, "keywordId");
return (Criteria) this;
}
public Criteria andKeywordIdNotBetween(Long value1, Long value2) {
addCriterion("keyword_id not between", value1, value2, "keywordId");
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);
}
}
}

15
src/main/java/com/ccsens/carbasics/bean/vo/QuestionOcrVo.java

@ -1,5 +1,6 @@
package com.ccsens.carbasics.bean.vo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -38,4 +39,18 @@ public class QuestionOcrVo {
@ApiModelProperty("结束标识")
private String end;
}
@ApiModel("报告单图片文字通用识别-返回")
@Data
public static class CodeAndAnswer{
@ApiModelProperty("code")
private String code;
@ApiModelProperty("答案")
private String answer;
@ApiModelProperty("是否通过验证(0否,1是)")
private Byte isOk;
@JsonIgnore
@ApiModelProperty("匹配中的文字")
private String matchStr;
}
}

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

@ -162,4 +162,11 @@ public interface FirstAidRecordDao extends FirstAidRecordMapper {
* @return 返回质控信息
*/
List<StatisticalVo.ProvinceCity> provinceCityStatistical(@Param("code")String code);
/**
* 查询发病时间
* @param firstAidId 急救id
* @return 发病时间戳
*/
Long queryDiseaseTime(@Param("firstAidId") Long firstAidId);
}

25
src/main/java/com/ccsens/carbasics/persist/dao/OcrKeywordDao.java

@ -0,0 +1,25 @@
package com.ccsens.carbasics.persist.dao;
import com.ccsens.carbasics.bean.po.OcrKeyword;
import com.ccsens.carbasics.persist.mapper.OcrKeywordMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface OcrKeywordDao extends OcrKeywordMapper {
/**
* 根据医院id查询所有关键词
* @param hospitalId 医院id
* @return 关键词列表
*/
List<OcrKeyword> queryByHospital(@Param("hospitalId") Long hospitalId);
/**
* 查询出院时间
* @param hospitalId 医院id
* @return 出院时间关键词信息
*/
OcrKeyword queryDischargeTime(@Param("hospitalId") Long hospitalId);
}

18
src/main/java/com/ccsens/carbasics/persist/dao/OcrKeywordOptionDao.java

@ -0,0 +1,18 @@
package com.ccsens.carbasics.persist.dao;
import com.ccsens.carbasics.bean.po.OcrKeywordOption;
import com.ccsens.carbasics.persist.mapper.OcrKeywordOptionMapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface OcrKeywordOptionDao extends OcrKeywordOptionMapper {
/**
* 根据关键字id查询选项
* @param keyId 关键字id
* @return 选项列表
*/
List<OcrKeywordOption> queryByKeyId(Long keyId);
}

30
src/main/java/com/ccsens/carbasics/persist/mapper/OcrKeywordMapper.java

@ -0,0 +1,30 @@
package com.ccsens.carbasics.persist.mapper;
import com.ccsens.carbasics.bean.po.OcrKeyword;
import com.ccsens.carbasics.bean.po.OcrKeywordExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface OcrKeywordMapper {
long countByExample(OcrKeywordExample example);
int deleteByExample(OcrKeywordExample example);
int deleteByPrimaryKey(Long id);
int insert(OcrKeyword record);
int insertSelective(OcrKeyword record);
List<OcrKeyword> selectByExample(OcrKeywordExample example);
OcrKeyword selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") OcrKeyword record, @Param("example") OcrKeywordExample example);
int updateByExample(@Param("record") OcrKeyword record, @Param("example") OcrKeywordExample example);
int updateByPrimaryKeySelective(OcrKeyword record);
int updateByPrimaryKey(OcrKeyword record);
}

30
src/main/java/com/ccsens/carbasics/persist/mapper/OcrKeywordOptionMapper.java

@ -0,0 +1,30 @@
package com.ccsens.carbasics.persist.mapper;
import com.ccsens.carbasics.bean.po.OcrKeywordOption;
import com.ccsens.carbasics.bean.po.OcrKeywordOptionExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface OcrKeywordOptionMapper {
long countByExample(OcrKeywordOptionExample example);
int deleteByExample(OcrKeywordOptionExample example);
int deleteByPrimaryKey(Long id);
int insert(OcrKeywordOption record);
int insertSelective(OcrKeywordOption record);
List<OcrKeywordOption> selectByExample(OcrKeywordOptionExample example);
OcrKeywordOption selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") OcrKeywordOption record, @Param("example") OcrKeywordOptionExample example);
int updateByExample(@Param("record") OcrKeywordOption record, @Param("example") OcrKeywordOptionExample example);
int updateByPrimaryKeySelective(OcrKeywordOption record);
int updateByPrimaryKey(OcrKeywordOption record);
}

13
src/main/java/com/ccsens/carbasics/service/IOcrService.java

@ -3,8 +3,11 @@ package com.ccsens.carbasics.service;
import com.ccsens.carbasics.bean.dto.OcrDto;
import com.ccsens.carbasics.bean.vo.OcrVo;
import com.ccsens.carbasics.bean.vo.QuestionOcrVo;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;
/**
@ -19,4 +22,14 @@ public interface IOcrService {
* @return 文字列表
*/
List<QuestionOcrVo.GeneralBasic> identifyWords(OcrDto.GeneralBasic param, Long userId) throws IOException;
/**
*
* @param param 图片地址
* @param userId 用户id
* @return 文字列表
* @throws IOException 异常
*/
List<QuestionOcrVo.CodeAndAnswer> discernWords(List<MultipartFile> param, Long userId, Long firstAidId) throws IOException, ParseException;
}

462
src/main/java/com/ccsens/carbasics/service/OcrService.java

@ -2,23 +2,35 @@ package com.ccsens.carbasics.service;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ImageUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.cloudapi.sdk.model.ApiResponse;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ccsens.carbasics.bean.dto.OcrDto;
import com.ccsens.carbasics.bean.po.FirstAid;
import com.ccsens.carbasics.bean.po.FirstAidRecord;
import com.ccsens.carbasics.bean.po.OcrKeyword;
import com.ccsens.carbasics.bean.po.OcrKeywordOption;
import com.ccsens.carbasics.bean.vo.OcrVo;
import com.ccsens.carbasics.bean.vo.QuestionOcrVo;
import com.ccsens.carbasics.persist.dao.QuestionOcrDao;
import com.ccsens.carbasics.persist.dao.*;
import com.ccsens.carbasics.util.Constant;
import com.ccsens.util.CodeEnum;
import com.ccsens.util.PoiUtil;
import com.ccsens.util.PropUtil;
import com.ccsens.util.WebConstant;
import com.ccsens.util.ali.AliInstanceUtil;
import com.ccsens.util.baidu.BaiDuDto;
import com.ccsens.util.baidu.BaiDuUtil;
import com.ccsens.util.baidu.BaiDuVo;
import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@ -26,13 +38,13 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@Slf4j
@Service
@ -41,101 +53,109 @@ public class OcrService implements IOcrService {
@Resource
private QuestionOcrDao questionOcrDao;
@Resource
private OcrKeywordDao ocrKeywordDao;
@Resource
private FirstAidDao firstAidDao;
@Resource
private FirstAidRecordDao firstAidRecordDao;
@Resource
private OcrKeywordOptionDao keywordOptionDao;
@Override
public List<QuestionOcrVo.GeneralBasic> identifyWords(OcrDto.GeneralBasic generalBasic, Long userId) throws IOException {
long time1 = System.currentTimeMillis();
List<QuestionOcrVo.GeneralBasic> vos = new ArrayList<>();
// 类型测评规则
List<QuestionOcrVo.OcrRule> rules = questionOcrDao.queryRules(generalBasic.getPatientId(), generalBasic.getCode());
log.info("规则:{}", rules);
if (CollectionUtil.isEmpty(rules)) {
return vos;
}
long time2 = System.currentTimeMillis();
log.info("查询规则时间:{}", time2 - time1);
// ReportOcrExample ocrExample = new ReportOcrExample();
// ocrExample.createCriteria().andCodeEqualTo(generalBasic.getCode());
// List<ReportOcr> reportOcrList = reportOcrMapper.selectByExample(ocrExample);
long time3 = System.currentTimeMillis();
log.info("查询reportOrc:{}", time3 - time2);
// boolean baidu = CollectionUtil.isEmpty(reportOcrList) || reportOcrList.get(0).getOcrChannel() != 1;
// 识别字符串
List<String> contents = new ArrayList<>();
long time4 = 0;
//图片
// CommonFile commonFile = commonFileMapper.selectByPrimaryKey(generalBasic.getFileId());
// if (commonFile == null) {
// throw new BaseException(CodeEnum.PARAM_ERROR);
// long time1 = System.currentTimeMillis();
// List<QuestionOcrVo.GeneralBasic> vos = new ArrayList<>();
// // 类型测评规则
// List<QuestionOcrVo.OcrRule> rules = questionOcrDao.queryRules(generalBasic.getPatientId(), generalBasic.getCode());
// log.info("规则:{}", rules);
// if (CollectionUtil.isEmpty(rules)) {
// return vos;
// }
// File file = new File(commonFile.getLocation());
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageUtil.scale(ImageIO.read((File)generalBasic.getFile()), out, 0.5f);
// Img.from(new URL(generalBasic.getUrl())).scale(0.5f).write(out);
String img = Base64.encode(out.toByteArray());
// if (baidu) {
BaiDuDto.GeneralBasic basic = new BaiDuDto.GeneralBasic();
// basic.setUrl(generalBasic.getUrl());
basic.setImage(img);
BaiDuVo.GeneralBasic words = BaiDuUtil.accurateBasic(Constant.BaiDu.APP_KEY, Constant.BaiDu.SECRET_KEY, basic);
log.info("文字识别:{}", words);
if (words == null || CollectionUtil.isEmpty(words.getWordsResult())) {
return vos;
}
words.getWordsResult().forEach(word -> contents.add(word.getWords()));
// } else {
// 阿里
// String body = "{\"img\":\"\",\"url\":\""+generalBasic.getUrl()+"\",\"prob\":false,\"charInfo\":false,\"rotate\":false,\"table\":false}";
// String body = "{\"img\":\""+img+"\",\"url\":\"\",\"prob\":false,\"charInfo\":false,\"rotate\":false,\"table\":false}";
// ApiResponse response = AliInstanceUtil.getGeneralAdvancedHttps().ocrAdvancedSyncMode(body.getBytes());
// time4 = System.currentTimeMillis();
// log.info("阿里接口调用:{}", time4 -time3);
// log.info("调用阿里的通用识别接口,请求:{}, 返回:{}", body, response);
// int code = response.getCode();
// int curCode = 200;
// if (code != curCode) {
// CodeEnum thirdError = CodeEnum.THIRD_ERROR;
// thirdError.setMsg(response.getMessage());
// throw new BaseException(thirdError);
// }
// String result = new String(response.getBody());
// log.info("result:{}", result);
// JSONObject json = JSONObject.parseObject(result);
// JSONArray infos = json.getJSONArray("prism_wordsInfo");
// for (Object obj: infos) {
// JSONObject info = (JSONObject)obj;
// contents.add(info.getString("word").replaceAll("\\s+",""));
// long time2 = System.currentTimeMillis();
// log.info("查询规则时间:{}", time2 - time1);
//// ReportOcrExample ocrExample = new ReportOcrExample();
//// ocrExample.createCriteria().andCodeEqualTo(generalBasic.getCode());
//// List<ReportOcr> reportOcrList = reportOcrMapper.selectByExample(ocrExample);
// long time3 = System.currentTimeMillis();
// log.info("查询reportOrc:{}", time3 - time2);
//
//// boolean baidu = CollectionUtil.isEmpty(reportOcrList) || reportOcrList.get(0).getOcrChannel() != 1;
//
// // 识别字符串
// List<String> contents = new ArrayList<>();
// long time4 = 0;
//
// //图片
//// CommonFile commonFile = commonFileMapper.selectByPrimaryKey(generalBasic.getFileId());
//// if (commonFile == null) {
//// throw new BaseException(CodeEnum.PARAM_ERROR);
//// }
//// File file = new File(commonFile.getLocation());
// ByteArrayOutputStream out = new ByteArrayOutputStream();
// ImageUtil.scale(ImageIO.read((File)generalBasic.getFile()), out, 0.5f);
//// Img.from(new URL(generalBasic.getUrl())).scale(0.5f).write(out);
// String img = Base64.encode(out.toByteArray());
//
//// if (baidu) {
// BaiDuDto.GeneralBasic basic = new BaiDuDto.GeneralBasic();
//// basic.setUrl(generalBasic.getUrl());
// basic.setImage(img);
// BaiDuVo.GeneralBasic words = BaiDuUtil.accurateBasic(Constant.BaiDu.APP_KEY, Constant.BaiDu.SECRET_KEY, basic);
// log.info("文字识别:{}", words);
// if (words == null || CollectionUtil.isEmpty(words.getWordsResult())) {
// return vos;
// }
// words.getWordsResult().forEach(word -> contents.add(word.getWords()));
//// } else {
// // 阿里
//// String body = "{\"img\":\"\",\"url\":\""+generalBasic.getUrl()+"\",\"prob\":false,\"charInfo\":false,\"rotate\":false,\"table\":false}";
//// String body = "{\"img\":\""+img+"\",\"url\":\"\",\"prob\":false,\"charInfo\":false,\"rotate\":false,\"table\":false}";
//// ApiResponse response = AliInstanceUtil.getGeneralAdvancedHttps().ocrAdvancedSyncMode(body.getBytes());
//// time4 = System.currentTimeMillis();
//// log.info("阿里接口调用:{}", time4 -time3);
//// log.info("调用阿里的通用识别接口,请求:{}, 返回:{}", body, response);
//// int code = response.getCode();
//// int curCode = 200;
//// if (code != curCode) {
//// CodeEnum thirdError = CodeEnum.THIRD_ERROR;
//// thirdError.setMsg(response.getMessage());
//// throw new BaseException(thirdError);
//// }
//// String result = new String(response.getBody());
//// log.info("result:{}", result);
//// JSONObject json = JSONObject.parseObject(result);
//// JSONArray infos = json.getJSONArray("prism_wordsInfo");
//// for (Object obj: infos) {
//// JSONObject info = (JSONObject)obj;
//// contents.add(info.getString("word").replaceAll("\\s+",""));
//// }
// Map<String, Integer> keyMap = new HashMap<>(16);
// rules.forEach(rule -> {
// JSONObject start = StrUtil.isEmpty(rule.getStart()) ? null : JSONObject.parseObject(rule.getStart());
// JSONObject end = StrUtil.isEmpty(rule.getEnd()) ? null : JSONObject.parseObject(rule.getEnd());
// StringBuilder builder;
//
// if (start == null) {
// // 不知道这种场景
// return;
// } else if (start.containsKey(Constant.BaiDu.NUM)) {
// // 包含读取第几个
// builder = getContent(contents, keyMap, start);
// } else {
// builder = getContent(contents, start, end);
// }
Map<String, Integer> keyMap = new HashMap<>(16);
rules.forEach(rule -> {
JSONObject start = StrUtil.isEmpty(rule.getStart()) ? null : JSONObject.parseObject(rule.getStart());
JSONObject end = StrUtil.isEmpty(rule.getEnd()) ? null : JSONObject.parseObject(rule.getEnd());
StringBuilder builder;
if (start == null) {
// 不知道这种场景
return;
} else if (start.containsKey(Constant.BaiDu.NUM)) {
// 包含读取第几个
builder = getContent(contents, keyMap, start);
} else {
builder = getContent(contents, start, end);
}
QuestionOcrVo.GeneralBasic vo = new QuestionOcrVo.GeneralBasic();
vo.setQuestionId(rule.getQuestionId());
vo.setCode(rule.getCode());
vo.setSort(rule.getSort());
vo.setContent(builder.toString());
vos.add(vo);
});
long time5 = System.currentTimeMillis();
log.info("数据处理时间:{}", time5 - time4);
return vos;
//
// QuestionOcrVo.GeneralBasic vo = new QuestionOcrVo.GeneralBasic();
// vo.setQuestionId(rule.getQuestionId());
// vo.setCode(rule.getCode());
// vo.setSort(rule.getSort());
// vo.setContent(builder.toString());
// vos.add(vo);
// });
// long time5 = System.currentTimeMillis();
// log.info("数据处理时间:{}", time5 - time4);
return null;
}
private StringBuilder getContent(List<String> contents, Map<String, Integer> keyMap, JSONObject start) {
@ -174,6 +194,252 @@ public class OcrService implements IOcrService {
return builder;
}
@Override
public List<QuestionOcrVo.CodeAndAnswer> discernWords(List<MultipartFile> param, Long userId,Long firstAidId) throws IOException, ParseException {
FirstAid firstAidInfo = firstAidDao.selectByPrimaryKey(firstAidId);
if (ObjectUtil.isNull(firstAidInfo)) {
throw new BaseException("急救信息错误");
}
List<QuestionOcrVo.CodeAndAnswer> resultList = new ArrayList<>();
// TODO 查询关键字规则 (暂时没有根据医院id查询)
List<OcrKeyword> ocrKeywordList = ocrKeywordDao.queryByHospital(firstAidInfo.getHospitalId());
log.info("规则:{}", ocrKeywordList);
if (ObjectUtil.isNull(ocrKeywordList)) {
return resultList;
}
SimpleDateFormat frontTime = new SimpleDateFormat("yy-MM-ddHH:mm");
String frontReg = "\\d{1,2}-\\d{1,2}-\\d{2,4}:\\d{1,2}";
Pattern frontPat = Pattern.compile(frontReg);
SimpleDateFormat backTime = new SimpleDateFormat("yyyyMMddHH");
String backReg = "\\d{1,6}:\\d{1,2}";
Pattern backPat = Pattern.compile(backReg);
Calendar instance = Calendar.getInstance();
int year = instance.get(Calendar.YEAR);
//查询发病时间
Long time = firstAidRecordDao.queryDiseaseTime(firstAidId);
//识别图片,放入文字集合
List<String> strList = new ArrayList<>();
Long startOcr = System.currentTimeMillis();
for (MultipartFile file : param) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageUtil.scale(ImageIO.read(file.getInputStream()), out, 1);
String img = Base64.encode(out.toByteArray());
BaiDuDto.GeneralBasic basic = new BaiDuDto.GeneralBasic();
basic.setImage(img);
BaiDuVo.GeneralBasic words = BaiDuUtil.accurateBasic(Constant.BaiDu.APP_KEY, Constant.BaiDu.SECRET_KEY, basic);
log.info("文字识别:{}", words);
for (BaiDuVo.GeneralWord generalWord : words.getWordsResult()) {
strList.add(generalWord.getWords());
}
//保存图片
String extName = FileUtil.extName(file.getOriginalFilename());
String dir = PropUtil.path + File.separator + Constant.OrcImg.FILE_DIR;
String extraPath = DateUtil.format(new Date(), "yyyyMMdd");
String path = extraPath + File.separator+firstAidId+firstAidInfo.getName()+File.separator+ IdUtil.simpleUUID() + "." + extName;
//转成file
File saveFile = new File(dir + extraPath);
if (!saveFile.exists()) {
saveFile.mkdirs();
}
String fullPath = dir + File.separator + path;
FileUtil.writeFromStream(file.getInputStream(), fullPath);
}
Long ocrEnd = System.currentTimeMillis();
log.info("识图+保存文件花费时间{}",ocrEnd-startOcr);
if (CollectionUtil.isEmpty(strList)) {
return resultList;
}
//TODO 查询出院时间 (暂时没有根据医院id查询)
OcrKeyword dischargeTime = ocrKeywordDao.queryDischargeTime(firstAidInfo.getHospitalId());
long timeOfDischarge = 0L;
if (ObjectUtil.isNotNull(dischargeTime)) {
for (String str : strList) {
if (str.contains(dischargeTime.getKeyword())) {
JSONObject jsonObject = JSONObject.parseObject(dischargeTime.getQueryRule());
String start = jsonObject.getString("start");
String end = jsonObject.getString("end");
String substring = str.substring(str.indexOf(start), str.lastIndexOf(end));
StringBuilder str2 = new StringBuilder();
for(int i=0;i<substring.length();i++) {
if (str.charAt(i) >= 48 && str.charAt(i) <= 57) {
str2.append(str.charAt(i));
}
}
SimpleDateFormat dischargeSdf = new SimpleDateFormat("yyyyMMddHH");
timeOfDischarge = dischargeSdf.parse(str2.toString()).getTime();
//将code与答案保存到结果集合
giveCodeAndAnswer(resultList,dischargeTime.getId(),(byte)0,Long.toString(timeOfDischarge),str2.toString(),0L,timeOfDischarge);
}
}
}
//循环关键字
for (OcrKeyword ocrKeyword : ocrKeywordList) {
for (int i = 0; i < strList.size(); i++) {
String regKey = ".*("+ocrKeyword.getKeyword()+").*";
if (strList.get(i).matches(regKey)){
//校验
if (0 != ocrKeyword.getVerifyType()){
if (1 == ocrKeyword.getVerifyType()) {
//验证发病时间
if (ObjectUtil.isNull(time) || 0 == time) {
//是否出院带药
Matcher backMatcher = backPat.matcher(strList.get(i + 1));
long endTimestamp = 0L;
if (backMatcher.find()) {
String endTime = backMatcher.group();
endTimestamp = backTime.parse(year + endTime).getTime();
}
//将code与答案保存到结果集合
giveCodeAndAnswer(resultList,ocrKeyword.getId(),(byte)0,"",strList.get(i),endTimestamp,timeOfDischarge);
}else {
Matcher frontMatcher = frontPat.matcher(strList.get(i));
if (frontMatcher.find()){
Matcher backMatcher = backPat.matcher(strList.get(i + 1));
long endTimestamp = 0L;
if (backMatcher.find()) {
String endTime = backMatcher.group();
endTimestamp = backTime.parse(year + endTime).getTime();
}
String startTime = frontMatcher.group();
if (frontTime.parse(startTime).getTime()-time <= Constant.OrcImg.HOVER_48){
//将code与答案保存到结果集合
giveCodeAndAnswer(resultList,ocrKeyword.getId(),(byte)1,"",strList.get(i),endTimestamp,timeOfDischarge);
}else{
//将code与答案保存到结果集合
giveCodeAndAnswer(resultList,ocrKeyword.getId(),(byte)0,"",strList.get(i),endTimestamp,timeOfDischarge);
}
}
}
}
}
//关键字排除
if (StrUtil.isNotBlank(ocrKeyword.getKeywordExclude())){
String[] split = ocrKeyword.getKeywordExclude().split("\\|");
for (String exclude : split) {
for (int j = 0; j < resultList.size(); j++) {
if (resultList.get(j).getMatchStr().contains(exclude)){
resultList.remove(j);
}
}
}
String regExclude = ".*("+ocrKeyword.getKeywordExclude()+").*";
if (strList.get(i).contains(ocrKeyword.getKeyword()) && !strList.get(i).matches(regExclude)) {
//查询结束的时间
Matcher backMatcher = backPat.matcher(strList.get(i + 1));
long endTimestamp = 0L;
if (backMatcher.find()) {
String endTime = backMatcher.group();
endTimestamp = backTime.parse(year + endTime).getTime();
}
//将code与答案保存到结果集合
giveCodeAndAnswer(resultList,ocrKeyword.getId(),(byte)0,"无",strList.get(i),endTimestamp,timeOfDischarge);
}
}
//查询规则
if (StrUtil.isNotBlank(ocrKeyword.getQueryRule())){
if (ocrKeyword.getKeyword().equals(dischargeTime.getKeyword())){
continue;
}
JSONObject jsonObject = JSONObject.parseObject(ocrKeyword.getQueryRule());
String start = jsonObject.getString("start");
String end = jsonObject.getString("end");
if (strList.get(i).contains(start) && strList.get(i).contains(end)) {
log.info("字符串:{}",strList.get(i));
String substring = strList.get(i).substring(strList.get(i).indexOf(start) + start.length(), strList.get(i).lastIndexOf(end));
String newStr = substring.replaceAll("[^\u4E00-\u9FA5]", "");
//查询结束的时间
Matcher backMatcher = backPat.matcher(strList.get(i + 1));
long endTimestamp = 0L;
if (backMatcher.find()) {
String endTime = backMatcher.group();
endTimestamp = backTime.parse(year + endTime).getTime();
}
//将code与答案保存到结果集合
giveCodeAndAnswer(resultList,ocrKeyword.getId(),(byte)0,newStr,strList.get(i),endTimestamp,timeOfDischarge);
}
}
if (0 == ocrKeyword.getVerifyType() && StrUtil.isBlank(ocrKeyword.getKeywordExclude()) && StrUtil.isBlank(ocrKeyword.getQueryRule())) {
//查询结束的时间
Matcher backMatcher = backPat.matcher(strList.get(i + 1));
long endTimestamp = 0L;
if (backMatcher.find()) {
String endTime = backMatcher.group();
endTimestamp = backTime.parse(year + endTime).getTime();
}
//将code与答案保存到结果集合
giveCodeAndAnswer(resultList,ocrKeyword.getId(),(byte)0,"",strList.get(i),endTimestamp,timeOfDischarge);
}
}
}
}
ArrayList<QuestionOcrVo.CodeAndAnswer> newList = resultList.stream().collect(Collectors
.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(QuestionOcrVo.CodeAndAnswer::getAnswer))), ArrayList::new));
return newList;
}
/**
* 保存code与答案
* @param resultList 保存结果的集合
* @param keyId 关键词id
* @param isOk 是否验证(0-,1-)
* @param answer 答案(选项是无,使用此答案)
* @param matchStr 匹配到的字符串
* @param endTime 结束时间
* @param timeOfDischarge 出院时间
*/
public void giveCodeAndAnswer(List<QuestionOcrVo.CodeAndAnswer> resultList,Long keyId,Byte isOk,String answer,String matchStr,Long endTime,Long timeOfDischarge) {
List<OcrKeywordOption> keywordOptionList = keywordOptionDao.queryByKeyId(keyId);
if (CollectionUtil.isNotEmpty(keywordOptionList)) {
for (OcrKeywordOption ocrKeywordOption : keywordOptionList) {
// TODO 出院带药 code: CYQK-CYDY
if ("CYQK-CYDY".equals(ocrKeywordOption.getCode())){
//出院带药 校验时间
QuestionOcrVo.CodeAndAnswer result = new QuestionOcrVo.CodeAndAnswer();
result.setCode(ocrKeywordOption.getCode());
result.setAnswer(ocrKeywordOption.getAnswer());
if (0 != endTime && 0 != timeOfDischarge) {
if (endTime > timeOfDischarge) {
result.setIsOk((byte)1);
}else{
result.setIsOk((byte)0);
}
}else{
result.setIsOk((byte)0);
}
result.setMatchStr(matchStr);
resultList.add(result);
}else {
QuestionOcrVo.CodeAndAnswer result = new QuestionOcrVo.CodeAndAnswer();
result.setCode(ocrKeywordOption.getCode());
if ("无".equals(ocrKeywordOption.getAnswer())) {
result.setAnswer(answer);
}else {
result.setAnswer(ocrKeywordOption.getAnswer());
}
result.setIsOk(isOk);
result.setMatchStr(matchStr);
resultList.add(result);
}
}
}
}
}

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

@ -1,5 +1,6 @@
package com.ccsens.carbasics.util;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
@ -320,4 +321,14 @@ public class Constant {
}
}
}
/**
* orc相关
*/
public final static class OrcImg {
//48小时
public static final Long HOVER_48 = 172800000L;
public static final String FILE_DIR = "orcImage" + File.separator;
}
}

11
src/main/resources/mapper_dao/FirstAidRecordDao.xml

@ -605,4 +605,15 @@
AND p.rec_status = 0
AND o.rec_status = 0
</select>
<select id="queryDiseaseTime" resultType="java.lang.Long">
SELECT
answer
FROM
t_qcp_first_aid_record AS r
WHERE
rec_status = 0
AND first_aid_id = #{firstAidId}
AND question_code = 'JBXX-FBSJ'
</select>
</mapper>

41
src/main/resources/mapper_dao/OcrKeywordDao.xml

@ -0,0 +1,41 @@
<?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.OcrKeywordDao">
<select id="queryByHospital" resultType="com.ccsens.carbasics.bean.po.OcrKeyword">
SELECT
id,
`code`,
`option`,
keyword,
keyword_exclude,
verify_type,
query_rule,
organization_id
FROM
t_qcp_ocr_keyword AS k
WHERE
rec_status = 0
AND k.organization_id = 0
</select>
<select id="queryDischargeTime" resultType="com.ccsens.carbasics.bean.po.OcrKeyword">
SELECT
id,
`code`,
`option`,
keyword,
keyword_exclude,
verify_type,
query_rule,
organization_id
FROM
t_qcp_ocr_keyword AS k
WHERE
rec_status = 0
AND k.organization_id = 0
AND keyword = '出院时间'
LIMIT 1
</select>
</mapper>

18
src/main/resources/mapper_dao/OcrKeywordOptionDao.xml

@ -0,0 +1,18 @@
<?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.OcrKeywordOptionDao">
<select id="queryByKeyId" resultType="com.ccsens.carbasics.bean.po.OcrKeywordOption">
SELECT
id,
`code`,
answer,
keyword_id
FROM
t_qcp_ocr_keyword_option AS ko
WHERE
rec_status = 0
AND ko.keyword_id = #{keyId}
</select>
</mapper>

306
src/main/resources/mapper_raw/OcrKeywordMapper.xml

@ -0,0 +1,306 @@
<?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.OcrKeywordMapper">
<resultMap id="BaseResultMap" type="com.ccsens.carbasics.bean.po.OcrKeyword">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="code" jdbcType="VARCHAR" property="code" />
<result column="option" jdbcType="VARCHAR" property="option" />
<result column="keyword" jdbcType="VARCHAR" property="keyword" />
<result column="keyword_exclude" jdbcType="VARCHAR" property="keywordExclude" />
<result column="verify_type" jdbcType="TINYINT" property="verifyType" />
<result column="query_rule" jdbcType="VARCHAR" property="queryRule" />
<result column="organization_id" jdbcType="BIGINT" property="organizationId" />
<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, code, option, keyword, keyword_exclude, verify_type, query_rule, organization_id,
created_at, updated_at, rec_status
</sql>
<select id="selectByExample" parameterType="com.ccsens.carbasics.bean.po.OcrKeywordExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from t_qcp_ocr_keyword
<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_ocr_keyword
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from t_qcp_ocr_keyword
where id = #{id,jdbcType=BIGINT}
</delete>
<delete id="deleteByExample" parameterType="com.ccsens.carbasics.bean.po.OcrKeywordExample">
delete from t_qcp_ocr_keyword
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.ccsens.carbasics.bean.po.OcrKeyword">
insert into t_qcp_ocr_keyword (id, code, option,
keyword, keyword_exclude, verify_type,
query_rule, organization_id, created_at,
updated_at, rec_status)
values (#{id,jdbcType=BIGINT}, #{code,jdbcType=VARCHAR}, #{option,jdbcType=VARCHAR},
#{keyword,jdbcType=VARCHAR}, #{keywordExclude,jdbcType=VARCHAR}, #{verifyType,jdbcType=TINYINT},
#{queryRule,jdbcType=VARCHAR}, #{organizationId,jdbcType=BIGINT}, #{createdAt,jdbcType=TIMESTAMP},
#{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT})
</insert>
<insert id="insertSelective" parameterType="com.ccsens.carbasics.bean.po.OcrKeyword">
insert into t_qcp_ocr_keyword
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="code != null">
code,
</if>
<if test="option != null">
option,
</if>
<if test="keyword != null">
keyword,
</if>
<if test="keywordExclude != null">
keyword_exclude,
</if>
<if test="verifyType != null">
verify_type,
</if>
<if test="queryRule != null">
query_rule,
</if>
<if test="organizationId != null">
organization_id,
</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="code != null">
#{code,jdbcType=VARCHAR},
</if>
<if test="option != null">
#{option,jdbcType=VARCHAR},
</if>
<if test="keyword != null">
#{keyword,jdbcType=VARCHAR},
</if>
<if test="keywordExclude != null">
#{keywordExclude,jdbcType=VARCHAR},
</if>
<if test="verifyType != null">
#{verifyType,jdbcType=TINYINT},
</if>
<if test="queryRule != null">
#{queryRule,jdbcType=VARCHAR},
</if>
<if test="organizationId != null">
#{organizationId,jdbcType=BIGINT},
</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.OcrKeywordExample" resultType="java.lang.Long">
select count(*) from t_qcp_ocr_keyword
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update t_qcp_ocr_keyword
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.code != null">
code = #{record.code,jdbcType=VARCHAR},
</if>
<if test="record.option != null">
option = #{record.option,jdbcType=VARCHAR},
</if>
<if test="record.keyword != null">
keyword = #{record.keyword,jdbcType=VARCHAR},
</if>
<if test="record.keywordExclude != null">
keyword_exclude = #{record.keywordExclude,jdbcType=VARCHAR},
</if>
<if test="record.verifyType != null">
verify_type = #{record.verifyType,jdbcType=TINYINT},
</if>
<if test="record.queryRule != null">
query_rule = #{record.queryRule,jdbcType=VARCHAR},
</if>
<if test="record.organizationId != null">
organization_id = #{record.organizationId,jdbcType=BIGINT},
</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_ocr_keyword
set id = #{record.id,jdbcType=BIGINT},
code = #{record.code,jdbcType=VARCHAR},
option = #{record.option,jdbcType=VARCHAR},
keyword = #{record.keyword,jdbcType=VARCHAR},
keyword_exclude = #{record.keywordExclude,jdbcType=VARCHAR},
verify_type = #{record.verifyType,jdbcType=TINYINT},
query_rule = #{record.queryRule,jdbcType=VARCHAR},
organization_id = #{record.organizationId,jdbcType=BIGINT},
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.OcrKeyword">
update t_qcp_ocr_keyword
<set>
<if test="code != null">
code = #{code,jdbcType=VARCHAR},
</if>
<if test="option != null">
option = #{option,jdbcType=VARCHAR},
</if>
<if test="keyword != null">
keyword = #{keyword,jdbcType=VARCHAR},
</if>
<if test="keywordExclude != null">
keyword_exclude = #{keywordExclude,jdbcType=VARCHAR},
</if>
<if test="verifyType != null">
verify_type = #{verifyType,jdbcType=TINYINT},
</if>
<if test="queryRule != null">
query_rule = #{queryRule,jdbcType=VARCHAR},
</if>
<if test="organizationId != null">
organization_id = #{organizationId,jdbcType=BIGINT},
</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.OcrKeyword">
update t_qcp_ocr_keyword
set code = #{code,jdbcType=VARCHAR},
option = #{option,jdbcType=VARCHAR},
keyword = #{keyword,jdbcType=VARCHAR},
keyword_exclude = #{keywordExclude,jdbcType=VARCHAR},
verify_type = #{verifyType,jdbcType=TINYINT},
query_rule = #{queryRule,jdbcType=VARCHAR},
organization_id = #{organizationId,jdbcType=BIGINT},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

243
src/main/resources/mapper_raw/OcrKeywordOptionMapper.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.OcrKeywordOptionMapper">
<resultMap id="BaseResultMap" type="com.ccsens.carbasics.bean.po.OcrKeywordOption">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="code" jdbcType="VARCHAR" property="code" />
<result column="answer" jdbcType="VARCHAR" property="answer" />
<result column="keyword_id" jdbcType="BIGINT" property="keywordId" />
<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, code, answer, keyword_id, created_at, updated_at, rec_status
</sql>
<select id="selectByExample" parameterType="com.ccsens.carbasics.bean.po.OcrKeywordOptionExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from t_qcp_ocr_keyword_option
<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_ocr_keyword_option
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from t_qcp_ocr_keyword_option
where id = #{id,jdbcType=BIGINT}
</delete>
<delete id="deleteByExample" parameterType="com.ccsens.carbasics.bean.po.OcrKeywordOptionExample">
delete from t_qcp_ocr_keyword_option
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.ccsens.carbasics.bean.po.OcrKeywordOption">
insert into t_qcp_ocr_keyword_option (id, code, answer,
keyword_id, created_at, updated_at,
rec_status)
values (#{id,jdbcType=BIGINT}, #{code,jdbcType=VARCHAR}, #{answer,jdbcType=VARCHAR},
#{keywordId,jdbcType=BIGINT}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP},
#{recStatus,jdbcType=TINYINT})
</insert>
<insert id="insertSelective" parameterType="com.ccsens.carbasics.bean.po.OcrKeywordOption">
insert into t_qcp_ocr_keyword_option
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="code != null">
code,
</if>
<if test="answer != null">
answer,
</if>
<if test="keywordId != null">
keyword_id,
</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="code != null">
#{code,jdbcType=VARCHAR},
</if>
<if test="answer != null">
#{answer,jdbcType=VARCHAR},
</if>
<if test="keywordId != null">
#{keywordId,jdbcType=BIGINT},
</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.OcrKeywordOptionExample" resultType="java.lang.Long">
select count(*) from t_qcp_ocr_keyword_option
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update t_qcp_ocr_keyword_option
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.code != null">
code = #{record.code,jdbcType=VARCHAR},
</if>
<if test="record.answer != null">
answer = #{record.answer,jdbcType=VARCHAR},
</if>
<if test="record.keywordId != null">
keyword_id = #{record.keywordId,jdbcType=BIGINT},
</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_ocr_keyword_option
set id = #{record.id,jdbcType=BIGINT},
code = #{record.code,jdbcType=VARCHAR},
answer = #{record.answer,jdbcType=VARCHAR},
keyword_id = #{record.keywordId,jdbcType=BIGINT},
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.OcrKeywordOption">
update t_qcp_ocr_keyword_option
<set>
<if test="code != null">
code = #{code,jdbcType=VARCHAR},
</if>
<if test="answer != null">
answer = #{answer,jdbcType=VARCHAR},
</if>
<if test="keywordId != null">
keyword_id = #{keywordId,jdbcType=BIGINT},
</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.OcrKeywordOption">
update t_qcp_ocr_keyword_option
set code = #{code,jdbcType=VARCHAR},
answer = #{answer,jdbcType=VARCHAR},
keyword_id = #{keywordId,jdbcType=BIGINT},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

4
src/main/resources/mbg.xml

@ -56,7 +56,9 @@
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<table tableName="t_organization" domainObjectName="Organization"></table>
<!-- <table tableName="t_organization" domainObjectName="Organization"></table>-->
<!-- <table tableName="t_qcp_ocr_keyword" domainObjectName="OcrKeyword"></table>-->
<table tableName="t_qcp_ocr_keyword_option" domainObjectName="OcrKeywordOption"></table>
<!-- <table tableName="t_organization_department" domainObjectName="OrganizationDepartment"></table>-->
<!-- <table tableName="t_organization_member" domainObjectName="OrganizationMember"></table>-->
<!-- <table tableName="t_organization_parent" domainObjectName="OrganizationParent"></table>-->

Loading…
Cancel
Save