Browse Source

绑定平车

pt
zhizhi wu 5 years ago
parent
commit
8883712ef6
  1. 3
      util/src/main/java/com/ccsens/util/CodeEnum.java
  2. 18
      wisdomcar/src/main/java/com/ccsens/wisdomcar/api/WisdomCarController.java
  3. 18
      wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/WisdomCarDto.java
  4. 9
      wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/WisdomCarDao.java
  5. 4
      wisdomcar/src/main/java/com/ccsens/wisdomcar/service/RecordService.java
  6. 52
      wisdomcar/src/main/java/com/ccsens/wisdomcar/service/WisdomCarService.java
  7. 24
      wisdomcar/src/main/resources/mapper_dao/WisdomCarDao.xml

3
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),
;

18
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<WisdomCarDto.UploadCarData> 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<WisdomCarDto.UploadCarData> params) {
// log.info("平车数据上传:{}", params);
// wisdomCarService.uploadCarData(params.getParam(),params.getUserId());
// log.info("平车数据上传");
// return JsonResponse.newInstance().ok();
// }
}

18
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

9
wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/WisdomCarDao.java

@ -15,4 +15,13 @@ public interface WisdomCarDao {
* @return 空闲平车
*/
List<WisdomCarVo.FreeCar> 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);
}

4
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

52
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<PatientProject> 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<WisdomCarRecord> 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 异步推送开始时间
}
}

24
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
)
</select>
<select id="countUsed" resultType="java.lang.Long">
SELECT
count(*)
FROM
t_patient_wisdom_car
WHERE
car_id = 1
AND
((end_time = 0
AND start_time &gt;= #{startTime} - 2 * 60 * 60 * 1000)
or
<choose>
<when test="endTime == null or endTime = 0">
(startTime &lt;= #{startTime} and endTime &gt;=#{startTime})
</when>
<otherwise>
(startTime &lt;= #{endTime} and endTime &gt;= #{startTime})
</otherwise>
</choose>
)
AND rec_status = 0
</select>
</mapper>
Loading…
Cancel
Save