Browse Source

切换数据源切面修改,header添加组织ID切换

newMaster
zzc 3 months ago
parent
commit
bb770aabf9
  1. 24
      acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ScreeningController.java
  2. 2
      acupuncture-common/src/main/java/com/acupuncture/common/constant/UserConstants.java
  3. 15
      acupuncture-framework/src/main/java/com/acupuncture/framework/aspectj/AdminGlobalDataSourceAspect.java
  4. 2
      acupuncture-system/src/main/java/com/acupuncture/system/domain/dto/ScreeningDto.java
  5. 2
      acupuncture-system/src/main/java/com/acupuncture/system/service/impl/ScreeningServiceImpl.java

24
acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ScreeningController.java

@ -7,9 +7,14 @@ import com.acupuncture.common.annotation.Anonymous;
import com.acupuncture.common.core.domain.BaseDto;
import com.acupuncture.common.core.domain.JsonResponse;
import com.acupuncture.common.utils.SecurityUtils;
import com.acupuncture.framework.datasource.DynamicDataSourceContextHolder;
import com.acupuncture.system.domain.dto.ScreeningDto;
import com.acupuncture.system.domain.po.DmsTenant;
import com.acupuncture.system.domain.po.UmsDataSource;
import com.acupuncture.system.domain.vo.QuestionnaireVo;
import com.acupuncture.system.domain.vo.ScrScreenVo;
import com.acupuncture.system.persist.mapper.DmsTenantMapper;
import com.acupuncture.system.persist.mapper.UmsDataSourceMapper;
import com.acupuncture.system.service.IScreeningService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -36,6 +41,11 @@ import java.util.List;
public class ScreeningController {
@Resource
private IScreeningService screeningService;
@Resource
private DmsTenantMapper dmsTenantMapper;
@Resource
private UmsDataSourceMapper umsDataSourceMapper;
@ApiOperation(value = "查询筛查列表", notes = "原:查询医院是否填写了调查筛查")
@RequestMapping(value = "/queryDetail", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
@ -72,11 +82,22 @@ public class ScreeningController {
@RequestMapping(value = "/createNoToken", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<QuestionnaireVo.DetailInfo> createNoToken(@ApiParam @Validated @RequestBody BaseDto<ScreeningDto.CreateDetail> params) throws Exception {
log.info("创建筛查详情{}", params);
// changeDataSource(params.getParam().getTenantId());
QuestionnaireVo.DetailInfo detailInfo = screeningService.createDetail(params.getParam(), params.getParam().getUserId(), params.getParam().getTenantId());
log.info("创建筛查详情结束");
return JsonResponse.ok(detailInfo);
}
private void changeDataSource(Long tenantId) {
DmsTenant dmsTenant = dmsTenantMapper.selectByPrimaryKey(tenantId);
if (dmsTenant != null) {
UmsDataSource umsDataSource = umsDataSourceMapper.selectByPrimaryKey(dmsTenant.getDataSourceId());
if (umsDataSource != null) {
DynamicDataSourceContextHolder.setDataSourceType(umsDataSource.getDataSourceKey());
}
}
}
@ApiOperation(value = "提交筛查", notes = "")
@RequestMapping(value = "/submit", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse submitQuestionnaire(@ApiParam @Validated @RequestBody BaseDto<ScreeningDto.SubmitScreeningQuestionnaire> params) throws Exception {
@ -90,16 +111,17 @@ public class ScreeningController {
@RequestMapping(value = "/submitNoToken", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse submitNoToken(@ApiParam @Validated @RequestBody BaseDto<ScreeningDto.SubmitScreeningQuestionnaire> params) throws Exception {
log.info("提交筛查开始{}", params);
// changeDataSource(params.getParam().getTenantId());
screeningService.submitQuestionnaire(params.getParam(), 0L);
return JsonResponse.ok();
}
@Anonymous
@ApiOperation(value = "保存调查筛查**", notes = "")
@RequestMapping(value = "/save", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse saveQuestionnaire(@ApiParam @Validated @RequestBody BaseDto<ScreeningDto.SaveQuestionnaire> params) throws Exception {
log.info("保存调查筛查开始{}", params);
// changeDataSource(params.getParam().getTenantId());
screeningService.saveQuestionnaire(params.getParam(), params.getParam().getUserId());
log.info("保存调查筛查结束");
return JsonResponse.ok();

2
acupuncture-common/src/main/java/com/acupuncture/common/constant/UserConstants.java

@ -81,6 +81,8 @@ public class UserConstants
public static final String HEADER_KEY_TOKEN = "Authorization";
public static final String DEPT = "TENANT_ID";
/**
* QuestionAnswer分隔符
*/

15
acupuncture-framework/src/main/java/com/acupuncture/framework/aspectj/AdminGlobalDataSourceAspect.java

@ -70,17 +70,22 @@ public class AdminGlobalDataSourceAspect {
// 获取请求携带的令牌
HttpServletRequest request = ((ServletRequestAttributes)
RequestContextHolder.getRequestAttributes()).getRequest();
String authHeader = request.getHeader(UserConstants.HEADER_KEY_TOKEN);
//token为空
Long tenantId;
String header = request.getHeader(UserConstants.DEPT);
if(StrUtil.isNotEmpty(header)){
tenantId = Long.parseLong(header);
}else {
// String deptId = request.getHeader(WebConstant.HEADER_KEY_DEPT_ID);
String authHeader = request.getHeader(UserConstants.HEADER_KEY_TOKEN);
if (StrUtil.isEmpty(authHeader)) {
return null;
}
// String deptId = request.getHeader(WebConstant.HEADER_KEY_DEPT_ID);
Long tenantId = SecurityUtils.getTenantId();
tenantId = SecurityUtils.getTenantId();
if (tenantId == null) {
return null;
}
}
//设置所属医院和数据源
// SecurityUtils.setCurrentHospitalId(Long.parseLong(deptId));
@ -90,7 +95,7 @@ public class AdminGlobalDataSourceAspect {
// if(ObjectUtil.isNull(loginUser) || loginUser.getUser().isAdmin()){
// return null;
// }
//根据部门ID查询数据源
//根据组织ID查询数据源
UmsDataSource dataSource = dmsLoginService.getDataSourceByTenantId(tenantId);
if (dataSource == null) {
throw new BaseException(DATASOURCE_NOT_FOUND);

2
acupuncture-system/src/main/java/com/acupuncture/system/domain/dto/ScreeningDto.java

@ -183,6 +183,7 @@ public class ScreeningDto {
@NotNull(message = "问卷详情id不能为空")
@ApiModelProperty("问卷详情id")
private Long detailId;
private Long tenantId;
}
@Data
@ -229,6 +230,7 @@ public class ScreeningDto {
@ApiModelProperty("答案")
private String answer;
private Long userId;
private Long tenantId;
}
@Data

2
acupuncture-system/src/main/java/com/acupuncture/system/service/impl/ScreeningServiceImpl.java

@ -391,7 +391,7 @@ public class ScreeningServiceImpl implements IScreeningService {
}
if (param.getCode().equals("SCWJ-BIRTH")) {
questionnaireDetail.setAge(DateUtil.ageOfNow(param.getAnswer()));
param.setAnswer(DateUtil.format(DateUtil.parse(param.getAnswer()), "yyyy-MM-dd"));
// param.setAnswer(DateUtil.format(DateUtil.parse(param.getAnswer()), "yyyy-MM-dd"));
}
log.info("questionnaireDetail:{}", questionnaireDetail.getId());
log.info("questionnaireDetail:{}", questionnaireDetail.getName());

Loading…
Cancel
Save