From 8883712ef6514b62bd516ea7c3e84e59e5af458e Mon Sep 17 00:00:00 2001 From: zhizhi wu <2377881365@qq.com> Date: Thu, 3 Jun 2021 08:49:23 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=91=E5=AE=9A=E5=B9=B3=E8=BD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ccsens/util/CodeEnum.java | 3 +- .../wisdomcar/api/WisdomCarController.java | 18 +++---- .../wisdomcar/bean/dto/WisdomCarDto.java | 18 +++++++ .../wisdomcar/persist/dao/WisdomCarDao.java | 9 ++++ .../wisdomcar/service/RecordService.java | 4 ++ .../wisdomcar/service/WisdomCarService.java | 52 +++++++++++++++++-- .../resources/mapper_dao/WisdomCarDao.xml | 24 ++++++++- 7 files changed, 112 insertions(+), 16 deletions(-) diff --git a/util/src/main/java/com/ccsens/util/CodeEnum.java b/util/src/main/java/com/ccsens/util/CodeEnum.java index cb58cced..03705375 100644 --- a/util/src/main/java/com/ccsens/util/CodeEnum.java +++ b/util/src/main/java/com/ccsens/util/CodeEnum.java @@ -213,7 +213,8 @@ public enum CodeEnum { DELIVER_REPEAT(173,"交付物已存在",true), PARENT_PROJECT_NOT_MATCHING(174,"父任务与项目不匹配",true), PM_NOT_MEMBER(175,"项目经理下必须有一个成员",true), - WisdomCar_NOT_Found(176,"没有找到绑定的平车信息",true) + WisdomCar_NOT_Found(176,"没有找到绑定的平车信息",true), + WISDOM_CAR_RUNNED(177,"这段时间内平车正在运行,请结束平车运行或重新选择平车",true), ; diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/WisdomCarController.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/WisdomCarController.java index 8d61e2d8..d6f89665 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/WisdomCarController.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/WisdomCarController.java @@ -68,15 +68,15 @@ public class WisdomCarController { return JsonResponse.newInstance().ok(); } - @MustLogin - @ApiOperation(value = "平车数据上传", notes = "") - @RequestMapping(value = "/uploadCarData", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse uploadCarData(@ApiParam @Validated @RequestBody QueryDto params) { - log.info("平车数据上传:{}", params); - wisdomCarService.uploadCarData(params.getParam(),params.getUserId()); - log.info("平车数据上传"); - return JsonResponse.newInstance().ok(); - } +// @MustLogin +// @ApiOperation(value = "平车数据上传", notes = "") +// @RequestMapping(value = "/uploadCarData", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) +// public JsonResponse uploadCarData(@ApiParam @Validated @RequestBody QueryDto params) { +// log.info("平车数据上传:{}", params); +// wisdomCarService.uploadCarData(params.getParam(),params.getUserId()); +// log.info("平车数据上传"); +// return JsonResponse.newInstance().ok(); +// } } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/WisdomCarDto.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/WisdomCarDto.java index 29572d4c..92130da0 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/WisdomCarDto.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/WisdomCarDto.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; /** @@ -21,6 +22,23 @@ public class WisdomCarDto { @Data @ApiModel("绑定平车") public class BindingCar { + @NotNull + @ApiModelProperty("平车ID") + private Long carId; + @NotNull + @ApiModelProperty("项目ID") + private Long projectId; + @ApiModelProperty("分解任务ID") + @NotNull + private Long taskSubId; + @NotNull + @Min(1) + @ApiModelProperty("开始时间") + private Long startTime; + @ApiModelProperty("结束时间") + private Long endTime; + @ApiModelProperty("是否演示 0:否 1:是") + private byte demo = 0; } @Data diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/WisdomCarDao.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/WisdomCarDao.java index 0713cfaa..a0905249 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/WisdomCarDao.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/WisdomCarDao.java @@ -15,4 +15,13 @@ public interface WisdomCarDao { * @return 空闲平车 */ List queryFreeCar(@Param("hospitalId") Long hospitalId); + + /** + * 统计时间段内该平车运行的次数 + * @param carId 平车ID + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return 次数 + */ + long countUsed(@Param("carId") Long carId, @Param("startTime") Long startTime, @Param("endTime") Long endTime); } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java index 626dd9c5..851aac12 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java @@ -147,6 +147,10 @@ public class RecordService implements IRecordService{ // } //新建急救表存储信息 saveAidRecord(carRecordMessageDto, wisdomCar.getId(),step,userIdSet); + // rfid且有对应的真实环节 存储患者数据表 + if (carRecordMessageDto.getType() == Constant.CAR_RECORD_RFID && step != null && step.getStepType() == Constant.STEP_TYPE_REAL) { + // TODO 异步推送数据 + } } @Override diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/WisdomCarService.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/WisdomCarService.java index 5c85afdd..41544f16 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/WisdomCarService.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/WisdomCarService.java @@ -1,14 +1,14 @@ package com.ccsens.wisdomcar.service; import cn.hutool.core.collection.CollectionUtil; +import com.ccsens.util.CodeEnum; import com.ccsens.util.bean.dto.QueryDto; import com.ccsens.util.exception.BaseException; import com.ccsens.wisdomcar.bean.dto.WisdomCarDto; import com.ccsens.wisdomcar.bean.po.HospitalMember; import com.ccsens.wisdomcar.bean.po.HospitalMemberExample; import com.ccsens.wisdomcar.bean.vo.WisdomCarVo; -import com.ccsens.wisdomcar.persist.dao.HospitalMemberDao; -import com.ccsens.wisdomcar.persist.dao.WisdomCarDao; +import com.ccsens.wisdomcar.persist.dao.*; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.ObjectUtil; import com.ccsens.cloudutil.bean.tall.dto.MemberRoleDto; @@ -19,9 +19,6 @@ import com.ccsens.util.JsonResponse; import com.ccsens.util.RedisUtil; import com.ccsens.wisdomcar.bean.dto.CreateCaseDto; import com.ccsens.wisdomcar.bean.po.*; -import com.ccsens.wisdomcar.persist.dao.HospitalWrokingDao; -import com.ccsens.wisdomcar.persist.dao.PatientFamilyDao; -import com.ccsens.wisdomcar.persist.dao.PatientProjectDao; import com.ccsens.wisdomcar.util.Constant; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -56,6 +53,10 @@ public class WisdomCarService implements IWisdomCarService { private TallFeignClient tallFeignClient; @Resource private WisdomCarDao wisdomcarDao; + @Resource + private WisdomCarRecordDao wisdomCarRecordDao; + @Resource + private PatientWisdomCarDao patientWisdomCarDao; @Override @@ -195,6 +196,47 @@ public class WisdomCarService implements IWisdomCarService { @Override public void bindingCar(WisdomCarDto.BindingCar param, Long userId) { + // 判断平车是否在运行中 + long count = wisdomcarDao.countUsed(param.getCarId(), param.getStartTime(), param.getEndTime()); + if (count >0) { + log.info("时间段内有绑定的平车:{},{}", param, count); + throw new BaseException(CodeEnum.WISDOM_CAR_RUNNED); + } + // 查询患者信息 + PatientProjectExample projectExample = new PatientProjectExample(); + projectExample.createCriteria().andProjectIdEqualTo(param.getProjectId()); + List patientProjects = patientProjectDao.selectByExample(projectExample); + if (CollectionUtil.isEmpty(patientProjects)) { + log.info("未找到患者"); + throw new BaseException(CodeEnum.PARAM_ERROR); + } + PatientProject patient = patientProjects.get(0); + // TODO 是否需要判断患者是否已经绑定平车??? + // 查询平车记录 + WisdomCarRecordExample recordExample = new WisdomCarRecordExample(); + WisdomCarRecordExample.Criteria criteria = recordExample.createCriteria().andCarIdEqualTo(param.getCarId()).andTimeGreaterThanOrEqualTo(param.getStartTime()); + if (param.getEndTime() != null && param.getEndTime() > 0) { + criteria.andTimeLessThanOrEqualTo(param.getEndTime()); + } + List carRecords = wisdomCarRecordDao.selectByExample(recordExample); + // 绑定平车 + PatientWisdomCar pc = new PatientWisdomCar(); + pc.setId(snowflake.nextId()); + pc.setTaskSubId(param.getTaskSubId()); + pc.setPatientId(patient.getId()); + pc.setCarId(param.getCarId()); + pc.setIsDemo(param.getDemo()); + + if (CollectionUtil.isEmpty(carRecords)) { + pc.setBindingStatus(Constant.PUSH_STATUS_SUCCESS); + } else { + pc.setBindingStatus(Constant.PUSH_STATUS_NO); + } + + patientWisdomCarDao.insertSelective(pc); + if (pc.getBindingStatus() == Constant.PUSH_STATUS_NO) { + // TOOD 异步推送开始时间 + } } diff --git a/wisdomcar/src/main/resources/mapper_dao/WisdomCarDao.xml b/wisdomcar/src/main/resources/mapper_dao/WisdomCarDao.xml index e195fab3..c7e2f36c 100644 --- a/wisdomcar/src/main/resources/mapper_dao/WisdomCarDao.xml +++ b/wisdomcar/src/main/resources/mapper_dao/WisdomCarDao.xml @@ -6,7 +6,7 @@ ( SELECT id, car_number FROM t_wisdom_car WHERE hospital_id = #{hospitalId} AND rec_status = 0 ) EXCEPT ( SELECT - c.id, + distinct c.id, c.car_number FROM t_patient_wisdom_car pc, @@ -20,4 +20,26 @@ WHERE AND c.rec_status = 0 ) + \ No newline at end of file