Browse Source

Merge branch 'pt' of dd.tall.wiki:ccsens_wiki/ccsenscloud into pt

pt
hyy-alt 4 years ago
parent
commit
5d1690833e
  1. 1
      cloudutil/src/main/java/com/ccsens/cloudutil/aspect/MustLoginAspect.java
  2. 10
      cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/TaskDto.java
  3. 11
      cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java
  4. 30
      recovery/src/main/java/com/ccsens/recovery/api/DebugController.java
  5. 10
      recovery/src/main/java/com/ccsens/recovery/api/PatientController.java
  6. 17
      recovery/src/main/java/com/ccsens/recovery/bean/dto/DebugDto.java
  7. 1
      recovery/src/main/java/com/ccsens/recovery/bean/dto/HospitalDto.java
  8. 9
      recovery/src/main/java/com/ccsens/recovery/bean/dto/PatientDto.java
  9. 12
      recovery/src/main/java/com/ccsens/recovery/bean/vo/PatientVo.java
  10. 23
      recovery/src/main/java/com/ccsens/recovery/persist/dao/DoctorDao.java
  11. 14
      recovery/src/main/java/com/ccsens/recovery/persist/dao/PatientDao.java
  12. 5
      recovery/src/main/java/com/ccsens/recovery/persist/dao/RecDrillDao.java
  13. 31
      recovery/src/main/java/com/ccsens/recovery/service/HospitalService.java
  14. 7
      recovery/src/main/java/com/ccsens/recovery/service/IHospitalService.java
  15. 9
      recovery/src/main/java/com/ccsens/recovery/service/IPatientService.java
  16. 56
      recovery/src/main/java/com/ccsens/recovery/service/PatientService.java
  17. 8
      recovery/src/main/java/com/ccsens/recovery/service/RecipeService.java
  18. 15
      recovery/src/main/resources/mapper_dao/DoctorDao.xml
  19. 6
      recovery/src/main/resources/mapper_dao/PatientDao.xml
  20. 9
      recovery/src/main/resources/mapper_dao/RecDrillDao.xml
  21. 4
      tall/src/main/java/com/ccsens/tall/web/UserController.java
  22. 4
      tall/src/main/resources/application.yml
  23. 2
      util/src/main/java/com/ccsens/util/CodeEnum.java
  24. 11
      util/src/test/java/com/ccsens/util/OtherTest.java
  25. 2
      wisdomcar/src/main/java/com/ccsens/wisdomcar/api/WisdomCarController.java
  26. 2
      wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/WisdomCarVo.java
  27. 7
      wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/PatientProjectDao.java
  28. 7
      wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/PatientWisdomCarDao.java
  29. 7
      wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepTaskDao.java
  30. 7
      wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/WisdomCarDao.java
  31. 2
      wisdomcar/src/main/java/com/ccsens/wisdomcar/service/PatientAndFamilyService.java
  32. 8
      wisdomcar/src/main/java/com/ccsens/wisdomcar/service/StepService.java
  33. 21
      wisdomcar/src/main/java/com/ccsens/wisdomcar/service/WisdomCarService.java
  34. 4
      wisdomcar/src/main/java/com/ccsens/wisdomcar/util/Constant.java
  35. 10
      wisdomcar/src/main/resources/mapper_dao/PatientProjectDao.xml
  36. 9
      wisdomcar/src/main/resources/mapper_dao/PatientWisdomCarDao.xml
  37. 10
      wisdomcar/src/main/resources/mapper_dao/StepTaskDao.xml
  38. 12
      wisdomcar/src/main/resources/mapper_dao/WisdomCarDao.xml

1
cloudutil/src/main/java/com/ccsens/cloudutil/aspect/MustLoginAspect.java

@ -57,6 +57,7 @@ public class MustLoginAspect {
//获取userId
JsonResponse response = null;
if(StrUtil.isNotEmpty(authHeader)){
log.info("MustLogin————token:{}", authHeader);
response = tallFeignClient.getUserIdByToken(authHeader);
}
log.info("{}获取userId:{}", authHeader, response);

10
cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/TaskDto.java

@ -27,4 +27,14 @@ public class TaskDto {
@ApiModelProperty("开始任务的时间 如果为空则为当前时间")
private Long startTime;
}
@ApiModel
@Data
public static class TaskSubTimeId {
@ApiModelProperty("任务id")
private Long id;
@ApiModelProperty("任务完成状态0未完成 1进行中 2已完成")
private Integer completedStatus;
}
}

11
cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java

@ -194,6 +194,12 @@ public interface TallFeignClient {
*/
@RequestMapping("/tasks/change")
JsonResponse<TaskVo.NormalTask> updataTask(TallTaskDto.UpdateTaskInfo updateTaskInfo);
/**
* 完成任务
*/
@RequestMapping("/tasks/finish")
JsonResponse<TaskVo.NormalTask> finishTask(TaskDto.TaskSubTimeId task);
/**
* 删除任务
*/
@ -387,6 +393,11 @@ class TallFeignClientFallBack implements FallbackFactory<TallFeignClient> {
return JsonResponse.newInstance().fail();
}
@Override
public JsonResponse<TaskVo.NormalTask> finishTask(TaskDto.TaskSubTimeId task) {
return JsonResponse.newInstance().fail();
}
@Override
public JsonResponse deleteTask(Long taskId) {
return JsonResponse.newInstance().fail();

30
recovery/src/main/java/com/ccsens/recovery/api/DebugController.java

@ -1,28 +1,52 @@
package com.ccsens.recovery.api;
import com.ccsens.recovery.bean.dto.DebugDto;
import com.ccsens.recovery.bean.dto.HospitalDto;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.RedisUtil;
import com.ccsens.util.bean.dto.QueryDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@Api(tags = "DEBUG" , description = "DebugController | ")
@Api(tags = "DEBUG", description = "DebugController | ")
@RestController
@RequestMapping("/debug")
@Slf4j
public class DebugController {
@ApiOperation(value = "/测试",notes = "")
@Resource
private RedisUtil redisUtil;
@ApiOperation(value = "/测试", notes = "")
@ApiImplicitParams({
})
@RequestMapping(value="",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"})
@RequestMapping(value = "", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
public JsonResponse debug(HttpServletRequest request) throws Exception {
return JsonResponse.newInstance().ok("测试");
}
@ApiOperation(value = "/测试", notes = "")
@ApiImplicitParams({
})
@RequestMapping(value = "http", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse debug(HttpServletRequest request, @ApiParam @Validated @RequestBody DebugDto.A a) throws Exception {
long aaa = redisUtil.incr("aaa", 1);
System.out.println(aaa);
return JsonResponse.newInstance().ok(a);
}
}

10
recovery/src/main/java/com/ccsens/recovery/api/PatientController.java

@ -139,4 +139,14 @@ public class PatientController {
log.info("动作反馈成功");
return JsonResponse.newInstance().ok();
}
@MustLogin
@ApiOperation(value = "查看训练的状态", notes = "zy: 根据任务分解id查看训练状态 0未开始 1进行中 2已结束")
@RequestMapping(value = "/drillStatus", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<PatientVo.RecordStatus> getDrillStatus(@ApiParam @Validated @RequestBody QueryDto<PatientDto.SubTimeTaskId> params) throws Exception {
log.info("查看训练的状态:{}",params);
PatientVo.RecordStatus status = patientService.getDrillStatus(params.getParam(),params.getUserId());
log.info("查看训练的状态成功");
return JsonResponse.newInstance().ok(status);
}
}

17
recovery/src/main/java/com/ccsens/recovery/bean/dto/DebugDto.java

@ -0,0 +1,17 @@
package com.ccsens.recovery.bean.dto;
import lombok.Data;
/**
* @author
*/
@Data
public class DebugDto {
@Data
public static class A{
private int x;
private int y;
private int z;
}
}

1
recovery/src/main/java/com/ccsens/recovery/bean/dto/HospitalDto.java

@ -24,7 +24,6 @@ public class HospitalDto {
@Data
@ApiModel("康复中心id")
public static class RecoveryCentreId{
// @NotNull(message = "康复中心id不能为空")
@ApiModelProperty("康复中心id")
private Long id;
}

9
recovery/src/main/java/com/ccsens/recovery/bean/dto/PatientDto.java

@ -37,6 +37,15 @@ public class PatientDto {
private Long detailId;
}
@Data
@ApiModel("任务分解id")
public static class SubTimeTaskId{
@NotNull(message = "任务分解id不能为空")
@ApiModelProperty("任务分解id")
private Long subTaskId;
}
@Data
@ApiModel("添加患者信息")
public static class PatientDetail{

12
recovery/src/main/java/com/ccsens/recovery/bean/vo/PatientVo.java

@ -40,12 +40,22 @@ public class PatientVo {
}
@Data
@ApiModel("训练记录id")
public static class RecipeRecordId{
@ApiModelProperty("训练记录id")
private Long id;
}
@Data
@ApiModel("训练状态")
public static class RecordStatus {
@ApiModelProperty("训练记录id")
private Long id;
@ApiModelProperty("训练状态 0未开始 1进行中 2已结束")
private int status;
}
@Data
@ApiModel("全屏时查看患者信息")
public static class PatientFullScreen{

23
recovery/src/main/java/com/ccsens/recovery/persist/dao/DoctorDao.java

@ -0,0 +1,23 @@
package com.ccsens.recovery.persist.dao;
import com.ccsens.recovery.bean.vo.HospitalVo;
import com.ccsens.recovery.persist.mapper.DoctorMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author
*/
@Repository
public interface DoctorDao extends DoctorMapper {
/**
* 查找康复中心下的所有机器人
* @param centreId 康复中心id
* @return 机器人信息
*/
List<HospitalVo.RobotInfo> queryRobotByCentre(@Param("centreId") Long centreId);
}

14
recovery/src/main/java/com/ccsens/recovery/persist/dao/PatientDao.java

@ -38,4 +38,18 @@ public interface PatientDao extends PatientMapper {
* @return 患者信息
*/
List<PatientVo.Patient> vaguePatientByIdCard(@Param("idCard")String idCard, @Param("centreId")Long centreId);
/**
* 给患者机器人关联表添加结束时间
* @param patientId 患者id
* @param endTime 结束时间
*/
void updateRobotEndTime(@Param("patientId")Long patientId, @Param("endTime")long endTime);
/**
* 根据处方项id查找训练记录
* @param recipeProjectId 处方项目id
* @return
*/
List<RecipeVo.RecipeRecord> queryRecipeRecord(@Param("recipeProjectId") Long recipeProjectId);
}

5
recovery/src/main/java/com/ccsens/recovery/persist/dao/RecDrillDao.java

@ -20,4 +20,9 @@ public interface RecDrillDao extends RecDrillMapper {
* @return 返回关联的游戏信息
*/
List<RecipeVo.Game> getGameByDrillId(@Param("drillId") Long drillId);
/**
* 查询所有训练
*/
List<RecipeVo.Drill> queryDrill();
}

31
recovery/src/main/java/com/ccsens/recovery/service/HospitalService.java

@ -1,12 +1,19 @@
package com.ccsens.recovery.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.recovery.bean.dto.HospitalDto;
import com.ccsens.recovery.bean.po.RecoveryDoctor;
import com.ccsens.recovery.bean.po.RecoveryDoctorExample;
import com.ccsens.recovery.bean.vo.HospitalVo;
import com.ccsens.recovery.persist.dao.DoctorDao;
import com.ccsens.recovery.persist.mapper.RecoveryDoctorMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
/**
@ -16,8 +23,30 @@ import java.util.List;
@Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class HospitalService implements IHospitalService{
@Resource
private RecoveryDoctorMapper recoveryDoctorMapper;
@Resource
private DoctorDao doctorDao;
@Override
public List<HospitalVo.RobotInfo> queryRobotByHospital(HospitalDto.RecoveryCentreId param, Long userId) {
return null;
//康复室id非必填,如果没有则用当前登录的userId来查找所属的康复室
Long centreId = param.getId();
if(ObjectUtil.isNull(centreId)){
centreId = getCentreByUserId(userId);
}
return doctorDao.queryRobotByCentre(centreId);
}
@Override
public Long getCentreByUserId(Long userId) {
Long centreId = null;
RecoveryDoctorExample recoveryDoctorExample = new RecoveryDoctorExample();
recoveryDoctorExample.createCriteria().andUserIdEqualTo(userId);
List<RecoveryDoctor> doctorList = recoveryDoctorMapper.selectByExample(recoveryDoctorExample);
if(CollectionUtil.isNotEmpty(doctorList)){
centreId = doctorList.get(0).getCentreId();
}
return centreId;
}
}

7
recovery/src/main/java/com/ccsens/recovery/service/IHospitalService.java

@ -16,4 +16,11 @@ public interface IHospitalService {
* @return 返回机器人信息
*/
List<HospitalVo.RobotInfo> queryRobotByHospital(HospitalDto.RecoveryCentreId param, Long userId);
/**
* 通过userId查看康复中心的id
* @param userId userId
* @return 康复中心id
*/
Long getCentreByUserId(Long userId);
}

9
recovery/src/main/java/com/ccsens/recovery/service/IPatientService.java

@ -3,7 +3,6 @@ package com.ccsens.recovery.service;
import com.ccsens.recovery.bean.dto.HospitalDto;
import com.ccsens.recovery.bean.dto.PatientDto;
import com.ccsens.recovery.bean.vo.PatientVo;
import com.fasterxml.jackson.core.JsonProcessingException;
import java.util.List;
@ -92,4 +91,12 @@ public interface IPatientService {
* @return 返回患者列表
*/
List<PatientVo.Patient> vaguePatientByIdCard(PatientDto.VaguePatient param, Long userId);
/**
* 根据任务分解id查询训练的状态
* @param param 任务分解id
* @param userId userId
* @return 返回训练的状态
*/
PatientVo.RecordStatus getDrillStatus(PatientDto.SubTimeTaskId param, Long userId);
}

56
recovery/src/main/java/com/ccsens/recovery/service/PatientService.java

@ -7,7 +7,6 @@ import com.ccsens.recovery.bean.dto.HospitalDto;
import com.ccsens.recovery.bean.dto.PatientDto;
import com.ccsens.recovery.bean.message.RecoveryWithActionFeedBack;
import com.ccsens.recovery.bean.message.RecoveryWithStartDrill;
import com.ccsens.recovery.bean.message.RecoveryWithStartRecipe;
import com.ccsens.recovery.bean.po.*;
import com.ccsens.recovery.bean.vo.PatientVo;
import com.ccsens.recovery.bean.vo.RecipeVo;
@ -20,7 +19,6 @@ import com.ccsens.util.bean.message.common.MessageConstant;
import com.ccsens.util.bean.message.common.MessageRule;
import com.ccsens.util.config.RabbitMQConfig;
import com.ccsens.util.message.SwitchoverProjectUtil;
import com.fasterxml.jackson.core.JsonProcessingException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.stereotype.Service;
@ -59,6 +57,10 @@ public class PatientService implements IPatientService{
private PatientRobotMapper patientRobotMapper;
@Resource
private RecoveryCentreMapper recoveryCentreMapper;
@Resource
private RecipeProjectDecomposeMapper projectDecomposeMapper;
@Resource
private IHospitalService hospitalService;
@Override
public List<PatientVo.Patient> queryPatientByDoctorId(HospitalDto.DoctorId param, Long userId) {
@ -70,13 +72,7 @@ public class PatientService implements IPatientService{
public List<PatientVo.Patient> queryPatientByRecovery(HospitalDto.RecoveryCentreId param, Long userId) {
Long centreId = param.getId();
if(ObjectUtil.isNull(centreId)){
//如果康复中心id为空,通过userId查找康复师,然后查找康复中心的id
RecoveryDoctorExample recoveryDoctorExample = new RecoveryDoctorExample();
recoveryDoctorExample.createCriteria().andUserIdEqualTo(userId);
List<RecoveryDoctor> doctorList = recoveryDoctorMapper.selectByExample(recoveryDoctorExample);
if(CollectionUtil.isNotEmpty(doctorList)){
centreId = doctorList.get(0).getCentreId();
}
centreId = hospitalService.getCentreByUserId(userId);
}
return patientDao.queryPatientByHospitalId(centreId);
}
@ -243,9 +239,13 @@ public class PatientService implements IPatientService{
@Override
public void completeRecovery(PatientDto.EndRecovery param, Long userId) throws Exception {
//TODO 给患者和机器人关联的记录添加结束时间
//给患者和机器人关联的记录添加结束时间
patientDao.updateRobotEndTime(param.getPatientId(),System.currentTimeMillis());
//TODO 将处方项目关联的任务设为完成
// RecipeProjectDecompose projectDecompose = projectDecomposeMapper.selectByPrimaryKey(param.getRecipeProjectId());
// if(ObjectUtil.isNotNull(projectDecompose)){
// projectDecompose.getTaskId();
// }
//发送消息,让机器人切回康复中心的项目
Set<String> userIdSet = new HashSet<>();
Long projectId = null;
@ -266,14 +266,32 @@ public class PatientService implements IPatientService{
@Override
public List<PatientVo.Patient> vaguePatientByIdCard(PatientDto.VaguePatient param, Long userId) {
Long centreId = null;
//如果康复中心id为空,通过userId查找康复师,然后查找康复中心的id
RecoveryDoctorExample recoveryDoctorExample = new RecoveryDoctorExample();
recoveryDoctorExample.createCriteria().andUserIdEqualTo(userId);
List<RecoveryDoctor> doctorList = recoveryDoctorMapper.selectByExample(recoveryDoctorExample);
if(CollectionUtil.isNotEmpty(doctorList)){
centreId = doctorList.get(0).getCentreId();
}
Long centreId = hospitalService.getCentreByUserId(userId);
return patientDao.vaguePatientByIdCard(param.getIdCard(),centreId);
}
@Override
public PatientVo.RecordStatus getDrillStatus(PatientDto.SubTimeTaskId param, Long userId) {
PatientVo.RecordStatus recordStatus = new PatientVo.RecordStatus();
RecipeRecordExample recipeRecordExample = new RecipeRecordExample();
recipeRecordExample.createCriteria().andSubTaskIdEqualTo(param.getSubTaskId());
List<RecipeRecord> recipeRecordList = recipeRecordMapper.selectByExample(recipeRecordExample);
if(CollectionUtil.isNotEmpty(recipeRecordList)){
RecipeRecord recipeRecord = recipeRecordList.get(0);
recordStatus.setId(recipeRecord.getId());
if(ObjectUtil.isNotNull(recipeRecord.getStartTime()) && ObjectUtil.isNotNull(recipeRecord.getEndTime())){
if(recipeRecord.getStartTime() != 0 && recipeRecord.getEndTime() == 0){
recordStatus.setStatus(1);
return recordStatus;
}
if(recipeRecord.getEndTime() != 0){
recordStatus.setStatus(2);
return recordStatus;
}
}
}
recordStatus.setStatus(0);
return recordStatus;
}
}

8
recovery/src/main/java/com/ccsens/recovery/service/RecipeService.java

@ -4,6 +4,7 @@ import com.ccsens.recovery.bean.dto.PatientDto;
import com.ccsens.recovery.bean.dto.RecipeDto;
import com.ccsens.recovery.bean.vo.RecipeVo;
import com.ccsens.recovery.persist.dao.PatientDao;
import com.ccsens.recovery.persist.dao.RecDrillDao;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@ -20,6 +21,8 @@ import java.util.List;
public class RecipeService implements IRecipeService{
@Resource
private PatientDao patientDao;
@Resource
private RecDrillDao recDrillDao;
@Override
public void queryPatientByDoctorId(RecipeDto.AddRecipe param, Long userId) {
@ -28,7 +31,7 @@ public class RecipeService implements IRecipeService{
@Override
public List<RecipeVo.Drill> queryDrill(Long userId) {
return null;
return recDrillDao.queryDrill();
}
@Override
@ -38,11 +41,12 @@ public class RecipeService implements IRecipeService{
@Override
public List<RecipeVo.Game> queryGameByDrill(RecipeDto.DrillId param, Long userId) {
return null;
return recDrillDao.getGameByDrillId(param.getId());
}
@Override
public List<RecipeVo.RecipeRecord> queryRecipeRecord(RecipeDto.RecipeProjectId param, Long userId) {
List<RecipeVo.RecipeRecord> recipeRecords = patientDao.queryRecipeRecord(param.getId());
return null;
}
}

15
recovery/src/main/resources/mapper_dao/DoctorDao.xml

@ -0,0 +1,15 @@
<?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.recovery.persist.dao.DoctorDao">
<select id="queryRobotByCentre" resultType="com.ccsens.recovery.bean.vo.HospitalVo$RobotInfo">
SELECT
id,
`code`
FROM `t_recovery_robot`
WHERE
centre_id = #{centreId}
and rec_status = 0
</select>
</mapper>

6
recovery/src/main/resources/mapper_dao/PatientDao.xml

@ -1,6 +1,9 @@
<?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.recovery.persist.dao.PatientDao">
<update id="updateRobotEndTime">
UPDATE `t_patient_robot` set end_time = #{endTime} WHERE patient_id = #{patientId} and end_time = 0 and rec_status = 0
</update>
<select id="queryPatientByDoctorId" resultType="com.ccsens.recovery.bean.vo.PatientVo$Patient">
@ -196,4 +199,7 @@
and c.id = #{centreId}
and p.id_card like concat('%',#{idCard},'%')
</select>
<select id="queryRecipeRecord" resultType="com.ccsens.recovery.bean.vo.RecipeVo$RecipeRecord">
</select>
</mapper>

9
recovery/src/main/resources/mapper_dao/RecDrillDao.xml

@ -16,4 +16,13 @@
d.rec_status = 0
and d.id = #{drillId}
</select>
<select id="queryDrill" resultType="com.ccsens.recovery.bean.vo.RecipeVo$Drill">
SELECT
id,
`name`,
video
FROM `t_rec_drill`
WHERE
rec_status = 0
</select>
</mapper>

4
tall/src/main/java/com/ccsens/tall/web/UserController.java

@ -393,12 +393,14 @@ public class UserController {
})
@RequestMapping(value = "token",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"})
public JsonResponse<UserVo.TokenToUserId> getUserByToken(@RequestParam(required = true) String token) throws Exception {
log.info("MustLogin根据token查找UserId:{}",token);
long start = System.currentTimeMillis();
UserVo.TokenToUserId tokenToUserId = new UserVo.TokenToUserId();
// 验证token是否存在
String tokenStr = token;
if (tokenStr == null || !tokenStr.startsWith(WebConstant.HEADER_KEY_TOKEN_PREFIX)) {
log.info("token不存在:{}",tokenStr);
return JsonResponse.newInstance().ok(CodeEnum.NOT_LOGIN);
}
String userToken = tokenStr.substring(WebConstant.HEADER_KEY_TOKEN_PREFIX.length());
@ -408,10 +410,12 @@ public class UserController {
try {
claims = JwtUtil.parseJWT(userToken, WebConstant.JWT_ACCESS_TOKEN_SECERT);
}catch(Exception e){
log.info("token无效");
return JsonResponse.newInstance().ok(CodeEnum.NOT_LOGIN);
}
//验证用户存根
if(userService.tokenNotExistInCache(Long.valueOf(claims.getSubject()))){
log.info("用户存根不存在:{}",claims.getSubject());
return JsonResponse.newInstance().ok(CodeEnum.NOT_LOGIN);
}

4
tall/src/main/resources/application.yml

@ -1,5 +1,5 @@
spring:
profiles:
active: dev
include: util-dev,common
active: prod
include: util-prod,common

2
util/src/main/java/com/ccsens/util/CodeEnum.java

@ -215,6 +215,8 @@ public enum CodeEnum {
PM_NOT_MEMBER(175,"项目经理下必须有一个成员",true),
WisdomCar_NOT_Found(176,"没有找到绑定的平车信息",true),
WISDOM_CAR_RUNNED(177,"这段时间内平车正在运行,请结束平车运行或重新选择平车",true),
WISDOM_CAR_IS_EXIST(178,"平车不存在,请检查后操作",true),
TASK_IS_EXIST(179,"任务不存在,请检查后操作",true),
;

11
util/src/test/java/com/ccsens/util/OtherTest.java

@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T;
import org.junit.Test;
import javax.annotation.Resource;
import javax.script.ScriptException;
import java.io.*;
import java.math.BigDecimal;
@ -234,4 +235,14 @@ public class OtherTest {
System.out.println(filter);
}
@Test
public void test13(){
String token = "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2MjMwMzA5NzMsInN1YiI6IjEzOTk5NTI1Njk2ODE0NDg5NjMiLCJhdXRoSWQiOiIxMzk5OTUyNTY5Nzc3OTE3OTU3IiwiZXhwIjoxNjIzMTE3MzczfQ.JPL4kuRYOqNQZRtL25mHZRJ-g9eiEs6bZE63POAIxFU";
String token1 = "Bearer eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2MjMwMzA5NzMsInN1YiI6IjEzOTk5NTI1Njk2ODE0NDg5NjMiLCJhdXRoSWQiOiIxMzk5OTUyNTY5Nzc3OTE3OTU3IiwiZXhwIjoxNjIzMTE3MzczfQ.JPL4kuRYOqNQZRtL25mHZRJ-g9eiEs6bZE63POAIxFU";
System.out.println(!token.startsWith(WebConstant.HEADER_KEY_TOKEN_PREFIX));
System.out.println(!token1.startsWith(WebConstant.HEADER_KEY_TOKEN_PREFIX));
}
}

2
wisdomcar/src/main/java/com/ccsens/wisdomcar/api/WisdomCarController.java

@ -49,7 +49,7 @@ public class WisdomCarController {
log.info("创建病例接口:{}", params);
WisdomCarVo.PatientProject patientProject = wisdomCarService.createCase(params.getParam(), params.getUserId());
log.info("创建病例接口");
return JsonResponse.newInstance().ok();
return JsonResponse.newInstance().ok(patientProject);
}
@MustLogin

2
wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/WisdomCarVo.java

@ -24,7 +24,7 @@ public class WisdomCarVo {
@Data
@ApiModel("添加患者-返回项目id")
public static class PatientProject{
@ApiModelProperty("平车ID")
@ApiModelProperty("项目ID")
private Long projectId;
public PatientProject(Long projectId) {

7
wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/PatientProjectDao.java

@ -21,4 +21,11 @@ public interface PatientProjectDao extends PatientProjectMapper {
List<PatientVo.PatientRecord> findPatientInfoByIdList(@Param("list") List<Long> newPatientIds);
PatientAndFamilyVo.PatientInfo queryPatientInfo(@Param("projectId")Long projectId);
/**
* 查询项目id是否存在
* @param projectId 项目id
* @return 0不存在
*/
Integer findPatientIsExist(@Param("id") Long projectId);
}

7
wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/PatientWisdomCarDao.java

@ -11,4 +11,11 @@ public interface PatientWisdomCarDao extends PatientWisdomCarMapper {
List<Long> queryByNew(@Param("id")Long id);
List<WisdomCarVo.BindingCarInfo> queryBindingCarList(@Param("taskSubId")Long taskSubId);
/**
* 查看患者平车id是否存在
* @param patientCarId 患者平车id
* @return 是否存在
*/
Integer findIsExist(@Param("id") Long patientCarId);
}

7
wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepTaskDao.java

@ -28,4 +28,11 @@ public interface StepTaskDao extends StepTaskMapper {
* @return 任务环节
*/
StepTask getByCarAndStep(@Param("carId") Long carId, @Param("stepId") Long stepId, @Param("time") Long time);
/**
* 查询任务是否存在
* @param taskSubId 任务id
* @return 0不存在
*/
Integer findTaskIsExist(@Param("id") Long taskSubId);
}

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

@ -24,4 +24,11 @@ public interface WisdomCarDao {
* @return 次数
*/
long countUsed(@Param("carId") Long carId, @Param("startTime") Long startTime, @Param("endTime") Long endTime);
/**
* 查询平车是否存在
* @param carId 平车id
* @return 0不存在
*/
Integer findCarIsExist(@Param("id") Long carId);
}

2
wisdomcar/src/main/java/com/ccsens/wisdomcar/service/PatientAndFamilyService.java

@ -53,7 +53,7 @@ public class PatientAndFamilyService implements IPatientAndFamilyService{
@Override
public void updatePatientInfo(PatientAndFamilyDto.PatientInfo param) {
PatientProject patient = patientProjectDao.selectByPrimaryKey(param.getId());
if (ObjectUtil.isNotNull(param)){
if (ObjectUtil.isNotNull(patient)){
if (ObjectUtil.isNotNull(param.getName())){
patient.setName(param.getName());
}

8
wisdomcar/src/main/java/com/ccsens/wisdomcar/service/StepService.java

@ -1,8 +1,10 @@
package com.ccsens.wisdomcar.service;
import com.ccsens.util.exception.BaseException;
import com.ccsens.wisdomcar.bean.dto.StepDto;
import com.ccsens.wisdomcar.bean.vo.StepVo;
import com.ccsens.wisdomcar.persist.dao.PatientWisdomCarDao;
import com.ccsens.wisdomcar.persist.dao.StepDao;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -23,9 +25,15 @@ public class StepService implements IStepService {
@Resource
private StepDao stepDao;
@Resource
private PatientWisdomCarDao patientWisdomCarDao;
@Override
public List<StepVo.StepStatus> findStepIsOver(StepDto.FindStepStatus param) {
Integer isExist = patientWisdomCarDao.findIsExist(param.getPatientCarId());
if (0 == isExist){
throw new BaseException("请检查患者是否绑定平车");
}
return stepDao.findStepIsOver(param.getPatientCarId());
}

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

@ -105,7 +105,7 @@ public class WisdomCarService implements IWisdomCarService {
patient.setIdCard(param.getPatientIdCard());
}
if (ObjectUtil.isNotNull(param.getPatientPhone())){
patient.setPhone(param.getFamilyPhone());
patient.setPhone(param.getPatientPhone());
}
patientProjectDao.insertSelective(patient);
@ -268,6 +268,25 @@ public class WisdomCarService implements IWisdomCarService {
@Override
public void bindingCar(WisdomCarDto.BindingCar param, Long userId) {
//查询平车id是否存在
Integer carIsExist = wisdomcarDao.findCarIsExist(param.getCarId());
if (0 == carIsExist){
throw new BaseException(CodeEnum.WISDOM_CAR_IS_EXIST);
}
//查询任务是否存在
Integer taskIsExist = stepTaskDao.findTaskIsExist(param.getTaskSubId());
if (0 == taskIsExist){
throw new BaseException(CodeEnum.TASK_IS_EXIST);
}
//查询患者是否存在
Integer patientIsExist = patientProjectDao.findPatientIsExist(param.getProjectId());
if (0 == patientIsExist){
throw new BaseException(Constant.PATIENT_NOT_FOUND);
}
//开始时间不能大于当前时间,结束时间不能小于开始时间
if (param.getEndTime() < param.getStartTime() || param.getStartTime() > System.currentTimeMillis()){
throw new BaseException(CodeEnum.PARAM_ERROR);
}
// 判断平车是否在运行中
long count = wisdomcarDao.countUsed(param.getCarId(), param.getStartTime(), param.getEndTime());
if (count >0) {

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

@ -71,7 +71,7 @@ public class Constant {
/**
* 角色名称:急诊护士
*/
public static final String EMERGENCY_NURSE = "急诊护士";
public static final String EMERGENCY_NURSE = "护士";
/**
* 角色名称:专科医生
*/
@ -83,7 +83,7 @@ public class Constant {
/**
* 角色名称:项目经理(主任)
*/
public static final String HEAD = "项目经理";
public static final String HEAD = "主任";
/**
* 0急诊护士

10
wisdomcar/src/main/resources/mapper_dao/PatientProjectDao.xml

@ -36,4 +36,14 @@
ORDER BY t_patient_project.created_at
DESC LIMIT 1
</select>
<select id="findPatientIsExist" resultType="Integer">
SELECT
COUNT(id)
FROM
t_patient_project
WHERE
project_id = #{id}
AND rec_status = 0
</select>
</mapper>

9
wisdomcar/src/main/resources/mapper_dao/PatientWisdomCarDao.xml

@ -28,4 +28,13 @@
and a.task_sub_id=#{taskSubId}
order by a.start_time desc
</select>
<select id="findIsExist" resultType="Integer">
SELECT
COUNT(id)
FROM
t_patient_wisdom_car
WHERE
id = #{id}
</select>
</mapper>

10
wisdomcar/src/main/resources/mapper_dao/StepTaskDao.xml

@ -26,4 +26,14 @@
AND pc.start_time &lt;= #{time} AND pc.end_time = 0 AND pc.start_time + 2 * 60 * 60 * 1000 > #{time}
order by pc.created_at desc limit 1
</select>
<select id="findTaskIsExist" resultType="Integer">
SELECT
COUNT(id)
FROM
t_step_task
WHERE
task_sub_id = #{id}
AND rec_status = 0
</select>
</mapper>

12
wisdomcar/src/main/resources/mapper_dao/WisdomCarDao.xml

@ -42,4 +42,16 @@ WHERE
)
AND rec_status = 0
</select>
<select id="findCarIsExist" resultType="Integer">
SELECT
COUNT(id)
FROM
t_wisdom_car
WHERE
id = #{id}
AND rec_status = 0
</select>
</mapper>
Loading…
Cancel
Save