20250407 更新

1.提供feign调用接口去获取检验记录数据
master
陈江保 2 weeks ago
parent 222bbb6eb4
commit 25c8014fff
  1. 23
      dlp-drugtesting-api/src/main/java/digital/laboratory/platform/inspetion/api/feign/RemoteTestToIdentifyService.java
  2. 10
      dlp-drugtesting-api/src/main/java/digital/laboratory/platform/inspetion/api/feign/fallback/RemoteTestToIdentifyServiceFallbackImpl.java
  3. 39
      dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/controller/PushDataToLabsCareController.java
  4. 8
      dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/PushDataToLabsCareService.java
  5. 26
      dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/PushDataToLabsCareServiceImpl.java

@ -1,5 +1,6 @@
package digital.laboratory.platform.inspetion.api.feign; package digital.laboratory.platform.inspetion.api.feign;
import cn.hutool.json.JSONObject;
import digital.laboratory.platform.inspetion.api.entity.IdentificationBookDTO; import digital.laboratory.platform.inspetion.api.entity.IdentificationBookDTO;
import digital.laboratory.platform.inspetion.api.feign.factory.RemoteTestToIdentifyServiceFallbackFactory; import digital.laboratory.platform.inspetion.api.feign.factory.RemoteTestToIdentifyServiceFallbackFactory;
import digital.laboratory.platform.common.core.constant.SecurityConstants; import digital.laboratory.platform.common.core.constant.SecurityConstants;
@ -28,13 +29,25 @@ public interface RemoteTestToIdentifyService {
* @return * @return
*/ */
@GetMapping(value="/identifyBookData/getIdentifyBookDataByBusinessId", headers = SecurityConstants.HEADER_FROM_IN) @GetMapping(value="/identifyBookData/getIdentifyBookDataByBusinessId", headers = SecurityConstants.HEADER_FROM_IN)
public R<IdentificationBookDTO> getIdentifyBookDataByBusinessId(@RequestParam("businessId") String businessId); R<IdentificationBookDTO> getIdentifyBookDataByBusinessId(@RequestParam("businessId") String businessId);
@PostMapping(value="/identifyBookData/getTestFinishBusinessData", headers = SecurityConstants.HEADER_FROM_IN) @PostMapping(value="/identifyBookData/getTestFinishBusinessData", headers = SecurityConstants.HEADER_FROM_IN)
public R getTestFinishBusinessData(@RequestBody List<String> synedIdList); R getTestFinishBusinessData(@RequestBody List<String> synedIdList);
@PostMapping("/testRecord/queryTestRecordInfoByBusinessId") /**
@ApiOperation("根据业务id获取实验信息") * 根据业务id获取实验信息
public R<Map<String, TestRecordVo>> queryTestRecordInfoByBusinessId(@RequestBody List<String> businessIds); * @param businessIds 业务id列表
* @return
*/
@PostMapping(value = "/testRecord/queryTestRecordInfoByBusinessId", headers = SecurityConstants.HEADER_FROM_IN)
R<Map<String, TestRecordVo>> queryTestRecordInfoByBusinessId(@RequestBody List<String> businessIds);
/**
* 获取推送检验记录的数据
* @param entrustId 委托id
* @return
*/
@PostMapping(value = "/pushDataToLabsCare/inspectRecord", headers = SecurityConstants.HEADER_FROM_IN)
R<JSONObject> inspectRecord(@RequestParam("entrustId") String entrustId);
} }

@ -1,5 +1,6 @@
package digital.laboratory.platform.inspetion.api.feign.fallback; package digital.laboratory.platform.inspetion.api.feign.fallback;
import cn.hutool.json.JSONObject;
import digital.laboratory.platform.inspetion.api.entity.IdentificationBookDTO; import digital.laboratory.platform.inspetion.api.entity.IdentificationBookDTO;
import digital.laboratory.platform.inspetion.api.feign.RemoteTestToIdentifyService; import digital.laboratory.platform.inspetion.api.feign.RemoteTestToIdentifyService;
import digital.laboratory.platform.common.core.util.R; import digital.laboratory.platform.common.core.util.R;
@ -37,6 +38,13 @@ public class RemoteTestToIdentifyServiceFallbackImpl implements RemoteTestToIden
@Override @Override
public R<Map<String, TestRecordVo>> queryTestRecordInfoByBusinessId(List<String> businessIds) { public R<Map<String, TestRecordVo>> queryTestRecordInfoByBusinessId(List<String> businessIds) {
return null; log.error("feign 查询实验记录信息失败, businessIds: {}, 异常: {}", businessIds, cause != null ? cause.getMessage() : "未知错误");
return R.failed("查询实验记录信息失败");
}
@Override
public R<JSONObject> inspectRecord(String entrustId) {
log.error("feign 获取检验记录失败, entrustId: {}, 异常: {}", entrustId, cause != null ? cause.getMessage() : "未知错误");
return R.failed("获取检验记录失败");
} }
} }

@ -0,0 +1,39 @@
package digital.laboratory.platform.inspection.controller;
import cn.hutool.json.JSONObject;
import digital.laboratory.platform.common.core.util.R;
import digital.laboratory.platform.inspection.service.PushDataToLabsCareService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
* @author ChenJiangBao
* @version 1.0
* @description: 推送数据到LabsCare平台接口管理
* @date 2025/4/3 10:48
*/
@RestController
@RequestMapping("/pushDataToLabsCare")
@Api(tags = "19-推送数据到LabsCare平台接口管理", description = "推送数据到LabsCare平台接口管理")
public class PushDataToLabsCareController {
@Resource
private PushDataToLabsCareService pushDataToLabsCareService;
@ApiOperation("获取推送检验记录的数据")
@PostMapping("/inspectRecord")
public R<JSONObject> inspectRecord(@RequestParam("entrustId") String entrustId) {
try {
return R.ok(pushDataToLabsCareService.fetchInspectRecordData(entrustId));
} catch (Exception e) {
return R.failed(e.getMessage());
}
}
}

@ -1,5 +1,7 @@
package digital.laboratory.platform.inspection.service; package digital.laboratory.platform.inspection.service;
import cn.hutool.json.JSONObject;
/** /**
* @author ChenJiangBao * @author ChenJiangBao
* @version 1.0 * @version 1.0
@ -20,4 +22,10 @@ public interface PushDataToLabsCareService {
*/ */
void pushBiologyQualitativeRecordData(String testId); void pushBiologyQualitativeRecordData(String testId);
/**
* 根据委托id获取检验记录数据
* @param entrustId 委托id
* @return
*/
JSONObject fetchInspectRecordData(String entrustId);
} }

@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import digital.laboratory.platform.common.core.exception.CheckedException;
import digital.laboratory.platform.inspection.config.ApiPathProperties; import digital.laboratory.platform.inspection.config.ApiPathProperties;
import digital.laboratory.platform.inspection.constant.TestRecordSampleDataConstant; import digital.laboratory.platform.inspection.constant.TestRecordSampleDataConstant;
import digital.laboratory.platform.inspection.convert.TestRecordSampleDataConverter; import digital.laboratory.platform.inspection.convert.TestRecordSampleDataConverter;
@ -26,6 +27,7 @@ import digital.laboratory.platform.othersys.utils.HttpsUtils;
import digital.laboratory.platform.sys.entity.Drug; import digital.laboratory.platform.sys.entity.Drug;
import digital.laboratory.platform.sys.entity.SysUser; import digital.laboratory.platform.sys.entity.SysUser;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.aspectj.weaver.ast.Test;
import org.springframework.http.*; import org.springframework.http.*;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -222,6 +224,30 @@ public class PushDataToLabsCareServiceImpl implements PushDataToLabsCareService
} }
} }
/**
* 根据委托id获取检验记录数据
* @param entrustId 委托id
* @return
*/
@Override
public JSONObject fetchInspectRecordData(String entrustId) {
EntrustInfo entrustInfo = entrustInfoService.getById(entrustId);
if (entrustInfo == null) {
log.error("委托id为 {} 的委托信息不存在", entrustId);
throw new CheckedException(String.format("委托id为 %s 的委托信息查询不到", entrustId));
}
// 根据委托id查询对应的实验信息
TestRecord testRecord = testRecordService.getOne(Wrappers.<TestRecord>lambdaQuery().eq(TestRecord::getBusinessId, entrustId).last("LIMIT 1"));
if (testRecord == null) {
log.error("委托id为 {} 对应的实验信息不存在", entrustId);
throw new CheckedException(String.format("委托id为 %s 对应的实验信息查询不到", entrustId));
}
if (entrustInfo.getBusinessType().equals(BusinessType.BOINT_CASE.getBusinessType())) {
return buildBiologyQualitativeRecordJsonPayload(entrustInfo, testRecord);
}
return buildNonInfraredGeneralQualitativeRecordJsonPayload(entrustInfo, testRecord);
}
/** /**
* 构建生物检材定性记录Json数据 * 构建生物检材定性记录Json数据
* *

Loading…
Cancel
Save