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