ソースを参照

新增
1、新增轮候审批模块
2、新增根据租户查询护理等级简单列表接口
3、新增获取某机构未入住床位号接口
4、长者档案导出新增合同号
BUGFIX
1、解决月度活动搜索报错问题

liangwenxuan 2 ヶ月 前
コミット
aac4bc0024
31 ファイル変更482 行追加35 行削除
  1. 34 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/business/BpmCheckInWaitQueryController.java
  2. 11 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java
  3. 24 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/elderly/CheckInWaitPageReqVO.java
  4. 3 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceService.java
  5. 29 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java
  6. 9 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java
  7. 12 0
      yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/bpm/BpmCheckInWaitApi.java
  8. 32 0
      yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/bpm/vo/CheckInWaitApiPageReqVO.java
  9. 30 0
      yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/bpm/vo/CheckInWaitRecordRespVO.java
  10. 2 0
      yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/bpm/vo/CheckInWaitSupplementReqVO.java
  11. 2 1
      yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/change/BusinessTypeEnum.java
  12. 60 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/bpm/BpmCheckInWaitApiImpl.java
  13. 10 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/biz/BuildController.java
  14. 16 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/biz/vo/CheckInWaitBedSimpleRespVO.java
  15. 16 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/biz/vo/CheckInWaitNurseLevelSimpleRespVO.java
  16. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/biz/vo/MonthlyActivityPageReqVO.java
  17. 3 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/biz/vo/excel/ElderlyBaseInfoExportExcelVO.java
  18. 1 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/biz/vo/excel/ElderlyContractInfoExportExcelVO.java
  19. 11 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/nursing/NurseLevelController.java
  20. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/biz/ElderlyCheckInWaitDO.java
  21. 12 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/biz/BuildBedMapper.java
  22. 3 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/biz/ElderlyBuildFloorActivityImageMapper.java
  23. 9 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/biz/ElderlyCheckInWaitMapper.java
  24. 1 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/BuildService.java
  25. 10 28
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/BuildServiceImpl.java
  26. 37 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ElderlyInfoServiceImpl.java
  27. 3 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/nursing/NurseLevelService.java
  28. 15 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/nursing/NurseLevelServiceImpl.java
  29. 44 0
      yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/BuildBedMapper.xml
  30. 35 0
      yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/ElderlyCheckInWaitMapper.xml
  31. 4 2
      yudao-server/src/main/resources/application.yaml

+ 34 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/business/BpmCheckInWaitQueryController.java

@@ -0,0 +1,34 @@
+package cn.iocoder.yudao.module.bpm.controller.admin.business;
+
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
+import cn.iocoder.yudao.module.system.api.bpm.BpmCheckInWaitApi;
+import com.alibaba.fastjson.JSONObject;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - 长者轮候入住流程")
+@RestController
+@RequestMapping("/bpm/check-in-wait")
+@Validated
+public class BpmCheckInWaitQueryController {
+
+    @Resource
+    private BpmCheckInWaitApi checkInWaitApi;
+
+    @GetMapping("/detail")
+    @Operation(summary = "获取轮候入住详情")
+    @TenantIgnore
+    public CommonResult<JSONObject> getCheckInWaitDetail(@RequestParam("id") Long id) {
+        return success(checkInWaitApi.selectById(id));
+    }
+}

+ 11 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java

@@ -15,6 +15,7 @@ import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.elderly.BedChangePageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.elderly.BpmElderlyInfoVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.elderly.CheckInPageReqVO;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.elderly.CheckInWaitPageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.elderly.ElderlyRetreatRecordPageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.*;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskPageReqVO;
@@ -381,6 +382,16 @@ public class BpmProcessInstanceController {
         return success(pageResult);
     }
 
+    @GetMapping("/check-in-wait-page")
+    @Operation(summary = "获取轮候入住流程实例", description = "在【我的流程】菜单中,进行调用")
+    @TenantIgnore
+    public CommonResult<PageResult<CheckInWaitRecordRespVO>> getProcessInstanceCheckInWaitPage(
+            @Valid CheckInWaitPageReqVO pageReqVO) {
+        pageReqVO.setTenantIds(pageReqVO.getTenantIds() == null ? new Long[]{TenantContextHolder.getTenantId()} : pageReqVO.getTenantIds());
+        PageResult<CheckInWaitRecordRespVO> pageResult = processInstanceService.getProcessInstanceCheckInWaitPage(getLoginUserId(), pageReqVO);
+        return success(pageResult);
+    }
+
     @GetMapping("/deleteAllHistoricProcessInstance")
     public CommonResult<Boolean> deleteAllHistoricProcessInstance() {
         processInstanceService.deleteAllHistoricProcessInstance();

+ 24 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/elderly/CheckInWaitPageReqVO.java

@@ -0,0 +1,24 @@
+package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.elderly;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+@Schema(description = "管理后台 - 轮候入住 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class CheckInWaitPageReqVO extends PageParam {
+
+    @Schema(description = "长者姓名", example = "测试长者")
+    private String elderName;
+
+    @Schema(description = "审批状态,1-审批中,2-审批通过,3-审批不通过,4-已取消,5-系统审批", example = "2")
+    private Integer bpmStatus;
+
+    @Schema(description = "轮候入住业务状态,1-14", example = "1")
+    private Integer status;
+}
+

+ 3 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceService.java

@@ -5,6 +5,7 @@ import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.elderly.BedChangePageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.elderly.BpmElderlyInfoVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.elderly.CheckInPageReqVO;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.elderly.CheckInWaitPageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.elderly.ElderlyRetreatRecordPageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.*;
 import cn.iocoder.yudao.module.system.api.bpm.vo.*;
@@ -181,6 +182,8 @@ public interface BpmProcessInstanceService {
 
     PageResult<CheckInRecordRespVO> getProcessInstanceCheckInPage(Long loginUserId, CheckInPageReqVO pageReqVO);
 
+    PageResult<CheckInWaitRecordRespVO> getProcessInstanceCheckInWaitPage(Long loginUserId, CheckInWaitPageReqVO pageReqVO);
+
     BpmMyPageCountRespVO getBpmListCount(Long loginUserId, Integer value, Integer queryType);
 
     void deleteAllHistoricProcessInstance();

+ 29 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java

@@ -23,6 +23,7 @@ import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.simple.B
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.elderly.BedChangePageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.elderly.BpmElderlyInfoVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.elderly.CheckInPageReqVO;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.elderly.CheckInWaitPageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.elderly.ElderlyRetreatRecordPageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.*;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmApprovalDetailRespVO.ActivityNodeTask;
@@ -53,6 +54,7 @@ import cn.iocoder.yudao.module.bpm.service.definition.BpmCategoryService;
 import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService;
 import cn.iocoder.yudao.module.bpm.service.message.BpmMessageService;
 import cn.iocoder.yudao.module.system.api.bpm.BpmCheckInApi;
+import cn.iocoder.yudao.module.system.api.bpm.BpmCheckInWaitApi;
 import cn.iocoder.yudao.module.system.api.bpm.BpmElderlyApi;
 import cn.iocoder.yudao.module.system.api.bpm.BpmElderlyChangeApi;
 import cn.iocoder.yudao.module.system.api.bpm.vo.*;
@@ -162,6 +164,9 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
     @Resource
     private BpmCheckInApi checkInApi;
 
+    @Resource
+    private BpmCheckInWaitApi checkInWaitApi;
+
     @Resource
     private BpmElderlyChangeApi elderlyChangeApi;
 
@@ -1201,6 +1206,30 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
         return pageResult;
     }
 
+    @Override
+    public PageResult<CheckInWaitRecordRespVO> getProcessInstanceCheckInWaitPage(Long loginUserId, CheckInWaitPageReqVO pageReqVO) {
+        CheckInWaitApiPageReqVO apiVO = BeanUtils.toBean(pageReqVO, CheckInWaitApiPageReqVO.class);
+        PageResult<CheckInWaitRecordRespVO> pageResult = checkInWaitApi.getProcessInstanceCheckInWaitPage(apiVO);
+        if (pageResult.getList().isEmpty()) {
+            return PageResult.empty();
+        }
+        List<CheckInWaitRecordRespVO> list = pageResult.getList();
+        Set<String> processInstanceIds = new HashSet<>();
+        list.forEach((item) -> {
+            processInstanceIds.add(item.getProcessInstanceId());
+        });
+        List<HistoricProcessInstance> processInstanceList = historyService.createHistoricProcessInstanceQuery()
+                .processInstanceIds(processInstanceIds).list();
+        processInstanceList.forEach((processInstance) -> {
+            list.forEach((record) -> {
+                if (processInstance.getId().equals(record.getProcessInstanceId())) {
+                    record.setStartTaskId(processInstance.getId());
+                }
+            });
+        });
+        return pageResult;
+    }
+
     @Override
     @TenantIgnore
     public BpmMyPageCountRespVO getBpmListCount(Long userId, Integer value, Integer queryType) {

+ 9 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java

@@ -667,6 +667,15 @@ public class BpmTaskServiceImpl implements BpmTaskService {
         CheckInWaitSupplementReqVO reqVO = new CheckInWaitSupplementReqVO();
         reqVO.setId(businessForm.getBusinessId());
         String key = taskDefinitionKey.toLowerCase();
+        if ("first_approve".equals(key)) {
+            reqVO.setIsPsychosis("否");
+            if (reqVO.getNurseLevelId() != null || StrUtil.isNotBlank(reqVO.getRemark())) {
+                checkInWaitApi.updateThirdReviewInfo(reqVO);
+            }
+            checkInWaitApi.updateCheckInWaitStatusByBusinessId(businessForm.getBusinessId(),
+                    BpmCheckInWaitStatusEnum.FIRST_APPROVAL_PASSED_WAIT_SECOND_APPROVAL.getStatus());
+            return;
+        }
         if ("third_approve".equals(key)) {
             reqVO.setNurseLevelId(parseLong(variables, "nurseLevelId"));
             reqVO.setRemark(parseString(variables, "remark"));

+ 12 - 0
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/bpm/BpmCheckInWaitApi.java

@@ -1,13 +1,22 @@
 package cn.iocoder.yudao.module.system.api.bpm;
 
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.system.api.bpm.vo.CheckInWaitApiPageReqVO;
 import cn.iocoder.yudao.module.system.api.bpm.vo.CheckInWaitCreateReqVO;
+import cn.iocoder.yudao.module.system.api.bpm.vo.CheckInWaitRecordRespVO;
 import cn.iocoder.yudao.module.system.api.bpm.vo.CheckInWaitSupplementReqVO;
 import com.alibaba.fastjson.JSONObject;
 
+import java.util.List;
+
 public interface BpmCheckInWaitApi {
 
     Long createCheckInWait(CheckInWaitCreateReqVO reqVO);
 
+    Integer updateInfo(CheckInWaitSupplementReqVO reqVO);
+
+    Integer updateFirstReviewInfo(CheckInWaitSupplementReqVO reqVO);
+
     Integer updateCheckInWaitStatus(Long id, Integer status);
 
     Integer updateCheckInWaitStatusByBusinessId(Long businessId, Integer status);
@@ -19,4 +28,7 @@ public interface BpmCheckInWaitApi {
     Integer updateSixthReviewInfo(CheckInWaitSupplementReqVO reqVO);
 
     JSONObject selectById(Long id);
+
+
+    PageResult<CheckInWaitRecordRespVO> getProcessInstanceCheckInWaitPage(CheckInWaitApiPageReqVO pageReqVO);
 }

+ 32 - 0
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/bpm/vo/CheckInWaitApiPageReqVO.java

@@ -0,0 +1,32 @@
+package cn.iocoder.yudao.module.system.api.bpm.vo;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class CheckInWaitApiPageReqVO extends PageParam {
+
+    /**
+     * 长者姓名
+     */
+    private String elderName;
+
+    /**
+     * 审批状态,1-审批中,2-审批通过,3-审批不通过,4-已取消,5-系统审批
+     */
+    private Integer bpmStatus;
+
+    /**
+     * 轮候入住业务状态,1-14
+     */
+    private Integer status;
+
+    private Integer type;
+
+    private Long[] tenantIds;
+}
+

+ 30 - 0
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/bpm/vo/CheckInWaitRecordRespVO.java

@@ -0,0 +1,30 @@
+package cn.iocoder.yudao.module.system.api.bpm.vo;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class CheckInWaitRecordRespVO {
+
+    private Long id;
+    private String elderName;
+    private String idCard;
+    private String recentLivingSituation;
+    private String walkSituationVideo;
+    private String medicalRecordsWithinSixMonth;
+    private String idCardPhoto;
+    private String recentDischargeSummary;
+    private Long tenantId;
+    private Integer status;
+    private Long nurseLevelId;
+    private String remark;
+    private String physicalExaminationReport;
+    private Long bedId;
+    private Integer bpmStatus;
+    private String processInstanceId;
+    private String startTaskId;
+    private Integer type;
+    private String tenantName;
+    private LocalDateTime createdTime;
+}

+ 2 - 0
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/bpm/vo/CheckInWaitSupplementReqVO.java

@@ -13,5 +13,7 @@ public class CheckInWaitSupplementReqVO {
 
     private String physicalExaminationReport;
 
+    private String isPsychosis;
+
     private Long bedId;
 }

+ 2 - 1
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/change/BusinessTypeEnum.java

@@ -24,7 +24,8 @@ public enum BusinessTypeEnum implements ArrayValuable<Integer> {
     CATERING_CHANGE(6, "catering_change"), //餐饮变更
     PRICE_CHANGE(7, "price_change"), //价格变更
     TRANSFER_CHANGE(8, "transfer_change"), //转院变更
-    CHECK_IN(9, "check_in");
+    CHECK_IN(9, "check_in"),
+    CHECK_IN_WAIT(10, "check_in_wait"); //轮候入住
 
     public static final Integer[] ARRAYS = Arrays.stream(values()).map(BusinessTypeEnum::getValue).toArray(Integer[]::new);
 

+ 60 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/bpm/BpmCheckInWaitApiImpl.java

@@ -1,14 +1,36 @@
 package cn.iocoder.yudao.module.system.api.bpm;
 
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.system.api.bpm.vo.CheckInWaitApiPageReqVO;
 import cn.iocoder.yudao.module.system.api.bpm.vo.CheckInWaitCreateReqVO;
+import cn.iocoder.yudao.module.system.api.bpm.vo.CheckInWaitRecordRespVO;
 import cn.iocoder.yudao.module.system.api.bpm.vo.CheckInWaitSupplementReqVO;
+import cn.iocoder.yudao.module.system.dal.dataobject.biz.BuildBedDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.biz.BuildDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.biz.BuildFloorDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.biz.BuildRoomDO;
 import cn.iocoder.yudao.module.system.dal.dataobject.biz.ElderlyCheckInWaitDO;
+import cn.iocoder.yudao.module.system.dal.mysql.biz.BuildBedMapper;
+import cn.iocoder.yudao.module.system.dal.mysql.biz.BuildFloorMapper;
+import cn.iocoder.yudao.module.system.dal.mysql.biz.BuildMapper;
+import cn.iocoder.yudao.module.system.dal.mysql.biz.BuildRoomMapper;
 import cn.iocoder.yudao.module.system.dal.mysql.biz.ElderlyCheckInWaitMapper;
+import cn.iocoder.yudao.module.system.dal.mysql.biz.NurseLevelMapper;
+import cn.iocoder.yudao.module.system.enums.change.BusinessTypeEnum;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service
 @Validated
@@ -17,6 +39,21 @@ public class BpmCheckInWaitApiImpl implements BpmCheckInWaitApi {
     @Resource
     private ElderlyCheckInWaitMapper checkInWaitMapper;
 
+    @Resource
+    private NurseLevelMapper nurseLevelMapper;
+
+    @Resource
+    private BuildMapper buildMapper;
+
+    @Resource
+    private BuildFloorMapper buildFloorMapper;
+
+    @Resource
+    private BuildRoomMapper buildRoomMapper;
+
+    @Resource
+    private BuildBedMapper buildBedMapper;
+
     @Override
     public Long createCheckInWait(CheckInWaitCreateReqVO reqVO) {
         ElderlyCheckInWaitDO data = new ElderlyCheckInWaitDO();
@@ -37,6 +74,21 @@ public class BpmCheckInWaitApiImpl implements BpmCheckInWaitApi {
         return data.getId();
     }
 
+    @Override
+    public Integer updateInfo(CheckInWaitSupplementReqVO reqVO) {
+        ElderlyCheckInWaitDO updateDO = new ElderlyCheckInWaitDO();
+        BeanUtils.copyProperties(reqVO,updateDO);
+        return checkInWaitMapper.updateById(updateDO);
+    }
+
+    @Override
+    public Integer updateFirstReviewInfo(CheckInWaitSupplementReqVO reqVO) {
+        ElderlyCheckInWaitDO updateDO = new ElderlyCheckInWaitDO();
+        updateDO.setId(reqVO.getId());
+        updateDO.setIsPsychosis(reqVO.getIsPsychosis());
+        return checkInWaitMapper.updateById(updateDO);
+    }
+
     @Override
     public Integer updateCheckInWaitStatus(Long id, Integer status) {
         ElderlyCheckInWaitDO updateDO = new ElderlyCheckInWaitDO();
@@ -83,4 +135,12 @@ public class BpmCheckInWaitApiImpl implements BpmCheckInWaitApi {
         ElderlyCheckInWaitDO elderlyCheckInWaitDO = checkInWaitMapper.selectById(id);
         return (JSONObject) JSONObject.toJSON(elderlyCheckInWaitDO);
     }
+
+    @Override
+    public PageResult<CheckInWaitRecordRespVO> getProcessInstanceCheckInWaitPage(CheckInWaitApiPageReqVO pageReqVO) {
+        Page<CheckInWaitRecordRespVO> page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
+        pageReqVO.setType(BusinessTypeEnum.CHECK_IN_WAIT.getValue());
+        List<CheckInWaitRecordRespVO> list = checkInWaitMapper.selectCheckInWaitListPage(page, pageReqVO);
+        return new PageResult<>(list, page.getTotal());
+    }
 }

+ 10 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/biz/BuildController.java

@@ -264,4 +264,14 @@ public class BuildController {
             @RequestParam(value = "tenantId", required = false) Long tenantId) {
         return success(buildService.getFloorTree(tenantId));
     }
+
+    @GetMapping("/getBedListByTenantIdAndKeyword")
+    @Operation(summary = "获取某机构未入住床位号")
+    @TenantIgnore
+    @PermitAll
+    public CommonResult<List<CheckInWaitBedSimpleRespVO>> getBedListByTenantIdAndKeyword(
+            @RequestParam(value = "tenantId", required = false) Long tenantId,
+            @RequestParam(value = "keyWord", required = false) String keyWord) {
+        return success(buildService.getBedListByTenantIdAndKeyword(tenantId,keyWord));
+    }
 }

+ 16 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/biz/vo/CheckInWaitBedSimpleRespVO.java

@@ -0,0 +1,16 @@
+package cn.iocoder.yudao.module.system.controller.admin.biz.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class CheckInWaitBedSimpleRespVO implements Serializable {
+
+    @Schema(description = "床位ID")
+    private Long bedId;
+
+    @Schema(description = "完整床位名称,格式:楼栋-楼层-房间-床位")
+    private String bedName;
+}

+ 16 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/biz/vo/CheckInWaitNurseLevelSimpleRespVO.java

@@ -0,0 +1,16 @@
+package cn.iocoder.yudao.module.system.controller.admin.biz.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class CheckInWaitNurseLevelSimpleRespVO implements Serializable {
+
+    @Schema(description = "护理等级ID")
+    private Long nurseLevelId;
+
+    @Schema(description = "护理等级名称")
+    private String nurseLevelName;
+}

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/biz/vo/MonthlyActivityPageReqVO.java

@@ -10,6 +10,7 @@ import java.math.BigDecimal;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.time.LocalDateTime;
 
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
 
 @Schema(description = "管理后台 - 月度活动分页 Request VO")
@@ -22,6 +23,7 @@ public class MonthlyActivityPageReqVO extends PageParam {
     private String activityType;
 
     @Schema(description = "活动日期")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
     private LocalDate activityDate;
 
     @Schema(description = "活动主题")

+ 3 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/biz/vo/excel/ElderlyBaseInfoExportExcelVO.java

@@ -29,6 +29,9 @@ public class ElderlyBaseInfoExportExcelVO {
     @ExcelProperty("档案号")
     private String fileNumber;
 
+    @ExcelProperty("合同号")
+    private String contractNumber;
+
     @ExcelProperty("长者姓名")
     private String elderName;
 

+ 1 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/biz/vo/excel/ElderlyContractInfoExportExcelVO.java

@@ -56,7 +56,7 @@ public class ElderlyContractInfoExportExcelVO {
 
 
     //=============合同信息===============//
-    @ExcelProperty("合同号")
+    @ExcelProperty("合同号")
     private String contractNumber;
 
     @ExcelProperty("合同开始日期")

+ 11 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/nursing/NurseLevelController.java

@@ -6,9 +6,9 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
+import cn.iocoder.yudao.module.system.controller.admin.biz.vo.CheckInWaitNurseLevelSimpleRespVO;
 import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ItemPageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.biz.vo.excel.NurseItemImportExcel;
-import cn.iocoder.yudao.module.system.controller.admin.sys.vo.OverheadChargeImportExcelVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.biz.NurseItemDO;
 import cn.iocoder.yudao.module.system.dal.dataobject.biz.NurseLevelConfigDO;
 import cn.iocoder.yudao.module.system.dal.dataobject.biz.NurseLevelDO;
@@ -25,6 +25,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import javax.annotation.security.PermitAll;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 
@@ -151,6 +152,15 @@ public class NurseLevelController {
         return success(BeanUtils.toBean(pageResult, NurseLevelDO.class));
     }
 
+    @GetMapping("/nurseLeve/simple-list")
+    @Operation(summary = "根据租户查询护理等级简单列表")
+    @TenantIgnore
+    @PermitAll
+    public CommonResult<List<CheckInWaitNurseLevelSimpleRespVO>> getSimpleNurseLevelList(
+            @RequestParam("tenantId") Long tenantId) {
+        return success(nurseLevelService.getNurseLevelListByTenantId(tenantId));
+    }
+
 
     @GetMapping("/nurseLeve/getListByElderId")
     @Operation(summary = "根据长者ID查询护理等级项目列表")

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/biz/ElderlyCheckInWaitDO.java

@@ -42,4 +42,6 @@ public class ElderlyCheckInWaitDO extends BaseNoDeleteDO {
     private String physicalExaminationReport;
 
     private Long bedId;
+
+    private String isPsychosis;
 }

+ 12 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/biz/BuildBedMapper.java

@@ -1,11 +1,15 @@
 package cn.iocoder.yudao.module.system.dal.mysql.biz;
 
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.module.system.controller.admin.biz.vo.BuildBedVO;
+import cn.iocoder.yudao.module.system.controller.admin.biz.vo.CheckInWaitBedSimpleRespVO;
 import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ElderlyInfoHomeDataReqVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.biz.BuildBedDO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 
 /**
  * 楼栋床位 Mapper
@@ -23,4 +27,12 @@ public interface BuildBedMapper extends BaseMapperX<BuildBedDO> {
                                @Param("floorName") String floorName,
                                @Param("roomName") String roomName,
                                @Param("bedName") String bedName);
+
+    List<CheckInWaitBedSimpleRespVO> selectWaitCheckInBedList(@Param("tenantId") Long tenantId,
+                                                               @Param("keyword") String keyword);
+
+    List<BuildBedVO> selectBedVOList(@Param("bedName") String bedName,
+                                     @Param("status") Integer status,
+                                     @Param("orgType") Integer orgType,
+                                     @Param("tenantIds") Long[] tenantIds);
 }

+ 3 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/biz/ElderlyBuildFloorActivityImageMapper.java

@@ -42,3 +42,6 @@ public interface ElderlyBuildFloorActivityImageMapper extends BaseMapperX<Elderl
 
 
 
+
+
+

+ 9 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/biz/ElderlyCheckInWaitMapper.java

@@ -1,10 +1,18 @@
 package cn.iocoder.yudao.module.system.dal.mysql.biz;
 
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.module.system.api.bpm.vo.CheckInWaitApiPageReqVO;
+import cn.iocoder.yudao.module.system.api.bpm.vo.CheckInWaitRecordRespVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.biz.ElderlyCheckInWaitDO;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 @Mapper
 public interface ElderlyCheckInWaitMapper extends BaseMapperX<ElderlyCheckInWaitDO> {
-}
 
+    List<CheckInWaitRecordRespVO> selectCheckInWaitListPage(Page<CheckInWaitRecordRespVO> page,
+                                                            @Param("pageVO") CheckInWaitApiPageReqVO pageReqVO);
+}

+ 1 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/BuildService.java

@@ -78,4 +78,5 @@ public interface BuildService {
     BuildFloorStatisticsRespVO getBuildFloorStatistics(Long[] tenantIds, String month);
 
     List<BuildFloorTreeRespVO> getFloorTree(Long tenantId);
+    List<CheckInWaitBedSimpleRespVO> getBedListByTenantIdAndKeyword(Long tenantId, String keyword);
 }

+ 10 - 28
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/BuildServiceImpl.java

@@ -379,34 +379,7 @@ public class BuildServiceImpl implements BuildService {
 
     @Override
     public List<BuildBedVO> getBedList(String bedName, Integer status, Integer orgType, Long[] tenantIds) {
-        LambdaQueryWrapperX<BuildBedDO> queryWrapper = new LambdaQueryWrapperX<BuildBedDO>()
-                .likeIfPresent(BuildBedDO::getBedName, bedName)
-                .inIfPresent(BuildBedDO::getTenantId,tenantIds)
-                .eqIfPresent(BuildBedDO::getOrgType, orgType);
-        if (status != null) {
-            queryWrapper.eq(BuildBedDO::getStatus, status);
-        }
-        List<BuildBedDO> bedList = buildBedMapper.selectList(queryWrapper);
-
-        return bedList.stream().map(item -> {
-            BuildBedVO buildBedVO = new BuildBedVO();
-            buildBedVO.setBuildBedId(item.getId());
-
-            buildBedVO.setBuildBedName(item.getBedName());
-
-            BuildRoomDO room = buildRoomMapper.selectById(item.getRoomId());
-            buildBedVO.setBuildRoomName(room.getRoomName());
-
-
-            BuildFloorDO buildFloorDO = buildFloorMapper.selectById(room.getFloorId());
-            if (buildFloorDO != null) {
-                buildBedVO.setBuildFloorName(buildFloorDO.getFloorName());
-
-                BuildDO buildDO = buildMapper.selectById(buildFloorDO.getBuildId());
-                buildBedVO.setBuildName(buildDO.getBuildName());
-            }
-            return buildBedVO;
-        }).collect(Collectors.toList());
+        return buildBedMapper.selectBedVOList(bedName, status, orgType, tenantIds);
     }
 
     @Override
@@ -1114,6 +1087,15 @@ public class BuildServiceImpl implements BuildService {
         return respVO;
     }
 
+    @Override
+    public List<CheckInWaitBedSimpleRespVO> getBedListByTenantIdAndKeyword(Long tenantId, String keyword) {
+        if (tenantId == null) {
+            return Collections.emptyList();
+        }
+        String trimmedKeyword = StringUtils.trimToNull(keyword);
+        return buildBedMapper.selectWaitCheckInBedList(tenantId, trimmedKeyword);
+    }
+
     /**
      * 统计单个楼层的数据
      */

+ 37 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ElderlyInfoServiceImpl.java

@@ -816,10 +816,24 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
         Page<ElderlyInfoDO> page = new Page<>(pageVO.getPageNo(), pageVO.getPageSize());
         List<ElderlyInfoDO> list = elderlyInfoMapper.findPage(page, pageVO);
         AtomicInteger atomicInteger = new AtomicInteger(1);
+        List<Long> elderIds = list.stream().map(ElderlyInfoDO::getId).collect(Collectors.toList());
+        Map<Long, ElderlyContractDO> contractMap = new HashMap<>();
+        if (CollectionUtil.isNotEmpty(elderIds)) {
+            List<ElderlyContractDO> contractList = elderlyContractMapper.selectList(new LambdaQueryWrapperX<ElderlyContractDO>()
+                    .in(ElderlyContractDO::getElderId, elderIds)
+                    .orderByDesc(ElderlyContractDO::getCreatedTime)
+                    .orderByDesc(ElderlyContractDO::getId));
+            for (ElderlyContractDO contract : contractList) {
+                if (contract.getElderId() != null && !contractMap.containsKey(contract.getElderId())) {
+                    contractMap.put(contract.getElderId(), contract);
+                }
+            }
+        }
         List<ElderlyBaseInfoExportExcelVO> baseInfoExportExcelList = list.stream().map(e -> {
             ElderlyBaseInfoExportExcelVO baseInfoExportExcelVO = new ElderlyBaseInfoExportExcelVO();
             BeanUtils.copyProperties(e, baseInfoExportExcelVO);
             baseInfoExportExcelVO.setNum(atomicInteger.getAndIncrement());
+            baseInfoExportExcelVO.setContractNumber(contractMap.get(e.getId()).getContractNumber());
             baseInfoExportExcelVO.setBirthdayCareDate(e.getBirthday() == null ? null : e.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
             baseInfoExportExcelVO.setBedName(buildService.getFullBedName(e.getId()));
             if (e.getNurseLevelId() != null) {
@@ -853,9 +867,31 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
             return baseInfoExportExcelVO;
         }).collect(Collectors.toList());
 
+        List<ElderlyContractInfoExportExcelVO> contractInfoExportExcelList = list.stream().map(e -> {
+            ElderlyContractInfoExportExcelVO contractInfoExportExcelVO = new ElderlyContractInfoExportExcelVO();
+            BeanUtils.copyProperties(e, contractInfoExportExcelVO);
+            ElderlyContractDO contractDO = contractMap.get(e.getId());
+            if (contractDO != null) {
+                contractInfoExportExcelVO.setContractNumber(contractDO.getContractNumber());
+                contractInfoExportExcelVO.setBeginTime(contractDO.getBeginTime());
+                contractInfoExportExcelVO.setExpireTime(contractDO.getExpireTime());
+                contractInfoExportExcelVO.setContractTerm(contractDO.getContractTerm());
+            }
+            contractInfoExportExcelVO.setBedName(buildService.getFullBedName(e.getId()));
+            if (e.getNurseLevelId() != null) {
+                NurseLevelDO nurseLevelDO = nurseLevelMapper.selectById(e.getNurseLevelId());
+                contractInfoExportExcelVO.setNursingLevelName(nurseLevelDO == null ? null : nurseLevelDO.getNurseLevelName());
+            }
+            return contractInfoExportExcelVO;
+        }).collect(Collectors.toList());
+
+        for (int i = 0; i < contractInfoExportExcelList.size(); i++) {
+            contractInfoExportExcelList.get(i).setNum(i + 1);
+        }
+
         Map<String, Object> dataMap = new HashMap<>();
         dataMap.put("baseInfo", baseInfoExportExcelList);
-        dataMap.put("contractInfo", new ArrayList<ElderlyContractInfoExportExcelVO>());
+        dataMap.put("contractInfo", contractInfoExportExcelList);
         return dataMap;
     }
 

+ 3 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/nursing/NurseLevelService.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.system.service.nursing;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.system.controller.admin.biz.vo.CheckInWaitNurseLevelSimpleRespVO;
 import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ItemPageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.biz.vo.excel.NurseItemImportExcel;
 import cn.iocoder.yudao.module.system.dal.dataobject.biz.NurseItemDO;
@@ -28,4 +29,6 @@ public interface NurseLevelService {
     List<NurseItemDO> findNurseItemListByName(String nurseItemName, String categoryTypeName);
 
     Map<String, Object> importNurseItem(List<NurseItemImportExcel> dataList);
+
+    List<CheckInWaitNurseLevelSimpleRespVO> getNurseLevelListByTenantId(Long tenantId);
 }

+ 15 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/nursing/NurseLevelServiceImpl.java

@@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
+import cn.iocoder.yudao.module.system.controller.admin.biz.vo.CheckInWaitNurseLevelSimpleRespVO;
 import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ItemPageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.biz.vo.excel.NurseItemImportExcel;
 import cn.iocoder.yudao.module.system.dal.dataobject.biz.*;
@@ -178,4 +179,18 @@ public class NurseLevelServiceImpl implements NurseLevelService {
         map.put("errorList",errorList);
         return map;
     }
+
+    @Override
+    public List<CheckInWaitNurseLevelSimpleRespVO> getNurseLevelListByTenantId(Long tenantId) {
+        List<NurseLevelDO> nurseLevels = nurseLevelMapper.selectList(new LambdaQueryWrapperX<NurseLevelDO>()
+                .eq(NurseLevelDO::getTenantId, tenantId)
+                .orderByAsc(NurseLevelDO::getSort)
+                .orderByDesc(NurseLevelDO::getCreateTime));
+        return nurseLevels.stream().map(level -> {
+            CheckInWaitNurseLevelSimpleRespVO respVO = new CheckInWaitNurseLevelSimpleRespVO();
+            respVO.setNurseLevelId(level.getId());
+            respVO.setNurseLevelName(level.getNurseLevelName());
+            return respVO;
+        }).collect(java.util.stream.Collectors.toList());
+    }
 }

+ 44 - 0
yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/BuildBedMapper.xml

@@ -43,4 +43,48 @@
         LIMIT 1
     </select>
 
+    <select id="selectWaitCheckInBedList" resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.CheckInWaitBedSimpleRespVO">
+        SELECT bed.id AS bedId,
+               CONCAT(build.build_name, '-', floor.floor_name, '-', room.room_name, '-', bed.bed_name) AS bedName
+        FROM org_build_bed AS bed
+                 INNER JOIN org_build_room AS room ON bed.room_id = room.id AND bed.tenant_id = room.tenant_id
+                 INNER JOIN org_build_floor AS floor ON room.floor_id = floor.id AND room.tenant_id = floor.tenant_id
+                 INNER JOIN org_build AS build ON floor.build_id = build.id AND floor.tenant_id = build.tenant_id
+        WHERE bed.tenant_id = #{tenantId}
+          AND bed.status = 0
+        <if test="keyword != null and keyword != ''">
+            AND CONCAT(build.build_name, '-', floor.floor_name, '-', room.room_name, '-', bed.bed_name) LIKE CONCAT('%', #{keyword}, '%')
+        </if>
+        ORDER BY build.sort ASC, floor.sort ASC, room.id ASC, bed.sort ASC
+    </select>
+
+    <select id="selectBedVOList" resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.BuildBedVO">
+        SELECT build.build_name AS buildName,
+               floor.floor_name AS buildFloorName,
+               room.room_name AS buildRoomName,
+               bed.id AS buildBedId,
+               bed.bed_name AS buildBedName
+        FROM org_build_bed AS bed
+                 INNER JOIN org_build_room AS room ON bed.room_id = room.id AND bed.tenant_id = room.tenant_id
+                 INNER JOIN org_build_floor AS floor ON room.floor_id = floor.id AND room.tenant_id = floor.tenant_id
+                 INNER JOIN org_build AS build ON floor.build_id = build.id AND floor.tenant_id = build.tenant_id
+        WHERE 1 = 1
+        <if test="bedName != null and bedName != ''">
+            AND bed.bed_name LIKE CONCAT('%', #{bedName}, '%')
+        </if>
+        <if test="status != null">
+            AND bed.status = #{status}
+        </if>
+        <if test="orgType != null">
+            AND bed.org_type = #{orgType}
+        </if>
+        <if test="tenantIds != null and tenantIds.length > 0">
+            AND bed.tenant_id IN
+            <foreach item="id" collection="tenantIds" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        ORDER BY build.sort ASC, floor.sort ASC, room.id ASC, bed.sort ASC
+    </select>
+
 </mapper>

+ 35 - 0
yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/ElderlyCheckInWaitMapper.xml

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="cn.iocoder.yudao.module.system.dal.mysql.biz.ElderlyCheckInWaitMapper">
+
+    <select id="selectCheckInWaitListPage" resultType="cn.iocoder.yudao.module.system.api.bpm.vo.CheckInWaitRecordRespVO">
+        SELECT
+            eciw.*,
+            bbf.status AS bpmStatus,
+            bbf.process_instance_id,
+            bbf.type,
+            st.name AS tenantName
+        FROM elderly_check_in_wait eciw
+        LEFT JOIN system_tenant st ON st.id = eciw.tenant_id
+        LEFT JOIN bpm_business_form bbf ON eciw.id = bbf.business_id AND bbf.type = #{pageVO.type}
+        WHERE 1 = 1
+        <if test="pageVO.elderName != null and pageVO.elderName != ''">
+            AND eciw.elder_name LIKE CONCAT('%', #{pageVO.elderName}, '%')
+        </if>
+        <if test="pageVO.bpmStatus != null">
+            AND bbf.status = #{pageVO.bpmStatus}
+        </if>
+        <if test="pageVO.status != null">
+            AND eciw.status = #{pageVO.status}
+        </if>
+        <if test="pageVO.tenantIds != null and pageVO.tenantIds.length > 0">
+            AND eciw.tenant_id IN
+            <foreach item="id" collection="pageVO.tenantIds" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        ORDER BY eciw.create_time DESC
+    </select>
+
+</mapper>

+ 4 - 2
yudao-server/src/main/resources/application.yaml

@@ -3,8 +3,8 @@ spring:
     name: yudao-server
 
   profiles:
-    active: test
-#    active: dev
+#    active: test
+    active: dev
 
 
   main:
@@ -239,6 +239,8 @@ yudao:
       - /admin-api/elderlyInfo/miniGetElderInfo
       - /admin-api/ward/roundRecord/create
       - /admin-api/infra/file/upload
+      - /admin-api/build/getBedListByTenantIdAndKeyword
+      - /admin-api/nurse/nurseLeve/simple-list
 #      - /admin-api/bpm/check-in-wait/create
     ignore-tables:
       - system_tenant