Browse Source

识别文字接口-未修改

master
ma 4 years ago
parent
commit
fdab44ce83
  1. 58
      src/main/java/com/ccsens/carbasics/api/CarController.java
  2. 28
      src/main/java/com/ccsens/carbasics/api/OcrController.java
  3. 60
      src/main/java/com/ccsens/carbasics/api/RecordController.java
  4. 31
      src/main/java/com/ccsens/carbasics/bean/dto/OcrDto.java
  5. 139
      src/main/java/com/ccsens/carbasics/bean/po/QuestionOcr.java
  6. 901
      src/main/java/com/ccsens/carbasics/bean/po/QuestionOcrExample.java
  7. 41
      src/main/java/com/ccsens/carbasics/bean/vo/QuestionOcrVo.java
  8. 20
      src/main/java/com/ccsens/carbasics/persist/dao/QuestionOcrDao.java
  9. 30
      src/main/java/com/ccsens/carbasics/persist/mapper/QuestionOcrMapper.java
  10. 22
      src/main/java/com/ccsens/carbasics/service/IOcrService.java
  11. 183
      src/main/java/com/ccsens/carbasics/service/OcrService.java
  12. 4
      src/main/resources/application.yml
  13. 28
      src/main/resources/mapper_dao/QuestionOcrDao.xml
  14. 306
      src/main/resources/mapper_raw/QuestionOcrMapper.xml

58
src/main/java/com/ccsens/carbasics/api/CarController.java

@ -31,36 +31,36 @@ import java.util.List;
@Slf4j
public class CarController {
@Resource
private IPatientWisdomCarService patientWisdomCarService;
// @Resource
// private IPatientWisdomCarService patientWisdomCarService;
@MustLogin
@ApiOperation(value = "查询医院的平车信息")
@RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<CarVo.Car>> query(@ApiParam @Validated @RequestBody QueryDto params) {
log.info("查询医院的平车信息:{}", params);
List<CarVo.Car> list = patientWisdomCarService.query(params.getUserId());
log.info("查询医院的平车信息结果:{}", list);
return JsonResponse.newInstance().ok(list);
}
// @MustLogin
// @ApiOperation(value = "查询医院的平车信息")
// @RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
// public JsonResponse<List<CarVo.Car>> query(@ApiParam @Validated @RequestBody QueryDto params) {
// log.info("查询医院的平车信息:{}", params);
// List<CarVo.Car> list = patientWisdomCarService.query(params.getUserId());
// log.info("查询医院的平车信息结果:{}", list);
// return JsonResponse.newInstance().ok(list);
// }
@MustLogin
@ApiOperation(value = "查询患者绑定的平车信息")
@RequestMapping(value = "/queryBind", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<CarVo.QueryBind> queryBind(@ApiParam @Validated @RequestBody QueryDto<CarDto.QueryBind> params) {
log.info("查询患者绑定的平车信息:{}", params);
CarVo.QueryBind bind = patientWisdomCarService.queryBind(params.getParam(), params.getUserId());
log.info("查询患者绑定的平车信息结果:{}", bind);
return JsonResponse.newInstance().ok(bind);
}
// @MustLogin
// @ApiOperation(value = "查询患者绑定的平车信息")
// @RequestMapping(value = "/queryBind", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
// public JsonResponse<CarVo.QueryBind> queryBind(@ApiParam @Validated @RequestBody QueryDto<CarDto.QueryBind> params) {
// log.info("查询患者绑定的平车信息:{}", params);
// CarVo.QueryBind bind = patientWisdomCarService.queryBind(params.getParam(), params.getUserId());
// log.info("查询患者绑定的平车信息结果:{}", bind);
// return JsonResponse.newInstance().ok(bind);
// }
@MustLogin
@ApiOperation(value = "绑定平车")
@RequestMapping(value = "/bind", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse bind(@ApiParam @Validated @RequestBody QueryDto<CarDto.Bind> params) {
log.info("绑定平车:{}", params);
CodeError.Code codeError = patientWisdomCarService.bind(params.getParam(), params.getUserId());
log.info("绑定平车结果:{}", codeError);
return JsonResponse.newInstance().ok(codeError);
}
// @MustLogin
// @ApiOperation(value = "绑定平车")
// @RequestMapping(value = "/bind", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
// public JsonResponse bind(@ApiParam @Validated @RequestBody QueryDto<CarDto.Bind> params) {
// log.info("绑定平车:{}", params);
// CodeError.Code codeError = patientWisdomCarService.bind(params.getParam(), params.getUserId());
// log.info("绑定平车结果:{}", codeError);
// return JsonResponse.newInstance().ok(codeError);
// }
}

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

@ -2,24 +2,30 @@ package com.ccsens.carbasics.api;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.ImageUtil;
import com.ccsens.carbasics.bean.dto.OcrDto;
import com.ccsens.carbasics.bean.vo.OcrVo;
import com.ccsens.carbasics.bean.vo.QuestionOcrVo;
import com.ccsens.carbasics.service.IOcrService;
import com.ccsens.carbasics.util.Constant;
import com.ccsens.cloudutil.annotation.MustLogin;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.baidu.BaiDuDto;
import com.ccsens.util.baidu.BaiDuUtil;
import com.ccsens.util.baidu.BaiDuVo;
import com.ccsens.util.bean.dto.QueryDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.http.Part;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.List;
/**
* @description:
@ -32,6 +38,9 @@ import java.io.IOException;
@Slf4j
public class OcrController {
@Resource
private IOcrService ocrService;
@ApiOperation(value = "图像识别", notes = "whj")
@RequestMapping(value = "/identifyWords", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<OcrVo.PersonMsg> identifyWords(@RequestParam(required = true) Part part) throws IOException {
@ -50,4 +59,15 @@ public class OcrController {
log.info("图像识别结束:{}", personMsg);
return JsonResponse.newInstance().ok(personMsg);
}
@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 {
log.info("图片文字识别请求:{}", params);
List<QuestionOcrVo.GeneralBasic> words = ocrService.identifyWords(params.getParam(), params.getUserId());
log.info("图片文字识别结束:{}", words);
return JsonResponse.newInstance().ok(words);
}
}

60
src/main/java/com/ccsens/carbasics/api/RecordController.java

@ -34,36 +34,36 @@ import java.util.List;
@RequestMapping("/record")
public class RecordController {
@Resource
private IRecordService recordService;
@ApiOperation(value = "查询智慧平车称重和rfid记录", notes = "")
@RequestMapping(value = "/weightList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<RecordVo.WeightAndRfid> timeList(@ApiParam @Validated @RequestBody QueryDto<RecordDto.WeightAndRfid> params){
log.info("查询智慧平车称重和rfid记录:{}", params);
if (params.getParam().getEndTime() != null) {
params.getParam().setEndTime(params.getParam().getEndTime() + 24 * 3600 *1000);
}
List<RecordVo.WeightAndRfid> list = recordService.queryWeightAndRfid(params.getParam(), params.getUserId());
log.info("查询智慧平车称重和rfid记录结果:{}",list);
return JsonResponse.newInstance().ok(list);
}
// @Resource
// private IRecordService recordService;
// @ApiOperation(value = "查询智慧平车称重和rfid记录", notes = "")
// @RequestMapping(value = "/weightList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
// public JsonResponse<RecordVo.WeightAndRfid> timeList(@ApiParam @Validated @RequestBody QueryDto<RecordDto.WeightAndRfid> params){
// log.info("查询智慧平车称重和rfid记录:{}", params);
// if (params.getParam().getEndTime() != null) {
// params.getParam().setEndTime(params.getParam().getEndTime() + 24 * 3600 *1000);
// }
// List<RecordVo.WeightAndRfid> list = recordService.queryWeightAndRfid(params.getParam(), params.getUserId());
// log.info("查询智慧平车称重和rfid记录结果:{}",list);
// return JsonResponse.newInstance().ok(list);
// }
@ApiOperation(value = "智慧平车称重和rfid记录导出", notes = "")
@RequestMapping(value = "/weightExport", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
public void weightExport(@ApiParam @Validated RecordDto.WeightAndRfidExport param, HttpServletResponse response) throws IOException {
log.info("导出智慧平车称重和rfid记录:{}", param);
if (param.getEndTime() != null) {
param.setEndTime(param.getEndTime() + 24 * 3600 *1000);
}
Workbook workbook = recordService.exportWeightAndRfid(param);
log.info("导出智慧平车称重和rfid记录结果结束");
Date start = new Date();
start.setTime(param.getStartTime());
Date end = new Date();
end.setTime(param.getEndTime() - 24 * 3600 * 1000);
String fileName = "智慧平车记录"+ DateUtil.format(start, DateUtil.yyyyMMdd) + "-" + DateUtil.format(end, DateUtil.yyyyMMdd) +".xlsx";
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, CharsetUtil.UTF_8));
workbook.write(response.getOutputStream());
}
// @ApiOperation(value = "智慧平车称重和rfid记录导出", notes = "")
// @RequestMapping(value = "/weightExport", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
// public void weightExport(@ApiParam @Validated RecordDto.WeightAndRfidExport param, HttpServletResponse response) throws IOException {
// log.info("导出智慧平车称重和rfid记录:{}", param);
// if (param.getEndTime() != null) {
// param.setEndTime(param.getEndTime() + 24 * 3600 *1000);
// }
// Workbook workbook = recordService.exportWeightAndRfid(param);
// log.info("导出智慧平车称重和rfid记录结果结束");
// Date start = new Date();
// start.setTime(param.getStartTime());
// Date end = new Date();
// end.setTime(param.getEndTime() - 24 * 3600 * 1000);
// String fileName = "智慧平车记录"+ DateUtil.format(start, DateUtil.yyyyMMdd) + "-" + DateUtil.format(end, DateUtil.yyyyMMdd) +".xlsx";
// response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, CharsetUtil.UTF_8));
// workbook.write(response.getOutputStream());
// }
}

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

@ -0,0 +1,31 @@
package com.ccsens.carbasics.bean.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.File;
public class OcrDto {
@ApiModel("报告单图片文字通用识别-请求")
@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("图片")
private MultipartFile file;
}
}

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

@ -0,0 +1,139 @@
package com.ccsens.carbasics.bean.po;
import java.io.Serializable;
import java.util.Date;
public class QuestionOcr implements Serializable {
private Long id;
private String code;
private Integer sort;
private Long hospitalId;
private String start;
private String end;
private String remark;
private Long operator;
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 Integer getSort() {
return sort;
}
public void setSort(Integer sort) {
this.sort = sort;
}
public Long getHospitalId() {
return hospitalId;
}
public void setHospitalId(Long hospitalId) {
this.hospitalId = hospitalId;
}
public String getStart() {
return start;
}
public void setStart(String start) {
this.start = start == null ? null : start.trim();
}
public String getEnd() {
return end;
}
public void setEnd(String end) {
this.end = end == null ? null : end.trim();
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark == null ? null : remark.trim();
}
public Long getOperator() {
return operator;
}
public void setOperator(Long operator) {
this.operator = operator;
}
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(", sort=").append(sort);
sb.append(", hospitalId=").append(hospitalId);
sb.append(", start=").append(start);
sb.append(", end=").append(end);
sb.append(", remark=").append(remark);
sb.append(", operator=").append(operator);
sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus);
sb.append("]");
return sb.toString();
}
}

901
src/main/java/com/ccsens/carbasics/bean/po/QuestionOcrExample.java

@ -0,0 +1,901 @@
package com.ccsens.carbasics.bean.po;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class QuestionOcrExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public QuestionOcrExample() {
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 andSortIsNull() {
addCriterion("sort is null");
return (Criteria) this;
}
public Criteria andSortIsNotNull() {
addCriterion("sort is not null");
return (Criteria) this;
}
public Criteria andSortEqualTo(Integer value) {
addCriterion("sort =", value, "sort");
return (Criteria) this;
}
public Criteria andSortNotEqualTo(Integer value) {
addCriterion("sort <>", value, "sort");
return (Criteria) this;
}
public Criteria andSortGreaterThan(Integer value) {
addCriterion("sort >", value, "sort");
return (Criteria) this;
}
public Criteria andSortGreaterThanOrEqualTo(Integer value) {
addCriterion("sort >=", value, "sort");
return (Criteria) this;
}
public Criteria andSortLessThan(Integer value) {
addCriterion("sort <", value, "sort");
return (Criteria) this;
}
public Criteria andSortLessThanOrEqualTo(Integer value) {
addCriterion("sort <=", value, "sort");
return (Criteria) this;
}
public Criteria andSortIn(List<Integer> values) {
addCriterion("sort in", values, "sort");
return (Criteria) this;
}
public Criteria andSortNotIn(List<Integer> values) {
addCriterion("sort not in", values, "sort");
return (Criteria) this;
}
public Criteria andSortBetween(Integer value1, Integer value2) {
addCriterion("sort between", value1, value2, "sort");
return (Criteria) this;
}
public Criteria andSortNotBetween(Integer value1, Integer value2) {
addCriterion("sort not between", value1, value2, "sort");
return (Criteria) this;
}
public Criteria andHospitalIdIsNull() {
addCriterion("hospital_id is null");
return (Criteria) this;
}
public Criteria andHospitalIdIsNotNull() {
addCriterion("hospital_id is not null");
return (Criteria) this;
}
public Criteria andHospitalIdEqualTo(Long value) {
addCriterion("hospital_id =", value, "hospitalId");
return (Criteria) this;
}
public Criteria andHospitalIdNotEqualTo(Long value) {
addCriterion("hospital_id <>", value, "hospitalId");
return (Criteria) this;
}
public Criteria andHospitalIdGreaterThan(Long value) {
addCriterion("hospital_id >", value, "hospitalId");
return (Criteria) this;
}
public Criteria andHospitalIdGreaterThanOrEqualTo(Long value) {
addCriterion("hospital_id >=", value, "hospitalId");
return (Criteria) this;
}
public Criteria andHospitalIdLessThan(Long value) {
addCriterion("hospital_id <", value, "hospitalId");
return (Criteria) this;
}
public Criteria andHospitalIdLessThanOrEqualTo(Long value) {
addCriterion("hospital_id <=", value, "hospitalId");
return (Criteria) this;
}
public Criteria andHospitalIdIn(List<Long> values) {
addCriterion("hospital_id in", values, "hospitalId");
return (Criteria) this;
}
public Criteria andHospitalIdNotIn(List<Long> values) {
addCriterion("hospital_id not in", values, "hospitalId");
return (Criteria) this;
}
public Criteria andHospitalIdBetween(Long value1, Long value2) {
addCriterion("hospital_id between", value1, value2, "hospitalId");
return (Criteria) this;
}
public Criteria andHospitalIdNotBetween(Long value1, Long value2) {
addCriterion("hospital_id not between", value1, value2, "hospitalId");
return (Criteria) this;
}
public Criteria andStartIsNull() {
addCriterion("start is null");
return (Criteria) this;
}
public Criteria andStartIsNotNull() {
addCriterion("start is not null");
return (Criteria) this;
}
public Criteria andStartEqualTo(String value) {
addCriterion("start =", value, "start");
return (Criteria) this;
}
public Criteria andStartNotEqualTo(String value) {
addCriterion("start <>", value, "start");
return (Criteria) this;
}
public Criteria andStartGreaterThan(String value) {
addCriterion("start >", value, "start");
return (Criteria) this;
}
public Criteria andStartGreaterThanOrEqualTo(String value) {
addCriterion("start >=", value, "start");
return (Criteria) this;
}
public Criteria andStartLessThan(String value) {
addCriterion("start <", value, "start");
return (Criteria) this;
}
public Criteria andStartLessThanOrEqualTo(String value) {
addCriterion("start <=", value, "start");
return (Criteria) this;
}
public Criteria andStartLike(String value) {
addCriterion("start like", value, "start");
return (Criteria) this;
}
public Criteria andStartNotLike(String value) {
addCriterion("start not like", value, "start");
return (Criteria) this;
}
public Criteria andStartIn(List<String> values) {
addCriterion("start in", values, "start");
return (Criteria) this;
}
public Criteria andStartNotIn(List<String> values) {
addCriterion("start not in", values, "start");
return (Criteria) this;
}
public Criteria andStartBetween(String value1, String value2) {
addCriterion("start between", value1, value2, "start");
return (Criteria) this;
}
public Criteria andStartNotBetween(String value1, String value2) {
addCriterion("start not between", value1, value2, "start");
return (Criteria) this;
}
public Criteria andEndIsNull() {
addCriterion("end is null");
return (Criteria) this;
}
public Criteria andEndIsNotNull() {
addCriterion("end is not null");
return (Criteria) this;
}
public Criteria andEndEqualTo(String value) {
addCriterion("end =", value, "end");
return (Criteria) this;
}
public Criteria andEndNotEqualTo(String value) {
addCriterion("end <>", value, "end");
return (Criteria) this;
}
public Criteria andEndGreaterThan(String value) {
addCriterion("end >", value, "end");
return (Criteria) this;
}
public Criteria andEndGreaterThanOrEqualTo(String value) {
addCriterion("end >=", value, "end");
return (Criteria) this;
}
public Criteria andEndLessThan(String value) {
addCriterion("end <", value, "end");
return (Criteria) this;
}
public Criteria andEndLessThanOrEqualTo(String value) {
addCriterion("end <=", value, "end");
return (Criteria) this;
}
public Criteria andEndLike(String value) {
addCriterion("end like", value, "end");
return (Criteria) this;
}
public Criteria andEndNotLike(String value) {
addCriterion("end not like", value, "end");
return (Criteria) this;
}
public Criteria andEndIn(List<String> values) {
addCriterion("end in", values, "end");
return (Criteria) this;
}
public Criteria andEndNotIn(List<String> values) {
addCriterion("end not in", values, "end");
return (Criteria) this;
}
public Criteria andEndBetween(String value1, String value2) {
addCriterion("end between", value1, value2, "end");
return (Criteria) this;
}
public Criteria andEndNotBetween(String value1, String value2) {
addCriterion("end not between", value1, value2, "end");
return (Criteria) this;
}
public Criteria andRemarkIsNull() {
addCriterion("remark is null");
return (Criteria) this;
}
public Criteria andRemarkIsNotNull() {
addCriterion("remark is not null");
return (Criteria) this;
}
public Criteria andRemarkEqualTo(String value) {
addCriterion("remark =", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotEqualTo(String value) {
addCriterion("remark <>", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkGreaterThan(String value) {
addCriterion("remark >", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkGreaterThanOrEqualTo(String value) {
addCriterion("remark >=", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLessThan(String value) {
addCriterion("remark <", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLessThanOrEqualTo(String value) {
addCriterion("remark <=", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLike(String value) {
addCriterion("remark like", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotLike(String value) {
addCriterion("remark not like", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkIn(List<String> values) {
addCriterion("remark in", values, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotIn(List<String> values) {
addCriterion("remark not in", values, "remark");
return (Criteria) this;
}
public Criteria andRemarkBetween(String value1, String value2) {
addCriterion("remark between", value1, value2, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotBetween(String value1, String value2) {
addCriterion("remark not between", value1, value2, "remark");
return (Criteria) this;
}
public Criteria andOperatorIsNull() {
addCriterion("operator is null");
return (Criteria) this;
}
public Criteria andOperatorIsNotNull() {
addCriterion("operator is not null");
return (Criteria) this;
}
public Criteria andOperatorEqualTo(Long value) {
addCriterion("operator =", value, "operator");
return (Criteria) this;
}
public Criteria andOperatorNotEqualTo(Long value) {
addCriterion("operator <>", value, "operator");
return (Criteria) this;
}
public Criteria andOperatorGreaterThan(Long value) {
addCriterion("operator >", value, "operator");
return (Criteria) this;
}
public Criteria andOperatorGreaterThanOrEqualTo(Long value) {
addCriterion("operator >=", value, "operator");
return (Criteria) this;
}
public Criteria andOperatorLessThan(Long value) {
addCriterion("operator <", value, "operator");
return (Criteria) this;
}
public Criteria andOperatorLessThanOrEqualTo(Long value) {
addCriterion("operator <=", value, "operator");
return (Criteria) this;
}
public Criteria andOperatorIn(List<Long> values) {
addCriterion("operator in", values, "operator");
return (Criteria) this;
}
public Criteria andOperatorNotIn(List<Long> values) {
addCriterion("operator not in", values, "operator");
return (Criteria) this;
}
public Criteria andOperatorBetween(Long value1, Long value2) {
addCriterion("operator between", value1, value2, "operator");
return (Criteria) this;
}
public Criteria andOperatorNotBetween(Long value1, Long value2) {
addCriterion("operator not between", value1, value2, "operator");
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);
}
}
}

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

@ -0,0 +1,41 @@
package com.ccsens.carbasics.bean.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
public class QuestionOcrVo {
@ApiModel("报告单图片文字通用识别-返回")
@Data
public static class GeneralBasic{
@ApiModelProperty("报告单类型")
private String code;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("试题ID")
private Long questionId;
@ApiModelProperty("答案")
private String content;
}
@ApiModel("orc规则")
@Data
public static class OcrRule{
@ApiModelProperty("规则ID")
private Long id;
@ApiModelProperty("code")
private String code;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("医院ID")
private Long hospital;
@ApiModelProperty("试题ID")
private Long questionId;
@ApiModelProperty("开始标识")
private String start;
@ApiModelProperty("结束标识")
private String end;
}
}

20
src/main/java/com/ccsens/carbasics/persist/dao/QuestionOcrDao.java

@ -0,0 +1,20 @@
package com.ccsens.carbasics.persist.dao;
import com.ccsens.carbasics.bean.vo.QuestionOcrVo;
import com.ccsens.carbasics.persist.mapper.QuestionOcrMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author whj
*/
public interface QuestionOcrDao extends QuestionOcrMapper {
/**
* 查询识别规则
* @param patientId 患者ID
* @param code 类型
* @return 规则
*/
List<QuestionOcrVo.OcrRule> queryRules(@Param("patientId") Long patientId, @Param("code") String code);
}

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

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

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

@ -0,0 +1,22 @@
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 java.io.IOException;
import java.util.List;
/**
* @author AUSU
*/
public interface IOcrService {
/**
* 识别图片文字
* @param param 图片地址
* @param userId 用户id
* @return 文字列表
*/
List<QuestionOcrVo.GeneralBasic> identifyWords(OcrDto.GeneralBasic param, Long userId) throws IOException;
}

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

@ -0,0 +1,183 @@
package com.ccsens.carbasics.service;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ImageUtil;
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.vo.OcrVo;
import com.ccsens.carbasics.bean.vo.QuestionOcrVo;
import com.ccsens.carbasics.persist.dao.QuestionOcrDao;
import com.ccsens.carbasics.util.Constant;
import com.ccsens.util.CodeEnum;
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.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
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;
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class OcrService implements IOcrService {
@Resource
private QuestionOcrDao questionOcrDao;
@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);
// }
// 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);
}
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;
}
private StringBuilder getContent(List<String> contents, Map<String, Integer> keyMap, JSONObject start) {
StringBuilder builder = new StringBuilder();
String key = start.getString(Constant.BaiDu.KEY);
int index = start.getIntValue(Constant.BaiDu.NUM);
if (keyMap.containsKey(key)) {
if (keyMap.get(key) >= 0) {
builder.append(contents.get(keyMap.get(key) + index));
}
} else {
for (int i = 0; i < contents.size(); i++) {
if (contents.get(i).contains(key)) {
keyMap.put(key.trim(), i);
builder.append(contents.get(i + index));
return builder;
}
}
}
return builder;
}
private StringBuilder getContent(List<String> contents, JSONObject start, JSONObject end) {
StringBuilder builder = new StringBuilder();
for (String content : contents) {
String word = content.trim();
if (start != null && word.startsWith(start.getString(Constant.BaiDu.KEY))) {
builder.delete(0, builder.length());
builder.append(word);
} else if (end != null && word.startsWith(end.getString(Constant.BaiDu.KEY))) {
break;
} else {
builder.append(word);
}
}
return builder;
}
}

4
src/main/resources/application.yml

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

28
src/main/resources/mapper_dao/QuestionOcrDao.xml

@ -0,0 +1,28 @@
<?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.QuestionOcrDao">
<select id="queryRules" resultType="com.ccsens.carbasics.bean.vo.QuestionOcrVo$OcrRule">
SELECT
q.id AS questionId,
o.id,
o.CODE,
o.sort,
o.hospital_id as hospital,
o.START,
o.END
FROM
t_question_ocr o,
t_question q,
t_patient_information p
WHERE
o.CODE = q.CODE
AND o.sort = q.sort
AND o.hospital_id = p.hospital_id
AND p.id = #{patientId}
AND o.CODE = #{code}
AND o.rec_status = 0
AND q.rec_status = 0
AND p.rec_status = 0
</select>
</mapper>

306
src/main/resources/mapper_raw/QuestionOcrMapper.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.QuestionOcrMapper">
<resultMap id="BaseResultMap" type="com.ccsens.carbasics.bean.po.QuestionOcr">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="code" jdbcType="VARCHAR" property="code" />
<result column="sort" jdbcType="INTEGER" property="sort" />
<result column="hospital_id" jdbcType="BIGINT" property="hospitalId" />
<result column="start" jdbcType="VARCHAR" property="start" />
<result column="end" jdbcType="VARCHAR" property="end" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="operator" jdbcType="BIGINT" property="operator" />
<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, sort, hospital_id, start, end, remark, operator, created_at, updated_at,
rec_status
</sql>
<select id="selectByExample" parameterType="com.ccsens.carbasics.bean.po.QuestionOcrExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from t_question_ocr
<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_question_ocr
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from t_question_ocr
where id = #{id,jdbcType=BIGINT}
</delete>
<delete id="deleteByExample" parameterType="com.ccsens.carbasics.bean.po.QuestionOcrExample">
delete from t_question_ocr
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.ccsens.carbasics.bean.po.QuestionOcr">
insert into t_question_ocr (id, code, sort,
hospital_id, start, end,
remark, operator, created_at,
updated_at, rec_status)
values (#{id,jdbcType=BIGINT}, #{code,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER},
#{hospitalId,jdbcType=BIGINT}, #{start,jdbcType=VARCHAR}, #{end,jdbcType=VARCHAR},
#{remark,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT}, #{createdAt,jdbcType=TIMESTAMP},
#{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT})
</insert>
<insert id="insertSelective" parameterType="com.ccsens.carbasics.bean.po.QuestionOcr">
insert into t_question_ocr
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="code != null">
code,
</if>
<if test="sort != null">
sort,
</if>
<if test="hospitalId != null">
hospital_id,
</if>
<if test="start != null">
start,
</if>
<if test="end != null">
end,
</if>
<if test="remark != null">
remark,
</if>
<if test="operator != null">
operator,
</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="sort != null">
#{sort,jdbcType=INTEGER},
</if>
<if test="hospitalId != null">
#{hospitalId,jdbcType=BIGINT},
</if>
<if test="start != null">
#{start,jdbcType=VARCHAR},
</if>
<if test="end != null">
#{end,jdbcType=VARCHAR},
</if>
<if test="remark != null">
#{remark,jdbcType=VARCHAR},
</if>
<if test="operator != null">
#{operator,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.QuestionOcrExample" resultType="java.lang.Long">
select count(*) from t_question_ocr
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update t_question_ocr
<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.sort != null">
sort = #{record.sort,jdbcType=INTEGER},
</if>
<if test="record.hospitalId != null">
hospital_id = #{record.hospitalId,jdbcType=BIGINT},
</if>
<if test="record.start != null">
start = #{record.start,jdbcType=VARCHAR},
</if>
<if test="record.end != null">
end = #{record.end,jdbcType=VARCHAR},
</if>
<if test="record.remark != null">
remark = #{record.remark,jdbcType=VARCHAR},
</if>
<if test="record.operator != null">
operator = #{record.operator,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_question_ocr
set id = #{record.id,jdbcType=BIGINT},
code = #{record.code,jdbcType=VARCHAR},
sort = #{record.sort,jdbcType=INTEGER},
hospital_id = #{record.hospitalId,jdbcType=BIGINT},
start = #{record.start,jdbcType=VARCHAR},
end = #{record.end,jdbcType=VARCHAR},
remark = #{record.remark,jdbcType=VARCHAR},
operator = #{record.operator,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.QuestionOcr">
update t_question_ocr
<set>
<if test="code != null">
code = #{code,jdbcType=VARCHAR},
</if>
<if test="sort != null">
sort = #{sort,jdbcType=INTEGER},
</if>
<if test="hospitalId != null">
hospital_id = #{hospitalId,jdbcType=BIGINT},
</if>
<if test="start != null">
start = #{start,jdbcType=VARCHAR},
</if>
<if test="end != null">
end = #{end,jdbcType=VARCHAR},
</if>
<if test="remark != null">
remark = #{remark,jdbcType=VARCHAR},
</if>
<if test="operator != null">
operator = #{operator,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.QuestionOcr">
update t_question_ocr
set code = #{code,jdbcType=VARCHAR},
sort = #{sort,jdbcType=INTEGER},
hospital_id = #{hospitalId,jdbcType=BIGINT},
start = #{start,jdbcType=VARCHAR},
end = #{end,jdbcType=VARCHAR},
remark = #{remark,jdbcType=VARCHAR},
operator = #{operator,jdbcType=BIGINT},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>
Loading…
Cancel
Save