添加查询最近送检人信息的功能

master
杨海航 4 days ago
parent 6f79db7507
commit df871e57ea
  1. 9
      src/main/java/digital/laboratory/platform/entrustment/controller/EntrustmentController.java
  2. 3
      src/main/java/digital/laboratory/platform/entrustment/service/EntrustmentService.java
  3. 49
      src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentServiceImpl.java

@ -2368,4 +2368,13 @@ public class EntrustmentController {
return R.ok(allowSubmit, "有检材未保存,请先保存检材后在提交!");
}
}
@ApiOperation("通过用户查询对应的委托单位ID,再根据这个委托单位查询出最近一条含有送检人信息的数据")
@GetMapping("/getDelivererList")
public R getDelivererList(HttpServletRequest theHttpServletRequest) {
Principal principal = theHttpServletRequest.getUserPrincipal();
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
return R.ok(entrustmentService.getDelivererList(dlpUser), "数据查询成功!");
}
}

@ -11,6 +11,7 @@ import digital.laboratory.platform.entrustment.dto.EntrustmentDTO;
import digital.laboratory.platform.entrustment.entity.Entrustment;
import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial;
import digital.laboratory.platform.entrustment.vo.EntrustmentVO;
import digital.laboratory.platform.sys.entity.Deliverer;
import digital.laboratory.platform.sys.entity.SysUser;
import digital.laboratory.platform.sys.vo.entrustment.MarkersVO;
import digital.laboratory.platform.sys.entity.entrustment.Sample;
@ -206,4 +207,6 @@ public interface EntrustmentService extends IService<Entrustment> {
* @return
*/
Boolean isEligibleForSubmission(String entrustId, Integer materialCount);
List<Deliverer> getDelivererList(DLPUser dlpUser);
}

@ -3568,4 +3568,53 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
entrustmentIdentificationMaterial.setAcceptTime(null);
return entrustmentIdentificationMaterial;
}
/**
* 根据给定的DLP用户获取相关的配送员信息
*
* @param dlpUser DLP用户对象用于获取组织ID
* @return 返回包含两个配送员信息的列表如果没有找到相关记录则返回null
*/
@Override
public List<Deliverer> getDelivererList(DLPUser dlpUser) {
// 从DLP用户对象中获取组织ID
String orgId = dlpUser.getOrgId();
// 查询数据库以获取与当前组织ID匹配且有指定配送员信息的委托记录列表,
// 按创建时间降序排列。
List<Entrustment> list = this.list(Wrappers.<Entrustment>lambdaQuery()
.eq(Entrustment::getClientOrgId, orgId)
.isNotNull(Entrustment::getDeliverer1Name) // 确保第一个配送员名字不为空
.isNotNull(Entrustment::getDeliverer2Name) // 确保第二个配送员名字不为空
.orderByDesc(Entrustment::getCreateTime)); // 按创建时间降序
// 如果查询结果不为空且至少有一个条目
if (list != null && list.size() > 0) {
Entrustment entrustment = list.get(0); // 获取最新的一条记录
List<Deliverer> deliverers = new ArrayList<>(); // 创建一个列表来保存配送员信息
// 设置第一个配送员的信息,并加入到列表中
Deliverer deliverer1 = new Deliverer();
deliverer1.setCert(entrustment.getDeliverer1Cert());
deliverer1.setName(entrustment.getDeliverer1Name());
deliverer1.setPhone(entrustment.getDeliverer1Phone());
deliverer1.setPosition(entrustment.getDeliverer1Position());
// 设置第二个配送员的信息,并加入到列表中
Deliverer deliverer2 = new Deliverer();
deliverer2.setCert(entrustment.getDeliverer2Cert());
deliverer2.setName(entrustment.getDeliverer2Name());
deliverer2.setPhone(entrustment.getDeliverer2Phone());
deliverer2.setPosition(entrustment.getDeliverer2Position());
deliverers.add(deliverer1);
deliverers.add(deliverer2);
return deliverers; // 返回包含两个配送员信息的列表
} else {
return null; // 如果没有找到相关记录,则返回null
}
}
}

Loading…
Cancel
Save