|
|
@@ -1,39 +1,66 @@
|
|
|
package com.nb.app.doctor.controller;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.nb.app.assistant.api.bean.HandleBindResult;
|
|
|
import com.nb.app.assistant.api.entity.AssistantUserBindEntity;
|
|
|
import com.nb.app.assistant.api.feign.IAssistantUserBindClient;
|
|
|
import com.nb.app.assistant.api.feign.result.ContactQuery;
|
|
|
import com.nb.app.assistant.api.feign.result.PatientBindAssistantResult;
|
|
|
import com.nb.app.assistant.api.feign.result.UpdateBindPatientParam;
|
|
|
+import com.nb.app.doctor.api.feign.IAppDoctorUserClient;
|
|
|
+import com.nb.app.doctor.api.feign.result.AppDoctorUserResult;
|
|
|
+import com.nb.app.doctor.api.feign.result.EditRecordModifyResult;
|
|
|
import com.nb.app.doctor.controller.vo.ChangeManageVo;
|
|
|
import com.nb.app.doctor.controller.vo.InviteCodeVo;
|
|
|
import com.nb.app.doctor.controller.vo.UpdateBindPatientVo;
|
|
|
+import com.nb.app.doctor.service.PatientClientService;
|
|
|
+import com.nb.core.entity.GenericEntity;
|
|
|
+import com.nb.web.api.dto.BusPatientAbnormalMarkDTO;
|
|
|
+import com.nb.web.api.feign.query.DoctorPatientMonitorQuery;
|
|
|
+import com.nb.web.api.feign.result.DoctorPatientMonitorResult;
|
|
|
import com.nb.app.doctor.service.dto.PatientMonitorConsultResult;
|
|
|
-import com.nb.auth.bean.LoginUser;
|
|
|
import com.nb.auth.utils.SecurityUtil;
|
|
|
import com.nb.common.websocket.WebSocketSessionLifeCycleManage;
|
|
|
import com.nb.core.annotation.Log;
|
|
|
+import com.nb.core.exception.CustomException;
|
|
|
import com.nb.core.result.R;
|
|
|
import com.nb.web.api.entity.BusClinicEntity;
|
|
|
+import com.nb.web.api.entity.BusDeviceHistoryEntity;
|
|
|
import com.nb.web.api.feign.IPatientClient;
|
|
|
import com.nb.web.api.feign.query.GetPatientInfoVo;
|
|
|
import com.nb.web.api.feign.query.PatientMonitorQuery;
|
|
|
import com.nb.web.api.feign.result.InviteCodeResult;
|
|
|
import com.nb.web.api.feign.result.PatientMonitorDetailResult;
|
|
|
+import com.nb.web.service.bus.controller.vo.MonitorFinishedVo;
|
|
|
+import com.nb.web.service.bus.entity.BusPatientEntity;
|
|
|
+import com.nb.web.service.bus.enums.AnaTypeEnum;
|
|
|
+import com.nb.web.service.bus.enums.ConstantEnum;
|
|
|
+import com.nb.web.service.bus.service.LocalBusDeviceHistoryService;
|
|
|
+import com.nb.web.service.bus.service.LocalBusInfusionHistoryService;
|
|
|
+import com.nb.web.service.bus.service.LocalBusInfusionModifyService;
|
|
|
+import com.nb.web.service.bus.service.LocalBusPatientService;
|
|
|
+import com.nb.web.service.bus.service.constant.AbstractConstantService;
|
|
|
+import com.nb.web.service.bus.service.constant.LocalBusConMixService;
|
|
|
+import com.nb.web.service.bus.service.dto.DeviceHistoryQuery;
|
|
|
+import com.nb.web.service.bus.service.dto.DeviceInfusionHistoryQuery;
|
|
|
+import com.nb.web.service.bus.service.dto.EditModifyQuery;
|
|
|
+import com.nb.web.service.bus.service.dto.ManualUndoConfig;
|
|
|
+import com.nb.web.service.bus.utils.WsPublishUtils;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import io.swagger.annotations.ApiParam;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
-import org.springframework.web.context.request.async.DeferredResult;
|
|
|
-
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.CompletableFuture;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -49,34 +76,70 @@ import java.util.stream.Collectors;
|
|
|
@Api(tags = "病人输注监护")
|
|
|
@Slf4j
|
|
|
public class PatientMonitorController {
|
|
|
- private final IPatientClient patientClient;
|
|
|
+ @Autowired
|
|
|
+ private IPatientClient patientClient;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PatientClientService patientClientService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private LocalBusPatientService patientService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private LocalBusDeviceHistoryService historyService;
|
|
|
+ @Autowired
|
|
|
+ private WsPublishUtils wsPublishUtils;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private LocalBusInfusionHistoryService infusionService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private LocalBusConMixService localBusConMixService;
|
|
|
+
|
|
|
//判断是否在线
|
|
|
- private final WebSocketSessionLifeCycleManage lifeCycleManage;
|
|
|
- private final IAssistantUserBindClient userBindClient;
|
|
|
+ @Autowired
|
|
|
+ private WebSocketSessionLifeCycleManage lifeCycleManage;
|
|
|
+ @Autowired
|
|
|
+ private IAssistantUserBindClient userBindClient;
|
|
|
+
|
|
|
+ private Map<ConstantEnum, AbstractConstantService> constantHashMap=new HashMap<>();
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IAppDoctorUserClient doctorUserClient;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ public PatientMonitorController(List<AbstractConstantService> constantList) {
|
|
|
+ constantList.stream().collect(Collectors.groupingBy(AbstractConstantService::getName)).forEach((k, vs)->{
|
|
|
+ constantHashMap.merge(k,vs.get(0),(o1,o2)->{
|
|
|
+ throw new RuntimeException("常量服务类名称不可重复[{"+o1.getName()+"}]");
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
@PostMapping("/monitor/{consult}/no_page")
|
|
|
- @Log(title = "医生端获取病人输注列表")
|
|
|
@ApiOperation(value = "输注监控列表")
|
|
|
- public R<List<PatientMonitorConsultResult>> selectPagePatient(@PathVariable("consult")@ApiParam("是否为咨询模式") boolean consult,@RequestBody PatientMonitorQuery query) {
|
|
|
+ @Deprecated
|
|
|
+ public R<List<PatientMonitorConsultResult>> selectPagePatient(@PathVariable("consult") @ApiParam("是否为咨询模式") boolean consult, @RequestBody PatientMonitorQuery query) {
|
|
|
log.info("医生查看输注监控列表,【{}】", JSONUtil.toJsonStr(query));
|
|
|
List<PatientMonitorConsultResult> results = BeanUtil.copyToList(patientClient.selectAll(query), PatientMonitorConsultResult.class);
|
|
|
- if(consult){
|
|
|
+ if (consult) {
|
|
|
if (CollectionUtil.isNotEmpty(results)) {
|
|
|
Map<String, List<PatientMonitorConsultResult>> resultGroupByPatientId = results.stream().collect(Collectors.groupingBy(PatientMonitorConsultResult::getPatientId));
|
|
|
//获取该与该医生有绑定的所有绑定关系
|
|
|
ContactQuery contactQuery = new ContactQuery();
|
|
|
contactQuery.setDoctorId(String.valueOf(SecurityUtil.getId()));
|
|
|
List<AssistantUserBindEntity> userBinds = userBindClient.contactList(contactQuery);
|
|
|
- if(CollectionUtil.isNotEmpty(userBinds)){
|
|
|
+ if (CollectionUtil.isNotEmpty(userBinds)) {
|
|
|
userBinds.parallelStream()
|
|
|
- .forEach(bind->{
|
|
|
+ .forEach(bind -> {
|
|
|
String patientId = bind.getPatientId();
|
|
|
String assistId = bind.getAssistId();
|
|
|
// if (lifeCycleManage.isOnline(assistId)) {
|
|
|
List<PatientMonitorConsultResult> groupByPatientId = resultGroupByPatientId.get(patientId);
|
|
|
if (CollectionUtil.isNotEmpty(groupByPatientId)) {
|
|
|
groupByPatientId
|
|
|
- .forEach(consultResult->{
|
|
|
+ .forEach(consultResult -> {
|
|
|
consultResult.setAssistId(assistId);
|
|
|
// consultResult.setOnline(true);
|
|
|
});
|
|
|
@@ -91,21 +154,21 @@ public class PatientMonitorController {
|
|
|
|
|
|
@ApiOperation("修改看护位置")
|
|
|
@PostMapping("/edit/manage")
|
|
|
- public R<Boolean> isOnline(@RequestBody@Validated ChangeManageVo vo){
|
|
|
- return R.success(patientClient.setManageType(vo.getClinicId(),vo.getManage()));
|
|
|
+ public R<Boolean> isOnline(@RequestBody @Validated ChangeManageVo vo) {
|
|
|
+ return R.success(patientClient.setManageType(vo.getClinicId(), vo.getManage()));
|
|
|
}
|
|
|
|
|
|
|
|
|
@ApiOperation("判断看护人是否在线")
|
|
|
@PostMapping("/online/{assistId}")
|
|
|
- public R<Boolean> isOnline(@PathVariable("assistId")String assistId){
|
|
|
+ public R<Boolean> isOnline(@PathVariable("assistId") String assistId) {
|
|
|
return R.success(lifeCycleManage.isOnline(assistId));
|
|
|
}
|
|
|
|
|
|
@ApiOperation("判断当前病人是否有看护人")
|
|
|
@PostMapping("/bind/{patientId}")
|
|
|
- public R<Boolean> isBind(@RequestAttribute("tenantId")@ApiParam(hidden = true) String tenantId,@PathVariable("patientId")String patientId){
|
|
|
- return R.success(userBindClient.haveBindByPatientId(patientId,tenantId));
|
|
|
+ public R<Boolean> isBind(@RequestAttribute("tenantId") @ApiParam(hidden = true) String tenantId, @PathVariable("patientId") String patientId) {
|
|
|
+ return R.success(userBindClient.haveBindByPatientId(patientId, tenantId));
|
|
|
}
|
|
|
|
|
|
@PostMapping("/monitor/{patientId}")
|
|
|
@@ -116,25 +179,21 @@ public class PatientMonitorController {
|
|
|
|
|
|
@PostMapping("/invite/code")
|
|
|
@ApiOperation(value = "患者看护邀请码,默认失效失效(7天)")
|
|
|
- public R<InviteCodeResult> inviteCode(@RequestAttribute("tenantId")@ApiParam(hidden = true) String tenantId, @RequestBody@Validated InviteCodeVo resource) {
|
|
|
-// if(userBindClient.haveBindByPatientCode(resource.getPatientCode(),tenantId)){
|
|
|
-// throw new CustomException("该病人已被看护");
|
|
|
-// }
|
|
|
- return R.success(patientClient.generateInviteCode(tenantId,resource.getPatientCode(),resource.getDoctorId(),resource.getDoctorName(),resource.getManage()));
|
|
|
+ public R<InviteCodeResult> inviteCode(@RequestAttribute("tenantId") @ApiParam(hidden = true) String tenantId, @RequestBody @Validated InviteCodeVo resource) {
|
|
|
+ return R.success(patientClient.generateInviteCode(tenantId, resource.getPatientCode(), resource.getDoctorId(), resource.getDoctorName(), resource.getManage()));
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
@PostMapping("/agree/bind")
|
|
|
@ApiOperation(value = "处理看护人发起的看护请求")
|
|
|
- public R<Boolean> agreeBindUser(@RequestBody@Validated HandleBindResult source) {
|
|
|
+ public R<Boolean> agreeBindUser(@RequestBody @Validated HandleBindResult source) {
|
|
|
return R.success(userBindClient.handleBindResult(source));
|
|
|
}
|
|
|
|
|
|
@PostMapping("/update/bind")
|
|
|
@ApiOperation("更新看护关系中的病人信息")
|
|
|
- public R<Boolean> updateBind(@RequestBody @Validated UpdateBindPatientVo vo){
|
|
|
- log.info("医生修改绑定关系,{}",JSONUtil.toJsonStr(vo));
|
|
|
+ public R<Boolean> updateBind(@RequestBody @Validated UpdateBindPatientVo vo) {
|
|
|
+ log.info("医生修改绑定关系,{}", JSONUtil.toJsonStr(vo));
|
|
|
return R.success(userBindClient.updateBindPatient(BeanUtil.copyProperties(vo, UpdateBindPatientParam.class)));
|
|
|
}
|
|
|
|
|
|
@@ -142,26 +201,166 @@ public class PatientMonitorController {
|
|
|
@PostMapping("/lift/{bindId}")
|
|
|
@ApiOperation(value = "与病人解除绑定")
|
|
|
public R<Boolean> lift(@PathVariable("bindId") String bindId) {
|
|
|
- return R.success(userBindClient.liftBind(bindId,String.valueOf(SecurityUtil.getId()),null,false));
|
|
|
+ return R.success(userBindClient.liftBind(bindId, String.valueOf(SecurityUtil.getId()), null, false));
|
|
|
}
|
|
|
|
|
|
@PostMapping("/pull/async")
|
|
|
@Log(title = "从his或数据库中拉取数据病人数据")
|
|
|
@ApiOperation(value = "从his或数据库中拉取数据病人数据")
|
|
|
- public R<BusClinicEntity> syn(@RequestAttribute("tenantId")@ApiParam(hidden = true) String tenantId, @Validated@RequestBody GetPatientInfoVo vo){
|
|
|
- return R.success(patientClient.lookClinic(tenantId,vo.getPatientCode()));
|
|
|
-// return patientClient.getPatientInfoFromHis(tenantId, vo.getPatientCode(), vo.getTimeout(), false, true);
|
|
|
+ public R<BusClinicEntity> syn(@RequestAttribute("tenantId") @ApiParam(hidden = true) String tenantId, @Validated @RequestBody GetPatientInfoVo vo) {
|
|
|
+ return R.success(patientClient.lookClinic(tenantId, vo.getPatientCode()));
|
|
|
}
|
|
|
|
|
|
@PostMapping("/list/assist/{patientId}")
|
|
|
@ApiOperation(value = "查看病人看护人列表")
|
|
|
public R<List<PatientBindAssistantResult>> listAssist(@PathVariable("patientId") String patientId) {
|
|
|
List<PatientBindAssistantResult> results = userBindClient.listAssist(patientId);
|
|
|
- if(CollectionUtil.isNotEmpty(results)){
|
|
|
+ if (CollectionUtil.isNotEmpty(results)) {
|
|
|
for (PatientBindAssistantResult result : results) {
|
|
|
result.setAssistOnline(lifeCycleManage.isOnline(result.getAssistId()));
|
|
|
}
|
|
|
}
|
|
|
return R.success(results);
|
|
|
}
|
|
|
+
|
|
|
+ @PostMapping("/undo")
|
|
|
+ @Log(title = "批量撤泵(平板技改)")
|
|
|
+ @ApiOperation(value = "批量撤泵,只撤泵,不切换",notes = "当出现泵重复状态时,若用户想要取消对其他副泵的监控,则调用此接口进行撤泵操作")
|
|
|
+ public R shift(@RequestBody @Validated ManualUndoConfig manualUndoVo, @RequestAttribute("tenantId") @ApiParam(hidden = true) String tenantId) {
|
|
|
+ log.info("批量撤泵,【{}】", JSONUtil.toJsonStr(manualUndoVo));
|
|
|
+ manualUndoVo.setTenantId(tenantId);
|
|
|
+ BusPatientEntity patient = patientService.getById(manualUndoVo.getPatientId());
|
|
|
+ if (patient == null){
|
|
|
+ throw new CustomException("所选病人不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ //泵切换完成后,对病号报警解除
|
|
|
+ infusionService.undo(manualUndoVo,false);
|
|
|
+ wsPublishUtils.publishPatientMonitor(patient.getId(),manualUndoVo.getTenantId());
|
|
|
+ return R.success();
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/doFinished")
|
|
|
+ @Log(title = "手动结束管理(平板技改)")
|
|
|
+ @ApiOperation(value = "手动结束管理",notes = "病患当前绑定主设备必须要在关机、不在服务器、待机中才能结束管理")
|
|
|
+ public R<Boolean> appFinished(
|
|
|
+ @RequestBody MonitorFinishedVo monitorFinishedVo,
|
|
|
+ @RequestAttribute("tenantId")@ApiParam(hidden = true) String tenantId) {
|
|
|
+ if (CollUtil.isEmpty(monitorFinishedVo.getPatientIds())){
|
|
|
+ throw new CustomException("所选病人不能为空");
|
|
|
+ }
|
|
|
+ R<Boolean> result = monitorFinished(monitorFinishedVo, tenantId);
|
|
|
+ CompletableFuture.runAsync(()->wsPublishUtils.publishMonitorTotalCount(tenantId))
|
|
|
+ .thenRunAsync(()->wsPublishUtils.publishDeviceNone(tenantId))
|
|
|
+ .thenRunAsync(()->wsPublishUtils.publishMonitorStateCount(tenantId));
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ private R<Boolean> monitorFinished(MonitorFinishedVo monitorFinishedVo, String tenantId){
|
|
|
+ List<String> patientIds = monitorFinishedVo.getPatientIds();
|
|
|
+ List<BusPatientEntity> patients = patientService.list(new QueryWrapper<BusPatientEntity>().lambda().in(BusPatientEntity::getId, patientIds));
|
|
|
+ if(CollectionUtil.isEmpty(patients)){
|
|
|
+ return R.success(false);
|
|
|
+ }
|
|
|
+ List<ManualUndoConfig> undoConfigs=new ArrayList<>();
|
|
|
+ for (BusPatientEntity patient : patients) {
|
|
|
+ undoConfigs.add(
|
|
|
+ ManualUndoConfig.of(
|
|
|
+ Collections.singletonList(patient.getInfusionId()),
|
|
|
+ patient.getId(),
|
|
|
+ patient.getClinicId(),
|
|
|
+ tenantId,
|
|
|
+ true,
|
|
|
+ monitorFinishedVo.getUndo())
|
|
|
+ );
|
|
|
+ }
|
|
|
+ //病患绑定的有设备,对设备进行撤泵操作,且结束临床
|
|
|
+ infusionService.batchUndo(undoConfigs,true);
|
|
|
+ return R.success(true);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @PostMapping("/clinic/edit")
|
|
|
+ @Log(title = "编辑患者信息")
|
|
|
+ @ApiOperation(value = "编辑患者信息(平板技改)")
|
|
|
+ public R<Boolean> edit(@Validated(GenericEntity.Update.class) @RequestBody BusClinicEntity busClinic) {
|
|
|
+ return R.success(patientClient.setClinic(busClinic));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @PostMapping("/query/page")
|
|
|
+ @ApiOperation(value = "传输明细列表(平板技改)")
|
|
|
+ public R<List<BusDeviceHistoryEntity>> selectPage(@RequestBody @Validated DeviceInfusionHistoryQuery query) {
|
|
|
+ return R.success(historyService.infusionQuery(query));
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/editRecord")
|
|
|
+ @ApiOperation(value = "数据修改记录(平板技改)")
|
|
|
+ public R<EditRecordModifyResult> editRecord(@RequestBody @Validated EditModifyQuery query){
|
|
|
+ return R.success(patientClientService.EditRecord(query));
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/ward/page")
|
|
|
+ @ApiOperation(value = "病区查询")
|
|
|
+ public R queryPager() {
|
|
|
+ return R.success(localBusConMixService.listWard());
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/{type}/page")
|
|
|
+ @ApiOperation(value = "常量查询")
|
|
|
+ public R anaTypeQueryPage(@PathVariable("type") String type){
|
|
|
+
|
|
|
+ AnaTypeEnum anaTypeEnum = AnaTypeEnum.fromValue(type);
|
|
|
+ List<String> result;
|
|
|
+ if (anaTypeEnum == AnaTypeEnum.ANATYPE) {
|
|
|
+ result = localBusConMixService.listAnaType();
|
|
|
+ } else if (anaTypeEnum == AnaTypeEnum.ANALTYPE) {
|
|
|
+ result = localBusConMixService.listAnalType();
|
|
|
+ } else if (anaTypeEnum == AnaTypeEnum.SURGERYNAME) {
|
|
|
+ result = localBusConMixService.listSurgery();
|
|
|
+ } else {
|
|
|
+ throw new IllegalArgumentException("未知的类型: " + type);
|
|
|
+ }
|
|
|
+
|
|
|
+ return R.success(result);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @description: 网络泵技改项目
|
|
|
+ * ①增加病区筛选功能:移动软件主界面增加病区快速筛选,可以点击不同的病区,将同一个病区的患者显示在一列;
|
|
|
+ * ②增加床号筛选或排序功能:可以对床号进行递增或递减进行排序
|
|
|
+ * ③筛查已评价患者和未评价患者
|
|
|
+ * @date 2025-04-17
|
|
|
+ * @author lifang
|
|
|
+ */
|
|
|
+ @PostMapping("/monitor/no_page")
|
|
|
+ @ApiOperation(value = "输注列表(平板技改)")
|
|
|
+ public R<List<DoctorPatientMonitorResult>> doctorSelectPatientList(@RequestBody DoctorPatientMonitorQuery query) {
|
|
|
+ if(Boolean.TRUE.equals(query.getConsult())){
|
|
|
+ query.setUserId(String.valueOf(SecurityUtil.getId()));
|
|
|
+ }
|
|
|
+ query.setTenantId(SecurityUtil.getTenantId());
|
|
|
+ return R.success(patientClient.doctorSelectPatientList(query));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @description: 网络泵技改项目
|
|
|
+ * ①在主界面 添加/删除 患者的异常标识
|
|
|
+ * @author lifang
|
|
|
+ * @date 2025-04-17
|
|
|
+ */
|
|
|
+ @PostMapping("/editAbnormalMark")
|
|
|
+ @ApiOperation(value = "修改异常标识(平板技改)")
|
|
|
+ public R<Boolean> editAbnormalMark(@RequestBody@Validated BusPatientAbnormalMarkDTO source) {
|
|
|
+ return R.success(patientClient.editAbnormalMark(source));
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/allConsultDoctor")
|
|
|
+ @ApiOperation(value = "查看医院可咨询医生信息(平板技改)")
|
|
|
+ public R<List<AppDoctorUserResult>> selectAllHospital(){
|
|
|
+ return R.success(doctorUserClient.consultList(SecurityUtil.getTenantId()));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|