From 31c38a302e3afcac62a5b48f2be31b2c7cc00ebd Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Wed, 2 Jun 2021 17:15:34 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=B9=B3=E8=BD=A6?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=97=85=E4=BE=8B=E6=8E=A5=E5=8F=A3,?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A4=8D=E5=88=B6=E9=A1=B9=E7=9B=AE=E7=9A=84?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cloudutil/bean/tall/vo/ProjectVo.java | 96 +++++-------------- .../cloudutil/feign/TallFeignClient.java | 5 +- .../ccsens/tall/service/IProjectService.java | 3 +- .../ccsens/tall/service/ProjectService.java | 64 ++++++++++--- .../ccsens/tall/web/ProjectController.java | 20 ++-- .../api/PatientAndFamilyController.java | 37 +++++++ .../bean/dto/PatientAndFamilyDto.java | 45 +++++++++ .../service/IPatientAndFamilyService.java | 23 +++++ .../service/PatientAndFamilyService.java | 58 +++++++++++ .../wisdomcar/service/WisdomCarService.java | 28 +++--- .../com/ccsens/wisdomcar/util/Constant.java | 16 +++- 11 files changed, 285 insertions(+), 110 deletions(-) create mode 100644 wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/PatientAndFamilyDto.java create mode 100644 wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IPatientAndFamilyService.java create mode 100644 wisdomcar/src/main/java/com/ccsens/wisdomcar/service/PatientAndFamilyService.java diff --git a/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/ProjectVo.java b/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/ProjectVo.java index c2e8aca2..12739d8b 100644 --- a/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/ProjectVo.java +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/ProjectVo.java @@ -5,6 +5,7 @@ import com.ccsens.util.WebConstant; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.ArrayList; import java.util.List; @@ -20,79 +21,30 @@ public class ProjectVo { public static class ProjectInfo{ @ApiModelProperty("项目id") private Long id; - @ApiModelProperty("项目名称") - private String name; - @ApiModelProperty("地点") - private String description; - @ApiModelProperty("描述信息") - private String address; - @ApiModelProperty("项目开始时间(milltime)") - private Long beginTime; - @ApiModelProperty("项目时长(milltime)") - private Long totalDuration; - @ApiModelProperty("项目结束时间(milltime)") + @ApiModelProperty("任务详情") + private List taskDetails; + } + @Data + @ApiModel("任务详情") + public static class TaskDetail{ + @ApiModelProperty("任务详情id") + private Long taskDetailId; + @ApiModelProperty("任务详情名称") + private String taskDetailName; + @ApiModelProperty("任务等级") + private Byte taskDetailLevel; + @ApiModelProperty("任务详情下的分解任务") + private List taskSubList; + } + @Data + @ApiModel("分解任务") + public static class TaskSub{ + @ApiModelProperty("分解任务id") + private Long taskSubId; + @ApiModelProperty("分解任务开始时间") + private Long startTime; + @ApiModelProperty("分解任务结束时间") private Long endTime; - @ApiModelProperty("项目进行状态:0未开始,1进行中,2已过期") - private Integer process; - @ApiModelProperty("当前用户在本项目中的角色") - private List roles = new ArrayList<>(); - @ApiModelProperty("当前用户在本项目中的最高权限") - private int power; - @ApiModelProperty("当前用户是否是本项目的创建者") - private boolean creator; - @ApiModelProperty("WPS文件信息") - private List wpsFilePaths; - - @ApiModelProperty("子项目信息") - private List 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)); - } } } diff --git a/cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java b/cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java index 576b0b43..b164c58c 100644 --- a/cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java @@ -1,5 +1,6 @@ package com.ccsens.cloudutil.feign; +import com.alibaba.fastjson.JSONObject; import com.ccsens.cloudutil.bean.QueryParam; import com.ccsens.cloudutil.bean.tall.dto.*; import com.ccsens.cloudutil.bean.tall.vo.*; @@ -244,7 +245,7 @@ public interface TallFeignClient { * @param copyProject 项目id * @return 项目 */ - @RequestMapping("/projects/copyProject") + @RequestMapping(value = "/projects/copyProject",method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"}) JsonResponse copyProjectNew(QueryDto copyProject); /** @@ -252,7 +253,7 @@ public interface TallFeignClient { * @param memberForTemplate 项目id/角色名称/成员手机号或userId * @return 成功/失败 */ - @RequestMapping("/members/addMemberForTemplate") + @RequestMapping(value = "/members/addMemberForTemplate",method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"}) JsonResponse addMemberForTemplate(MemberRoleDto.SaveMemberForTemplate memberForTemplate); diff --git a/tall/src/main/java/com/ccsens/tall/service/IProjectService.java b/tall/src/main/java/com/ccsens/tall/service/IProjectService.java index f427c153..1e104d70 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProjectService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProjectService.java @@ -69,8 +69,7 @@ public interface IProjectService { * 根据模板复制项目 * @param param 项目id * @param userId 当前用户id - * @param token 用户token * @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); } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProjectService.java b/tall/src/main/java/com/ccsens/tall/service/ProjectService.java index 2fb369d4..a8f88662 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProjectService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProjectService.java @@ -648,7 +648,7 @@ public class ProjectService implements IProjectService { userAttention.setProjectId(newProject.getId()); attentionDao.insertSelective(userAttention); //添加角色 - copyRole(oldProject.getId(), newProject.getId(),userId); + copyRole(oldProject.getId(), newProject.getId(),userId,null); //复制项目配置信息 copyProjectConfig(oldProject.getId(), newProject.getId(),userId); } 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 oldRoleMap = new HashMap<>(); Map newRoleMap = new HashMap<>(); @@ -750,7 +750,7 @@ public class ProjectService implements IProjectService { //添加对谁不可见 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(); newRoleExeclude.setId(snowflake.nextId()); 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); } } @@ -776,7 +776,10 @@ public class ProjectService implements IProjectService { /** * 复制任务、插件、插件配置和交付物、任务配置 */ - private void copyTask(Long oldProjectId, Long newProjectId, Map oldRoleMap, Map newRoleMap) { + private void copyTask(Long oldProjectId, Long newProjectId, Map oldRoleMap, Map newRoleMap,com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo projectFeign) { + List taskDetailListFeign = new ArrayList<>(); + + Map oldIdAndNewId = new HashMap<>(); SysProject oldProject = sysProjectDao.selectByPrimaryKey(oldProjectId); SysProject newProject = sysProjectDao.selectByPrimaryKey(newProjectId); @@ -802,9 +805,15 @@ public class ProjectService implements IProjectService { newDetail.setCheckerRole(newRoleMap.get(oldRoleMap.get(newDetail.getCheckerRole()))); } 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()); //复制分解任务 - copyTaskSubTime(timeDifference,newDetail.getId(),oldDetail.getId()); + copyTaskSubTime(timeDifference,newDetail.getId(),oldDetail.getId(),taskDetailFeignOne); + taskDetailListFeign.add(taskDetailFeignOne); //查找一级任务下的二级任务 ProTaskDetailExample oldSecondTask = new ProTaskDetailExample(); oldSecondTask.createCriteria().andParentIdEqualTo(oldDetail.getId()).andLevelEqualTo((byte) 2); @@ -827,8 +836,13 @@ public class ProjectService implements IProjectService { newSecondDetail.setUpdatedAt(null); taskDetailDao.insertSelective(newSecondDetail); 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); //查找二级任务的子任务 @@ -853,8 +867,13 @@ public class ProjectService implements IProjectService { newSubDetail.setUpdatedAt(null); taskDetailDao.insertSelective(newSubDetail); 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); //复制插件、插件配置和交付物 @@ -869,8 +888,8 @@ public class ProjectService implements IProjectService { copyPluginAndDeliver(oldDetail.getId(), newDetail.getId(), oldRoleMap, newRoleMap,oldIdAndNewId,newProjectId); copyTaskConfig(oldDetail.getId(),newDetail.getId(),oldProjectId,newProjectId); - } + projectFeign.setTaskDetails(taskDetailListFeign); } } @@ -879,7 +898,9 @@ public class ProjectService implements IProjectService { * @param newTaskDetailId 新的详情任务 * @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 taskSubListFeign = new ArrayList<>(); + Map oldTaskSubIdAndNewId = new HashMap<>(); //复制分解任务 ProTaskSubTimeExample proTaskSubTimeExample = new ProTaskSubTimeExample(); @@ -897,6 +918,15 @@ public class ProjectService implements IProjectService { newTaskSubTime.setUpdatedAt(null); taskSubTimeDao.insertSelective(newTaskSubTime); 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(); 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 复制后的项目 */ @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(); SysProject oldProject = sysProjectDao.selectByPrimaryKey(param.getProjectId()); @@ -1512,12 +1545,17 @@ public class ProjectService implements IProjectService { userAttention.setUserId(userId); userAttention.setProjectId(newProject.getId()); 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); //复制项目下的角色 - return getProjectInfoById(userId,newProject.getId(),token); + + return newProjectFeign; } } diff --git a/tall/src/main/java/com/ccsens/tall/web/ProjectController.java b/tall/src/main/java/com/ccsens/tall/web/ProjectController.java index ae91574d..39164237 100644 --- a/tall/src/main/java/com/ccsens/tall/web/ProjectController.java +++ b/tall/src/main/java/com/ccsens/tall/web/ProjectController.java @@ -1,5 +1,6 @@ package com.ccsens.tall.web; +import com.alibaba.fastjson.JSONObject; import com.ccsens.cloudutil.annotation.MustLogin; import com.ccsens.tall.annotation.MustLoginTall; 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.IProTaskDetailService; import com.ccsens.tall.service.IProjectService; +import com.ccsens.util.JacksonUtil; import com.ccsens.util.JsonResponse; import com.ccsens.util.WebConstant; import com.ccsens.util.annotation.OperateType; import com.ccsens.util.bean.dto.QueryDto; +import com.fasterxml.jackson.core.JsonProcessingException; import io.jsonwebtoken.Claims; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; @@ -336,14 +339,15 @@ public class ProjectController { @MustLogin @ApiOperation(value = "根据模板复制项目新", notes = "") @RequestMapping(value = "/copyProject", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse copyProjectNew(@ApiParam @Validated @RequestBody QueryDto params) { + public JsonResponse copyProjectNew(@ApiParam @Validated @RequestBody QueryDto params) throws JsonProcessingException { log.info("根据模板复制项目新:{}",params); -// String authHeader = request.getHeader(WebConstant.HEADER_KEY_TOKEN); -// String token = authHeader.substring(WebConstant.HEADER_KEY_TOKEN_PREFIX.length()); -// ProjectVo.ProjectInfo projectInfo = projectService.copyProjectNew(params.getParam(),params.getUserId(),token); - log.info("根据模板复制项目新结束"); - com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo info = new com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo(); - info.setId(1L); - return JsonResponse.newInstance().ok(info); + com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo newProject = projectService.copyProjectNew(params.getParam(), params.getUserId()); + log.info("根据模板复制项目新结束{}",newProject); +// com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo info = new com.ccsens.cloudutil.bean.tall.vo.ProjectVo.ProjectInfo(); +// info.setId(1L); + + JsonResponse info = JsonResponse.newInstance().ok(newProject); + log.info("duixiang:{}", JacksonUtil.beanToJson(info)); + return info; } } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/PatientAndFamilyController.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/PatientAndFamilyController.java index ffb163cd..294f1355 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/PatientAndFamilyController.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/PatientAndFamilyController.java @@ -1,10 +1,23 @@ 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.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; + /** * @author 马 */ @@ -13,5 +26,29 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/patientAndFamily") 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 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 params) { + log.info("修改(补录)患者家属信息:{}", params); + patientAndFamilyService.updatePatientFamilyInfo(params.getParam()); + log.info("修改(补录)患者家属信息"); + return JsonResponse.newInstance().ok(); + + } } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/PatientAndFamilyDto.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/PatientAndFamilyDto.java new file mode 100644 index 00000000..fc1b09af --- /dev/null +++ b/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; + + } + +} diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IPatientAndFamilyService.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IPatientAndFamilyService.java new file mode 100644 index 00000000..b05301c1 --- /dev/null +++ b/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); +} diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/PatientAndFamilyService.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/PatientAndFamilyService.java new file mode 100644 index 00000000..30afcf2c --- /dev/null +++ b/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) { + + } +} 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 68f4ea4c..db147b0c 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/WisdomCarService.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/WisdomCarService.java @@ -1,7 +1,9 @@ package com.ccsens.wisdomcar.service; import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONObject; 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; @@ -150,28 +152,30 @@ public class WisdomCarService implements IWisdomCarService { log.info("调用tall内的复制项目:{}",copyProject); QueryDto dto = new QueryDto<>(); dto.setParam(copyProject); - JsonResponse projectNew = tallFeignClient.copyProjectNew(dto); - log.info("复制项目后返回:{}", projectNew); - if (ObjectUtil.isNull(projectNew)) { + JsonResponse projectId = tallFeignClient.copyProjectNew(dto); + log.info("复制项目后返回:{}", projectId); + if (ObjectUtil.isNull(projectId)) { log.info("调用tall返回null"); - return; + throw new BaseException(Constant.RETURN_NULL); } - if(projectNew.getCode().equals(Constant.RESPONSE_OK)){ - log.info("调用tall异常后返回:{}", projectNew.getMsg()); - return; + if(!projectId.getCode().equals(Constant.RESPONSE_OK)){ + log.info("调用tall异常后返回:{}", projectId.getMsg()); + throw new BaseException(Constant.RETURN_ERROR); } - ProjectVo.ProjectInfo newProject = projectNew.getData(); - if (ObjectUtil.isNotNull(newProject)){ - saveMemberForTemplate.setProjectId(newProject.getId()); + ProjectVo.ProjectInfo data = projectId.getData(); + if (ObjectUtil.isNotNull(data)){ + saveMemberForTemplate.setProjectId(data.getId()); saveMemberForTemplate.setMemberForTemplate(memberList); //调用tall的添加成员接口 log.info("调用tall内的给复制的项目添加成员接口"); JsonResponse jsonResponse = tallFeignClient.addMemberForTemplate(saveMemberForTemplate); - if (jsonResponse.getCode().equals(Constant.RESPONSE_OK)){ + if (!jsonResponse.getCode().equals(Constant.RESPONSE_OK)){ log.info("调用tall异常后返回:{}",jsonResponse.getMsg()); - return; + throw new BaseException(Constant.RETURN_ERROR); } + }else{ + throw new BaseException(Constant.RETURN_NULL); } } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/util/Constant.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/util/Constant.java index 0275c537..e40093ba 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/util/Constant.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/util/Constant.java @@ -52,7 +52,7 @@ public class Constant { /** * 智慧平车,模板项目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 String PATIENT_NOT_FOUND = "患者不存在"; + /** + * 患者不存在 + */ + public static final String RETURN_NULL = "调用tall返回null"; + /** + * 调用Tall异常 + */ + public static final String RETURN_ERROR = "调用Tall异常"; } From e6c7bae737bc2dd0cc7d0615f6c32e3e209fb574 Mon Sep 17 00:00:00 2001 From: zhizhi wu <2377881365@qq.com> Date: Wed, 2 Jun 2021 17:57:59 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feign=20=E8=AF=B7=E6=B1=82=E6=97=B6?= =?UTF-8?q?=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/cloudutil/bean/tall/vo/ProjectVo.java | 4 ---- .../com/ccsens/cloudutil/feign/TallFeignClient.java | 5 +---- cloudutil/src/main/resources/application-util-dev.yml | 10 ++++++---- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/ProjectVo.java b/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/ProjectVo.java index 12739d8b..60c67f8f 100644 --- a/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/ProjectVo.java +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/ProjectVo.java @@ -1,13 +1,9 @@ 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.ApiModelProperty; import lombok.Data; -import lombok.NoArgsConstructor; -import java.util.ArrayList; import java.util.List; /** diff --git a/cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java b/cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java index b164c58c..8639c7e7 100644 --- a/cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java @@ -265,10 +265,7 @@ class TallFeignClientFallBack implements FallbackFactory { @Override public TallFeignClient create(Throwable throwable) { - String msg = throwable == null ? "" : throwable.getMessage(); - if (!StringUtils.isEmpty(msg)) { - log.error(msg); - } + log.error("yichang", throwable); return new TallFeignClient() { @Override public JsonResponse mergeUserId(Long userId, Long uselessId) { diff --git a/cloudutil/src/main/resources/application-util-dev.yml b/cloudutil/src/main/resources/application-util-dev.yml index e92264f9..0a05316d 100644 --- a/cloudutil/src/main/resources/application-util-dev.yml +++ b/cloudutil/src/main/resources/application-util-dev.yml @@ -31,14 +31,14 @@ eureka: status-page-url-path: ${server.servlet.context-path}/actuator/info health-check-url-path: ${server.servlet.context-path}/actuator/health ribbon: - ConnectTimeout: 5000 - ReadTimeout: 5000 + ConnectTimeout: 50000 + ReadTimeout: 50000 feign: client: config: default: - connectTime: 5000 - readTimeout: 5000 + connectTime: 50000 + readTimeout: 50000 # NONE【性能最佳,适用于生产】:不记录任何日志(默认值)。 # BASIC【适用于生产环境追踪问题】:仅记录请求方法、URL、响应状态代码以及执行时间。 # HEADERS:记录BASIC级别的基础上,记录请求和响应的header。 @@ -52,6 +52,8 @@ hystrix: execution: isolation: strategy: SEMAPHORE + thread: + timeoutInMilliseconds: 60000 # sleuth logging: level: From 9abef0a8588bffca27f390e6323e109280dc36fd Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Wed, 2 Jun 2021 18:04:38 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E5=B9=B3=E8=BD=A6=E5=92=8C=E5=B9=B3=E8=BD=A6=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E7=9A=84controller?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cloudutil/feign/TallFeignClient.java | 3 ++- .../wisdomcar/api/WisdomCarController.java | 19 +++++++++++++++++++ .../wisdomcar/bean/dto/WisdomCarDto.java | 10 ++++++++++ .../wisdomcar/service/IWisdomCarService.java | 14 ++++++++++++++ .../wisdomcar/service/WisdomCarService.java | 15 +++++++++++++-- 5 files changed, 58 insertions(+), 3 deletions(-) diff --git a/cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java b/cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java index 8639c7e7..ad4bb5ed 100644 --- a/cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java @@ -418,10 +418,11 @@ class TallFeignClientFallBack implements FallbackFactory { } @Override - public JsonResponse copyProjectNew(QueryDto copyProject) { + public JsonResponse copyProjectNew(QueryDto copyProject) { return JsonResponse.newInstance().fail(); } + @Override public JsonResponse addMemberForTemplate(MemberRoleDto.SaveMemberForTemplate memberForTemplate) { return JsonResponse.newInstance().fail(); 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 04f95327..8d61e2d8 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/WisdomCarController.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/WisdomCarController.java @@ -56,7 +56,26 @@ public class WisdomCarController { wisdomCarService.createCase(params.getParam(), params.getUserId()); log.info("创建病例接口"); 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 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 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 48876a87..29572d4c 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 @@ -17,4 +17,14 @@ public class WisdomCarDto { @ApiModel("查询空闲平车--请求参数") public static class FreeCar{ } + + @Data + @ApiModel("绑定平车") + public class BindingCar { + } + + @Data + @ApiModel("平车数据上传") + public class UploadCarData { + } } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IWisdomCarService.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IWisdomCarService.java index ae44c871..b0d6e797 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IWisdomCarService.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IWisdomCarService.java @@ -28,4 +28,18 @@ public interface IWisdomCarService { * @param userId 当前用户id */ 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); } 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 db147b0c..5c85afdd 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/WisdomCarService.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/WisdomCarService.java @@ -1,7 +1,6 @@ package com.ccsens.wisdomcar.service; import cn.hutool.core.collection.CollectionUtil; -import com.alibaba.fastjson.JSONObject; import com.ccsens.util.bean.dto.QueryDto; import com.ccsens.util.exception.BaseException; import com.ccsens.wisdomcar.bean.dto.WisdomCarDto; @@ -181,7 +180,6 @@ public class WisdomCarService implements IWisdomCarService { - @Override public List queryFreeCar(WisdomCarDto.FreeCar param, Long userId) { HospitalMemberExample example = new HospitalMemberExample(); @@ -193,4 +191,17 @@ public class WisdomCarService implements IWisdomCarService { Long hospitalId = hospitalMembers.get(0).getHospitalId(); return wisdomcarDao.queryFreeCar(hospitalId); } + + + @Override + public void bindingCar(WisdomCarDto.BindingCar param, Long userId) { + + } + + @Override + public void uploadCarData(WisdomCarDto.UploadCarData param, Long userId) { + + } + + }