Browse Source

添加提交问卷创建项目

master
ma 4 years ago
parent
commit
b70dd4adc9
  1. 8
      src/main/java/com/ccsens/carbasics/api/QuestionnaireController.java
  2. 8
      src/main/java/com/ccsens/carbasics/persist/dao/OrganizationPositionDao.java
  3. 10
      src/main/java/com/ccsens/carbasics/persist/dao/QuestionnaireRecordDao.java
  4. 192
      src/main/java/com/ccsens/carbasics/service/AsyncService.java
  5. 4
      src/main/java/com/ccsens/carbasics/service/IAsyncService.java
  6. 2
      src/main/java/com/ccsens/carbasics/service/IQuestionnaireService.java
  7. 265
      src/main/java/com/ccsens/carbasics/service/QuestionnaireService.java
  8. 37
      src/main/java/com/ccsens/carbasics/util/Constant.java
  9. 5
      src/main/resources/mapper_dao/OrganizationMemberPositionDao.xml
  10. 10
      src/main/resources/mapper_dao/OrganizationPositionDao.xml
  11. 2
      src/main/resources/mapper_dao/QuestionnaireDetailDao.xml
  12. 21
      src/main/resources/mapper_dao/QuestionnaireRecordDao.xml

8
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<QuestionnaireDto.SubmitQuestionnaire> params) throws Exception{
public JsonResponse<Long> submitQuestionnaire(@ApiParam @Validated @RequestBody QueryDto<QuestionnaireDto.SubmitQuestionnaire> 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

8
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<QuestionnaireVo.PositionInfo> queryPosition();
/**
* 根据名称查询职位id
* @param name 职位名称
* @return 职位id
*/
Long queryByName(@Param("name") String name);
}

10
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<QuestionnaireVo.QuestionnaireInfo> queryInfo(@Param("userId") Long userId);
}

192
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);
// }
}
}

4
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;
}

2
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;
/**
* 为用户创建问卷详情

265
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<QuestionnaireVo.AreaInfo> 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<String, String> codeAndAnswer = new HashMap<>();
List<QuestionnaireVo.QuestionnaireInfo> 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<Long> 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<Long> projectIds = new ArrayList<>();
ArrayList<Long> userIds = new ArrayList<>();
projectIds.add(project.getProjectId());
userIds.add(userId);
saveUserProject.setProjectId(projectIds);
saveUserProject.setUserId(userIds);
tall3FeignClient.saveUserProject(saveUserProject);
return project.getProjectId();
}
}
}

37
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;
}
}
}

5
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}
</select>
</mapper>

10
src/main/resources/mapper_dao/OrganizationPositionDao.xml

@ -18,4 +18,14 @@
)
</select>
<select id="queryByName" resultType="java.lang.Long">
SELECT
id
FROM
t_organization_position
WHERE
rec_status = 0
AND `name` = #{name}
</select>
</mapper>

2
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

21
src/main/resources/mapper_dao/QuestionnaireRecordDao.xml

@ -13,4 +13,25 @@
AND questionnaire_detail_id = #{detailId}
</select>
<select id="queryInfo" resultType="com.ccsens.carbasics.bean.vo.QuestionnaireVo$QuestionnaireInfo">
SELECT
question_code AS `code`,
answer
FROM
t_qcp_questionnaire_record AS qr
LEFT JOIN t_qcp_questionnaire_detail AS qd ON qd.id = qr.questionnaire_detail_id
WHERE
qr.rec_status = 0
AND qd.rec_status = 0
AND qd.user_id = #{userId}
AND qr.question_code IN (
'HOS-NAME',
'HOS-LEVEL',
'HOS-KESHI',
'HOS-ZHIWU',
'HOS-MAN',
'HOS-TEL'
)
</select>
</mapper>
Loading…
Cancel
Save