Explorar o código

新增
1、新增防文娱活动意外模块
2、新增获取当前机构所有审批流接口
修改
1、安全检查情况调整

liangwenxuan hai 4 horas
pai
achega
cc6eb9543c
Modificáronse 15 ficheiros con 424 adicións e 5 borrados
  1. 84 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/biz/ElderlyAntiEntertainmentController.java
  2. 4 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/elderly/vo/ElderlySafeCheckRespVO.java
  3. 10 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyMessageController.java
  4. 20 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyInstitutionApprovalPageReqVO.java
  5. 29 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyInstitutionApprovalRespVO.java
  6. 57 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/biz/ElderlyAntiEntertainmentDO.java
  7. 27 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/biz/ElderlyAntiEntertainmentMapper.java
  8. 14 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyMessageMapper.java
  9. 19 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ElderlyAntiEntertainmentService.java
  10. 64 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ElderlyAntiEntertainmentServiceImpl.java
  11. 4 3
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ExpenseOrderServiceImpl.java
  12. 5 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageService.java
  13. 9 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageServiceImpl.java
  14. 54 0
      yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/ElderlyAntiEntertainmentMapper.xml
  15. 24 1
      yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/NotifMessageMapper.xml

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

@@ -0,0 +1,84 @@
+package cn.iocoder.yudao.module.system.controller.admin.biz;
+
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+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.assessment.ElderlyAssessmentPageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.biz.vo.assessment.ElderlyAssessmentRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.biz.vo.assessment.ElderlyAssessmentSaveReqVO;
+import cn.iocoder.yudao.module.system.service.biz.ElderlyAntiEntertainmentService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+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 javax.validation.Valid;
+
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - 防文娱活动意外")
+@RestController
+@RequestMapping("/elderly-anti-entertainment")
+@Validated
+public class ElderlyAntiEntertainmentController {
+
+    @Resource
+    private ElderlyAntiEntertainmentService elderlyAntiEntertainmentService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建防文娱活动意外")
+    public CommonResult<Long> create(@Valid @RequestBody ElderlyAssessmentSaveReqVO createReqVO) {
+        if (createReqVO.getTenantId() == null) {
+            createReqVO.setTenantId(TenantContextHolder.getTenantId());
+        }
+        return success(elderlyAntiEntertainmentService.create(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新防文娱活动意外")
+    @TenantIgnore
+    public CommonResult<Boolean> update(@Valid @RequestBody ElderlyAssessmentSaveReqVO updateReqVO) {
+        if (updateReqVO.getTenantId() == null) {
+            updateReqVO.setTenantId(TenantContextHolder.getTenantId());
+        }
+        elderlyAntiEntertainmentService.update(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除防文娱活动意外")
+    @Parameter(name = "id", description = "编号", required = true)
+    @TenantIgnore
+    public CommonResult<Boolean> delete(@RequestParam("id") Long id) {
+        elderlyAntiEntertainmentService.delete(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得防文娱活动意外详情")
+    @Parameter(name = "id", description = "编号", required = true, example = "1")
+    @TenantIgnore
+    public CommonResult<ElderlyAssessmentRespVO> get(@RequestParam("id") Long id) {
+        return success(elderlyAntiEntertainmentService.get(id));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得防文娱活动意外分页")
+    @TenantIgnore
+    public CommonResult<PageResult<ElderlyAssessmentRespVO>> page(@Valid ElderlyAssessmentPageReqVO pageReqVO) {
+        if (pageReqVO.getTenantIds() == null) {
+            pageReqVO.setTenantIds(new Long[]{TenantContextHolder.getTenantId()});
+        }
+        return success(elderlyAntiEntertainmentService.getPage(pageReqVO));
+    }
+}

+ 4 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/elderly/vo/ElderlySafeCheckRespVO.java

@@ -42,10 +42,13 @@ public class ElderlySafeCheckRespVO {
     @Schema(description = "异常数量")
     private Integer failCount;
 
-    @Schema(description = "记录人")
+    @Schema(description = "创建人")
     private String creator;
 
     @Schema(description = "创建时间")
     private LocalDateTime createTime;
+
+    @Schema(description = "记录人")
+    private String recorder;
 }
 

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

@@ -5,7 +5,10 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyBpmCountVO;
+import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyInstitutionApprovalPageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyInstitutionApprovalRespVO;
 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageMyPageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessagePageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageRespVO;
@@ -112,6 +115,13 @@ public class NotifyMessageController {
                 getLoginUserId(), UserTypeEnum.ADMIN.getValue(), pageVO.getQueryType()));
     }
 
+    @GetMapping("/institution-approval-page")
+    @Operation(summary = "获得当前机构所有审批分页")
+    public CommonResult<PageResult<NotifyInstitutionApprovalRespVO>> getInstitutionApprovalPage(
+            @Valid NotifyInstitutionApprovalPageReqVO pageVO) {
+        return success(notifyMessageService.getInstitutionApprovalPage(pageVO, TenantContextHolder.getTenantId()));
+    }
+
     @PutMapping("/updateReadById")
     @Operation(summary = "标记消息已读")
     @Parameter(name = "id", description = "id", required = true, example = "1024")

+ 20 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyInstitutionApprovalPageReqVO.java

@@ -0,0 +1,20 @@
+package cn.iocoder.yudao.module.system.controller.admin.notify.vo.message;
+
+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 NotifyInstitutionApprovalPageReqVO extends PageParam {
+
+    @Schema(description = "长者姓名,模糊匹配")
+    private String elderName;
+
+    @Schema(description = "申请类型,1-申请入住,2-申请退住,3-外出登记,4-床位变更,5-护理变更,6-餐饮变更,7-价格变更,8-转院变更,10-轮候", example = "1")
+    private Integer type;
+}

+ 29 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyInstitutionApprovalRespVO.java

@@ -0,0 +1,29 @@
+package cn.iocoder.yudao.module.system.controller.admin.notify.vo.message;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 当前机构审批分页 Response VO")
+@Data
+public class NotifyInstitutionApprovalRespVO {
+
+    @Schema(description = "审批记录编号", example = "1")
+    private Long id;
+
+    @Schema(description = "流程实例编号", example = "1783638770229325824")
+    private String processInstanceId;
+
+    @Schema(description = "长者姓名")
+    private String elderName;
+
+    @Schema(description = "审批类型", example = "1")
+    private Integer type;
+
+    @Schema(description = "审批状态", example = "2")
+    private Integer status;
+
+    @Schema(description = "创建时间")
+    private LocalDateTime createTime;
+}

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

@@ -0,0 +1,57 @@
+package cn.iocoder.yudao.module.system.dal.dataobject.biz;
+
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseNoDeleteDO;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT;
+
+@TableName("elderly_anti_entertainment")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ElderlyAntiEntertainmentDO extends BaseNoDeleteDO {
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    @Schema(description = "长者id")
+    private Long elderId;
+
+    @Schema(description = "评估数据")
+    private String assessData;
+
+    @Schema(description = "评估人")
+    private String assessor;
+
+    @Schema(description = "评估日期")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
+    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY, timezone = TIME_ZONE_DEFAULT)
+    private LocalDate assessDate;
+
+    @Schema(description = "风险程度")
+    private String riskLevel;
+
+    @Schema(description = "评估得分")
+    private BigDecimal assessScore;
+
+    @Schema(description = "机构id")
+    private Long tenantId;
+}

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

@@ -0,0 +1,27 @@
+package cn.iocoder.yudao.module.system.dal.mysql.biz;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.module.system.controller.admin.biz.vo.assessment.ElderlyAssessmentPageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.biz.vo.assessment.ElderlyAssessmentRespVO;
+import cn.iocoder.yudao.module.system.dal.dataobject.biz.ElderlyAntiEntertainmentDO;
+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 ElderlyAntiEntertainmentMapper extends BaseMapperX<ElderlyAntiEntertainmentDO> {
+
+    List<ElderlyAssessmentRespVO> selectPageWithElderInfo(Page<ElderlyAssessmentRespVO> page,
+                                                         @Param("reqVO") ElderlyAssessmentPageReqVO reqVO);
+
+    ElderlyAssessmentRespVO selectByIdWithElderInfo(@Param("id") Long id);
+
+    default PageResult<ElderlyAssessmentRespVO> selectPageWithElderInfo(ElderlyAssessmentPageReqVO reqVO) {
+        Page<ElderlyAssessmentRespVO> page = new Page<>(reqVO.getPageNo(), reqVO.getPageSize());
+        List<ElderlyAssessmentRespVO> list = selectPageWithElderInfo(page, reqVO);
+        return new PageResult<>(list, page.getTotal());
+    }
+}

+ 14 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyMessageMapper.java

@@ -6,10 +6,13 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
 import cn.iocoder.yudao.module.system.api.bpm.vo.BpmBusinessFormRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyInstitutionApprovalPageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyInstitutionApprovalRespVO;
 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageMyPageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessagePageReqVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyMessageDO;
 import cn.iocoder.yudao.module.system.enums.notice.NotieBusinessTypeEnum;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -97,6 +100,17 @@ public interface NotifyMessageMapper extends BaseMapperX<NotifyMessageDO> {
                            @Param("businessType")Integer businessType, @Param("notifyType")Integer notifyType,
                            @Param("completedStatus")Integer completedStatus, @Param("readStatus")Integer readStatus);
 
+    List<NotifyInstitutionApprovalRespVO> selectInstitutionApprovalPage(Page<NotifyInstitutionApprovalRespVO> page,
+                                                                        @Param("reqVO") NotifyInstitutionApprovalPageReqVO reqVO,
+                                                                        @Param("tenantId") Long tenantId);
+
+    default PageResult<NotifyInstitutionApprovalRespVO> selectInstitutionApprovalPage(
+            NotifyInstitutionApprovalPageReqVO reqVO, Long tenantId) {
+        Page<NotifyInstitutionApprovalRespVO> page = new Page<>(reqVO.getPageNo(), reqVO.getPageSize());
+        List<NotifyInstitutionApprovalRespVO> list = selectInstitutionApprovalPage(page, reqVO, tenantId);
+        return new PageResult<>(list, page.getTotal());
+    }
+
     default int updateCompletedStatusById(Long id, Integer userType, LocalDateTime localDateTime, Integer completedStatus, Integer status) {
         return update(new NotifyMessageDO()
                         .setReadStatus(true)

+ 19 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ElderlyAntiEntertainmentService.java

@@ -0,0 +1,19 @@
+package cn.iocoder.yudao.module.system.service.biz;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.system.controller.admin.biz.vo.assessment.ElderlyAssessmentPageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.biz.vo.assessment.ElderlyAssessmentRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.biz.vo.assessment.ElderlyAssessmentSaveReqVO;
+
+public interface ElderlyAntiEntertainmentService {
+
+    Long create(ElderlyAssessmentSaveReqVO createReqVO);
+
+    void update(ElderlyAssessmentSaveReqVO updateReqVO);
+
+    void delete(Long id);
+
+    ElderlyAssessmentRespVO get(Long id);
+
+    PageResult<ElderlyAssessmentRespVO> getPage(ElderlyAssessmentPageReqVO pageReqVO);
+}

+ 64 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ElderlyAntiEntertainmentServiceImpl.java

@@ -0,0 +1,64 @@
+package cn.iocoder.yudao.module.system.service.biz;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.system.controller.admin.biz.vo.assessment.ElderlyAssessmentPageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.biz.vo.assessment.ElderlyAssessmentRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.biz.vo.assessment.ElderlyAssessmentSaveReqVO;
+import cn.iocoder.yudao.module.system.dal.dataobject.biz.ElderlyAntiEntertainmentDO;
+import cn.iocoder.yudao.module.system.dal.mysql.biz.ElderlyAntiEntertainmentMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.COMMON_NOT_FOUND;
+
+@Service
+@Validated
+public class ElderlyAntiEntertainmentServiceImpl implements ElderlyAntiEntertainmentService {
+
+    @Resource
+    private ElderlyAntiEntertainmentMapper elderlyAntiEntertainmentMapper;
+
+    @Override
+    public Long create(ElderlyAssessmentSaveReqVO createReqVO) {
+        ElderlyAntiEntertainmentDO record = BeanUtils.toBean(createReqVO, ElderlyAntiEntertainmentDO.class);
+        elderlyAntiEntertainmentMapper.insert(record);
+        return record.getId();
+    }
+
+    @Override
+    public void update(ElderlyAssessmentSaveReqVO updateReqVO) {
+        validateExists(updateReqVO.getId());
+        ElderlyAntiEntertainmentDO updateObj = BeanUtils.toBean(updateReqVO, ElderlyAntiEntertainmentDO.class);
+        elderlyAntiEntertainmentMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void delete(Long id) {
+        validateExists(id);
+        elderlyAntiEntertainmentMapper.deleteById(id);
+    }
+
+    @Override
+    public ElderlyAssessmentRespVO get(Long id) {
+        ElderlyAssessmentRespVO respVO = elderlyAntiEntertainmentMapper.selectByIdWithElderInfo(id);
+        if (respVO == null) {
+            throw exception(COMMON_NOT_FOUND);
+        }
+        return respVO;
+    }
+
+    @Override
+    public PageResult<ElderlyAssessmentRespVO> getPage(ElderlyAssessmentPageReqVO pageReqVO) {
+        return elderlyAntiEntertainmentMapper.selectPageWithElderInfo(pageReqVO);
+    }
+
+    private void validateExists(Long id) {
+        if (id == null || elderlyAntiEntertainmentMapper.selectById(id) == null) {
+            throw exception(COMMON_NOT_FOUND);
+        }
+    }
+}

+ 4 - 3
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ExpenseOrderServiceImpl.java

@@ -2171,6 +2171,7 @@ public class ExpenseOrderServiceImpl implements ExpenseOrderService {
     private void processBatchElderlyBilling(List<Long> elderIds, Long tenantId, String billingMonth, String taskId) {
         // 批量查询在住长者信息
         List<ElderlyInfoDO> elderlyInfoList = elderlyInfoMapper.selectList(new LambdaQueryWrapperX<ElderlyInfoDO>()
+                .eq(ElderlyInfoDO::getId, 14939)
                 .eq(ElderlyInfoDO::getInStatus, 1)
                 .eq(ElderlyInfoDO::getTenantId, tenantId)
                 .inIfPresent(ElderlyInfoDO::getId, elderIds));
@@ -2429,11 +2430,11 @@ public class ExpenseOrderServiceImpl implements ExpenseOrderService {
             orderItem.setType(item.getType());
             orderItem.setItemCategoryName(item.getItemCategory());
             orderItem.setCreatedBy(SecurityFrameworkUtils.getLoginUserNickname());
-            orderItem.setDescription(StringUtils.isBlank(item.getDescription()) ? LocalDateTimeUtil.format(yearMonth.atDay(1), DatePattern.NORM_DATE_PATTERN)
-                    + "至" + (StringUtils.isBlank(item.getEndTime()) ? LocalDateTimeUtil.format(yearMonth.atEndOfMonth(), DatePattern.NORM_DATE_PATTERN) : item.getEndTime()) + "的" + item.getItemName() : item.getDescription());
             orderItem.setTenantId(expenseOrder.getTenantId());
-            orderItem.setStartDate(billYearMonth.atDay(1));
+            orderItem.setStartDate(StringUtils.isBlank(item.getStartTime()) ? billYearMonth.atDay(1) : LocalDate.parse(item.getStartTime(),DateTimeFormatter.ofPattern(FORMAT_YEAR_MONTH_DAY)));
             orderItem.setEndDate(StringUtils.isBlank(item.getEndTime()) ? billYearMonth.atEndOfMonth() : LocalDate.parse(item.getEndTime(),DateTimeFormatter.ofPattern(FORMAT_YEAR_MONTH_DAY)));
+            orderItem.setDescription(StringUtils.isBlank(item.getDescription()) ? orderItem.getStartDate()
+                                                                                  + "至" + orderItem.getEndDate() + "的" + item.getItemName() : item.getDescription());
             orderItem.setContractId(item.getContractId());
             expenseOrderItemMapper.insert(orderItem);
             if (item.getExpenseSource().equals(BusinessConstants.DISCOUNT_DEDUCTION)) {

+ 5 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageService.java

@@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.system.service.notify;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyBpmCountVO;
+import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyInstitutionApprovalPageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyInstitutionApprovalRespVO;
 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageMyPageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessagePageReqVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyMessageDO;
@@ -99,6 +101,9 @@ public interface NotifyMessageService {
 
     NotifyBpmCountVO getBpmListCount(Long loginUserId, Integer value, Integer queryType);
 
+    PageResult<NotifyInstitutionApprovalRespVO> getInstitutionApprovalPage(NotifyInstitutionApprovalPageReqVO pageReqVO,
+                                                                          Long tenantId);
+
     int updateReadById(Long id, Long loginUserId, Integer userType);
 
     int updateMyCreateReadById(String processInstanceId, Long loginUserId);

+ 9 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageServiceImpl.java

@@ -9,6 +9,8 @@ import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum;
 import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum;
 import cn.iocoder.yudao.module.system.api.bpm.vo.BpmBusinessFormRespVO;
 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyBpmCountVO;
+import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyInstitutionApprovalPageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyInstitutionApprovalRespVO;
 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageMyPageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessagePageReqVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyMessageDO;
@@ -130,6 +132,13 @@ public class NotifyMessageServiceImpl implements NotifyMessageService {
         return notifyBpmCountVO;
     }
 
+    @Override
+    @TenantIgnore
+    public PageResult<NotifyInstitutionApprovalRespVO> getInstitutionApprovalPage(
+            NotifyInstitutionApprovalPageReqVO pageReqVO, Long tenantId) {
+        return notifyMessageMapper.selectInstitutionApprovalPage(pageReqVO, tenantId);
+    }
+
     @Override
     @TenantIgnore
     @LogRecord(type = NOTIFY_MESSAGE_TYPE, subType = NOTIFY_MESSAGE_UPDATE_READ_TYPE, bizNo = "{{#id}}",

+ 54 - 0
yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/ElderlyAntiEntertainmentMapper.xml

@@ -0,0 +1,54 @@
+<?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.ElderlyAntiEntertainmentMapper">
+
+    <select id="selectPageWithElderInfo"
+            resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.assessment.ElderlyAssessmentRespVO">
+        SELECT
+            eae.*,
+            ei.elder_name AS elderName,
+            CONCAT_WS('-', ob.build_name, obf.floor_name, obr.room_name, obb.bed_name) AS bedName
+        FROM elderly_anti_entertainment eae
+        LEFT JOIN elderly_info ei ON ei.id = eae.elder_id
+        LEFT JOIN org_build_bed obb ON obb.id = ei.bed_id AND obb.tenant_id = eae.tenant_id
+        LEFT JOIN org_build_room obr ON obr.id = obb.room_id AND obr.tenant_id = obb.tenant_id
+        LEFT JOIN org_build_floor obf ON obf.id = obr.floor_id AND obf.tenant_id = obr.tenant_id
+        LEFT JOIN org_build ob ON ob.id = obf.build_id AND ob.tenant_id = obf.tenant_id
+        WHERE 1 = 1
+        <if test="reqVO.tenantIds != null">
+            AND eae.tenant_id IN
+            <foreach item="id" collection="reqVO.tenantIds" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        <if test="reqVO.elderName != null and reqVO.elderName != ''">
+            AND ei.elder_name LIKE CONCAT('%', #{reqVO.elderName}, '%')
+        </if>
+        <if test="reqVO.assessor != null and reqVO.assessor != ''">
+            AND eae.assessor LIKE CONCAT('%', #{reqVO.assessor}, '%')
+        </if>
+        <if test="reqVO.assessDate != null and reqVO.assessDate.length &gt;= 1">
+            AND eae.assess_date &gt;= #{reqVO.assessDate[0]}
+        </if>
+        <if test="reqVO.assessDate != null and reqVO.assessDate.length == 2">
+            AND eae.assess_date &lt;= #{reqVO.assessDate[1]}
+        </if>
+        ORDER BY eae.assess_date DESC, eae.id DESC
+    </select>
+
+    <select id="selectByIdWithElderInfo"
+            resultType="cn.iocoder.yudao.module.system.controller.admin.biz.vo.assessment.ElderlyAssessmentRespVO">
+        SELECT
+            eae.*,
+            ei.elder_name AS elderName,
+            CONCAT_WS('-', ob.build_name, obf.floor_name, obr.room_name, obb.bed_name) AS bedName
+        FROM elderly_anti_entertainment eae
+        LEFT JOIN elderly_info ei ON ei.id = eae.elder_id
+        LEFT JOIN org_build_bed obb ON obb.id = ei.bed_id AND obb.tenant_id = eae.tenant_id
+        LEFT JOIN org_build_room obr ON obr.id = obb.room_id AND obr.tenant_id = obb.tenant_id
+        LEFT JOIN org_build_floor obf ON obf.id = obr.floor_id AND obf.tenant_id = obr.tenant_id
+        LEFT JOIN org_build ob ON ob.id = obf.build_id AND ob.tenant_id = obf.tenant_id
+        WHERE eae.id = #{id}
+    </select>
+
+</mapper>

+ 24 - 1
yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/NotifMessageMapper.xml

@@ -109,6 +109,29 @@
             </if>
     </select>
 
+    <select id="selectInstitutionApprovalPage"
+            resultType="cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyInstitutionApprovalRespVO">
+        SELECT
+            bbf.id,
+            bbf.process_instance_id AS processInstanceId,
+            COALESCE(ei.elder_name, ciw.elder_name) AS elderName,
+            bbf.type,
+            bbf.`status`,
+            bbf.create_time AS createTime
+        FROM bpm_business_form bbf
+        LEFT JOIN elderly_info ei ON ei.id = bbf.business_id2 AND bbf.type != 10 AND ei.deleted = 0
+        LEFT JOIN elderly_check_in_wait ciw ON ciw.id = bbf.business_id2 AND bbf.type = 10 AND ciw.deleted = 0
+        WHERE bbf.deleted = 0
+            AND bbf.start_tenant_id = #{tenantId}
+            <if test="reqVO.elderName != null and reqVO.elderName != ''">
+                AND COALESCE(ei.elder_name, ciw.elder_name) LIKE CONCAT('%', #{reqVO.elderName}, '%')
+            </if>
+            <if test="reqVO.type != null">
+                AND bbf.type = #{reqVO.type}
+            </if>
+        ORDER BY bbf.create_time DESC, bbf.id DESC
+    </select>
+
     <select id="selectBpmBusinessForm" resultType="cn.iocoder.yudao.module.system.api.bpm.vo.BpmBusinessFormRespVO">
         SELECT  * from bpm_business_form
         WHERE process_instance_id = #{processInstanceId} LIMIT 1
@@ -122,4 +145,4 @@
             process_instance_id = #{processInstanceId}
     </update>
 
-</mapper>
+</mapper>