Browse Source

图像识别

pt
zhizhi wu 4 years ago
parent
commit
d3b7832b14
  1. 33
      wisdomcar/src/main/java/com/ccsens/wisdomcar/api/ProjectController.java
  2. 16
      wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/ProjectDto.java
  3. 11
      wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/ProjectVo.java
  4. 14
      wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/PatientDataDao.java
  5. 7
      wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IProjectService.java
  6. 11
      wisdomcar/src/main/java/com/ccsens/wisdomcar/service/ProjectService.java
  7. 17
      wisdomcar/src/main/java/com/ccsens/wisdomcar/service/WisdomCarService.java
  8. 6
      wisdomcar/src/main/java/com/ccsens/wisdomcar/util/Constant.java
  9. 11
      wisdomcar/src/main/resources/mapper_dao/PatientDataDao.xml

33
wisdomcar/src/main/java/com/ccsens/wisdomcar/api/ProjectController.java

@ -1,11 +1,16 @@
package com.ccsens.wisdomcar.api;
import cn.hutool.core.collection.CollectionUtil;
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 com.ccsens.wisdomcar.bean.dto.ProjectDto;
import com.ccsens.wisdomcar.bean.vo.ProjectVo;
import com.ccsens.wisdomcar.service.IProjectService;
import com.ccsens.wisdomcar.util.Constant;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@ -17,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
@ -51,4 +57,31 @@ public class ProjectController {
log.info("查询称重和剂量:{}", list);
return JsonResponse.newInstance().ok(list);
}
@MustLogin
@ApiOperation(value = "查询开始时间", notes = "whj")
@RequestMapping(value = "/getStartTime", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<ProjectVo.GetStartTime> getStartTime(@ApiParam @Validated @RequestBody QueryDto<ProjectDto.GetStartTime> params){
log.info("查询开始时间:{}", params);
ProjectVo.GetStartTime time = projectService.getStartTime(params.getParam(), params.getUserId());
log.info("查询开始时间结束:{}", time);
return JsonResponse.newInstance().ok(time);
}
@MustLogin
@ApiOperation(value = "图像识别", notes = "whj")
@RequestMapping(value = "/identifyWords", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<BaiDuVo.GeneralWord>> identifyWords(@ApiParam @Validated @RequestBody QueryDto<ProjectDto.Img> params){
log.info("图像识别:{}", params);
BaiDuDto.GeneralBasic basic = new BaiDuDto.GeneralBasic();
basic.setUrl(params.getParam().getUrl());
BaiDuVo.GeneralBasic words = BaiDuUtil.accurateBasic(Constant.BaiDu.APP_KEY, Constant.BaiDu.SECRET_KEY, basic);
List<BaiDuVo.GeneralWord> result;
if (words != null && CollectionUtil.isNotEmpty(words.getWordsResult())) {
result = words.getWordsResult();
} else {
result = new ArrayList<>();
}
log.info("图像识别结束:{}", result);
return JsonResponse.newInstance().ok(result);
}
}

16
wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/ProjectDto.java

@ -30,4 +30,20 @@ public class ProjectDto {
@ApiModelProperty("分解任务ID")
private Long taskSubId;
}
@Data
@ApiModel("查询任务开始时间--请求")
public static class GetStartTime {
@NotNull(message="请说明您的任务")
@ApiModelProperty("分解任务ID")
private Long taskSubId;
}
@Data
@ApiModel("图像识别--请求")
public static class Img {
@NotNull
@ApiModelProperty("文件路径")
private String url;
}
}

11
wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/ProjectVo.java

@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @description:
* @author: whj
@ -39,4 +41,13 @@ public class ProjectVo {
private Long endTime;
}
@Data
@ApiModel("查询任务开始时间--响应")
public static class GetStartTime {
@ApiModelProperty("任务ID")
private Long taskSubId;
@ApiModelProperty("开始时间")
private Long startTime;
}
}

14
wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/PatientDataDao.java

@ -2,6 +2,7 @@ package com.ccsens.wisdomcar.persist.dao;
import com.ccsens.wisdomcar.bean.po.PatientData;
import com.ccsens.wisdomcar.bean.po.PatientDataExample;
import com.ccsens.wisdomcar.bean.vo.ProjectVo;
import com.ccsens.wisdomcar.persist.mapper.PatientDataMapper;
import org.apache.ibatis.annotations.Param;
@ -12,4 +13,17 @@ import java.util.List;
*/
public interface PatientDataDao extends PatientDataMapper {
/**
* 为和taskSubId中一批的尚无消息平车信息的记录添加平车记录
* @param carId 患者绑定平车ID
* @param taskSubId 任务ID
*/
void updateCarId(@Param("carId") Long carId, @Param("taskSubId") Long taskSubId);
/**
* 查询任务开始时间
* @param taskSubId 任务ID
* @return 开始时间
*/
ProjectVo.GetStartTime getStartTime(@Param("taskSubId") Long taskSubId);
}

7
wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IProjectService.java

@ -35,4 +35,11 @@ public interface IProjectService {
*/
void saveData(Long startTime, StepTask stepTask, Long operationId, byte operation);
/**
* 查询开始时间
* @param param 任务ID
* @param userId userId
* @return 开始时间
*/
ProjectVo.GetStartTime getStartTime(ProjectDto.GetStartTime param, Long userId);
}

11
wisdomcar/src/main/java/com/ccsens/wisdomcar/service/ProjectService.java

@ -68,11 +68,9 @@ public class ProjectService implements IProjectService {
if (step != null && max != null && step.getSequence() != null && step.getSequence().intValue() == max.intValue()) {
// 修改平车结束时间点
ProjectVo.BindCar bindCar = stepTaskDao.getBindCarTaskId(stepTask.getTaskSubId());
if (bindCar == null) {
boolean needModifyEndTime = bindCar != null && (bindCar.getEndTime() == null || bindCar.getEndTime() == 0);
if (needModifyEndTime) {
log.info("出现异常,未找到绑定平车:{}", stepTask.getTaskSubId());
throw new BaseException(CodeEnum.PARAM_ERROR);
}
if (bindCar.getEndTime() == null || bindCar.getEndTime() == 0) {
PatientWisdomCar patientWisdomCar = new PatientWisdomCar();
patientWisdomCar.setId(bindCar.getId());
patientWisdomCar.setEndTime(startTime);
@ -115,6 +113,11 @@ public class ProjectService implements IProjectService {
asyncService.pushTime(stepTask, data);
}
@Override
public ProjectVo.GetStartTime getStartTime(ProjectDto.GetStartTime param, Long userId) {
return patientDataDao.getStartTime(param.getTaskSubId());
}
@Override
public List<ProjectVo.Record> queryWeight(ProjectDto.Weight param, Long userId) {
ProjectVo.BindCar bindCar = stepTaskDao.getBindCarTaskId(param.getTaskSubId());

17
wisdomcar/src/main/java/com/ccsens/wisdomcar/service/WisdomCarService.java

@ -65,7 +65,8 @@ public class WisdomCarService implements IWisdomCarService {
private IProjectService projectService;
@Resource
private PatientDoctorDao patientDoctorDao;
@Resource
private PatientDataDao patientDataDao;
@Override
public void createCase(CreateCaseDto.PatientInfo param, Long userId) {
@ -285,14 +286,16 @@ public class WisdomCarService implements IWisdomCarService {
if (CollectionUtil.isEmpty(carRecords)) {
pc.setBindingStatus(Constant.PUSH_STATUS_SUCCESS);
patientWisdomCarDao.insertSelective(pc);
return;
} else {
carRecords.forEach(record -> {
projectService.saveData(record.getTime(), record.getStepTask(), record.getId(), Constant.OPERATION_CAR);
});
pc.setBindingStatus(Constant.PUSH_STATUS_SUCCESS);
patientWisdomCarDao.insertSelective(pc);
}
carRecords.forEach(record -> {
projectService.saveData(record.getTime(), record.getStepTask(), record.getId(), Constant.OPERATION_CAR);
});
pc.setBindingStatus(Constant.PUSH_STATUS_SUCCESS);
patientWisdomCarDao.insertSelective(pc);
// 更新患者数据中,尚未绑定平车的数据
patientDataDao.updateCarId(pc.getId(), param.getTaskSubId());
}
@Override

6
wisdomcar/src/main/java/com/ccsens/wisdomcar/util/Constant.java

@ -124,4 +124,10 @@ public class Constant {
* 调用Tall异常
*/
public static final Byte TASK_DETAIL_LEVEL_TWO = 2;
public static class BaiDu{
public static final String APP_KEY = "F43SLi3hDra3EgWiSi8bIH8c";
public static final String SECRET_KEY = "wGhbTXGsrbxfuCQT7WyLDndYRxrSYqbD";
public static final String KEY = "key";
public static final String NUM = "num";
}
}

11
wisdomcar/src/main/resources/mapper_dao/PatientDataDao.xml

@ -2,4 +2,15 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccsens.wisdomcar.persist.dao.PatientDataDao">
<update id="updateCarId">
update t_patient_data set patient_car_id = #{carId} where task_sub_id in
(select t2.id from t_step_task t1, t_step_task t2
where t1.patient_id = t2.patient_id and t1.batch = t2.batch
and t1.task_sub_id = #{taskSubId}
and t1.rec_status = 0 and t2.rec_status = 0)
and patient_car_id = 0 and rec_status = 0
</update>
<select id="getStartTime" resultType="com.ccsens.wisdomcar.bean.vo.ProjectVo$GetStartTime">
select task_sub_id as taskSubId, start_time as startTime from t_patient_data where task_sub_id = #{taskSubId} and rec_status = 0
</select>
</mapper>
Loading…
Cancel
Save