From b70dd4adc943d9ef5d44e9e68e8d939b4b19e1e6 Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Thu, 30 Sep 2021 16:10:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8F=90=E4=BA=A4=E9=97=AE?= =?UTF-8?q?=E5=8D=B7=E5=88=9B=E5=BB=BA=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/QuestionnaireController.java | 8 +- .../persist/dao/OrganizationPositionDao.java | 8 + .../persist/dao/QuestionnaireRecordDao.java | 10 + .../carbasics/service/AsyncService.java | 192 +------------ .../carbasics/service/IAsyncService.java | 4 +- .../service/IQuestionnaireService.java | 2 +- .../service/QuestionnaireService.java | 265 +++++++++++++++++- .../com/ccsens/carbasics/util/Constant.java | 37 +++ .../OrganizationMemberPositionDao.xml | 5 +- .../mapper_dao/OrganizationPositionDao.xml | 10 + .../mapper_dao/QuestionnaireDetailDao.xml | 2 + .../mapper_dao/QuestionnaireRecordDao.xml | 21 ++ 12 files changed, 357 insertions(+), 207 deletions(-) diff --git a/src/main/java/com/ccsens/carbasics/api/QuestionnaireController.java b/src/main/java/com/ccsens/carbasics/api/QuestionnaireController.java index 511d04e..cc44410 100644 --- a/src/main/java/com/ccsens/carbasics/api/QuestionnaireController.java +++ b/src/main/java/com/ccsens/carbasics/api/QuestionnaireController.java @@ -85,11 +85,11 @@ public class QuestionnaireController { @MustLogin @ApiOperation(value = "提交问卷", notes = "") @RequestMapping(value = "/submit", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse submitQuestionnaire(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + public JsonResponse submitQuestionnaire(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ log.info("提交问卷开始{}",params); - questionnaireService.submitQuestionnaire(params.getParam(),params.getUserId()); - log.info("提交问卷结束"); - return JsonResponse.newInstance().ok(); + Long projectId = questionnaireService.submitQuestionnaire(params.getParam(), params.getUserId(), params.getPhone()); + log.info("提交问卷结束,项目id:{}",projectId); + return JsonResponse.newInstance().ok(projectId); } @MustLogin diff --git a/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationPositionDao.java b/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationPositionDao.java index 09a55cf..bad490c 100644 --- a/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationPositionDao.java +++ b/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationPositionDao.java @@ -2,6 +2,7 @@ package com.ccsens.carbasics.persist.dao; import com.ccsens.carbasics.bean.vo.QuestionnaireVo; import com.ccsens.carbasics.persist.mapper.OrganizationPositionMapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -12,4 +13,11 @@ public interface OrganizationPositionDao extends OrganizationPositionMapper { * @return 职位列表 */ List queryPosition(); + + /** + * 根据名称查询职位id + * @param name 职位名称 + * @return 职位id + */ + Long queryByName(@Param("name") String name); } diff --git a/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireRecordDao.java b/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireRecordDao.java index 064c89d..d149c0b 100644 --- a/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireRecordDao.java +++ b/src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireRecordDao.java @@ -1,8 +1,11 @@ package com.ccsens.carbasics.persist.dao; +import com.ccsens.carbasics.bean.vo.QuestionnaireVo; import com.ccsens.carbasics.persist.mapper.QuestionnaireRecordMapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + public interface QuestionnaireRecordDao extends QuestionnaireRecordMapper { /** @@ -12,4 +15,11 @@ public interface QuestionnaireRecordDao extends QuestionnaireRecordMapper { * @return 记录id */ Long queryIsExist(@Param("detailId") Long detailId,@Param("code") String code); + + /** + * 查询基本信息的code与答案 + * @param userId 用户id + * @return code与答案 + */ + List queryInfo(@Param("userId") Long userId); } diff --git a/src/main/java/com/ccsens/carbasics/service/AsyncService.java b/src/main/java/com/ccsens/carbasics/service/AsyncService.java index 094d758..19d823c 100644 --- a/src/main/java/com/ccsens/carbasics/service/AsyncService.java +++ b/src/main/java/com/ccsens/carbasics/service/AsyncService.java @@ -1,17 +1,20 @@ package com.ccsens.carbasics.service; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.ObjectUtil; import com.ccsens.carbasics.bean.dto.PatientDto; import com.ccsens.carbasics.bean.dto.ProjectDto; import com.ccsens.carbasics.bean.dto.QuestionnaireDto; import com.ccsens.carbasics.bean.po.*; +import com.ccsens.carbasics.bean.vo.QuestionnaireVo; import com.ccsens.carbasics.persist.dao.*; import com.ccsens.carbasics.persist.mapper.OrganizationMemberPositionMapper; import com.ccsens.carbasics.util.Constant; import com.ccsens.common.bean.dto.CMemberDto; import com.ccsens.common.bean.dto.CProjectDto; import com.ccsens.common.bean.vo.CProjectVo; +import com.ccsens.common.persist.dao.UserDao; import com.ccsens.common.service.IMemberService; import com.ccsens.common.service.IProjectService; import com.ccsens.util.RedisUtil; @@ -24,7 +27,9 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.HashMap; import java.util.HashSet; +import java.util.List; import java.util.Set; import java.util.concurrent.CompletableFuture; @@ -39,26 +44,7 @@ import java.util.concurrent.CompletableFuture; @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public class AsyncService implements IAsyncService { - @Resource - private OrganizationDao organizationDao; - @Resource - private OrganizationDepartmentDao departmentDao; - @Resource - private OrganizationMemberDao organizationMemberDao; - @Resource - private Snowflake snowflake; - @Resource - private IProjectService projectService; - @Resource - private IMemberService memberService; - @Resource - private OrganizationProjectDao organizationProjectDao; - @Resource - private OrganizationMemberPositionDao organizationMemberPositionDao; - @Resource - private IFirstAidService firstAidService; - @Resource - private RedisUtil redisUtil; + @Override @@ -72,170 +58,4 @@ public class AsyncService implements IAsyncService { SwitchoverProjectUtil.switchoverProject(userIds,param.getProjectId(), param.getUrl()); } - - @Override - public void createHospitalOfNotExit(QuestionnaireDto.SaveQuestionnaire param, Long userId) throws Exception { -// String departmentCode = ""; -// if (Constant.DepartmentAndCode.SHEN_NEI.name.equals(param.getDepartments())) { -// departmentCode = Constant.DepartmentAndCode.SHEN_NEI.code; -// } -// if (Constant.DepartmentAndCode.NEI_KE.name.equals(param.getDepartments())) { -// departmentCode = Constant.DepartmentAndCode.NEI_KE.code; -// } -// -// Organization organization = organizationDao.queryByName(param.getHospitalName()); -// if (ObjectUtil.isNull(organization)) { -// //创建医院 -// Organization newOrganization = new Organization(); -// newOrganization.setId(snowflake.nextId()); -// newOrganization.setName(param.getHospitalName()); -// newOrganization.setLevel(param.getHospitalLevel()); -// newOrganization.setOrganizationType(Constant.OrganizationType.HOSPITAL.status); -// organizationDao.insertSelective(newOrganization); -// //创建部门 -// OrganizationDepartment department = new OrganizationDepartment(); -// department.setId(snowflake.nextId()); -// department.setName(param.getDepartments()); -// department.setCode(departmentCode); -// department.setOrganizationId(newOrganization.getId()); -// departmentDao.insertSelective(department); -// //创建用户 -// //查询用户是否存在 -// OrganizationMember organizationMember = organizationMemberDao.queryExistByUserId(userId); -// Long memberId = 0L; -// if (ObjectUtil.isNull(organizationMember)) { -// OrganizationMember member = new OrganizationMember(); -// member.setId(snowflake.nextId()); -// member.setUserId(userId); -// member.setName(param.getName()); -// member.setContact(param.getPhone()); -// organizationMemberDao.insertSelective(member); -// memberId = member.getId(); -// }else { -// memberId = organizationMember.getId(); -// } -// //添加成员职位 -// //判断成员职位是否存在 -// Long isExist = organizationMemberPositionDao.queryByExistByMember(memberId,param.getPositionId(),department.getId()); -// if (isExist == 0) { -// OrganizationMemberPosition position = new OrganizationMemberPosition(); -// position.setId(snowflake.nextId()); -// position.setPositionId(param.getPositionId()); -// position.setDepartmentId(department.getId()); -// position.setMemberId(memberId); -// organizationMemberPositionDao.insertSelective(position); -// } -// //创建项目 -// createProject(newOrganization.getId(),param,userId); -// PatientDto.SavePatient savePatient = new PatientDto.SavePatient(); -// firstAidService.getFirstAid(savePatient,userId,(byte)1,newOrganization.getId()); -// }else { -// OrganizationDepartment department = departmentDao.queryByOrganization(organization.getId(),departmentCode); -// //查询项目机构是否绑定项目 -// OrganizationProject project = organizationProjectDao.queryByOrganizationId(organization.getId()); -// if (ObjectUtil.isNull(project)) { -// createProject(organization.getId(),param,userId); -// PatientDto.SavePatient savePatient = new PatientDto.SavePatient(); -// firstAidService.getFirstAid(savePatient,userId,(byte)1,organization.getId()); -// } -// if (ObjectUtil.isNull(department)) { -// //创建部门 -// OrganizationDepartment newDepartment = new OrganizationDepartment(); -// newDepartment.setId(snowflake.nextId()); -// newDepartment.setCode(departmentCode); -// newDepartment.setName(param.getDepartments()); -// newDepartment.setOrganizationId(organization.getId()); -// departmentDao.insertSelective(newDepartment); -// //创建用户 -// //查询用户是否存在 -// OrganizationMember organizationMember = organizationMemberDao.queryExistByUserId(userId); -// Long memberId = 0L; -// if (ObjectUtil.isNull(organizationMember)) { -// OrganizationMember member = new OrganizationMember(); -// member.setId(snowflake.nextId()); -// member.setUserId(userId); -// member.setName(param.getName()); -// member.setContact(param.getPhone()); -// organizationMemberDao.insertSelective(member); -// memberId = member.getId(); -// }else { -// memberId = organizationMember.getId(); -// } -// //添加成员职位 -// //判断成员职位是否存在 -// Long isExist = organizationMemberPositionDao.queryByExistByMember(memberId,param.getPositionId(),newDepartment.getId()); -// if (isExist == 0) { -// OrganizationMemberPosition position = new OrganizationMemberPosition(); -// position.setId(snowflake.nextId()); -// position.setPositionId(param.getPositionId()); -// position.setDepartmentId(department.getId()); -// position.setMemberId(memberId); -// organizationMemberPositionDao.insertSelective(position); -// } -// }else { -// //创建用户 -// //查询用户是否存在 -// OrganizationMember organizationMember = organizationMemberDao.queryExistByUserId(userId); -// Long memberId = 0L; -// if (ObjectUtil.isNull(organizationMember)) { -// OrganizationMember member = new OrganizationMember(); -// member.setId(snowflake.nextId()); -// member.setUserId(userId); -// member.setName(param.getName()); -// member.setContact(param.getPhone()); -// organizationMemberDao.insertSelective(member); -// memberId = member.getId(); -// }else { -// memberId = organizationMember.getId(); -// } -// //添加成员职位 -// //判断成员职位是否存在 -// Long isExist = organizationMemberPositionDao.queryByExistByMember(memberId,param.getPositionId(),department.getId()); -// if (isExist == 0) { -// OrganizationMemberPosition position = new OrganizationMemberPosition(); -// position.setId(snowflake.nextId()); -// position.setPositionId(param.getPositionId()); -// position.setDepartmentId(department.getId()); -// position.setMemberId(memberId); -// organizationMemberPositionDao.insertSelective(position); -// } -// } -// } - } - - - - public void createProject(Long organizationId,QuestionnaireDto.SaveQuestionnaire param,Long userId) { -// OrganizationProject project = organizationProjectDao.queryByOrganizationId(organizationId); -// if (ObjectUtil.isNull(project)) { -// //创建项目 -// CProjectDto.CopyProject copyProject = new CProjectDto.CopyProject(); -// copyProject.setProjectId((Long) redisUtil.get(Constant.TEMPLATE_PROJECT_KEY_ORGANIZATION)); -// copyProject.setProjectName(param.getHospitalName()); -// CProjectVo.CopyProjectInfo copyProjectInfo = projectService.copyProject(copyProject, userId); -// //添加角色 -// CMemberDto.SaveMember saveMember = new CMemberDto.SaveMember(); -// saveMember.setProjectId(copyProjectInfo.getId()); -// saveMember.setRoleName(Constant.RoleName.SHEN_NEI); -// saveMember.setName(param.getName()); -// saveMember.setPhone(param.getPhone()); -// saveMember.setUserId(userId); -// memberService.addMemberForProject(saveMember); -// //绑定机构和项目 -// OrganizationProject organizationProject = new OrganizationProject(); -// organizationProject.setId(snowflake.nextId()); -// organizationProject.setOrganizationId(organizationId); -// organizationProject.setProjectId(copyProjectInfo.getId()); -// organizationProjectDao.insertSelective(organizationProject); -// }else { -// CMemberDto.SaveMember saveMember = new CMemberDto.SaveMember(); -// saveMember.setProjectId(project.getProjectId()); -// saveMember.setRoleName(Constant.RoleName.SHEN_NEI); -// saveMember.setName(param.getName()); -// saveMember.setPhone(param.getPhone()); -// saveMember.setUserId(userId); -// memberService.addMemberForProject(saveMember); -// } - } - } diff --git a/src/main/java/com/ccsens/carbasics/service/IAsyncService.java b/src/main/java/com/ccsens/carbasics/service/IAsyncService.java index d93f1b5..239048a 100644 --- a/src/main/java/com/ccsens/carbasics/service/IAsyncService.java +++ b/src/main/java/com/ccsens/carbasics/service/IAsyncService.java @@ -12,10 +12,10 @@ public interface IAsyncService { /** * 创建不存在的医院/部门/用户 - * @param param 问卷调查信息 + * @param phone 手机号 * @param userId 用户id * @throws Exception 异常 */ - void createHospitalOfNotExit(QuestionnaireDto.SaveQuestionnaire param,Long userId) throws Exception; +// void createHospitalOfNotExit(String phone, Long userId) throws Exception; } diff --git a/src/main/java/com/ccsens/carbasics/service/IQuestionnaireService.java b/src/main/java/com/ccsens/carbasics/service/IQuestionnaireService.java index 396f970..bb57afa 100644 --- a/src/main/java/com/ccsens/carbasics/service/IQuestionnaireService.java +++ b/src/main/java/com/ccsens/carbasics/service/IQuestionnaireService.java @@ -54,7 +54,7 @@ public interface IQuestionnaireService { * @param param 问卷详情id * @param userId 用户id */ - void submitQuestionnaire(QuestionnaireDto.SubmitQuestionnaire param, Long userId); + Long submitQuestionnaire(QuestionnaireDto.SubmitQuestionnaire param, Long userId,String phone) throws Exception; /** * 为用户创建问卷详情 diff --git a/src/main/java/com/ccsens/carbasics/service/QuestionnaireService.java b/src/main/java/com/ccsens/carbasics/service/QuestionnaireService.java index b48d22a..fdadfd2 100644 --- a/src/main/java/com/ccsens/carbasics/service/QuestionnaireService.java +++ b/src/main/java/com/ccsens/carbasics/service/QuestionnaireService.java @@ -4,15 +4,22 @@ package com.ccsens.carbasics.service; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.ObjectUtil; +import com.ccsens.carbasics.bean.dto.PatientDto; import com.ccsens.carbasics.bean.dto.QuestionnaireDto; -import com.ccsens.carbasics.bean.po.Organization; -import com.ccsens.carbasics.bean.po.Questionnaire; -import com.ccsens.carbasics.bean.po.QuestionnaireDetail; -import com.ccsens.carbasics.bean.po.QuestionnaireRecord; +import com.ccsens.carbasics.bean.po.*; import com.ccsens.carbasics.bean.vo.QuestionnaireVo; import com.ccsens.carbasics.persist.dao.*; import com.ccsens.carbasics.util.Constant; import com.ccsens.carbasics.util.DefaultCodeError; +import com.ccsens.cloudutil.bean.tall.dto.ProjectDto; +import com.ccsens.cloudutil.feign.Tall3FeignClient; +import com.ccsens.common.bean.dto.CMemberDto; +import com.ccsens.common.bean.dto.CProjectDto; +import com.ccsens.common.bean.vo.CProjectVo; +import com.ccsens.common.service.IMemberService; +import com.ccsens.common.service.IProjectService; +import com.ccsens.util.PropUtil; +import com.ccsens.util.RedisUtil; import com.ccsens.util.exception.BaseException; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -20,9 +27,7 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; +import java.util.*; @Slf4j @@ -46,6 +51,26 @@ public class QuestionnaireService implements IQuestionnaireService{ private OrganizationPositionDao positionDao; @Resource private QuestionnaireRecordDao recordDao; + @Resource + private OrganizationDepartmentDao departmentDao; + @Resource + private OrganizationMemberDao organizationMemberDao; + @Resource + private IProjectService projectService; + @Resource + private IMemberService memberService; + @Resource + private OrganizationProjectDao organizationProjectDao; + @Resource + private OrganizationMemberPositionDao organizationMemberPositionDao; + @Resource + private QuestionnaireRecordDao questionnaireRecordDao; + @Resource + private IFirstAidService firstAidService; + @Resource + private RedisUtil redisUtil; + @Resource + private Tall3FeignClient tall3FeignClient; @Override public List queryArea(QuestionnaireDto.QueryArea param, Long userId) { @@ -124,7 +149,7 @@ public class QuestionnaireService implements IQuestionnaireService{ @Override - public void submitQuestionnaire(QuestionnaireDto.SubmitQuestionnaire param, Long userId) { + public Long submitQuestionnaire(QuestionnaireDto.SubmitQuestionnaire param, Long userId,String phone) throws Exception { QuestionnaireDetail questionnaireDetail = questionnaireDetailDao.selectByPrimaryKey(param.getDetailId()); if (ObjectUtil.isNull(questionnaireDetail)) { throw new BaseException(DefaultCodeError.QUESTIONNAIRE_DETAIL_ERROR); @@ -144,15 +169,17 @@ public class QuestionnaireService implements IQuestionnaireService{ //2.校验是否已经有提交 Integer submitNum = questionnaireDetailDao.queryIsSubmit(param.getName()); if (0 < submitNum) { - //TODO 3.加入项目 - return; + //加入项目 + Long projectId = createHospitalOfNotExit(phone, userId); + return projectId; } QuestionnaireDetail detail = new QuestionnaireDetail(); detail.setId(param.getDetailId()); detail.setSubmitStatus(Constant.SubmitStatus.submit.status); questionnaireDetailDao.updateByPrimaryKeySelective(detail); - //TODO 创建项目 -// asyncService.createHospitalOfNotExit(); + //创建项目 + Long projectId = createHospitalOfNotExit(phone,userId); + return projectId; } @@ -179,4 +206,218 @@ public class QuestionnaireService implements IQuestionnaireService{ return detailInfo; } + + /** + * 提交问卷后的后续操作 + * @param phone 手机号 + * @param userId 用户id + * @throws Exception 异常 + */ + public Long createHospitalOfNotExit(String phone, Long userId) throws Exception { + //查询基本信息的code与答案 + HashMap codeAndAnswer = new HashMap<>(); + List infoList = questionnaireRecordDao.queryInfo(userId); + if (CollectionUtil.isNotEmpty(infoList)) { + for (QuestionnaireVo.QuestionnaireInfo questionnaireInfo : infoList) { + codeAndAnswer.put(questionnaireInfo.getCode(),questionnaireInfo.getAnswer()); + } + } + //医院名称 + String hospitalName = codeAndAnswer.get(Constant.BasicInformation.hospitalName.code); + //部门名称 + String departmentName = codeAndAnswer.get(Constant.BasicInformation.department.code); + //成员名称 + String memberName = codeAndAnswer.get(Constant.BasicInformation.person.code); + //查询职位id + Long positionId = positionDao.queryByName(codeAndAnswer.get(Constant.BasicInformation.position.code)); + + //部门code + String departmentCode = ""; + if (Constant.DepartmentAndCode.SHEN_NEI.name.equals(departmentName)) { + departmentCode = Constant.DepartmentAndCode.SHEN_NEI.code; + } + if (Constant.DepartmentAndCode.NEI_KE.name.equals(departmentName)) { + departmentCode = Constant.DepartmentAndCode.NEI_KE.code; + } + + Organization organization = organizationDao.queryByName(hospitalName); + if (ObjectUtil.isNull(organization)) { + //创建医院 + Organization newOrganization = new Organization(); + newOrganization.setId(snowflake.nextId()); + newOrganization.setName(codeAndAnswer.get(Constant.BasicInformation.hospitalName.code)); + if (Constant.HospitalLevel.two.explain.equals(codeAndAnswer.get(Constant.BasicInformation.hospitalLevel.code))) { + newOrganization.setLevel(Constant.HospitalLevel.two.level); + }else { + newOrganization.setLevel(Constant.HospitalLevel.three.level); + } + newOrganization.setOrganizationType(Constant.OrganizationType.HOSPITAL.status); + organizationDao.insertSelective(newOrganization); + //创建部门 + OrganizationDepartment department = new OrganizationDepartment(); + department.setId(snowflake.nextId()); + department.setName(departmentName); + department.setCode(departmentCode); + department.setOrganizationId(newOrganization.getId()); + departmentDao.insertSelective(department); + //创建用户 + //查询用户是否存在 + OrganizationMember organizationMember = organizationMemberDao.queryExistByUserId(userId); + Long memberId = 0L; + if (ObjectUtil.isNull(organizationMember)) { + OrganizationMember member = new OrganizationMember(); + member.setId(snowflake.nextId()); + member.setUserId(userId); + member.setName(memberName); + member.setContact(phone); + organizationMemberDao.insertSelective(member); + memberId = member.getId(); + }else { + memberId = organizationMember.getId(); + } + //添加成员职位 + //判断成员职位是否存在 + Long isExist = organizationMemberPositionDao.queryByExistByMember(memberId,positionId,department.getId()); + if (isExist == 0) { + OrganizationMemberPosition position = new OrganizationMemberPosition(); + position.setId(snowflake.nextId()); + position.setPositionId(positionId); + position.setDepartmentId(department.getId()); + position.setMemberId(memberId); + organizationMemberPositionDao.insertSelective(position); + } + //创建项目 + return createProject(newOrganization.getId(), hospitalName, memberName, phone, userId); + }else { + OrganizationDepartment department = departmentDao.queryByOrganization(organization.getId(),departmentCode); + if (ObjectUtil.isNull(department)) { + //创建部门 + OrganizationDepartment newDepartment = new OrganizationDepartment(); + newDepartment.setId(snowflake.nextId()); + newDepartment.setCode(departmentCode); + newDepartment.setName(departmentName); + newDepartment.setOrganizationId(organization.getId()); + departmentDao.insertSelective(newDepartment); + //创建用户 + //查询用户是否存在 + OrganizationMember organizationMember = organizationMemberDao.queryExistByUserId(userId); + Long memberId = 0L; + if (ObjectUtil.isNull(organizationMember)) { + OrganizationMember member = new OrganizationMember(); + member.setId(snowflake.nextId()); + member.setUserId(userId); + member.setName(memberName); + member.setContact(phone); + organizationMemberDao.insertSelective(member); + memberId = member.getId(); + }else { + memberId = organizationMember.getId(); + } + //添加成员职位 + //判断成员职位是否存在 + Long isExist = organizationMemberPositionDao.queryByExistByMember(memberId,positionId,newDepartment.getId()); + if (isExist == 0) { + OrganizationMemberPosition position = new OrganizationMemberPosition(); + position.setId(snowflake.nextId()); + position.setPositionId(positionId); + position.setDepartmentId(newDepartment.getId()); + position.setMemberId(memberId); + organizationMemberPositionDao.insertSelective(position); + } + //创建项目 + return createProject(organization.getId(),hospitalName,memberName,phone,userId); + }else { + //创建用户 + //查询用户是否存在 + OrganizationMember organizationMember = organizationMemberDao.queryExistByUserId(userId); + Long memberId = 0L; + if (ObjectUtil.isNull(organizationMember)) { + OrganizationMember member = new OrganizationMember(); + member.setId(snowflake.nextId()); + member.setUserId(userId); + member.setName(memberName); + member.setContact(phone); + organizationMemberDao.insertSelective(member); + memberId = member.getId(); + }else { + memberId = organizationMember.getId(); + } + //添加成员职位 + //判断成员职位是否存在 + Long isExist = organizationMemberPositionDao.queryByExistByMember(memberId,positionId,department.getId()); + if (isExist == 0) { + OrganizationMemberPosition position = new OrganizationMemberPosition(); + position.setId(snowflake.nextId()); + position.setPositionId(positionId); + position.setDepartmentId(department.getId()); + position.setMemberId(memberId); + organizationMemberPositionDao.insertSelective(position); + } + //创建项目 + return createProject(organization.getId(), hospitalName, memberName, phone, userId); + } + } + } + + + + public Long createProject(Long organizationId,String hospitalName,String memberName,String phone,Long userId) { + OrganizationProject project = organizationProjectDao.queryByOrganizationId(organizationId); + if (ObjectUtil.isNull(project)) { + //创建项目 + CProjectDto.CopyProject copyProject = new CProjectDto.CopyProject(); + copyProject.setProjectId((Long) redisUtil.get(Constant.TEMPLATE_PROJECT_KEY_ORGANIZATION)); + copyProject.setProjectName(hospitalName); + CProjectVo.CopyProjectInfo copyProjectInfo = projectService.copyProject(copyProject, userId); + //添加角色 + CMemberDto.SaveMember saveMember = new CMemberDto.SaveMember(); + saveMember.setProjectId(copyProjectInfo.getId()); + saveMember.setRoleName(Constant.RoleName.SHEN_NEI); + saveMember.setName(memberName); + saveMember.setPhone(phone); + saveMember.setUserId(userId); + memberService.addMemberForProject(saveMember); + //绑定机构和项目 + OrganizationProject organizationProject = new OrganizationProject(); + organizationProject.setId(snowflake.nextId()); + organizationProject.setOrganizationId(organizationId); + organizationProject.setProjectId(copyProjectInfo.getId()); + organizationProjectDao.insertSelective(organizationProject); + //创建病例 + PatientDto.SavePatient savePatient = new PatientDto.SavePatient(); + firstAidService.getFirstAid(savePatient,userId,(byte)1,organizationId); + //tall3添加项目,关联项目 + ProjectDto.SaveProjectDto saveProjectDto = new ProjectDto.SaveProjectDto(); + saveProjectDto.setId(copyProjectInfo.getId()); + saveProjectDto.setName(copyProject.getProjectName()); + saveProjectDto.setStartTime(System.currentTimeMillis()-315360000000L); + saveProjectDto.setEndTime(System.currentTimeMillis()+315360000000L); + saveProjectDto.setUrl(PropUtil.path); + Set userIds = new HashSet<>(); + userIds.add(userId); + saveProjectDto.setUserIdList(userIds); + tall3FeignClient.saveProjectList(saveProjectDto); + return copyProjectInfo.getId(); + }else { + CMemberDto.SaveMember saveMember = new CMemberDto.SaveMember(); + saveMember.setProjectId(project.getProjectId()); + saveMember.setRoleName(Constant.RoleName.SHEN_NEI); + saveMember.setName(memberName); + saveMember.setPhone(phone); + saveMember.setUserId(userId); + memberService.addMemberForProject(saveMember); + + //tall3 用户关联项目 + ProjectDto.SaveUserProject saveUserProject = new ProjectDto.SaveUserProject(); + ArrayList projectIds = new ArrayList<>(); + ArrayList userIds = new ArrayList<>(); + projectIds.add(project.getProjectId()); + userIds.add(userId); + saveUserProject.setProjectId(projectIds); + saveUserProject.setUserId(userIds); + tall3FeignClient.saveUserProject(saveUserProject); + return project.getProjectId(); + } + } + } diff --git a/src/main/java/com/ccsens/carbasics/util/Constant.java b/src/main/java/com/ccsens/carbasics/util/Constant.java index c0fdf70..69a33c5 100644 --- a/src/main/java/com/ccsens/carbasics/util/Constant.java +++ b/src/main/java/com/ccsens/carbasics/util/Constant.java @@ -532,4 +532,41 @@ public class Constant { this.name = name; } } + + public enum BasicInformation { + /** + * 基本信息的code + */ + hospitalName("HOS-NAME","医院名称"), + hospitalLevel("HOS-LEVEL","医院等级"), + department("HOS-KESHI","部门"), + position("HOS-ZHIWU","职务"), + person("HOS-MAN","联系人"), + phone("HOS-TEL","联系电话"), + ; + + public String code; + public String explain; + BasicInformation(String code, String explain) { + this.code = code; + this.explain = explain; + } + } + + public enum HospitalLevel { + /** + * 基本信息的code + */ + two((byte)2,"医院名称"), + three((byte)3,"医院等级"), + ; + + public Byte level; + public String explain; + HospitalLevel(Byte level, String explain) { + this.level = level; + this.explain = explain; + } + } + } diff --git a/src/main/resources/mapper_dao/OrganizationMemberPositionDao.xml b/src/main/resources/mapper_dao/OrganizationMemberPositionDao.xml index 62d0ebd..752783f 100644 --- a/src/main/resources/mapper_dao/OrganizationMemberPositionDao.xml +++ b/src/main/resources/mapper_dao/OrganizationMemberPositionDao.xml @@ -10,8 +10,9 @@ t_organization_member_position WHERE rec_status = 0 - AND position_id = 3 - AND member_id = 0 + AND position_id = #{positonId} + AND member_id = #{memberId} + AND department_id = #{departmentId} \ No newline at end of file diff --git a/src/main/resources/mapper_dao/OrganizationPositionDao.xml b/src/main/resources/mapper_dao/OrganizationPositionDao.xml index fbdd577..9a3372b 100644 --- a/src/main/resources/mapper_dao/OrganizationPositionDao.xml +++ b/src/main/resources/mapper_dao/OrganizationPositionDao.xml @@ -18,4 +18,14 @@ ) + + \ No newline at end of file diff --git a/src/main/resources/mapper_dao/QuestionnaireDetailDao.xml b/src/main/resources/mapper_dao/QuestionnaireDetailDao.xml index 0be7940..2ef026f 100644 --- a/src/main/resources/mapper_dao/QuestionnaireDetailDao.xml +++ b/src/main/resources/mapper_dao/QuestionnaireDetailDao.xml @@ -52,6 +52,7 @@ WHERE qd.id = #{detailId} AND cp.parent_code = 'QXXWJ' + AND qr.answer != '' AND qd.rec_status = 0 AND qr.rec_status = 0 AND cp.rec_status = 0 @@ -82,6 +83,7 @@ WHERE qd.id = #{detailId} AND cp.parent_code = 'XGZL' + AND qr.answer != '' AND qd.rec_status = 0 AND qr.rec_status = 0 AND cp.rec_status = 0 diff --git a/src/main/resources/mapper_dao/QuestionnaireRecordDao.xml b/src/main/resources/mapper_dao/QuestionnaireRecordDao.xml index f8cbd6b..db3f604 100644 --- a/src/main/resources/mapper_dao/QuestionnaireRecordDao.xml +++ b/src/main/resources/mapper_dao/QuestionnaireRecordDao.xml @@ -13,4 +13,25 @@ AND questionnaire_detail_id = #{detailId} + + \ No newline at end of file