Browse Source

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

pt
hyy-alt 5 years ago
parent
commit
30f72e6f2f
  1. 98
      cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/ProjectVo.java
  2. 13
      cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java
  3. 10
      cloudutil/src/main/resources/application-util-dev.yml
  4. 3
      tall/src/main/java/com/ccsens/tall/service/IProjectService.java
  5. 64
      tall/src/main/java/com/ccsens/tall/service/ProjectService.java
  6. 20
      tall/src/main/java/com/ccsens/tall/web/ProjectController.java
  7. 37
      wisdomcar/src/main/java/com/ccsens/wisdomcar/api/PatientAndFamilyController.java
  8. 19
      wisdomcar/src/main/java/com/ccsens/wisdomcar/api/WisdomCarController.java
  9. 45
      wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/PatientAndFamilyDto.java
  10. 10
      wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/WisdomCarDto.java
  11. 23
      wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IPatientAndFamilyService.java
  12. 14
      wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IWisdomCarService.java
  13. 58
      wisdomcar/src/main/java/com/ccsens/wisdomcar/service/PatientAndFamilyService.java
  14. 41
      wisdomcar/src/main/java/com/ccsens/wisdomcar/service/WisdomCarService.java
  15. 16
      wisdomcar/src/main/java/com/ccsens/wisdomcar/util/Constant.java

98
cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/ProjectVo.java

@ -1,12 +1,9 @@
package com.ccsens.cloudutil.bean.tall.vo; package com.ccsens.cloudutil.bean.tall.vo;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.util.WebConstant;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@ -20,79 +17,30 @@ public class ProjectVo {
public static class ProjectInfo{ public static class ProjectInfo{
@ApiModelProperty("项目id") @ApiModelProperty("项目id")
private Long id; private Long id;
@ApiModelProperty("项目名称") @ApiModelProperty("任务详情")
private String name; private List<TaskDetail> taskDetails;
@ApiModelProperty("地点") }
private String description; @Data
@ApiModelProperty("描述信息") @ApiModel("任务详情")
private String address; public static class TaskDetail{
@ApiModelProperty("项目开始时间(milltime)") @ApiModelProperty("任务详情id")
private Long beginTime; private Long taskDetailId;
@ApiModelProperty("项目时长(milltime)") @ApiModelProperty("任务详情名称")
private Long totalDuration; private String taskDetailName;
@ApiModelProperty("项目结束时间(milltime)") @ApiModelProperty("任务等级")
private Byte taskDetailLevel;
@ApiModelProperty("任务详情下的分解任务")
private List<TaskSub> taskSubList;
}
@Data
@ApiModel("分解任务")
public static class TaskSub{
@ApiModelProperty("分解任务id")
private Long taskSubId;
@ApiModelProperty("分解任务开始时间")
private Long startTime;
@ApiModelProperty("分解任务结束时间")
private Long endTime; private Long endTime;
@ApiModelProperty("项目进行状态:0未开始,1进行中,2已过期")
private Integer process;
@ApiModelProperty("当前用户在本项目中的角色")
private List<String> roles = new ArrayList<>();
@ApiModelProperty("当前用户在本项目中的最高权限")
private int power;
@ApiModelProperty("当前用户是否是本项目的创建者")
private boolean creator;
@ApiModelProperty("WPS文件信息")
private List<String> wpsFilePaths;
@ApiModelProperty("子项目信息")
private List<ProjectInfo> subProjectList;
@ApiModelProperty("是否在首页展示 0否 1是")
private Byte homePageShow;
@ApiModelProperty("是否高亮展示 0否 1是")
private Byte highlight;
@ApiModelProperty("父项目id")
private Long parentId;
public Long getTotalDuration(){
if(ObjectUtil.isNotNull(endTime) && ObjectUtil.isNotNull(beginTime)){
return endTime - beginTime;
}
return null;
}
public Integer getProcess(){
Long current = System.currentTimeMillis();
if(ObjectUtil.isNull(getBeginTime()) || ObjectUtil.isNull(getEndTime())) {
return null;
}
if(getBeginTime() > current){
this.process = WebConstant.EVENT_PROCESS.Pending.value;
}else if(getEndTime() < current){
this.process = WebConstant.EVENT_PROCESS.Expired.value;
}else{
this.process = WebConstant.EVENT_PROCESS.Processing.value;
}
return this.process;
}
@Override
public boolean equals(Object obj){
if(this == obj) {
return true;
}
if(obj == null) {
return false;
}
ProjectInfo o = (ProjectInfo)obj;
if(this.id.equals(o.id)) {
return true;
}
return false;
}
@Override
public int hashCode(){
return (int)((id / 1000));
}
} }
} }

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

@ -1,5 +1,6 @@
package com.ccsens.cloudutil.feign; package com.ccsens.cloudutil.feign;
import com.alibaba.fastjson.JSONObject;
import com.ccsens.cloudutil.bean.QueryParam; import com.ccsens.cloudutil.bean.QueryParam;
import com.ccsens.cloudutil.bean.tall.dto.*; import com.ccsens.cloudutil.bean.tall.dto.*;
import com.ccsens.cloudutil.bean.tall.vo.*; import com.ccsens.cloudutil.bean.tall.vo.*;
@ -244,7 +245,7 @@ public interface TallFeignClient {
* @param copyProject 项目id * @param copyProject 项目id
* @return 项目 * @return 项目
*/ */
@RequestMapping("/projects/copyProject") @RequestMapping(value = "/projects/copyProject",method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"})
JsonResponse<ProjectVo.ProjectInfo> copyProjectNew(QueryDto<ProjectDto.CopyProject> copyProject); JsonResponse<ProjectVo.ProjectInfo> copyProjectNew(QueryDto<ProjectDto.CopyProject> copyProject);
/** /**
@ -252,7 +253,7 @@ public interface TallFeignClient {
* @param memberForTemplate 项目id/角色名称/成员手机号或userId * @param memberForTemplate 项目id/角色名称/成员手机号或userId
* @return 成功/失败 * @return 成功/失败
*/ */
@RequestMapping("/members/addMemberForTemplate") @RequestMapping(value = "/members/addMemberForTemplate",method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"})
JsonResponse addMemberForTemplate(MemberRoleDto.SaveMemberForTemplate memberForTemplate); JsonResponse addMemberForTemplate(MemberRoleDto.SaveMemberForTemplate memberForTemplate);
@ -264,10 +265,7 @@ class TallFeignClientFallBack implements FallbackFactory<TallFeignClient> {
@Override @Override
public TallFeignClient create(Throwable throwable) { public TallFeignClient create(Throwable throwable) {
String msg = throwable == null ? "" : throwable.getMessage(); log.error("yichang", throwable);
if (!StringUtils.isEmpty(msg)) {
log.error(msg);
}
return new TallFeignClient() { return new TallFeignClient() {
@Override @Override
public JsonResponse mergeUserId(Long userId, Long uselessId) { public JsonResponse mergeUserId(Long userId, Long uselessId) {
@ -420,10 +418,11 @@ class TallFeignClientFallBack implements FallbackFactory<TallFeignClient> {
} }
@Override @Override
public JsonResponse copyProjectNew(QueryDto<ProjectDto.CopyProject> copyProject) { public JsonResponse<ProjectVo.ProjectInfo> copyProjectNew(QueryDto<ProjectDto.CopyProject> copyProject) {
return JsonResponse.newInstance().fail(); return JsonResponse.newInstance().fail();
} }
@Override @Override
public JsonResponse addMemberForTemplate(MemberRoleDto.SaveMemberForTemplate memberForTemplate) { public JsonResponse addMemberForTemplate(MemberRoleDto.SaveMemberForTemplate memberForTemplate) {
return JsonResponse.newInstance().fail(); return JsonResponse.newInstance().fail();

10
cloudutil/src/main/resources/application-util-dev.yml

@ -31,14 +31,14 @@ eureka:
status-page-url-path: ${server.servlet.context-path}/actuator/info status-page-url-path: ${server.servlet.context-path}/actuator/info
health-check-url-path: ${server.servlet.context-path}/actuator/health health-check-url-path: ${server.servlet.context-path}/actuator/health
ribbon: ribbon:
ConnectTimeout: 5000 ConnectTimeout: 50000
ReadTimeout: 5000 ReadTimeout: 50000
feign: feign:
client: client:
config: config:
default: default:
connectTime: 5000 connectTime: 50000
readTimeout: 5000 readTimeout: 50000
# NONE【性能最佳,适用于生产】:不记录任何日志(默认值)。 # NONE【性能最佳,适用于生产】:不记录任何日志(默认值)。
# BASIC【适用于生产环境追踪问题】:仅记录请求方法、URL、响应状态代码以及执行时间。 # BASIC【适用于生产环境追踪问题】:仅记录请求方法、URL、响应状态代码以及执行时间。
# HEADERS:记录BASIC级别的基础上,记录请求和响应的header。 # HEADERS:记录BASIC级别的基础上,记录请求和响应的header。
@ -52,6 +52,8 @@ hystrix:
execution: execution:
isolation: isolation:
strategy: SEMAPHORE strategy: SEMAPHORE
thread:
timeoutInMilliseconds: 60000
# sleuth # sleuth
logging: logging:
level: level:

3
tall/src/main/java/com/ccsens/tall/service/IProjectService.java

@ -69,8 +69,7 @@ public interface IProjectService {
* 根据模板复制项目 * 根据模板复制项目
* @param param 项目id * @param param 项目id
* @param userId 当前用户id * @param userId 当前用户id
* @param token 用户token
* @return 复制成功的项目 * @return 复制成功的项目
*/ */
ProjectVo.ProjectInfo copyProjectNew(ProjectDto.ProjectIdDto param, Long userId,String token); com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo copyProjectNew(com.ccsens.cloudutil.bean.tall.dto.ProjectDto.CopyProject param, Long userId);
} }

64
tall/src/main/java/com/ccsens/tall/service/ProjectService.java

@ -648,7 +648,7 @@ public class ProjectService implements IProjectService {
userAttention.setProjectId(newProject.getId()); userAttention.setProjectId(newProject.getId());
attentionDao.insertSelective(userAttention); attentionDao.insertSelective(userAttention);
//添加角色 //添加角色
copyRole(oldProject.getId(), newProject.getId(),userId); copyRole(oldProject.getId(), newProject.getId(),userId,null);
//复制项目配置信息 //复制项目配置信息
copyProjectConfig(oldProject.getId(), newProject.getId(),userId); copyProjectConfig(oldProject.getId(), newProject.getId(),userId);
} else { } else {
@ -691,7 +691,7 @@ public class ProjectService implements IProjectService {
/** /**
* 复制角色 * 复制角色
*/ */
private void copyRole(Long oldProjectId, Long newProjectId,Long userId) { private void copyRole(Long oldProjectId, Long newProjectId,Long userId,com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo projectFeign) {
//查找被复制的项目下的二级角色 //查找被复制的项目下的二级角色
Map<Long, String> oldRoleMap = new HashMap<>(); Map<Long, String> oldRoleMap = new HashMap<>();
Map<String, Long> newRoleMap = new HashMap<>(); Map<String, Long> newRoleMap = new HashMap<>();
@ -750,7 +750,7 @@ public class ProjectService implements IProjectService {
//添加对谁不可见 //添加对谁不可见
copyRoleExclude(oldRoleList, oldRoleMap, newRoleMap); copyRoleExclude(oldRoleList, oldRoleMap, newRoleMap);
//复制任务(包括分解任务) //复制任务(包括分解任务)
copyTask(oldProjectId, newProjectId, oldRoleMap, newRoleMap); copyTask(oldProjectId, newProjectId, oldRoleMap, newRoleMap,projectFeign);
} }
} }
@ -765,7 +765,7 @@ public class ProjectService implements IProjectService {
ProRoleExclude newRoleExeclude = new ProRoleExclude(); ProRoleExclude newRoleExeclude = new ProRoleExclude();
newRoleExeclude.setId(snowflake.nextId()); newRoleExeclude.setId(snowflake.nextId());
newRoleExeclude.setRoleId(newRoleMap.get(oldRoleMap.get(roleExeclude.getRoleId()))); newRoleExeclude.setRoleId(newRoleMap.get(oldRoleMap.get(roleExeclude.getRoleId())));
newRoleExeclude.setOtherRoleId(newRoleMap.get(oldRoleMap.get(roleExeclude.getRoleId()))); newRoleExeclude.setOtherRoleId(newRoleMap.get(oldRoleMap.get(roleExeclude.getOtherRoleId())));
roleExcludeDao.insertSelective(newRoleExeclude); roleExcludeDao.insertSelective(newRoleExeclude);
} }
} }
@ -776,7 +776,10 @@ public class ProjectService implements IProjectService {
/** /**
* 复制任务插件插件配置和交付物任务配置 * 复制任务插件插件配置和交付物任务配置
*/ */
private void copyTask(Long oldProjectId, Long newProjectId, Map<Long, String> oldRoleMap, Map<String, Long> newRoleMap) { private void copyTask(Long oldProjectId, Long newProjectId, Map<Long, String> oldRoleMap, Map<String, Long> newRoleMap,com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo projectFeign) {
List<com.ccsens.cloudutil.bean.tall.vo.ProjectVo.TaskDetail> taskDetailListFeign = new ArrayList<>();
Map<Long,Long> oldIdAndNewId = new HashMap<>(); Map<Long,Long> oldIdAndNewId = new HashMap<>();
SysProject oldProject = sysProjectDao.selectByPrimaryKey(oldProjectId); SysProject oldProject = sysProjectDao.selectByPrimaryKey(oldProjectId);
SysProject newProject = sysProjectDao.selectByPrimaryKey(newProjectId); SysProject newProject = sysProjectDao.selectByPrimaryKey(newProjectId);
@ -802,9 +805,15 @@ public class ProjectService implements IProjectService {
newDetail.setCheckerRole(newRoleMap.get(oldRoleMap.get(newDetail.getCheckerRole()))); newDetail.setCheckerRole(newRoleMap.get(oldRoleMap.get(newDetail.getCheckerRole())));
} }
taskDetailDao.insertSelective(newDetail); taskDetailDao.insertSelective(newDetail);
com.ccsens.cloudutil.bean.tall.vo.ProjectVo.TaskDetail taskDetailFeignOne = new com.ccsens.cloudutil.bean.tall.vo.ProjectVo.TaskDetail();
taskDetailFeignOne.setTaskDetailId(newDetail.getId());
taskDetailFeignOne.setTaskDetailLevel(newDetail.getLevel());
taskDetailFeignOne.setTaskDetailName(newDetail.getName());
oldIdAndNewId.put(oldDetail.getId(),newDetail.getId()); oldIdAndNewId.put(oldDetail.getId(),newDetail.getId());
//复制分解任务 //复制分解任务
copyTaskSubTime(timeDifference,newDetail.getId(),oldDetail.getId()); copyTaskSubTime(timeDifference,newDetail.getId(),oldDetail.getId(),taskDetailFeignOne);
taskDetailListFeign.add(taskDetailFeignOne);
//查找一级任务下的二级任务 //查找一级任务下的二级任务
ProTaskDetailExample oldSecondTask = new ProTaskDetailExample(); ProTaskDetailExample oldSecondTask = new ProTaskDetailExample();
oldSecondTask.createCriteria().andParentIdEqualTo(oldDetail.getId()).andLevelEqualTo((byte) 2); oldSecondTask.createCriteria().andParentIdEqualTo(oldDetail.getId()).andLevelEqualTo((byte) 2);
@ -827,8 +836,13 @@ public class ProjectService implements IProjectService {
newSecondDetail.setUpdatedAt(null); newSecondDetail.setUpdatedAt(null);
taskDetailDao.insertSelective(newSecondDetail); taskDetailDao.insertSelective(newSecondDetail);
oldIdAndNewId.put(oldSecondDetail.getId(),newSecondDetail.getId()); oldIdAndNewId.put(oldSecondDetail.getId(),newSecondDetail.getId());
com.ccsens.cloudutil.bean.tall.vo.ProjectVo.TaskDetail taskDetailFeignTwo = new com.ccsens.cloudutil.bean.tall.vo.ProjectVo.TaskDetail();
taskDetailFeignTwo.setTaskDetailId(newSecondDetail.getId());
taskDetailFeignTwo.setTaskDetailName(newSecondDetail.getName());
taskDetailFeignTwo.setTaskDetailLevel(newSecondDetail.getLevel());
//复制分解任务 //复制分解任务
copyTaskSubTime(timeDifference,newSecondDetail.getId(),oldSecondDetail.getId()); copyTaskSubTime(timeDifference,newSecondDetail.getId(),oldSecondDetail.getId(),taskDetailFeignTwo);
taskDetailListFeign.add(taskDetailFeignTwo);
//分解时间 //分解时间
//taskToSubTime(newSecondDetail); //taskToSubTime(newSecondDetail);
//查找二级任务的子任务 //查找二级任务的子任务
@ -853,8 +867,13 @@ public class ProjectService implements IProjectService {
newSubDetail.setUpdatedAt(null); newSubDetail.setUpdatedAt(null);
taskDetailDao.insertSelective(newSubDetail); taskDetailDao.insertSelective(newSubDetail);
oldIdAndNewId.put(oldSubDetail.getId(),newSubDetail.getId()); oldIdAndNewId.put(oldSubDetail.getId(),newSubDetail.getId());
com.ccsens.cloudutil.bean.tall.vo.ProjectVo.TaskDetail taskDetailFeignThree = new com.ccsens.cloudutil.bean.tall.vo.ProjectVo.TaskDetail();
taskDetailFeignThree.setTaskDetailLevel(newSubDetail.getLevel());
taskDetailFeignThree.setTaskDetailId(newSubDetail.getId());
taskDetailFeignThree.setTaskDetailName(newSubDetail.getName());
//复制分解任务 //复制分解任务
copyTaskSubTime(timeDifference,newSubDetail.getId(),oldSubDetail.getId()); copyTaskSubTime(timeDifference,newSubDetail.getId(),oldSubDetail.getId(),taskDetailFeignThree);
taskDetailListFeign.add(taskDetailFeignThree);
//分解时间 //分解时间
//taskToSubTime(newSubDetail); //taskToSubTime(newSubDetail);
//复制插件、插件配置和交付物 //复制插件、插件配置和交付物
@ -869,8 +888,8 @@ public class ProjectService implements IProjectService {
copyPluginAndDeliver(oldDetail.getId(), newDetail.getId(), oldRoleMap, newRoleMap,oldIdAndNewId,newProjectId); copyPluginAndDeliver(oldDetail.getId(), newDetail.getId(), oldRoleMap, newRoleMap,oldIdAndNewId,newProjectId);
copyTaskConfig(oldDetail.getId(),newDetail.getId(),oldProjectId,newProjectId); copyTaskConfig(oldDetail.getId(),newDetail.getId(),oldProjectId,newProjectId);
} }
projectFeign.setTaskDetails(taskDetailListFeign);
} }
} }
@ -879,7 +898,9 @@ public class ProjectService implements IProjectService {
* @param newTaskDetailId 新的详情任务 * @param newTaskDetailId 新的详情任务
* @param timeDifference 时间差 * @param timeDifference 时间差
*/ */
public void copyTaskSubTime(Long timeDifference,Long newTaskDetailId,Long oldTaskDetailId){ public void copyTaskSubTime(Long timeDifference,Long newTaskDetailId,Long oldTaskDetailId,com.ccsens.cloudutil.bean.tall.vo.ProjectVo.TaskDetail taskDetailFeign){
List<com.ccsens.cloudutil.bean.tall.vo.ProjectVo.TaskSub> taskSubListFeign = new ArrayList<>();
Map<Long,Long> oldTaskSubIdAndNewId = new HashMap<>(); Map<Long,Long> oldTaskSubIdAndNewId = new HashMap<>();
//复制分解任务 //复制分解任务
ProTaskSubTimeExample proTaskSubTimeExample = new ProTaskSubTimeExample(); ProTaskSubTimeExample proTaskSubTimeExample = new ProTaskSubTimeExample();
@ -897,6 +918,15 @@ public class ProjectService implements IProjectService {
newTaskSubTime.setUpdatedAt(null); newTaskSubTime.setUpdatedAt(null);
taskSubTimeDao.insertSelective(newTaskSubTime); taskSubTimeDao.insertSelective(newTaskSubTime);
oldTaskSubIdAndNewId.put(oldTaskSubTime.getId(),newTaskSubTime.getId()); oldTaskSubIdAndNewId.put(oldTaskSubTime.getId(),newTaskSubTime.getId());
//分解任务的返回值
com.ccsens.cloudutil.bean.tall.vo.ProjectVo.TaskSub taskSubFeign = new com.ccsens.cloudutil.bean.tall.vo.ProjectVo.TaskSub();
taskSubFeign.setTaskSubId(newTaskSubTime.getId());
taskSubFeign.setStartTime(newTaskSubTime.getBeginTime());
taskSubFeign.setEndTime(newTaskSubTime.getEndTime());
taskSubListFeign.add(taskSubFeign);
//复制任务提示信息 //复制任务提示信息
ProRemindExample remindExample = new ProRemindExample(); ProRemindExample remindExample = new ProRemindExample();
remindExample.createCriteria().andSubTaskIdEqualTo(oldTaskSubTime.getId()); remindExample.createCriteria().andSubTaskIdEqualTo(oldTaskSubTime.getId());
@ -913,6 +943,7 @@ public class ProjectService implements IProjectService {
} }
} }
} }
taskDetailFeign.setTaskSubList(taskSubListFeign);
} }
} }
@ -1471,7 +1502,9 @@ public class ProjectService implements IProjectService {
* @return 复制后的项目 * @return 复制后的项目
*/ */
@Override @Override
public ProjectVo.ProjectInfo copyProjectNew(ProjectDto.ProjectIdDto param, Long userId,String token) { public com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo copyProjectNew(com.ccsens.cloudutil.bean.tall.dto.ProjectDto.CopyProject param, Long userId) {
//返回对象
com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo newProjectFeign = new com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo();
//当前时间 //当前时间
long currentTime = System.currentTimeMillis(); long currentTime = System.currentTimeMillis();
SysProject oldProject = sysProjectDao.selectByPrimaryKey(param.getProjectId()); SysProject oldProject = sysProjectDao.selectByPrimaryKey(param.getProjectId());
@ -1512,12 +1545,17 @@ public class ProjectService implements IProjectService {
userAttention.setUserId(userId); userAttention.setUserId(userId);
userAttention.setProjectId(newProject.getId()); userAttention.setProjectId(newProject.getId());
attentionDao.insertSelective(userAttention); attentionDao.insertSelective(userAttention);
//为返回值赋值
newProjectFeign.setId(newProject.getId());
//添加角色 //添加角色
copyRole(oldProject.getId(), newProject.getId(),userId); copyRole(oldProject.getId(), newProject.getId(),userId,newProjectFeign);
//复制项目配置信息 //复制项目配置信息
copyProjectConfig(oldProject.getId(), newProject.getId(),userId); copyProjectConfig(oldProject.getId(), newProject.getId(),userId);
//复制项目下的角色 //复制项目下的角色
return getProjectInfoById(userId,newProject.getId(),token);
return newProjectFeign;
} }
} }

20
tall/src/main/java/com/ccsens/tall/web/ProjectController.java

@ -1,5 +1,6 @@
package com.ccsens.tall.web; package com.ccsens.tall.web;
import com.alibaba.fastjson.JSONObject;
import com.ccsens.cloudutil.annotation.MustLogin; import com.ccsens.cloudutil.annotation.MustLogin;
import com.ccsens.tall.annotation.MustLoginTall; import com.ccsens.tall.annotation.MustLoginTall;
import com.ccsens.tall.bean.dto.ProjectDto; import com.ccsens.tall.bean.dto.ProjectDto;
@ -10,10 +11,12 @@ import com.ccsens.tall.service.IProMemberService;
import com.ccsens.tall.service.IProRoleService; import com.ccsens.tall.service.IProRoleService;
import com.ccsens.tall.service.IProTaskDetailService; import com.ccsens.tall.service.IProTaskDetailService;
import com.ccsens.tall.service.IProjectService; import com.ccsens.tall.service.IProjectService;
import com.ccsens.util.JacksonUtil;
import com.ccsens.util.JsonResponse; import com.ccsens.util.JsonResponse;
import com.ccsens.util.WebConstant; import com.ccsens.util.WebConstant;
import com.ccsens.util.annotation.OperateType; import com.ccsens.util.annotation.OperateType;
import com.ccsens.util.bean.dto.QueryDto; import com.ccsens.util.bean.dto.QueryDto;
import com.fasterxml.jackson.core.JsonProcessingException;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -336,14 +339,15 @@ public class ProjectController {
@MustLogin @MustLogin
@ApiOperation(value = "根据模板复制项目新", notes = "") @ApiOperation(value = "根据模板复制项目新", notes = "")
@RequestMapping(value = "/copyProject", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "/copyProject", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo> copyProjectNew(@ApiParam @Validated @RequestBody QueryDto<com.ccsens.cloudutil.bean.tall.dto.ProjectDto.CopyProject> params) { public JsonResponse<com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo> copyProjectNew(@ApiParam @Validated @RequestBody QueryDto<com.ccsens.cloudutil.bean.tall.dto.ProjectDto.CopyProject> params) throws JsonProcessingException {
log.info("根据模板复制项目新:{}",params); log.info("根据模板复制项目新:{}",params);
// String authHeader = request.getHeader(WebConstant.HEADER_KEY_TOKEN); com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo newProject = projectService.copyProjectNew(params.getParam(), params.getUserId());
// String token = authHeader.substring(WebConstant.HEADER_KEY_TOKEN_PREFIX.length()); log.info("根据模板复制项目新结束{}",newProject);
// ProjectVo.ProjectInfo projectInfo = projectService.copyProjectNew(params.getParam(),params.getUserId(),token); // com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo info = new com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo();
log.info("根据模板复制项目新结束"); // info.setId(1L);
com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo info = new com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo();
info.setId(1L); JsonResponse<com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo> info = JsonResponse.newInstance().ok(newProject);
return JsonResponse.newInstance().ok(info); log.info("duixiang:{}", JacksonUtil.beanToJson(info));
return info;
} }
} }

37
wisdomcar/src/main/java/com/ccsens/wisdomcar/api/PatientAndFamilyController.java

@ -1,10 +1,23 @@
package com.ccsens.wisdomcar.api; package com.ccsens.wisdomcar.api;
import com.ccsens.cloudutil.annotation.MustLogin;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.bean.dto.QueryDto;
import com.ccsens.wisdomcar.bean.dto.CreateCaseDto;
import com.ccsens.wisdomcar.bean.dto.PatientAndFamilyDto;
import com.ccsens.wisdomcar.service.IPatientAndFamilyService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j; 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.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/** /**
* @author * @author
*/ */
@ -13,5 +26,29 @@ import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequestMapping("/patientAndFamily") @RequestMapping("/patientAndFamily")
public class PatientAndFamilyController { public class PatientAndFamilyController {
@Resource
IPatientAndFamilyService patientAndFamilyService;
@MustLogin
@ApiOperation(value = "修改(补录)患者信息", notes = "mz")
@RequestMapping(value = "/updatePatientInfo", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse updatePatientInfo(@ApiParam @Validated @RequestBody QueryDto<PatientAndFamilyDto.PatientInfo> params) {
log.info("修改(补录)患者信息:{}", params);
patientAndFamilyService.updatePatientInfo(params.getParam());
log.info("修改(补录)患者信息");
return JsonResponse.newInstance().ok();
}
@MustLogin
@ApiOperation(value = "修改(补录)患者家属信息", notes = "mz")
@RequestMapping(value = "/updatePatientFamilyInfo", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse updatePatientFamilyInfo(@ApiParam @Validated @RequestBody QueryDto<PatientAndFamilyDto.PatientFamilyInfo> params) {
log.info("修改(补录)患者家属信息:{}", params);
patientAndFamilyService.updatePatientFamilyInfo(params.getParam());
log.info("修改(补录)患者家属信息");
return JsonResponse.newInstance().ok();
}
} }

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

@ -56,7 +56,26 @@ public class WisdomCarController {
wisdomCarService.createCase(params.getParam(), params.getUserId()); wisdomCarService.createCase(params.getParam(), params.getUserId());
log.info("创建病例接口"); log.info("创建病例接口");
return JsonResponse.newInstance().ok(); return JsonResponse.newInstance().ok();
}
@MustLogin
@ApiOperation(value = "绑定平车", notes = "")
@RequestMapping(value = "/bindingCar", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse bindingCar(@ApiParam @Validated @RequestBody QueryDto<WisdomCarDto.BindingCar> params) {
log.info("绑定平车:{}", params);
wisdomCarService.bindingCar(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();
} }
} }

45
wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/PatientAndFamilyDto.java

@ -0,0 +1,45 @@
package com.ccsens.wisdomcar.bean.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author
*/
@Data
public class PatientAndFamilyDto {
@Data
@ApiModel("修改(补录)患者信息")
public static class PatientInfo {
@ApiModelProperty("患者id")
private Long id;
@ApiModelProperty("患者姓名")
private String name;
@ApiModelProperty("患者性别(0-女,1-男)")
private Byte sex;
@ApiModelProperty("患者年龄")
private Integer age;
@ApiModelProperty("患者身份证号")
private String idCard;
@ApiModelProperty("患者手机号")
private String phone;
}
@Data
@ApiModel("修改(补录)患者家属信息")
public static class PatientFamilyInfo {
@ApiModelProperty("患者家属id")
private Long id;
@ApiModelProperty("患者家属姓名")
private String name;
@ApiModelProperty("患者家属手机号")
private String phone;
}
}

10
wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/WisdomCarDto.java

@ -17,4 +17,14 @@ public class WisdomCarDto {
@ApiModel("查询空闲平车--请求参数") @ApiModel("查询空闲平车--请求参数")
public static class FreeCar{ public static class FreeCar{
} }
@Data
@ApiModel("绑定平车")
public class BindingCar {
}
@Data
@ApiModel("平车数据上传")
public class UploadCarData {
}
} }

23
wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IPatientAndFamilyService.java

@ -0,0 +1,23 @@
package com.ccsens.wisdomcar.service;
import com.ccsens.wisdomcar.bean.dto.PatientAndFamilyDto;
/**
* @author
*/
public interface IPatientAndFamilyService {
/**
* 修改(补录)患者信息
* @param param 患者信息
*/
void updatePatientInfo(PatientAndFamilyDto.PatientInfo param);
/**
* 修改(补录)患者家属信息
* @param param 家属信息
*/
void updatePatientFamilyInfo(PatientAndFamilyDto.PatientFamilyInfo param);
}

14
wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IWisdomCarService.java

@ -28,4 +28,18 @@ public interface IWisdomCarService {
* @param userId 当前用户id * @param userId 当前用户id
*/ */
void createCase(CreateCaseDto.PatientInfo param, Long userId); void createCase(CreateCaseDto.PatientInfo param, Long userId);
/**
* 绑定平车
* @param param 参数
* @param userId 当前用户id
*/
void bindingCar(WisdomCarDto.BindingCar param, Long userId);
/**
* 平车数据上传
* @param param 参数
* @param userId 当前用户id
*/
void uploadCarData(WisdomCarDto.UploadCarData param, Long userId);
} }

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

@ -0,0 +1,58 @@
package com.ccsens.wisdomcar.service;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.util.exception.BaseException;
import com.ccsens.wisdomcar.bean.dto.PatientAndFamilyDto;
import com.ccsens.wisdomcar.bean.po.PatientProject;
import com.ccsens.wisdomcar.persist.dao.PatientProjectDao;
import com.ccsens.wisdomcar.util.Constant;
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;
/**
* @author
*/
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class PatientAndFamilyService implements IPatientAndFamilyService{
@Resource
private PatientProjectDao patientProjectDao;
@Override
public void updatePatientInfo(PatientAndFamilyDto.PatientInfo param) {
PatientProject patient = patientProjectDao.selectByPrimaryKey(param.getId());
if (ObjectUtil.isNotNull(param)){
if (ObjectUtil.isNotNull(param.getName())){
patient.setName(param.getName());
}
if (ObjectUtil.isNotNull(param.getPhone())){
patient.setPhone(param.getPhone());
}
if (ObjectUtil.isNotNull(param.getAge())){
patient.setAge(param.getAge());
}
if (ObjectUtil.isNotNull(param.getIdCard())){
patient.setIdCard(param.getIdCard());
}
if (ObjectUtil.isNotNull(param.getSex())){
patient.setSex(param.getSex());
}
patientProjectDao.updateByPrimaryKeySelective(patient);
}else{
throw new BaseException(Constant.PATIENT_NOT_FOUND);
}
}
@Override
public void updatePatientFamilyInfo(PatientAndFamilyDto.PatientFamilyInfo param) {
}
}

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

@ -2,6 +2,7 @@ package com.ccsens.wisdomcar.service;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.ccsens.util.bean.dto.QueryDto; 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.dto.WisdomCarDto;
import com.ccsens.wisdomcar.bean.po.HospitalMember; import com.ccsens.wisdomcar.bean.po.HospitalMember;
import com.ccsens.wisdomcar.bean.po.HospitalMemberExample; import com.ccsens.wisdomcar.bean.po.HospitalMemberExample;
@ -150,34 +151,35 @@ public class WisdomCarService implements IWisdomCarService {
log.info("调用tall内的复制项目:{}",copyProject); log.info("调用tall内的复制项目:{}",copyProject);
QueryDto<ProjectDto.CopyProject> dto = new QueryDto<>(); QueryDto<ProjectDto.CopyProject> dto = new QueryDto<>();
dto.setParam(copyProject); dto.setParam(copyProject);
JsonResponse<ProjectVo.ProjectInfo> projectNew = tallFeignClient.copyProjectNew(dto); JsonResponse<ProjectVo.ProjectInfo> projectId = tallFeignClient.copyProjectNew(dto);
log.info("复制项目后返回:{}", projectNew); log.info("复制项目后返回:{}", projectId);
if (ObjectUtil.isNull(projectNew)) { if (ObjectUtil.isNull(projectId)) {
log.info("调用tall返回null"); log.info("调用tall返回null");
return; throw new BaseException(Constant.RETURN_NULL);
} }
if(projectNew.getCode().equals(Constant.RESPONSE_OK)){ if(!projectId.getCode().equals(Constant.RESPONSE_OK)){
log.info("调用tall异常后返回:{}", projectNew.getMsg()); log.info("调用tall异常后返回:{}", projectId.getMsg());
return; throw new BaseException(Constant.RETURN_ERROR);
} }
ProjectVo.ProjectInfo newProject = projectNew.getData(); ProjectVo.ProjectInfo data = projectId.getData();
if (ObjectUtil.isNotNull(newProject)){ if (ObjectUtil.isNotNull(data)){
saveMemberForTemplate.setProjectId(newProject.getId()); saveMemberForTemplate.setProjectId(data.getId());
saveMemberForTemplate.setMemberForTemplate(memberList); saveMemberForTemplate.setMemberForTemplate(memberList);
//调用tall的添加成员接口 //调用tall的添加成员接口
log.info("调用tall内的给复制的项目添加成员接口"); log.info("调用tall内的给复制的项目添加成员接口");
JsonResponse jsonResponse = tallFeignClient.addMemberForTemplate(saveMemberForTemplate); JsonResponse jsonResponse = tallFeignClient.addMemberForTemplate(saveMemberForTemplate);
if (jsonResponse.getCode().equals(Constant.RESPONSE_OK)){ if (!jsonResponse.getCode().equals(Constant.RESPONSE_OK)){
log.info("调用tall异常后返回:{}",jsonResponse.getMsg()); log.info("调用tall异常后返回:{}",jsonResponse.getMsg());
return; throw new BaseException(Constant.RETURN_ERROR);
} }
}else{
throw new BaseException(Constant.RETURN_NULL);
} }
} }
@Override @Override
public List<WisdomCarVo.FreeCar> queryFreeCar(WisdomCarDto.FreeCar param, Long userId) { public List<WisdomCarVo.FreeCar> queryFreeCar(WisdomCarDto.FreeCar param, Long userId) {
HospitalMemberExample example = new HospitalMemberExample(); HospitalMemberExample example = new HospitalMemberExample();
@ -189,4 +191,17 @@ public class WisdomCarService implements IWisdomCarService {
Long hospitalId = hospitalMembers.get(0).getHospitalId(); Long hospitalId = hospitalMembers.get(0).getHospitalId();
return wisdomcarDao.queryFreeCar(hospitalId); return wisdomcarDao.queryFreeCar(hospitalId);
} }
@Override
public void bindingCar(WisdomCarDto.BindingCar param, Long userId) {
}
@Override
public void uploadCarData(WisdomCarDto.UploadCarData param, Long userId) {
}
} }

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

@ -52,7 +52,7 @@ public class Constant {
/** /**
* 智慧平车,模板项目id * 智慧平车,模板项目id
*/ */
public static final Long TEMPLATE_PROJECT = 1397074571902980096L; public static final Long TEMPLATE_PROJECT = 1399649478197252096L;
/** /**
* 角色名称:患者家属 * 角色名称:患者家属
@ -97,4 +97,18 @@ public class Constant {
* 响应成功 * 响应成功
*/ */
public static final Integer RESPONSE_OK = 200; public static final Integer RESPONSE_OK = 200;
/**
* 患者不存在
*/
public static final String PATIENT_NOT_FOUND = "患者不存在";
/**
* 患者不存在
*/
public static final String RETURN_NULL = "调用tall返回null";
/**
* 调用Tall异常
*/
public static final String RETURN_ERROR = "调用Tall异常";
} }

Loading…
Cancel
Save