diff --git a/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/MemberRoleDto.java b/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/MemberRoleDto.java index c8b10729..2c3fc400 100644 --- a/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/MemberRoleDto.java +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/MemberRoleDto.java @@ -144,4 +144,26 @@ public class MemberRoleDto { @ApiModelProperty("token") private String token; } + + @Data + @ApiModel("给模板项目添加成员") + public static class SaveMemberForTemplate { + @NotNull(message = "项目id不能为空") + @ApiModelProperty("项目id") + private Long projectId; + @ApiModelProperty("成员列表") + private List memberForTemplate; + } + @Data + @ApiModel("模板项目成员信息") + public static class MemberForTemplate { + @ApiModelProperty("用户id(医生)") + private Long userId; + @ApiModelProperty("成员名") + private String memberName; + @ApiModelProperty("成员手机号") + private String phone; + @ApiModelProperty("所属角色的名称") + private List roleName; + } } diff --git a/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/ProjectDto.java b/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/ProjectDto.java new file mode 100644 index 00000000..916aaef0 --- /dev/null +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/ProjectDto.java @@ -0,0 +1,23 @@ +package com.ccsens.cloudutil.bean.tall.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @author AUSU + */ +@Data +public class ProjectDto { + @Data + @ApiModel("根据模板复制项目") + public static class CopyProject{ + @NotNull(message = "请选择要复制得项目") + @ApiModelProperty("项目id") + private Long projectId; + } +} 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 new file mode 100644 index 00000000..60c67f8f --- /dev/null +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/ProjectVo.java @@ -0,0 +1,46 @@ +package com.ccsens.cloudutil.bean.tall.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author AUSU + */ +@Data +public class ProjectVo { + + @Data + @ApiModel("复制的项目信息") + public static class ProjectInfo{ + @ApiModelProperty("项目id") + private Long id; + @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; + } + +} diff --git a/cloudutil/src/main/java/com/ccsens/cloudutil/config/FeignTokenConfig.java b/cloudutil/src/main/java/com/ccsens/cloudutil/config/FeignTokenConfig.java index a9ae5a7b..6590f509 100644 --- a/cloudutil/src/main/java/com/ccsens/cloudutil/config/FeignTokenConfig.java +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/config/FeignTokenConfig.java @@ -4,16 +4,32 @@ import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import feign.RequestInterceptor; import feign.RequestTemplate; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpHeaders; import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; /** * @author 逗 */ -@Component +@Configuration public class FeignTokenConfig implements RequestInterceptor { @Override public void apply(RequestTemplate template) { + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + System.out.println("attributes:"+attributes); + if (attributes != null) { + HttpServletRequest request = attributes.getRequest(); + System.out.println("token:" + request.getHeader(HttpHeaders.AUTHORIZATION)); + //添加token + template.header(HttpHeaders.AUTHORIZATION, request.getHeader(HttpHeaders.AUTHORIZATION)); + return; + } + byte[] body = template.body(); if (body == null) { return; @@ -23,5 +39,7 @@ public class FeignTokenConfig implements RequestInterceptor { //添加token template.header("Authorization", jsonObject.getStr("token")); + + } } 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 a2a5e957..ad4bb5ed 100644 --- a/cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java @@ -1,11 +1,12 @@ 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.*; import com.ccsens.cloudutil.config.FeignTokenConfig; import com.ccsens.util.JsonResponse; -import feign.RequestInterceptor; +import com.ccsens.util.bean.dto.QueryDto; import feign.hystrix.FallbackFactory; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.openfeign.FeignClient; @@ -238,6 +239,24 @@ public interface TallFeignClient { */ @RequestMapping("/roles/delete") JsonResponse deleteRole(MemberRoleDto.DeleteRole deleteRole); + + /** + * 根据项目模板复制项目 + * @param copyProject 项目id + * @return 项目 + */ + @RequestMapping(value = "/projects/copyProject",method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"}) + JsonResponse copyProjectNew(QueryDto copyProject); + + /** + * 给复制后的模板项目添加成员 + * @param memberForTemplate 项目id/角色名称/成员手机号或userId + * @return 成功/失败 + */ + @RequestMapping(value = "/members/addMemberForTemplate",method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"}) + JsonResponse addMemberForTemplate(MemberRoleDto.SaveMemberForTemplate memberForTemplate); + + } @Slf4j @@ -246,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) { @@ -400,6 +416,17 @@ class TallFeignClientFallBack implements FallbackFactory { public JsonResponse deleteRole(MemberRoleDto.DeleteRole deleteRole) { return JsonResponse.newInstance().fail(); } + + @Override + public JsonResponse copyProjectNew(QueryDto copyProject) { + return JsonResponse.newInstance().fail(); + } + + + @Override + public JsonResponse addMemberForTemplate(MemberRoleDto.SaveMemberForTemplate memberForTemplate) { + return JsonResponse.newInstance().fail(); + } }; } diff --git a/cloudutil/src/main/resources/application-util-dev.yml b/cloudutil/src/main/resources/application-util-dev.yml index 4e0eefaa..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。 @@ -46,6 +46,14 @@ feign: loggerLevel: basic hystrix: enabled: true +hystrix: + command: + default: + execution: + isolation: + strategy: SEMAPHORE + thread: + timeoutInMilliseconds: 60000 # sleuth logging: level: diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/MemberDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/MemberDto.java index dd9840a7..4329b034 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/MemberDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/MemberDto.java @@ -65,4 +65,27 @@ public class MemberDto { @ApiModelProperty("奖惩干系人姓名") private String stakeholderName; } + + @Data + @ApiModel("为模板项目添加成员") + public static class SaveMemberForTemplate { + @NotNull(message = "项目id不能为空") + @ApiModelProperty("项目id") + private Long projectId; + @ApiModelProperty("成员列表") + private List memberForTemplate; + } + @Data + @ApiModel("模板项目成员信息") + public static class MemberForTemplate { + @ApiModelProperty("用户id(医生)") + private Long userId; + @ApiModelProperty("成员名") + private String memberName; + @ApiModelProperty("成员手机号") + private String phone; + @ApiModelProperty("所属角色的名称") + private List roleName; + } + } diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberDao.java index 60b4dc4d..c024c946 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberDao.java @@ -67,4 +67,12 @@ public interface ProMemberDao extends ProMemberMapper{ * @return 返回所有成员信息及奖惩干系人 */ List queryByProjectId(@Param("projectId")Long projectId); + + /** + * 通过项目id和手机号查询用户是否存在 + * @param projectId 项目id + * @param phone 手机号 + * @return 0为不存在 + */ + int findUserIsExist(@Param("projectId") Long projectId,@Param("phone") String phone); } diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java index 382bb1e9..e3bc928f 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java @@ -135,6 +135,14 @@ public interface ProRoleDao extends ProRoleMapper{ */ ProRole getMoneyStakeholder(@Param("projectId") Long projectId); + /** + * 根据项目id和角色名称查找角色id + * @param projectId 项目id + * @param roleName 角色名称 + * @return 角色id + */ + Long findRoelIdByProjectAndName(@Param("projectId") Long projectId,@Param("roleName") String roleName); + // /** // * 查找项目下的所有成员的名字用“,”分隔 diff --git a/tall/src/main/java/com/ccsens/tall/service/IProMemberService.java b/tall/src/main/java/com/ccsens/tall/service/IProMemberService.java index 9c33b346..29a7d1d5 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProMemberService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProMemberService.java @@ -84,4 +84,11 @@ public interface IProMemberService { * @return */ ProjectVo.MemberList getMemberByPhone(MemberDto.GetMemberByPhone memberByPhone); + + /** + * 为模板项目添加成员 + * @param param 项目id,成员手机号 + * + */ + void addMemberForTemplate(MemberDto.SaveMemberForTemplate param); } 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 f3ab081e..1e104d70 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProjectService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProjectService.java @@ -71,5 +71,5 @@ public interface IProjectService { * @param userId 当前用户id * @return 复制成功的项目 */ - ProjectVo.ProjectInfo copyProjectNew(ProjectDto.ProjectIdDto param, Long userId); + 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/ProMemberService.java b/tall/src/main/java/com/ccsens/tall/service/ProMemberService.java index 6013103f..f12f09c2 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProMemberService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProMemberService.java @@ -521,4 +521,78 @@ public class ProMemberService implements IProMemberService { } return member; } + + + @Override + public void addMemberForTemplate(MemberDto.SaveMemberForTemplate param) { + + if (CollectionUtil.isNotEmpty(param.getMemberForTemplate())){ + for (MemberDto.MemberForTemplate memberForTemplate : param.getMemberForTemplate()) { + + //只有手机号的情况 + if (ObjectUtil.isNotNull(memberForTemplate.getPhone())){ + //用项目id和手机号判断用户是否存在 + int isExist = proMemberDao.findUserIsExist(param.getProjectId(),memberForTemplate.getPhone()); + if (0!=isExist) { + throw new BaseException(CodeEnum.WBS_REPEAT_MEMBER_PHONE); + } + //添加成员 + ProMember proMember = new ProMember(); + proMember.setId(snowflake.nextId()); + proMember.setProjectId(param.getProjectId()); + if(ObjectUtil.isNotNull(memberForTemplate.getMemberName())){ + proMember.setNickname(memberForTemplate.getMemberName()); + } + proMember.setPhone(memberForTemplate.getPhone()); + proMemberDao.insertSelective(proMember); + //关联成员和角色 + for (String roleName : memberForTemplate.getRoleName()) { + Long roleId = proRoleDao.findRoelIdByProjectAndName(param.getProjectId(),roleName); + if (null != roleId){ + ProMemberRole proMemberRole = new MemberRoleDto(); + proMemberRole.setId(snowflake.nextId()); + proMemberRole.setRoleId(roleId); + proMemberRole.setMemberId(proMember.getId()); + proMemberRoleDao.insertSelective(proMemberRole); + } + } + } + + //知道成员的userId的情况 + if (ObjectUtil.isNotNull(memberForTemplate.getUserId())){ + SysUser user = userDao.selectByPrimaryKey(memberForTemplate.getUserId()); + String phone = userService.getPhone(memberForTemplate.getUserId()); + //用项目id和手机号判断用户是否存在 + int isExist = proMemberDao.findUserIsExist(param.getProjectId(),phone); + if (0!=isExist) { + throw new BaseException(CodeEnum.WBS_REPEAT_MEMBER_PHONE); + } + + //添加成员 + ProMember proMember = new ProMember(); + proMember.setId(snowflake.nextId()); + proMember.setPhone(phone); + proMember.setUserId(memberForTemplate.getUserId()); + proMember.setProjectId(param.getProjectId()); + if(ObjectUtil.isNotNull(user.getNickname())){ + proMember.setNickname(user.getNickname()); + } + proMemberDao.insertSelective(proMember); + for (String roleName : memberForTemplate.getRoleName()) { + Long roleId = proRoleDao.findRoelIdByProjectAndName(param.getProjectId(),roleName); + if (null != roleId){ + ProMemberRole proMemberRole = new MemberRoleDto(); + proMemberRole.setId(snowflake.nextId()); + proMemberRole.setRoleId(roleId); + proMemberRole.setMemberId(proMember.getId()); + proMemberRoleDao.insertSelective(proMemberRole); + } + } + } + + } + } + + } + } 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 222706ca..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) { + 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 null; + + return newProjectFeign; } } diff --git a/tall/src/main/java/com/ccsens/tall/web/MemberController.java b/tall/src/main/java/com/ccsens/tall/web/MemberController.java index 0ca2cfb3..577039b3 100644 --- a/tall/src/main/java/com/ccsens/tall/web/MemberController.java +++ b/tall/src/main/java/com/ccsens/tall/web/MemberController.java @@ -1,5 +1,6 @@ package com.ccsens.tall.web; +import com.ccsens.cloudutil.annotation.MustLogin; import com.ccsens.tall.bean.dto.MemberDto; import com.ccsens.tall.bean.dto.ProjectDto; import com.ccsens.tall.bean.vo.ProjectVo; @@ -8,6 +9,7 @@ import com.ccsens.tall.service.IProMemberService; import com.ccsens.util.JsonResponse; import com.ccsens.util.WebConstant; import com.ccsens.util.annotation.OperateType; +import com.ccsens.util.bean.dto.QueryDto; import io.jsonwebtoken.Claims; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParams; @@ -104,4 +106,14 @@ public class MemberController { ProjectVo.MemberList membersInfo = proMemberService.getMemberByPhone(memberByPhone); return JsonResponse.newInstance().ok(membersInfo); } + + + @ApiOperation(value = "复制后的项目添加成员", notes = "") + @RequestMapping(value = "/addMemberForTemplate", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse addMemberForTemplate(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { + log.info("根据模板复制项目新:{}",params); + proMemberService.addMemberForTemplate(params.getParam()); + log.info("根据模板复制项目新结束"); + return JsonResponse.newInstance().ok(); + } } 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 3941c5be..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,10 +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) throws Exception { + public JsonResponse copyProjectNew(@ApiParam @Validated @RequestBody QueryDto params) throws JsonProcessingException { log.info("根据模板复制项目新:{}",params); - ProjectVo.ProjectInfo projectInfo = projectService.copyProjectNew(params.getParam(),params.getUserId()); - log.info("根据模板复制项目新结束"); - return JsonResponse.newInstance().ok(projectInfo); + 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/tall/src/main/resources/application-dev.yml b/tall/src/main/resources/application-dev.yml index a3657c92..267c3559 100644 --- a/tall/src/main/resources/application-dev.yml +++ b/tall/src/main/resources/application-dev.yml @@ -11,11 +11,11 @@ spring: datasource: type: com.alibaba.druid.pool.DruidDataSource rabbitmq: - host: test.tall.wiki + host: 192.168.4.113 # host: 127.0.0.1 - password: guest + password: 111111 port: 5672 - username: guest + username: admin redis: database: 0 host: 127.0.0.1 diff --git a/tall/src/main/resources/application.yml b/tall/src/main/resources/application.yml index ee27f352..b5408a3a 100644 --- a/tall/src/main/resources/application.yml +++ b/tall/src/main/resources/application.yml @@ -1,6 +1,5 @@ spring: profiles: - active: test - include: util-test,common - + active: dev + include: util-dev,common diff --git a/tall/src/main/resources/mapper_dao/ProMemberDao.xml b/tall/src/main/resources/mapper_dao/ProMemberDao.xml index e448a8a6..c6d5facc 100644 --- a/tall/src/main/resources/mapper_dao/ProMemberDao.xml +++ b/tall/src/main/resources/mapper_dao/ProMemberDao.xml @@ -374,4 +374,14 @@ LEFT JOIN t_pro_member pm on pm.id = a.stakeholder_id and pm.rec_status = 0 and pm.nickname != '' + + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_dao/ProRoleDao.xml b/tall/src/main/resources/mapper_dao/ProRoleDao.xml index 06100c3c..b9dbf7d2 100644 --- a/tall/src/main/resources/mapper_dao/ProRoleDao.xml +++ b/tall/src/main/resources/mapper_dao/ProRoleDao.xml @@ -475,4 +475,14 @@ (SELECT id FROM t_pro_role WHERE name = 'MoneyStakeholder' and project_id = #{projectId}) limit 1 + + \ No newline at end of file diff --git a/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java b/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java index 5e4c9ff1..0d5c1aec 100644 --- a/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java +++ b/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java @@ -292,7 +292,7 @@ public class PatientService implements IPatientService { public StatisticVo.SelCountS countCase(StatisticDto.SelCount param, Long userId) { StatisticVo.SelCountS selCountS=new StatisticVo.SelCountS(); - selCountS.setNewNums(patientDao.countCase(param,(byte)0)); + selCountS.setNewNums(patientDao.countCase(param,(byte)0,(byte)1)); selCountS.setOverNums(patientDao.countCase(param,(byte)2,(byte)5,(byte)6)); return selCountS; diff --git a/util/src/main/java/com/ccsens/util/CodeEnum.java b/util/src/main/java/com/ccsens/util/CodeEnum.java index 293bf978..cb58cced 100644 --- a/util/src/main/java/com/ccsens/util/CodeEnum.java +++ b/util/src/main/java/com/ccsens/util/CodeEnum.java @@ -213,6 +213,7 @@ public enum CodeEnum { DELIVER_REPEAT(173,"交付物已存在",true), PARENT_PROJECT_NOT_MATCHING(174,"父任务与项目不匹配",true), PM_NOT_MEMBER(175,"项目经理下必须有一个成员",true), + WisdomCar_NOT_Found(176,"没有找到绑定的平车信息",true) ; diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/OtherRecordsController.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/OtherRecordsController.java index b9f2444c..be39d067 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/OtherRecordsController.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/OtherRecordsController.java @@ -42,10 +42,10 @@ public class OtherRecordsController { @ApiOperation(value = "查询上传图片和记录", notes = "") - @RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse> query(@ApiParam @Validated @RequestBody QueryDto params){ + @RequestMapping(value = "/queryList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryList(@ApiParam @Validated @RequestBody QueryDto params){ log.info("查询上传图片和记录:{}", params); - List list = iOtherRecordsService.query(params.getParam()); + List list = iOtherRecordsService.queryList(params.getParam()); log.info("查询上传图片和记录成功"); return JsonResponse.newInstance().ok(list); } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/PatientAndFamilyController.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/PatientAndFamilyController.java new file mode 100644 index 00000000..294f1355 --- /dev/null +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/PatientAndFamilyController.java @@ -0,0 +1,54 @@ +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 马 + */ +@Slf4j +@Api(tags = "患者与家属相关接口" , description = "") +@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/api/ProjectController.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/ProjectController.java new file mode 100644 index 00000000..d851b0fc --- /dev/null +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/ProjectController.java @@ -0,0 +1,54 @@ +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.ProjectDto; +import com.ccsens.wisdomcar.bean.vo.ProjectVo; +import com.ccsens.wisdomcar.service.IProjectService; +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; +import java.util.List; + +/** + * @description: 项目页面的操作 + * @author: whj + * @time: 2021/6/1 13:31 + */ +@Slf4j +@Api(tags = "页面相关api" , description = "") +@RestController +@RequestMapping("/project") +public class ProjectController { + + @Resource + private IProjectService projectService; + + @MustLogin + @ApiOperation(value = "点击开始", notes = "whj") + @RequestMapping(value = "/start", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse start(@ApiParam @Validated @RequestBody QueryDto params){ + log.info("点击开始:{}", params); + projectService.start(params.getParam(), params.getUserId()); + log.info("点击开始结束"); + return JsonResponse.newInstance().ok(); + } + @MustLogin + @ApiOperation(value = "查询称重和剂量", notes = "whj") + @RequestMapping(value = "/weight", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse weight(@ApiParam @Validated @RequestBody QueryDto params){ + log.info("查询称重和剂量:{}", params); + List list = projectService.queryWeight(params.getParam(), params.getUserId()); + log.info("查询称重和剂量:{}", list); + return JsonResponse.newInstance().ok(list); + } +} diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/WisdomCarController.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/WisdomCarController.java new file mode 100644 index 00000000..8d61e2d8 --- /dev/null +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/WisdomCarController.java @@ -0,0 +1,82 @@ +package com.ccsens.wisdomcar.api; + +import com.ccsens.util.JsonResponse; +import com.ccsens.util.bean.dto.QueryDto; +import com.ccsens.wisdomcar.bean.dto.RecordDto; +import com.ccsens.wisdomcar.bean.dto.WisdomCarDto; +import com.ccsens.wisdomcar.bean.vo.RecordVo; +import com.ccsens.wisdomcar.bean.vo.WisdomCarVo; +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.StatisticsDto; +import com.ccsens.wisdomcar.bean.vo.StatisticsVo; +import com.ccsens.wisdomcar.service.IWisdomCarService; +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; +import java.util.List; + +/** + * @author 逗 + */ +@Slf4j +@Api(tags = "平车相关api" , description = "") +@RestController +@RequestMapping("/car") +public class WisdomCarController { + + @Resource + private IWisdomCarService wisdomCarService; + + @MustLogin + @ApiOperation(value = "空闲平车查询", notes = "whj") + @RequestMapping(value = "/free", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse freeCar(@ApiParam @Validated @RequestBody QueryDto params){ + log.info("空闲平车查询:{}", params); + List list = wisdomCarService.queryFreeCar(params.getParam(), params.getUserId()); + log.info("空闲平车查询结果:{}", list); + return JsonResponse.newInstance().ok(list); + } + + @MustLogin + @ApiOperation(value = "创建病例接口", notes = "") + @RequestMapping(value = "/createCase", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse createCase(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("创建病例接口:{}", params); + 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/api/WisdomCatController.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/WisdomCatController.java deleted file mode 100644 index 7587cc22..00000000 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/api/WisdomCatController.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.ccsens.wisdomcar.api; - -import io.swagger.annotations.Api; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * @author 逗 - */ -@Slf4j -@Api(tags = "平车相关api" , description = "") -@RestController -@RequestMapping("/car") -public class WisdomCatController { -} diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/CreateCaseDto.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/CreateCaseDto.java new file mode 100644 index 00000000..a914fcd0 --- /dev/null +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/CreateCaseDto.java @@ -0,0 +1,38 @@ +package com.ccsens.wisdomcar.bean.dto; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * @author AUSU + */ + +@Data +public class CreateCaseDto { + @Data + @ApiModel("患者与家属信息") + public static class PatientInfo{ + @ApiModelProperty("患者姓名") + private String patientName; + @ApiModelProperty("患者性别(0-女,1-男)") + private Byte patientSex; + @ApiModelProperty("患者年龄") + private int patientAge; + @ApiModelProperty("患者身份证号") + private String patientIdCard; + @ApiModelProperty("患者手机号") + private int patientPhone; + @ApiModelProperty("患者病案号") + private String medicalRecordNum; + @ApiModelProperty("患者家属姓名") + private String familyName; + @ApiModelProperty("患者家属手机号") + private String familyPhone; + } +} diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/OtherRecordsDto.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/OtherRecordsDto.java index 23639fab..6adcc498 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/OtherRecordsDto.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/OtherRecordsDto.java @@ -26,7 +26,7 @@ public class OtherRecordsDto { } @Data @ApiModel("查询上传图片和记录") - public static class Query { + public static class QueryId { @ApiModelProperty("分解任务id") private Long id; } 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/bean/dto/ProjectDto.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/ProjectDto.java new file mode 100644 index 00000000..23521dc3 --- /dev/null +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/ProjectDto.java @@ -0,0 +1,33 @@ +package com.ccsens.wisdomcar.bean.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @description:页面上操作 + * @author: whj + * @time: 2021/6/1 13:34 + */ +public class ProjectDto { + + @Data + @ApiModel("点击开始-请求") + public static class Start { + @ApiModelProperty("开始时间") + private Long startTime = System.currentTimeMillis(); + @NotNull(message="请说明您的任务") + @ApiModelProperty("分解任务ID") + private Long taskSubId; + } + + @Data + @ApiModel("查询称重和剂量--请求") + public static class Weight { + @NotNull(message="请说明您的任务") + @ApiModelProperty("分解任务ID") + private Long taskSubId; + } +} 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 new file mode 100644 index 00000000..29572d4c --- /dev/null +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/dto/WisdomCarDto.java @@ -0,0 +1,30 @@ +package com.ccsens.wisdomcar.bean.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @description: 平车相关 + * @author: whj + * @time: 2021/6/1 13:01 + */ +public class WisdomCarDto { + + @Data + @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/bean/po/PatientWisdomCar.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/PatientWisdomCar.java index ec70d7a8..7190b46d 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/PatientWisdomCar.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/PatientWisdomCar.java @@ -24,6 +24,8 @@ public class PatientWisdomCar implements Serializable { private Byte recStatus; + private Byte bindingStatus; + private static final long serialVersionUID = 1L; public Long getId() { @@ -106,6 +108,14 @@ public class PatientWisdomCar implements Serializable { this.recStatus = recStatus; } + public Byte getBindingStatus() { + return bindingStatus; + } + + public void setBindingStatus(Byte bindingStatus) { + this.bindingStatus = bindingStatus; + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); @@ -122,6 +132,7 @@ public class PatientWisdomCar implements Serializable { sb.append(", createdAt=").append(createdAt); sb.append(", updatedAt=").append(updatedAt); sb.append(", recStatus=").append(recStatus); + sb.append(", bindingStatus=").append(bindingStatus); sb.append("]"); return sb.toString(); } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/PatientWisdomCarExample.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/PatientWisdomCarExample.java index 2f566522..eddd00a1 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/PatientWisdomCarExample.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/po/PatientWisdomCarExample.java @@ -704,6 +704,66 @@ public class PatientWisdomCarExample { addCriterion("rec_status not between", value1, value2, "recStatus"); return (Criteria) this; } + + public Criteria andBindingStatusIsNull() { + addCriterion("binding_status is null"); + return (Criteria) this; + } + + public Criteria andBindingStatusIsNotNull() { + addCriterion("binding_status is not null"); + return (Criteria) this; + } + + public Criteria andBindingStatusEqualTo(Byte value) { + addCriterion("binding_status =", value, "bindingStatus"); + return (Criteria) this; + } + + public Criteria andBindingStatusNotEqualTo(Byte value) { + addCriterion("binding_status <>", value, "bindingStatus"); + return (Criteria) this; + } + + public Criteria andBindingStatusGreaterThan(Byte value) { + addCriterion("binding_status >", value, "bindingStatus"); + return (Criteria) this; + } + + public Criteria andBindingStatusGreaterThanOrEqualTo(Byte value) { + addCriterion("binding_status >=", value, "bindingStatus"); + return (Criteria) this; + } + + public Criteria andBindingStatusLessThan(Byte value) { + addCriterion("binding_status <", value, "bindingStatus"); + return (Criteria) this; + } + + public Criteria andBindingStatusLessThanOrEqualTo(Byte value) { + addCriterion("binding_status <=", value, "bindingStatus"); + return (Criteria) this; + } + + public Criteria andBindingStatusIn(List values) { + addCriterion("binding_status in", values, "bindingStatus"); + return (Criteria) this; + } + + public Criteria andBindingStatusNotIn(List values) { + addCriterion("binding_status not in", values, "bindingStatus"); + return (Criteria) this; + } + + public Criteria andBindingStatusBetween(Byte value1, Byte value2) { + addCriterion("binding_status between", value1, value2, "bindingStatus"); + return (Criteria) this; + } + + public Criteria andBindingStatusNotBetween(Byte value1, Byte value2) { + addCriterion("binding_status not between", value1, value2, "bindingStatus"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/OtherRecordsVo.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/OtherRecordsVo.java index 548da789..c00930ac 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/OtherRecordsVo.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/OtherRecordsVo.java @@ -17,7 +17,7 @@ public class OtherRecordsVo { @Data @ApiModel("查询上传图片和记录") - public static class Query { + public static class TypeAndComment { @ApiModelProperty("类型(0-图片,1-文本)") private byte type; @ApiModelProperty("内容") diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/ProjectVo.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/ProjectVo.java new file mode 100644 index 00000000..de1ecacb --- /dev/null +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/ProjectVo.java @@ -0,0 +1,42 @@ +package com.ccsens.wisdomcar.bean.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: whj + * @time: 2021/6/1 13:34 + */ +public class ProjectVo { + public static class Start { + } + + @Data + @ApiModel("查询称重和剂量--响应") + public static class Record { + @ApiModelProperty("类型 1:体重 8溶栓剂量 9团注剂量 10维持剂量") + private byte type; + @ApiModelProperty("对应的值") + private String value; + } + + @ApiModel("患者平车绑定信息") + @Data + public static class BindCar { + @ApiModelProperty("患者平车绑定ID") + private Long id; + @ApiModelProperty("任务ID") + private Long taskSubId; + @ApiModelProperty("患者ID") + private Long patientId; + @ApiModelProperty("平车ID") + private Long carId; + @ApiModelProperty("开始时间") + private Long startTime; + @ApiModelProperty("结束时间") + private Long endTime; + + } +} diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/WisdomCarVo.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/WisdomCarVo.java new file mode 100644 index 00000000..4ea49c33 --- /dev/null +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/bean/vo/WisdomCarVo.java @@ -0,0 +1,21 @@ +package com.ccsens.wisdomcar.bean.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: 平车相关 + * @author: whj + * @time: 2021/6/1 13:02 + */ +public class WisdomCarVo { + @Data + @ApiModel("查询空闲平车--响应参数") + public static class FreeCar{ + @ApiModelProperty("平车ID") + private Long id; + @ApiModelProperty("平车编号") + private String carNumber; + } +} diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/HospitalWrokingDao.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/HospitalWrokingDao.java index b2535667..87702373 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/HospitalWrokingDao.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/HospitalWrokingDao.java @@ -1,5 +1,6 @@ package com.ccsens.wisdomcar.persist.dao; +import com.ccsens.wisdomcar.bean.po.HospitalMember; import com.ccsens.wisdomcar.bean.po.HospitalWroking; import com.ccsens.wisdomcar.bean.po.HospitalWrokingExample; import com.ccsens.wisdomcar.persist.mapper.HospitalWrokingMapper; @@ -12,4 +13,12 @@ import java.util.List; */ public interface HospitalWrokingDao extends HospitalWrokingMapper { + /** + * 查找正在值班医生 + * @param hospitalId 医院id + * @param currentTime 当前时间 + * @return 值班医生 + */ + List findWorkingDoctor(@Param("hospitalId") Long hospitalId,@Param("currentTime") Long currentTime); + } \ No newline at end of file diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepDao.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepDao.java index be26252a..4514328f 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepDao.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepDao.java @@ -21,4 +21,11 @@ public interface StepDao extends StepMapper { StepVo.Step getCodeByStepOne(); String getRecordByCarIdAndType(@Param("carId") Long carId, @Param("type") byte type); + + /** + * 查询最大序号 + * @param stepType 类型 + * @return 最大序号 + */ + Integer getMaxSequence(@Param("stepType") byte stepType); } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepTaskDao.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepTaskDao.java index 61dae4b9..6be5f13b 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepTaskDao.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/StepTaskDao.java @@ -2,6 +2,7 @@ package com.ccsens.wisdomcar.persist.dao; import com.ccsens.wisdomcar.bean.po.StepTask; import com.ccsens.wisdomcar.bean.po.StepTaskExample; +import com.ccsens.wisdomcar.bean.vo.ProjectVo; import com.ccsens.wisdomcar.persist.mapper.StepTaskMapper; import org.apache.ibatis.annotations.Param; @@ -12,4 +13,10 @@ import java.util.List; */ public interface StepTaskDao extends StepTaskMapper { + /** + * 查找对应绑定平车的任务ID + * @param taskSubId 查询的任务ID + * @return 绑定平车任务ID + */ + ProjectVo.BindCar getBindCarTaskId(@Param("taskSubId") Long taskSubId); } \ No newline at end of file diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/WisdomCarDao.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/WisdomCarDao.java new file mode 100644 index 00000000..0713cfaa --- /dev/null +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/WisdomCarDao.java @@ -0,0 +1,18 @@ +package com.ccsens.wisdomcar.persist.dao; + +import com.ccsens.wisdomcar.bean.vo.WisdomCarVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author whj + */ +public interface WisdomCarDao { + /** + * 查询空闲平车 + * @param hospitalId 医院ID + * @return 空闲平车 + */ + List queryFreeCar(@Param("hospitalId") Long hospitalId); +} diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/WisdomCarRecordDao.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/WisdomCarRecordDao.java index 97e5d3f1..f9806fcf 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/WisdomCarRecordDao.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/persist/dao/WisdomCarRecordDao.java @@ -1,10 +1,10 @@ package com.ccsens.wisdomcar.persist.dao; +import com.ccsens.wisdomcar.bean.vo.ProjectVo; import com.ccsens.wisdomcar.bean.vo.RecordVo; import com.ccsens.wisdomcar.persist.mapper.WisdomCarRecordMapper; import org.apache.ibatis.annotations.Param; -import java.util.Date; import java.util.List; /** @@ -31,4 +31,13 @@ public interface WisdomCarRecordDao extends WisdomCarRecordMapper { */ List queryRecords(@Param("carId") Long carId, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("type") byte type); + /** + * 查询平车最近的记录 + * @param carId 平车ID + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param typeArr 数据类型 + * @return 记录 + */ + List queryRecent(@Param("carId") Long carId, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("typeArr") byte... typeArr); } diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IOtherRecordsService.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IOtherRecordsService.java index 1677797f..31d53da0 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IOtherRecordsService.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IOtherRecordsService.java @@ -20,5 +20,5 @@ public interface IOtherRecordsService { * @param * @throws */ - List query(OtherRecordsDto.Query param); + List queryList(OtherRecordsDto.QueryId param); } 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/IProjectService.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IProjectService.java new file mode 100644 index 00000000..51e514bb --- /dev/null +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IProjectService.java @@ -0,0 +1,28 @@ +package com.ccsens.wisdomcar.service; + +import com.ccsens.wisdomcar.bean.dto.ProjectDto; +import com.ccsens.wisdomcar.bean.vo.ProjectVo; + +import java.util.List; + +/** + * @author whj + */ +public interface IProjectService { + + /** + * 网页设置结点开始 + * @param param 设置参数 + * @param userId userId + */ + void start(ProjectDto.Start param, Long userId); + + /** + * 查询称重和剂量 + * @param param param + * @param userId userId + * @return 称重和剂量 + */ + List queryWeight(ProjectDto.Weight param, Long userId); + +} diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IWisdomCarService.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IWisdomCarService.java new file mode 100644 index 00000000..b0d6e797 --- /dev/null +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/IWisdomCarService.java @@ -0,0 +1,45 @@ +package com.ccsens.wisdomcar.service; + +import com.ccsens.wisdomcar.bean.dto.CreateCaseDto; +import com.ccsens.wisdomcar.bean.dto.WisdomCarDto; +import com.ccsens.wisdomcar.bean.vo.WisdomCarVo; +import com.ccsens.wisdomcar.bean.dto.CreateCaseDto; + +import java.util.List; + +/** + * @author whj + */ +public interface IWisdomCarService { + /** + * 查询空闲平车 + * @param param 平车要求,暂无 + * @param userId 用户userId,根据userId查询医院ID + * @return 空闲平车 + */ + List queryFreeCar(WisdomCarDto.FreeCar param, Long userId); + + + + + /** + * 创建病例 + * @param param 患者信息与家属信息 + * @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/OtherRecordsService.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/OtherRecordsService.java index 8d8d7570..d4149671 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/OtherRecordsService.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/OtherRecordsService.java @@ -1,15 +1,20 @@ package com.ccsens.wisdomcar.service; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.ObjectUtil; +import com.ccsens.util.CodeEnum; import com.ccsens.util.StringUtil; +import com.ccsens.util.exception.BaseException; import com.ccsens.wisdomcar.bean.dto.OtherRecordsDto; import com.ccsens.wisdomcar.bean.po.PatientInformationRecord; import com.ccsens.wisdomcar.bean.po.PatientInformationRecordExample; import com.ccsens.wisdomcar.bean.po.PatientWisdomCar; import com.ccsens.wisdomcar.bean.po.PatientWisdomCarExample; import com.ccsens.wisdomcar.bean.vo.OtherRecordsVo; +import com.ccsens.wisdomcar.bean.vo.ProjectVo; import com.ccsens.wisdomcar.persist.dao.PatientWisdomCarDao; +import com.ccsens.wisdomcar.persist.dao.StepTaskDao; import com.ccsens.wisdomcar.persist.mapper.PatientInformationRecordMapper; import com.ccsens.wisdomcar.persist.mapper.PatientWisdomCarMapper; import com.ccsens.wisdomcar.persist.mapper.WisdomCarMapper; @@ -38,6 +43,8 @@ public class OtherRecordsService implements IOtherRecordsService { @Resource private PatientWisdomCarDao patientWisdomCarDao; + @Resource + private StepTaskDao stepTaskDao; @Resource private PatientInformationRecordMapper patientInformationRecordMapper; @@ -48,48 +55,53 @@ public class OtherRecordsService implements IOtherRecordsService { @Override public void upload(OtherRecordsDto.PicturesAndRecords param) { //通过t_patient_information_record里面的分解任务id 找到患者平车id 最新的 拿到患者平车id t_patient_information_record - List longs = patientWisdomCarDao.queryByNew(param.getId()); //拿到患者平车id - if(ObjectUtil.isNotNull(longs)){ - if(param.getPictures().size()!=0){ //判断是否是图片是否为空 - for (int i = 0; i < param.getPictures().size(); i++) { - PatientInformationRecord patientInformationRecord = new PatientInformationRecord(); - patientInformationRecord.setId(snowflake.nextId()); - patientInformationRecord.setPatientCarId(longs.get(0)); - patientInformationRecord.setTaskSubId(param.getId()); - patientInformationRecord.setInformationType((byte) 0); //上传图片 - patientInformationRecord.setContent(param.getPictures().get(i)); //拿到图片 存到库里面 - patientInformationRecord.setRecStatus((byte) 0); - patientInformationRecordMapper.insertSelective(patientInformationRecord); - } - } - if(!StringUtil.isEmpty(param.getRecords())) { //判断是否是记录是否为空 + //拿到患者平车id + ProjectVo.BindCar bindCar = stepTaskDao.getBindCarTaskId(param.getId()); + if (bindCar == null) { + log.info("没有找到绑定的平车信息:{}", param); + throw new BaseException(CodeEnum.WisdomCar_NOT_Found); + } + //判断是否是图片是否为空 + if (CollectionUtil.isNotEmpty(param.getPictures())){ + for (int i = 0; i < param.getPictures().size(); i++) { PatientInformationRecord patientInformationRecord = new PatientInformationRecord(); patientInformationRecord.setId(snowflake.nextId()); - patientInformationRecord.setPatientCarId(longs.get(0)); + patientInformationRecord.setPatientCarId(bindCar.getId()); patientInformationRecord.setTaskSubId(param.getId()); - patientInformationRecord.setInformationType((byte) 1); //上传记录 - patientInformationRecord.setContent(param.getRecords()); //拿到记录 存到库里面 - patientInformationRecord.setRecStatus((byte) 0); + //上传图片 + patientInformationRecord.setInformationType((byte) 0); + //拿到图片 存到库里面 + patientInformationRecord.setContent(param.getPictures().get(i)); + patientInformationRecordMapper.insertSelective(patientInformationRecord); } } + //判断是否是记录是否为空 + if(!StringUtil.isEmpty(param.getRecords())) { + PatientInformationRecord patientInformationRecord = new PatientInformationRecord(); + patientInformationRecord.setId(snowflake.nextId()); + patientInformationRecord.setPatientCarId(bindCar.getId()); + patientInformationRecord.setTaskSubId(param.getId()); + patientInformationRecord.setInformationType((byte) 1); + patientInformationRecord.setContent(param.getRecords()); + patientInformationRecordMapper.insertSelective(patientInformationRecord); + } + } @Override - public List query(OtherRecordsDto.Query param) { - List patientInformationRecordList = new ArrayList<>(); + public List queryList(OtherRecordsDto.QueryId param) { + List patientInformationRecordList = new ArrayList<>(); //通过任务id 找到创建的最新的 - List longs = patientWisdomCarDao.queryByNew(param.getId()); //拿到患者平车id - if(ObjectUtil.isNotNull(longs)){ - PatientInformationRecordExample patientInformationRecordExample = new PatientInformationRecordExample(); - patientInformationRecordExample.createCriteria().andPatientCarIdEqualTo(longs.get(0)).andTaskSubIdEqualTo(param.getId()); - List patientInformationRecords = patientInformationRecordMapper.selectByExample(patientInformationRecordExample); - for (PatientInformationRecord patientInformationRecord : patientInformationRecords) { - OtherRecordsVo.Query query = new OtherRecordsVo.Query(); - query.setComment(patientInformationRecord.getContent()); - query.setType(patientInformationRecord.getInformationType()); - patientInformationRecordList.add(query); - } + //拿到患者平车id + PatientInformationRecordExample patientInformationRecordExample = new PatientInformationRecordExample(); + patientInformationRecordExample.createCriteria().andTaskSubIdEqualTo(param.getId()); + List patientInformationRecords = patientInformationRecordMapper.selectByExample(patientInformationRecordExample); + for (PatientInformationRecord patientInformationRecord : patientInformationRecords) { + OtherRecordsVo.TypeAndComment query = new OtherRecordsVo.TypeAndComment(); + query.setComment(patientInformationRecord.getContent()); + query.setType(patientInformationRecord.getInformationType()); + patientInformationRecordList.add(query); } return patientInformationRecordList; } 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/ProjectService.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/ProjectService.java new file mode 100644 index 00000000..cbc5a655 --- /dev/null +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/ProjectService.java @@ -0,0 +1,116 @@ +package com.ccsens.wisdomcar.service; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.lang.Snowflake; +import com.ccsens.util.CodeEnum; +import com.ccsens.util.exception.BaseException; +import com.ccsens.wisdomcar.bean.dto.ProjectDto; +import com.ccsens.wisdomcar.bean.po.*; +import com.ccsens.wisdomcar.bean.vo.ProjectVo; +import com.ccsens.wisdomcar.persist.dao.PatientDataDao; +import com.ccsens.wisdomcar.persist.dao.StepDao; +import com.ccsens.wisdomcar.persist.dao.StepTaskDao; +import com.ccsens.wisdomcar.persist.dao.WisdomCarRecordDao; +import com.ccsens.wisdomcar.persist.mapper.PatientWisdomCarMapper; +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; +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: whj + * @time: 2021/6/1 21:15 + */ +@Slf4j +@Service +@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) +public class ProjectService implements IProjectService { + @Resource + private StepTaskDao stepTaskDao; + @Resource + private WisdomCarRecordDao wisdomCarRecordDao; + @Resource + private PatientDataDao patientDataDao; + @Resource + private StepDao stepDao; + @Resource + private PatientWisdomCarMapper patientWisdomCarMapper; + @Resource + private Snowflake snowflake; + + @Override + public void start(ProjectDto.Start param, Long userId) { + StepTaskExample taskExample = new StepTaskExample(); + taskExample.createCriteria().andTaskSubIdEqualTo(param.getTaskSubId()); + List stepTasks = stepTaskDao.selectByExample(taskExample); + if (CollectionUtil.isEmpty(stepTasks)) { + log.info("没有找到对应任务的患者信息:{}", param); + throw new BaseException(CodeEnum.PARAM_ERROR); + } + // TODO 待确认,是否处理成已提交不再修改???? + StepTask stepTask = stepTasks.get(0); + PatientDataExample dataExample = new PatientDataExample(); + dataExample.createCriteria().andTaskSubIdEqualTo(param.getTaskSubId()).andStepIdEqualTo(stepTask.getStepId()); + List patientData = patientDataDao.selectByExample(dataExample); + if (CollectionUtil.isNotEmpty(patientData)){ + log.info("taskId:{}, stepId:{}已经存在,不再修改", param.getTaskSubId(), stepTask.getStepId()); + PatientData data = patientData.get(0); + // 未推送 + if (data.getPushStatus() == Constant.PUSH_STATUS_SUCCESS) { + log.info("已推送成功,不处理"); + return; + } + + // TODO 异步推送数据 根据结果修改状态 + PatientData updateData = new PatientData(); + updateData.setId(data.getId()); + updateData.setPushStatus(Constant.PUSH_STATUS_SUCCESS); + patientDataDao.updateByPrimaryKeySelective(updateData); + return; + } + + // TODO 判断是否为结束结点 + Step step = stepDao.selectByPrimaryKey(stepTask.getStepId()); + Integer max = stepDao.getMaxSequence(Constant.STEP_TYPE_REAL); + if (step != null && max != null && step.getSequence() != null && step.getSequence().intValue() == max.intValue()) { + // 修改平车结束时间点 + ProjectVo.BindCar bindCar = stepTaskDao.getBindCarTaskId(param.getTaskSubId()); + if (bindCar == null) { + log.info("出现异常,未找到绑定平车:{}", param.getTaskSubId()); + throw new BaseException(CodeEnum.PARAM_ERROR); + } + PatientWisdomCar patientWisdomCar = new PatientWisdomCar(); + patientWisdomCar.setId(bindCar.getId()); + patientWisdomCar.setEndTime(param.getStartTime()); + patientWisdomCarMapper.updateByPrimaryKeySelective(patientWisdomCar); + } + + PatientData data = new PatientData(); + data.setId(snowflake.nextId()); + data.setUserId(userId); + data.setTaskSubId(param.getTaskSubId()); + data.setStepId(stepTask.getStepId()); + data.setPushStatus(Constant.PUSH_STATUS_NO); + data.setStartTime(param.getStartTime()); + data.setType(Constant.OPERATION_USER); + patientDataDao.insertSelective(data); + // TODO 异步推送数据 根据结果修改状态 + + } + + @Override + public List queryWeight(ProjectDto.Weight param, Long userId) { + ProjectVo.BindCar bindCar = stepTaskDao.getBindCarTaskId(param.getTaskSubId()); + if (bindCar == null) { + log.info("没有找到绑定的平车信息:{},userId:{}", param, userId); + return new ArrayList<>(); + } + return wisdomCarRecordDao.queryRecent(bindCar.getCarId(), bindCar.getStartTime(), bindCar.getEndTime(), (byte)1,(byte)8,(byte)9,(byte)10); + } +} diff --git a/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/WisdomCarService.java b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/WisdomCarService.java new file mode 100644 index 00000000..5c85afdd --- /dev/null +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/service/WisdomCarService.java @@ -0,0 +1,207 @@ +package com.ccsens.wisdomcar.service; + +import cn.hutool.core.collection.CollectionUtil; +import com.ccsens.util.bean.dto.QueryDto; +import com.ccsens.util.exception.BaseException; +import com.ccsens.wisdomcar.bean.dto.WisdomCarDto; +import com.ccsens.wisdomcar.bean.po.HospitalMember; +import com.ccsens.wisdomcar.bean.po.HospitalMemberExample; +import com.ccsens.wisdomcar.bean.vo.WisdomCarVo; +import com.ccsens.wisdomcar.persist.dao.HospitalMemberDao; +import com.ccsens.wisdomcar.persist.dao.WisdomCarDao; +import cn.hutool.core.lang.Snowflake; +import cn.hutool.core.util.ObjectUtil; +import com.ccsens.cloudutil.bean.tall.dto.MemberRoleDto; +import com.ccsens.cloudutil.bean.tall.dto.ProjectDto; +import com.ccsens.cloudutil.bean.tall.vo.ProjectVo; +import com.ccsens.cloudutil.feign.TallFeignClient; +import com.ccsens.util.JsonResponse; +import com.ccsens.util.RedisUtil; +import com.ccsens.wisdomcar.bean.dto.CreateCaseDto; +import com.ccsens.wisdomcar.bean.po.*; +import com.ccsens.wisdomcar.persist.dao.HospitalWrokingDao; +import com.ccsens.wisdomcar.persist.dao.PatientFamilyDao; +import com.ccsens.wisdomcar.persist.dao.PatientProjectDao; +import com.ccsens.wisdomcar.util.Constant; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * @author AUSU + */ +@Slf4j +@Service +@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) +public class WisdomCarService implements IWisdomCarService { + + @Resource + private PatientProjectDao patientProjectDao; + @Resource + private PatientFamilyDao patientFamilyDao; + @Resource + private HospitalMemberDao hospitalMemberDao; + @Resource + private Snowflake snowflake; + @Resource + private RedisUtil redisUtil; + @Resource + private HospitalWrokingDao hospitalWrokingDao; + @Resource + private TallFeignClient tallFeignClient; + @Resource + private WisdomCarDao wisdomcarDao; + + + @Override + public void createCase(CreateCaseDto.PatientInfo param, Long userId) { + //tall中需要添加的成员 + MemberRoleDto.SaveMemberForTemplate saveMemberForTemplate = new MemberRoleDto.SaveMemberForTemplate(); + List memberList = new ArrayList<>(); + + + //查找医院id + HospitalMemberExample hospitalMemberExample = new HospitalMemberExample(); + hospitalMemberExample.createCriteria().andUserIdEqualTo(userId); + List hospitalMembers = hospitalMemberDao.selectByExample(hospitalMemberExample); + HospitalMember hospitalMember; + + //患者 + PatientProject patient = new PatientProject(); + patient.setId(snowflake.nextId()); + //设置病历号,redis自增 + if (CollectionUtil.isNotEmpty(hospitalMembers)){ + hospitalMember = hospitalMembers.get(0); + long incr = redisUtil.incr("医院_" + hospitalMember.getHospitalId().toString(), 1L); + patient.setMedicalRecordNum(String.valueOf(incr)); + } + if (ObjectUtil.isNotNull(param.getPatientName())){ + patient.setName(param.getPatientName()); + } + if (ObjectUtil.isNotNull(param.getPatientSex())){ + patient.setSex(param.getPatientSex()); + } + if (ObjectUtil.isNotNull(param.getPatientAge())){ + patient.setAge(param.getPatientAge()); + } + if (ObjectUtil.isNotNull(param.getPatientIdCard())){ + patient.setIdCard(param.getPatientIdCard()); + } + if (ObjectUtil.isNotNull(param.getPatientPhone())){ + patient.setPhone(param.getFamilyPhone()); + } + patientProjectDao.insertSelective(patient); + + //患者家属 + if (ObjectUtil.isNotNull(param.getFamilyName()) || ObjectUtil.isNotNull(param.getFamilyPhone())){ + PatientFamily patientFamily = new PatientFamily(); + patientFamily.setId(snowflake.nextId()); + patientFamily.setName(param.getFamilyName()); + patientFamily.setPhone(param.getFamilyPhone()); + patientFamily.setPatientId(patient.getId()); + patientFamilyDao.insertSelective(patientFamily); + if (ObjectUtil.isNotNull(param.getFamilyPhone())){ + MemberRoleDto.MemberForTemplate memberForTemplate = new MemberRoleDto.MemberForTemplate(); + //添加对应角色名称 + List roleName = new ArrayList<>(); + roleName.add(Constant.PATIENT_FAMILY); + memberForTemplate.setRoleName(roleName); + memberForTemplate.setPhone(param.getFamilyPhone()); + if (ObjectUtil.isNotNull(param.getFamilyName())){ + memberForTemplate.setMemberName(param.getFamilyName()); + } + memberList.add(memberForTemplate); + } + } + + //查找正在值班得急救医生和急救护士 + if (CollectionUtil.isNotEmpty(hospitalMembers)){ + long currentTime = System.currentTimeMillis(); + //正在值班的医生(0-急诊护士,1-急诊医生,2-专科医生,3-分诊台) + List doctor = hospitalWrokingDao.findWorkingDoctor(hospitalMembers.get(0).getHospitalId(),currentTime); + for (HospitalMember member : doctor) { + MemberRoleDto.MemberForTemplate memberForTemplate = new MemberRoleDto.MemberForTemplate(); + List roleName = new ArrayList<>(); + memberForTemplate.setUserId(member.getUserId()); + //急诊护士 + if (Constant.EMERGENCY_NURSE_ZERO.equals(member.getPosition())){ + roleName.add(Constant.EMERGENCY_NURSE); + } + //急诊医生 + if (Constant.EMERGENCY_DOCTOR_ONE.equals(member.getPosition())){ + roleName.add(Constant.EMERGENCY_DOCTOR); + } + //专科医生 + if (Constant.SPECIALIST_TWO.equals(member.getPosition())){ + roleName.add(Constant.SPECIALIST); + } + memberForTemplate.setRoleName(roleName); + memberList.add(memberForTemplate); + } + + } + + ProjectDto.CopyProject copyProject = new ProjectDto.CopyProject(); + copyProject.setProjectId(Constant.TEMPLATE_PROJECT); + log.info("调用tall内的复制项目:{}",copyProject); + QueryDto dto = new QueryDto<>(); + dto.setParam(copyProject); + JsonResponse projectId = tallFeignClient.copyProjectNew(dto); + log.info("复制项目后返回:{}", projectId); + if (ObjectUtil.isNull(projectId)) { + log.info("调用tall返回null"); + throw new BaseException(Constant.RETURN_NULL); + } + if(!projectId.getCode().equals(Constant.RESPONSE_OK)){ + log.info("调用tall异常后返回:{}", projectId.getMsg()); + throw new BaseException(Constant.RETURN_ERROR); + } + + 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)){ + log.info("调用tall异常后返回:{}",jsonResponse.getMsg()); + throw new BaseException(Constant.RETURN_ERROR); + } + }else{ + throw new BaseException(Constant.RETURN_NULL); + } + } + + + + @Override + public List queryFreeCar(WisdomCarDto.FreeCar param, Long userId) { + HospitalMemberExample example = new HospitalMemberExample(); + example.createCriteria().andUserIdEqualTo(userId); + List hospitalMembers = hospitalMemberDao.selectByExample(example); + if (CollectionUtil.isEmpty(hospitalMembers)) { + return new ArrayList<>(); + } + 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) { + + } + + +} 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 532c2142..e40093ba 100644 --- a/wisdomcar/src/main/java/com/ccsens/wisdomcar/util/Constant.java +++ b/wisdomcar/src/main/java/com/ccsens/wisdomcar/util/Constant.java @@ -36,5 +36,79 @@ public class Constant { /**维持剂量*/ public static final byte MAINTENANCE_DOSE = 10; + /**推送成功*/ + public static final byte PUSH_STATUS_SUCCESS = 2; + /**推送失败*/ + public static final byte PUSH_STATUS_FAIL = 1; + /**未推送*/ + public static final byte PUSH_STATUS_NO = 0; + /**数据来源:用户*/ + public static final byte OPERATION_USER = 1; + /**数据来源:平车*/ + public static final byte OPERATION_CAR = 0; + /**环节:真实*/ + public static final byte STEP_TYPE_REAL = 0; + /** + * 智慧平车,模板项目id + */ + public static final Long TEMPLATE_PROJECT = 1399649478197252096L; + + /** + * 角色名称:患者家属 + */ + public static final String PATIENT_FAMILY = "家属"; + + /** + * 角色名称:急诊医生 + */ + public static final String EMERGENCY_DOCTOR = "急诊医生"; + /** + * 角色名称:急诊护士 + */ + public static final String EMERGENCY_NURSE = "急诊护士"; + /** + * 角色名称:专科医生 + */ + public static final String SPECIALIST = "专科医生"; + /** + * 角色名称:分诊台 + */ + public static final String TRIAGE_TABLE = "分诊台"; + + /** + * 0急诊护士 + */ + public static final Byte EMERGENCY_NURSE_ZERO = 0; + /** + * 1-急诊医生 + */ + public static final Byte EMERGENCY_DOCTOR_ONE = 1; + /** + * 2-专科医生 + */ + public static final Byte SPECIALIST_TWO = 2; + /** + * 3-分诊台 + */ + public static final Byte TRIAGE_TABLE_THREE = 3; + + /** + * 响应成功 + */ + 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异常"; } diff --git a/wisdomcar/src/main/resources/application-dev.yml b/wisdomcar/src/main/resources/application-dev.yml index e6145f0a..f3ce0a09 100644 --- a/wisdomcar/src/main/resources/application-dev.yml +++ b/wisdomcar/src/main/resources/application-dev.yml @@ -10,7 +10,7 @@ spring: rabbitmq: # host: 192.144.182.42 # host: test.tall.wiki - host: 192.168.0.99 + host: 192.168.4.113 password: 111111 port: 5672 username: admin diff --git a/wisdomcar/src/main/resources/mapper_dao/HospitalWorkingDao.xml b/wisdomcar/src/main/resources/mapper_dao/HospitalWorkingDao.xml index 9b85e772..d2cb12ee 100644 --- a/wisdomcar/src/main/resources/mapper_dao/HospitalWorkingDao.xml +++ b/wisdomcar/src/main/resources/mapper_dao/HospitalWorkingDao.xml @@ -2,4 +2,20 @@ + + \ No newline at end of file diff --git a/wisdomcar/src/main/resources/mapper_dao/StepDao.xml b/wisdomcar/src/main/resources/mapper_dao/StepDao.xml index 87f77d01..2a080aac 100644 --- a/wisdomcar/src/main/resources/mapper_dao/StepDao.xml +++ b/wisdomcar/src/main/resources/mapper_dao/StepDao.xml @@ -36,4 +36,7 @@ ORDER BY time DESC limit 1 + \ No newline at end of file diff --git a/wisdomcar/src/main/resources/mapper_dao/StepTaskDao.xml b/wisdomcar/src/main/resources/mapper_dao/StepTaskDao.xml index 6d6f46a3..a0191297 100644 --- a/wisdomcar/src/main/resources/mapper_dao/StepTaskDao.xml +++ b/wisdomcar/src/main/resources/mapper_dao/StepTaskDao.xml @@ -2,4 +2,12 @@ + \ No newline at end of file diff --git a/wisdomcar/src/main/resources/mapper_dao/WisdomCarDao.xml b/wisdomcar/src/main/resources/mapper_dao/WisdomCarDao.xml new file mode 100644 index 00000000..e195fab3 --- /dev/null +++ b/wisdomcar/src/main/resources/mapper_dao/WisdomCarDao.xml @@ -0,0 +1,23 @@ + + + + + + \ No newline at end of file diff --git a/wisdomcar/src/main/resources/mapper_dao/WisdomCarRecordDao.xml b/wisdomcar/src/main/resources/mapper_dao/WisdomCarRecordDao.xml index dada4965..d088a8c9 100644 --- a/wisdomcar/src/main/resources/mapper_dao/WisdomCarRecordDao.xml +++ b/wisdomcar/src/main/resources/mapper_dao/WisdomCarRecordDao.xml @@ -38,4 +38,18 @@ + \ No newline at end of file diff --git a/wisdomcar/src/main/resources/mapper_raw/PatientWisdomCarMapper.xml b/wisdomcar/src/main/resources/mapper_raw/PatientWisdomCarMapper.xml index 58b112e9..4021aeef 100644 --- a/wisdomcar/src/main/resources/mapper_raw/PatientWisdomCarMapper.xml +++ b/wisdomcar/src/main/resources/mapper_raw/PatientWisdomCarMapper.xml @@ -12,6 +12,7 @@ + @@ -72,8 +73,8 @@ - id, patient_id, task_sub_id, car_id, start_time, end_time, is_demo, created_at, updated_at, - rec_status + id, patient_id, task_sub_id, car_id, start_time, end_time, is_demo, created_at, updated_at, + rec_status, binding_status @@ -221,6 +228,9 @@ rec_status = #{record.recStatus,jdbcType=TINYINT}, + + binding_status = #{record.bindingStatus,jdbcType=TINYINT}, + @@ -237,7 +247,8 @@ is_demo = #{record.isDemo,jdbcType=TINYINT}, created_at = #{record.createdAt,jdbcType=TIMESTAMP}, updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, - rec_status = #{record.recStatus,jdbcType=TINYINT} + rec_status = #{record.recStatus,jdbcType=TINYINT}, + binding_status = #{record.bindingStatus,jdbcType=TINYINT} @@ -272,6 +283,9 @@ rec_status = #{recStatus,jdbcType=TINYINT}, + + binding_status = #{bindingStatus,jdbcType=TINYINT}, + where id = #{id,jdbcType=BIGINT} @@ -285,7 +299,8 @@ is_demo = #{isDemo,jdbcType=TINYINT}, created_at = #{createdAt,jdbcType=TIMESTAMP}, updated_at = #{updatedAt,jdbcType=TIMESTAMP}, - rec_status = #{recStatus,jdbcType=TINYINT} + rec_status = #{recStatus,jdbcType=TINYINT}, + binding_status = #{bindingStatus,jdbcType=TINYINT} where id = #{id,jdbcType=BIGINT} \ No newline at end of file