ソースを参照

新增
1、增加居家服务项目模块
2、增加居家服务套餐模块
3、增加居家服务类别模块
修改
1、长护险录入和导入按照输入的金额不再是取反
2、消费券录入和导入按照输入的金额不再是取反
BUGFIX
1、解决获取楼栋楼层房间树接口部分情况下没有过滤退住的长者问题

liangwenxuan 2 ヶ月 前
コミット
8d6261deab
35 ファイル変更1012 行追加24 行削除
  1. 79 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/HomeServiceCategoryController.java
  2. 81 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/HomeServiceItemController.java
  3. 78 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/HomeServicePackageController.java
  4. 6 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeElderlyInfoDetailRespVO.java
  5. 5 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeElderlyInfoSaveReqVO.java
  6. 20 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServiceCategoryPageReqVO.java
  7. 22 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServiceCategoryPageRespVO.java
  8. 21 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServiceCategoryRespVO.java
  9. 15 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServiceCategorySaveReqVO.java
  10. 21 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServiceItemPageReqVO.java
  11. 38 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServiceItemPageRespVO.java
  12. 36 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServiceItemRespVO.java
  13. 30 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServiceItemSaveReqVO.java
  14. 21 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServicePackagePageReqVO.java
  15. 30 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServicePackageRespVO.java
  16. 25 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServicePackageSaveReqVO.java
  17. 28 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/home/HomeServiceCategoryDO.java
  18. 43 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/home/HomeServiceItemDO.java
  19. 37 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/home/HomeServicePackageDO.java
  20. 3 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/biz/ElderlyBuildFloorActivityImageMapper.java
  21. 10 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/home/HomeServiceCategoryMapper.java
  22. 9 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/home/HomeServiceItemMapper.java
  23. 10 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/home/HomeServicePackageMapper.java
  24. 2 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/BuildServiceImpl.java
  25. 7 7
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ElderlyConsumerVouchersServiceImpl.java
  26. 5 2
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ElderlyContractServiceImpl.java
  27. 12 12
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ExpenseSubsidyServiceImpl.java
  28. 22 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/home/HomeServiceCategoryService.java
  29. 71 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/home/HomeServiceCategoryServiceImpl.java
  30. 22 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/home/HomeServiceItemService.java
  31. 72 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/home/HomeServiceItemServiceImpl.java
  32. 19 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/home/HomeServicePackageService.java
  33. 73 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/home/HomeServicePackageServiceImpl.java
  34. 37 0
      yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/HomeServiceItemMapper.xml
  35. 2 2
      yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/HomeServiceMemberMapper.xml

+ 79 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/HomeServiceCategoryController.java

@@ -0,0 +1,79 @@
+package cn.iocoder.yudao.module.system.controller.admin.home;
+
+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.home.vo.HomeServiceCategoryPageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceCategoryPageRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceCategoryRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceCategorySaveReqVO;
+import cn.iocoder.yudao.module.system.service.home.HomeServiceCategoryService;
+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.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - 居家服务类别")
+@RestController
+@RequestMapping("/home/service-category")
+@Validated
+public class HomeServiceCategoryController {
+
+    @Resource
+    private HomeServiceCategoryService homeServiceCategoryService;
+
+    @PostMapping("/create")
+    @Operation(summary = "新增居家服务类别")
+    @TenantIgnore
+    public CommonResult<Long> create(@Valid @RequestBody HomeServiceCategorySaveReqVO createReqVO) {
+        if (createReqVO.getTenantId() == null) {
+            createReqVO.setTenantId(TenantContextHolder.getTenantId());
+        }
+        return success(homeServiceCategoryService.createHomeServiceCategory(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "修改居家服务类别")
+    @TenantIgnore
+    public CommonResult<Boolean> update(@Valid @RequestBody HomeServiceCategorySaveReqVO updateReqVO) {
+        if (updateReqVO.getTenantId() == null) {
+            updateReqVO.setTenantId(TenantContextHolder.getTenantId());
+        }
+        homeServiceCategoryService.updateHomeServiceCategory(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除居家服务类别")
+    @Parameter(name = "id", description = "编号", required = true, example = "1")
+    @TenantIgnore
+    public CommonResult<Boolean> delete(@RequestParam("id") Long id) {
+        homeServiceCategoryService.deleteHomeServiceCategory(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得居家服务类别详情")
+    @Parameter(name = "id", description = "编号", required = true, example = "1")
+    @TenantIgnore
+    public CommonResult<HomeServiceCategoryRespVO> get(@RequestParam("id") Long id) {
+        return success(homeServiceCategoryService.getHomeServiceCategory(id));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得居家服务类别分页")
+    @TenantIgnore
+    public CommonResult<PageResult<HomeServiceCategoryPageRespVO>> page(@Valid HomeServiceCategoryPageReqVO pageReqVO) {
+        if (pageReqVO.getTenantId() == null) {
+            pageReqVO.setTenantId(TenantContextHolder.getTenantId());
+        }
+        return success(homeServiceCategoryService.getHomeServiceCategoryPage(pageReqVO));
+    }
+}

+ 81 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/HomeServiceItemController.java

@@ -0,0 +1,81 @@
+package cn.iocoder.yudao.module.system.controller.admin.home;
+
+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.home.vo.HomeServiceItemPageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceItemPageRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceItemRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceItemSaveReqVO;
+import cn.iocoder.yudao.module.system.service.home.HomeServiceItemService;
+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.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - 居家服务项目")
+@RestController
+@RequestMapping("/home/service-item")
+@Validated
+public class HomeServiceItemController {
+
+    @Resource
+    private HomeServiceItemService homeServiceItemService;
+
+    @PostMapping("/create")
+    @Operation(summary = "新增居家服务项目")
+    @TenantIgnore
+    public CommonResult<Long> create(@Valid @RequestBody HomeServiceItemSaveReqVO createReqVO) {
+        if (createReqVO.getTenantId() == null) {
+            createReqVO.setTenantId(TenantContextHolder.getTenantId());
+        }
+        return success(homeServiceItemService.createHomeServiceItem(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "修改居家服务项目")
+    @TenantIgnore
+    public CommonResult<Boolean> update(@Valid @RequestBody HomeServiceItemSaveReqVO updateReqVO) {
+        if (updateReqVO.getTenantId() == null) {
+            updateReqVO.setTenantId(TenantContextHolder.getTenantId());
+        }
+        homeServiceItemService.updateHomeServiceItem(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除居家服务项目")
+    @Parameter(name = "id", description = "编号", required = true, example = "1")
+    @TenantIgnore
+    public CommonResult<Boolean> delete(@RequestParam("id") Long id) {
+        homeServiceItemService.deleteHomeServiceItem(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得居家服务项目详情")
+    @Parameter(name = "id", description = "编号", required = true, example = "1")
+    @TenantIgnore
+    public CommonResult<HomeServiceItemRespVO> get(@RequestParam("id") Long id) {
+        return success(homeServiceItemService.getHomeServiceItem(id));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得居家服务项目分页")
+    @TenantIgnore
+    public CommonResult<PageResult<HomeServiceItemPageRespVO>> page(@Valid HomeServiceItemPageReqVO pageReqVO) {
+        if (pageReqVO.getTenantId() == null) {
+            pageReqVO.setTenantId(TenantContextHolder.getTenantId());
+        }
+        return success(homeServiceItemService.getHomeServiceItemPage(pageReqVO));
+    }
+}
+
+

+ 78 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/HomeServicePackageController.java

@@ -0,0 +1,78 @@
+package cn.iocoder.yudao.module.system.controller.admin.home;
+
+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.home.vo.HomeServicePackagePageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServicePackageRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServicePackageSaveReqVO;
+import cn.iocoder.yudao.module.system.service.home.HomeServicePackageService;
+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.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - 居家服务套餐")
+@RestController
+@RequestMapping("/home/service-package")
+@Validated
+public class HomeServicePackageController {
+
+    @Resource
+    private HomeServicePackageService homeServicePackageService;
+
+    @PostMapping("/create")
+    @Operation(summary = "新增居家服务套餐")
+    @TenantIgnore
+    public CommonResult<Long> create(@Valid @RequestBody HomeServicePackageSaveReqVO createReqVO) {
+        if (createReqVO.getTenantId() == null) {
+            createReqVO.setTenantId(TenantContextHolder.getTenantId());
+        }
+        return success(homeServicePackageService.createHomeServicePackage(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "修改居家服务套餐")
+    @TenantIgnore
+    public CommonResult<Boolean> update(@Valid @RequestBody HomeServicePackageSaveReqVO updateReqVO) {
+        if (updateReqVO.getTenantId() == null) {
+            updateReqVO.setTenantId(TenantContextHolder.getTenantId());
+        }
+        homeServicePackageService.updateHomeServicePackage(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除居家服务套餐")
+    @Parameter(name = "id", description = "编号", required = true, example = "1")
+    @TenantIgnore
+    public CommonResult<Boolean> delete(@RequestParam("id") Long id) {
+        homeServicePackageService.deleteHomeServicePackage(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得居家服务套餐详情")
+    @Parameter(name = "id", description = "编号", required = true, example = "1")
+    @TenantIgnore
+    public CommonResult<HomeServicePackageRespVO> get(@RequestParam("id") Long id) {
+        return success(homeServicePackageService.getHomeServicePackage(id));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得居家服务套餐分页")
+    @TenantIgnore
+    public CommonResult<PageResult<HomeServicePackageRespVO>> page(@Valid HomeServicePackagePageReqVO pageReqVO) {
+        if (pageReqVO.getTenantId() == null) {
+            pageReqVO.setTenantId(TenantContextHolder.getTenantId());
+        }
+        return success(homeServicePackageService.getHomeServicePackagePage(pageReqVO));
+    }
+}

+ 6 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeElderlyInfoDetailRespVO.java

@@ -1,13 +1,17 @@
 package cn.iocoder.yudao.module.system.controller.admin.home.vo;
 
 import cn.iocoder.yudao.module.system.dal.dataobject.home.HomeElderlyFamilyDO;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
 
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
 @Schema(description = "管理后台 - 居家长者信息详情 Response VO")
 @Data
 public class HomeElderlyInfoDetailRespVO {
@@ -18,11 +22,13 @@ public class HomeElderlyInfoDetailRespVO {
     private String elderName;
     private String elderQrCode;
     private String sex;
+    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime birthday;
     private String phone;
     private String telephone;
     private String liveSituation;
     private BigDecimal liveArea;
+    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime checkIn;
     private String currentLiveArea;
     private String currentLiveAddress;

+ 5 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeElderlyInfoSaveReqVO.java

@@ -3,11 +3,14 @@ package cn.iocoder.yudao.module.system.controller.admin.home.vo;
 import cn.iocoder.yudao.module.system.dal.dataobject.home.HomeElderlyFamilyDO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
 
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
 @Schema(description = "管理后台 - 居家长者信息新增/修改 Request VO")
 @Data
 public class HomeElderlyInfoSaveReqVO {
@@ -18,11 +21,13 @@ public class HomeElderlyInfoSaveReqVO {
     private String elderName;
     private String elderQrCode;
     private String sex;
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime birthday;
     private String phone;
     private String telephone;
     private String liveSituation;
     private BigDecimal liveArea;
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime checkIn;
     private String currentLiveArea;
     private String currentLiveAddress;

+ 20 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServiceCategoryPageReqVO.java

@@ -0,0 +1,20 @@
+package cn.iocoder.yudao.module.system.controller.admin.home.vo;
+
+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 HomeServiceCategoryPageReqVO extends PageParam {
+
+    private Long superiorId;
+    private String name;
+    private Long tenantId;
+    private Long[] tenantIds;
+}
+

+ 22 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServiceCategoryPageRespVO.java

@@ -0,0 +1,22 @@
+package cn.iocoder.yudao.module.system.controller.admin.home.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 居家服务类别分页 Response VO")
+@Data
+public class HomeServiceCategoryPageRespVO {
+
+    private Long id;
+    private Long superiorId;
+    private String superiorName;
+    private String name;
+    private String remark;
+    private Long tenantId;
+    private LocalDateTime createTime;
+    private LocalDateTime updateTime;
+    private String creator;
+    private String updater;
+}

+ 21 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServiceCategoryRespVO.java

@@ -0,0 +1,21 @@
+package cn.iocoder.yudao.module.system.controller.admin.home.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 居家服务类别 Response VO")
+@Data
+public class HomeServiceCategoryRespVO {
+
+    private Long id;
+    private Long superiorId;
+    private String name;
+    private String remark;
+    private Long tenantId;
+    private LocalDateTime createTime;
+    private LocalDateTime updateTime;
+    private String creator;
+    private String updater;
+}

+ 15 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServiceCategorySaveReqVO.java

@@ -0,0 +1,15 @@
+package cn.iocoder.yudao.module.system.controller.admin.home.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 居家服务类别新增/修改 Request VO")
+@Data
+public class HomeServiceCategorySaveReqVO {
+
+    private Long id;
+    private Long superiorId;
+    private String name;
+    private String remark;
+    private Long tenantId;
+}

+ 21 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServiceItemPageReqVO.java

@@ -0,0 +1,21 @@
+package cn.iocoder.yudao.module.system.controller.admin.home.vo;
+
+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 HomeServiceItemPageReqVO extends PageParam {
+
+    private Long categoryId;
+    private String itemName;
+    private Integer status;
+    private Long tenantId;
+    private Long[] tenantIds;
+}
+

+ 38 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServiceItemPageRespVO.java

@@ -0,0 +1,38 @@
+package cn.iocoder.yudao.module.system.controller.admin.home.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 居家服务项目分页 Response VO")
+@Data
+public class HomeServiceItemPageRespVO {
+
+    private Long id;
+    private Long categoryId;
+    private String categoryName;
+    private String itemName;
+    private String icon;
+    private String summarize;
+    private String detail;
+    private BigDecimal amount;
+    private Integer status;
+    private Integer costType;
+    private Integer isDeductElderFee;
+    private Integer commissionType;
+    private BigDecimal commissionNumber;
+    private Integer isDeductVolunteerFee;
+    private BigDecimal point;
+    private Integer isFollowUpVisit;
+    private Integer isCheckDrugContraindications;
+    private String content;
+    private Long tenantId;
+    private LocalDateTime createTime;
+    private LocalDateTime updateTime;
+    private String creator;
+    private String updater;
+}
+
+

+ 36 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServiceItemRespVO.java

@@ -0,0 +1,36 @@
+package cn.iocoder.yudao.module.system.controller.admin.home.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 居家服务项目 Response VO")
+@Data
+public class HomeServiceItemRespVO {
+
+    private Long id;
+    private Long categoryId;
+    private String itemName;
+    private String icon;
+    private String summarize;
+    private String detail;
+    private BigDecimal amount;
+    private Integer status;
+    private Integer costType;
+    private Integer isDeductElderFee;
+    private Integer commissionType;
+    private BigDecimal commissionNumber;
+    private Integer isDeductVolunteerFee;
+    private BigDecimal point;
+    private Integer isFollowUpVisit;
+    private Integer isCheckDrugContraindications;
+    private String content;
+    private Long tenantId;
+    private LocalDateTime createTime;
+    private LocalDateTime updateTime;
+    private String creator;
+    private String updater;
+}
+

+ 30 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServiceItemSaveReqVO.java

@@ -0,0 +1,30 @@
+package cn.iocoder.yudao.module.system.controller.admin.home.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(description = "管理后台 - 居家服务项目新增/修改 Request VO")
+@Data
+public class HomeServiceItemSaveReqVO {
+
+    private Long id;
+    private Long categoryId;
+    private String itemName;
+    private String icon;
+    private String summarize;
+    private String detail;
+    private BigDecimal amount;
+    private Integer status;
+    private Integer costType;
+    private Integer isDeductElderFee;
+    private Integer commissionType;
+    private BigDecimal commissionNumber;
+    private Integer isDeductVolunteerFee;
+    private BigDecimal point;
+    private Integer isFollowUpVisit;
+    private Integer isCheckDrugContraindications;
+    private String content;
+    private Long tenantId;
+}

+ 21 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServicePackagePageReqVO.java

@@ -0,0 +1,21 @@
+package cn.iocoder.yudao.module.system.controller.admin.home.vo;
+
+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 HomeServicePackagePageReqVO extends PageParam {
+
+    private Long categoryId;
+    private String packageName;
+    private Integer status;
+    private Long tenantId;
+    private Long[] tenantIds;
+}
+

+ 30 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServicePackageRespVO.java

@@ -0,0 +1,30 @@
+package cn.iocoder.yudao.module.system.controller.admin.home.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 居家服务套餐 Response VO")
+@Data
+public class HomeServicePackageRespVO {
+
+    private Long id;
+    private Long categoryId;
+    private String packageName;
+    private String itemIds;
+    private BigDecimal amount;
+    private String summarize;
+    private String detail;
+    private Integer status;
+    private Integer commissionType;
+    private BigDecimal commissionNumber;
+    private Integer isDeductVolunteerFee;
+    private BigDecimal point;
+    private Long tenantId;
+    private LocalDateTime createTime;
+    private LocalDateTime updateTime;
+    private String creator;
+    private String updater;
+}

+ 25 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/home/vo/HomeServicePackageSaveReqVO.java

@@ -0,0 +1,25 @@
+package cn.iocoder.yudao.module.system.controller.admin.home.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(description = "管理后台 - 居家服务套餐新增/修改 Request VO")
+@Data
+public class HomeServicePackageSaveReqVO {
+
+    private Long id;
+    private Long categoryId;
+    private String packageName;
+    private String itemIds;
+    private BigDecimal amount;
+    private String summarize;
+    private String detail;
+    private Integer status;
+    private Integer commissionType;
+    private BigDecimal commissionNumber;
+    private Integer isDeductVolunteerFee;
+    private BigDecimal point;
+    private Long tenantId;
+}

+ 28 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/home/HomeServiceCategoryDO.java

@@ -0,0 +1,28 @@
+package cn.iocoder.yudao.module.system.dal.dataobject.home;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 居家服务类别 DO
+ */
+@TableName("home_service_category")
+@Data
+public class HomeServiceCategoryDO implements Serializable {
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    private Long superiorId;
+    private String name;
+    private String remark;
+    private Long tenantId;
+    private LocalDateTime createTime;
+    private LocalDateTime updateTime;
+    private String creator;
+    private String updater;
+}

+ 43 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/home/HomeServiceItemDO.java

@@ -0,0 +1,43 @@
+package cn.iocoder.yudao.module.system.dal.dataobject.home;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 居家服务项目 DO
+ */
+@TableName("home_service_item")
+@Data
+public class HomeServiceItemDO implements Serializable {
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    private Long categoryId;
+    private String itemName;
+    private String icon;
+    private String summarize;
+    private String detail;
+    private BigDecimal amount;
+    private Integer status;
+    private Integer costType;
+    private Integer isDeductElderFee;
+    private Integer commissionType;
+    private BigDecimal commissionNumber;
+    private Integer isDeductVolunteerFee;
+    private BigDecimal point;
+    private Integer isFollowUpVisit;
+    private Integer isCheckDrugContraindications;
+    private String content;
+    private Long tenantId;
+    private LocalDateTime createTime;
+    private LocalDateTime updateTime;
+    private String creator;
+    private String updater;
+}
+

+ 37 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/home/HomeServicePackageDO.java

@@ -0,0 +1,37 @@
+package cn.iocoder.yudao.module.system.dal.dataobject.home;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 居家服务套餐 DO
+ */
+@TableName("home_service_package")
+@Data
+public class HomeServicePackageDO implements Serializable {
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    private Long categoryId;
+    private String packageName;
+    private String itemIds;
+    private BigDecimal amount;
+    private String summarize;
+    private String detail;
+    private Integer status;
+    private Integer commissionType;
+    private BigDecimal commissionNumber;
+    private Integer isDeductVolunteerFee;
+    private BigDecimal point;
+    private Long tenantId;
+    private LocalDateTime createTime;
+    private LocalDateTime updateTime;
+    private String creator;
+    private String updater;
+}

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

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

+ 10 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/home/HomeServiceCategoryMapper.java

@@ -0,0 +1,10 @@
+package cn.iocoder.yudao.module.system.dal.mysql.home;
+
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.module.system.dal.dataobject.home.HomeServiceCategoryDO;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface HomeServiceCategoryMapper extends BaseMapperX<HomeServiceCategoryDO> {
+}
+

+ 9 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/home/HomeServiceItemMapper.java

@@ -0,0 +1,9 @@
+package cn.iocoder.yudao.module.system.dal.mysql.home;
+
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.module.system.dal.dataobject.home.HomeServiceItemDO;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface HomeServiceItemMapper extends BaseMapperX<HomeServiceItemDO> {
+}

+ 10 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/home/HomeServicePackageMapper.java

@@ -0,0 +1,10 @@
+package cn.iocoder.yudao.module.system.dal.mysql.home;
+
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.module.system.dal.dataobject.home.HomeServicePackageDO;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface HomeServicePackageMapper extends BaseMapperX<HomeServicePackageDO> {
+}
+

+ 2 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/BuildServiceImpl.java

@@ -878,7 +878,8 @@ public class BuildServiceImpl implements BuildService {
         Set<Long> orderedElderIdsToday;
         if (CollectionUtil.isNotEmpty(roomIds)) {
             List<ElderlyInfoDO> elderlyInfoList = elderlyInfoMapper.selectList(new LambdaQueryWrapperX<ElderlyInfoDO>()
-                    .in(ElderlyInfoDO::getRoomId, roomIds));
+                    .in(ElderlyInfoDO::getRoomId, roomIds)
+                    .eq(ElderlyInfoDO::getInStatus, 1));
             elderlyByRoomId = elderlyInfoList.stream()
                     .collect(Collectors.groupingBy(ElderlyInfoDO::getRoomId, LinkedHashMap::new, Collectors.toList()));
 

+ 7 - 7
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ElderlyConsumerVouchersServiceImpl.java

@@ -188,9 +188,9 @@ public class ElderlyConsumerVouchersServiceImpl implements ElderlyConsumerVouche
         orderItem.setCount(1);
         orderItem.setItemName("消费券抵扣");
         orderItem.setItemCategoryName("消费券");
-        orderItem.setPrice(createReqVO.getAmount().negate());
-        orderItem.setActualPrice(createReqVO.getAmount().negate());
-        orderItem.setTotalAmount(createReqVO.getAmount().negate());
+        orderItem.setPrice(createReqVO.getAmount());
+        orderItem.setActualPrice(createReqVO.getAmount());
+        orderItem.setTotalAmount(createReqVO.getAmount());
         orderItem.setRoundAmount(orderItem.getTotalAmount().setScale(0, RoundingMode.HALF_UP));
         orderItem.setRoundTwoDecimalAmount(orderItem.getTotalAmount().setScale(2, RoundingMode.HALF_UP));
         orderItem.setCreatedTime(new Date());
@@ -260,11 +260,11 @@ public class ElderlyConsumerVouchersServiceImpl implements ElderlyConsumerVouche
         orderItem.setRefundSettlementOrderId(refundSettlementOrderDO.getId());
         orderItem.setType(2);
         orderItem.setCount(1);
-        orderItem.setItemName("长护险抵扣");
+        orderItem.setItemName("消费券抵扣");
         orderItem.setRemarks(vouchers.getRemarks());
-        orderItem.setPrice(vouchers.getAmount().negate()); // 单价为负数表示抵扣
-        orderItem.setRefundAmount(vouchers.getAmount().negate()); // 实际单价
-        orderItem.setActualRefundAmount(vouchers.getAmount().negate()); // 总金额为负数表示抵扣
+        orderItem.setPrice(vouchers.getAmount()); // 单价为负数表示抵扣
+        orderItem.setRefundAmount(vouchers.getAmount()); // 实际单价
+        orderItem.setActualRefundAmount(vouchers.getAmount()); // 总金额为负数表示抵扣
         orderItem.setTenantId(vouchers.getTenantId());
         orderItem.setSourceItemId(vouchers.getId());
         refundSettlementOrderItemMapper.insert(orderItem);

+ 5 - 2
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ElderlyContractServiceImpl.java

@@ -421,10 +421,13 @@ public class ElderlyContractServiceImpl implements ElderlyContractService {
 
     @Override
     public List<ElderlyContractDO> getExpiringWithinOneMonthContracts() {
-        Date startDate = new Date();
         Calendar calendar = Calendar.getInstance();
-        calendar.setTime(startDate);
+        calendar.setTime(new Date());
+        calendar.set(Calendar.MILLISECOND, 0);
+        Date startDate = calendar.getTime();
+
         calendar.add(Calendar.MONTH, 1);
+        calendar.set(Calendar.MILLISECOND, 0);
         Date endDate = calendar.getTime();
 
         List<ElderlyContractDO> contracts = elderlyContractMapper.selectExpiringWithinOneMonth(

+ 12 - 12
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ExpenseSubsidyServiceImpl.java

@@ -183,9 +183,9 @@ public class ExpenseSubsidyServiceImpl implements ExpenseSubsidyService {
                 newOrderItem.setExpenseSource(BusinessConstants.LONG_TERM_CARE_INSURANCE);
                 newOrderItem.setCount(1);
                 newOrderItem.setItemName("长护险抵扣");
-                newOrderItem.setPrice(updateReqVO.getAmount().negate()); // 单价为负数表示抵扣
-                newOrderItem.setActualPrice(updateReqVO.getAmount().negate()); // 实际单价
-                newOrderItem.setTotalAmount(updateReqVO.getAmount().negate()); // 总金额为负数表示抵扣
+                newOrderItem.setPrice(updateReqVO.getAmount()); // 单价为负数表示抵扣
+                newOrderItem.setActualPrice(updateReqVO.getAmount()); // 实际单价
+                newOrderItem.setTotalAmount(updateReqVO.getAmount()); // 总金额为负数表示抵扣
                 newOrderItem.setRoundAmount(newOrderItem.getTotalAmount().setScale(0, RoundingMode.HALF_UP));
                 newOrderItem.setRoundTwoDecimalAmount(newOrderItem.getTotalAmount().setScale(2, RoundingMode.HALF_UP));
                 newOrderItem.setCreatedTime(new Date());
@@ -208,9 +208,9 @@ public class ExpenseSubsidyServiceImpl implements ExpenseSubsidyService {
                 BigDecimal oldTotalAmount = orderItem.getTotalAmount();
 
                 // 更新费用项金额(负数表示抵扣)
-                orderItem.setPrice(updateReqVO.getAmount().negate());
-                orderItem.setActualPrice(updateReqVO.getAmount().negate());
-                orderItem.setTotalAmount(updateReqVO.getAmount().negate());
+                orderItem.setPrice(updateReqVO.getAmount());
+                orderItem.setActualPrice(updateReqVO.getAmount());
+                orderItem.setTotalAmount(updateReqVO.getAmount());
                 orderItem.setRoundAmount(orderItem.getTotalAmount().setScale(0, RoundingMode.HALF_UP));
                 orderItem.setRoundTwoDecimalAmount(orderItem.getTotalAmount().setScale(2, RoundingMode.HALF_UP));
 
@@ -455,9 +455,9 @@ public class ExpenseSubsidyServiceImpl implements ExpenseSubsidyService {
             orderItem.setExpenseSource(BusinessConstants.LONG_TERM_CARE_INSURANCE);
             orderItem.setCount(1);
             orderItem.setItemName("长护险抵扣");
-            orderItem.setPrice(createReqVO.getAmount().negate()); // 单价为负数表示抵扣
-            orderItem.setActualPrice(createReqVO.getAmount().negate()); // 实际单价
-            orderItem.setTotalAmount(createReqVO.getAmount().negate()); // 总金额为负数表示抵扣
+            orderItem.setPrice(createReqVO.getAmount()); // 单价为负数表示抵扣
+            orderItem.setActualPrice(createReqVO.getAmount()); // 实际单价
+            orderItem.setTotalAmount(createReqVO.getAmount()); // 总金额为负数表示抵扣
             orderItem.setRoundAmount(orderItem.getTotalAmount().setScale(0, RoundingMode.HALF_UP));
             orderItem.setRoundTwoDecimalAmount(orderItem.getTotalAmount().setScale(2, RoundingMode.HALF_UP));
             orderItem.setCreatedTime(new Date());
@@ -532,9 +532,9 @@ public class ExpenseSubsidyServiceImpl implements ExpenseSubsidyService {
             orderItem.setCount(1);
             orderItem.setItemName("长护险抵扣");
             orderItem.setRemarks(expenseSubsidy.getRemarks());
-            orderItem.setPrice(expenseSubsidy.getAmount().negate()); // 单价为负数表示抵扣
-            orderItem.setRefundAmount(expenseSubsidy.getAmount().negate()); // 实际单价
-            orderItem.setActualRefundAmount(expenseSubsidy.getAmount().negate()); // 总金额为负数表示抵扣
+            orderItem.setPrice(expenseSubsidy.getAmount()); // 单价为负数表示抵扣
+            orderItem.setRefundAmount(expenseSubsidy.getAmount()); // 实际单价
+            orderItem.setActualRefundAmount(expenseSubsidy.getAmount()); // 总金额为负数表示抵扣
             orderItem.setTenantId(expenseSubsidy.getTenantId());
             orderItem.setSourceItemId(expenseSubsidy.getId());
             refundSettlementOrderItemMapper.insert(orderItem);

+ 22 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/home/HomeServiceCategoryService.java

@@ -0,0 +1,22 @@
+package cn.iocoder.yudao.module.system.service.home;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceCategoryPageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceCategoryPageRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceCategoryRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceCategorySaveReqVO;
+
+public interface HomeServiceCategoryService {
+
+    Long createHomeServiceCategory(HomeServiceCategorySaveReqVO createReqVO);
+
+    void updateHomeServiceCategory(HomeServiceCategorySaveReqVO updateReqVO);
+
+    void deleteHomeServiceCategory(Long id);
+
+    HomeServiceCategoryRespVO getHomeServiceCategory(Long id);
+
+    PageResult<HomeServiceCategoryPageRespVO> getHomeServiceCategoryPage(HomeServiceCategoryPageReqVO pageReqVO);
+}
+
+

+ 71 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/home/HomeServiceCategoryServiceImpl.java

@@ -0,0 +1,71 @@
+package cn.iocoder.yudao.module.system.service.home;
+
+import cn.hutool.core.collection.CollUtil;
+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.controller.admin.home.vo.HomeServiceCategoryPageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceCategoryPageRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceCategoryRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceCategorySaveReqVO;
+import cn.iocoder.yudao.module.system.dal.dataobject.home.HomeServiceCategoryDO;
+import cn.iocoder.yudao.module.system.dal.mysql.home.HomeServiceCategoryMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+@Validated
+public class HomeServiceCategoryServiceImpl implements HomeServiceCategoryService {
+
+    @Resource
+    private HomeServiceCategoryMapper homeServiceCategoryMapper;
+
+    @Override
+    public Long createHomeServiceCategory(HomeServiceCategorySaveReqVO createReqVO) {
+        HomeServiceCategoryDO categoryDO = BeanUtils.toBean(createReqVO, HomeServiceCategoryDO.class);
+        homeServiceCategoryMapper.insert(categoryDO);
+        return categoryDO.getId();
+    }
+
+    @Override
+    public void updateHomeServiceCategory(HomeServiceCategorySaveReqVO updateReqVO) {
+        HomeServiceCategoryDO categoryDO = BeanUtils.toBean(updateReqVO, HomeServiceCategoryDO.class);
+        homeServiceCategoryMapper.updateById(categoryDO);
+    }
+
+    @Override
+    public void deleteHomeServiceCategory(Long id) {
+        homeServiceCategoryMapper.deleteById(id);
+    }
+
+    @Override
+    public HomeServiceCategoryRespVO getHomeServiceCategory(Long id) {
+        return BeanUtils.toBean(homeServiceCategoryMapper.selectById(id), HomeServiceCategoryRespVO.class);
+    }
+
+    @Override
+    public PageResult<HomeServiceCategoryPageRespVO> getHomeServiceCategoryPage(HomeServiceCategoryPageReqVO pageReqVO) {
+        LambdaQueryWrapperX<HomeServiceCategoryDO> query = new LambdaQueryWrapperX<HomeServiceCategoryDO>()
+                .eqIfPresent(HomeServiceCategoryDO::getSuperiorId, pageReqVO.getSuperiorId())
+                .likeIfPresent(HomeServiceCategoryDO::getName, pageReqVO.getName())
+                .eqIfPresent(HomeServiceCategoryDO::getTenantId, pageReqVO.getTenantId())
+                .inIfPresent(HomeServiceCategoryDO::getTenantId, pageReqVO.getTenantIds())
+                .orderByDesc(HomeServiceCategoryDO::getId);
+
+        List<HomeServiceCategoryDO> list = homeServiceCategoryMapper.selectList(query);
+        if (CollUtil.isEmpty(list)) {
+            return PageResult.empty();
+        }
+        long total = list.size();
+        int fromIndex = Math.max((pageReqVO.getPageNo() - 1) * pageReqVO.getPageSize(), 0);
+        if (fromIndex >= total) {
+            return PageResult.empty(total);
+        }
+        int toIndex = Math.min(fromIndex + pageReqVO.getPageSize(), list.size());
+        List<HomeServiceCategoryPageRespVO> pageList = BeanUtils.toBean(list.subList(fromIndex, toIndex), HomeServiceCategoryPageRespVO.class);
+        return new PageResult<>(pageList, total);
+    }
+}

+ 22 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/home/HomeServiceItemService.java

@@ -0,0 +1,22 @@
+package cn.iocoder.yudao.module.system.service.home;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceItemPageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceItemPageRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceItemRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceItemSaveReqVO;
+
+public interface HomeServiceItemService {
+
+    Long createHomeServiceItem(HomeServiceItemSaveReqVO createReqVO);
+
+    void updateHomeServiceItem(HomeServiceItemSaveReqVO updateReqVO);
+
+    void deleteHomeServiceItem(Long id);
+
+    HomeServiceItemRespVO getHomeServiceItem(Long id);
+
+    PageResult<HomeServiceItemPageRespVO> getHomeServiceItemPage(HomeServiceItemPageReqVO pageReqVO);
+}
+
+

+ 72 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/home/HomeServiceItemServiceImpl.java

@@ -0,0 +1,72 @@
+package cn.iocoder.yudao.module.system.service.home;
+
+import cn.hutool.core.collection.CollUtil;
+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.controller.admin.home.vo.HomeServiceItemPageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceItemPageRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceItemRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceItemSaveReqVO;
+import cn.iocoder.yudao.module.system.dal.dataobject.home.HomeServiceItemDO;
+import cn.iocoder.yudao.module.system.dal.mysql.home.HomeServiceItemMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+@Validated
+public class HomeServiceItemServiceImpl implements HomeServiceItemService {
+
+    @Resource
+    private HomeServiceItemMapper homeServiceItemMapper;
+
+    @Override
+    public Long createHomeServiceItem(HomeServiceItemSaveReqVO createReqVO) {
+        HomeServiceItemDO itemDO = BeanUtils.toBean(createReqVO, HomeServiceItemDO.class);
+        homeServiceItemMapper.insert(itemDO);
+        return itemDO.getId();
+    }
+
+    @Override
+    public void updateHomeServiceItem(HomeServiceItemSaveReqVO updateReqVO) {
+        HomeServiceItemDO itemDO = BeanUtils.toBean(updateReqVO, HomeServiceItemDO.class);
+        homeServiceItemMapper.updateById(itemDO);
+    }
+
+    @Override
+    public void deleteHomeServiceItem(Long id) {
+        homeServiceItemMapper.deleteById(id);
+    }
+
+    @Override
+    public HomeServiceItemRespVO getHomeServiceItem(Long id) {
+        return BeanUtils.toBean(homeServiceItemMapper.selectById(id), HomeServiceItemRespVO.class);
+    }
+
+    @Override
+    public PageResult<HomeServiceItemPageRespVO> getHomeServiceItemPage(HomeServiceItemPageReqVO pageReqVO) {
+        LambdaQueryWrapperX<HomeServiceItemDO> query = new LambdaQueryWrapperX<HomeServiceItemDO>()
+                .eqIfPresent(HomeServiceItemDO::getCategoryId, pageReqVO.getCategoryId())
+                .likeIfPresent(HomeServiceItemDO::getItemName, pageReqVO.getItemName())
+                .eqIfPresent(HomeServiceItemDO::getStatus, pageReqVO.getStatus())
+                .eqIfPresent(HomeServiceItemDO::getTenantId, pageReqVO.getTenantId())
+                .inIfPresent(HomeServiceItemDO::getTenantId, pageReqVO.getTenantIds())
+                .orderByDesc(HomeServiceItemDO::getId);
+
+        List<HomeServiceItemDO> list = homeServiceItemMapper.selectList(query);
+        if (CollUtil.isEmpty(list)) {
+            return PageResult.empty();
+        }
+        long total = list.size();
+        int fromIndex = Math.max((pageReqVO.getPageNo() - 1) * pageReqVO.getPageSize(), 0);
+        if (fromIndex >= total) {
+            return PageResult.empty(total);
+        }
+        int toIndex = Math.min(fromIndex + pageReqVO.getPageSize(), list.size());
+        List<HomeServiceItemPageRespVO> pageList = BeanUtils.toBean(list.subList(fromIndex, toIndex), HomeServiceItemPageRespVO.class);
+        return new PageResult<>(pageList, total);
+    }
+}

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

@@ -0,0 +1,19 @@
+package cn.iocoder.yudao.module.system.service.home;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServicePackagePageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServicePackageRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServicePackageSaveReqVO;
+
+public interface HomeServicePackageService {
+
+    Long createHomeServicePackage(HomeServicePackageSaveReqVO createReqVO);
+
+    void updateHomeServicePackage(HomeServicePackageSaveReqVO updateReqVO);
+
+    void deleteHomeServicePackage(Long id);
+
+    HomeServicePackageRespVO getHomeServicePackage(Long id);
+
+    PageResult<HomeServicePackageRespVO> getHomeServicePackagePage(HomeServicePackagePageReqVO pageReqVO);
+}

+ 73 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/home/HomeServicePackageServiceImpl.java

@@ -0,0 +1,73 @@
+package cn.iocoder.yudao.module.system.service.home;
+
+import cn.hutool.core.collection.CollUtil;
+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.controller.admin.home.vo.HomeServicePackagePageReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServicePackageRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServicePackageSaveReqVO;
+import cn.iocoder.yudao.module.system.dal.dataobject.home.HomeServicePackageDO;
+import cn.iocoder.yudao.module.system.dal.mysql.home.HomeServicePackageMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+@Validated
+public class HomeServicePackageServiceImpl implements HomeServicePackageService {
+
+    @Resource
+    private HomeServicePackageMapper homeServicePackageMapper;
+
+    @Override
+    public Long createHomeServicePackage(HomeServicePackageSaveReqVO createReqVO) {
+        HomeServicePackageDO packageDO = BeanUtils.toBean(createReqVO, HomeServicePackageDO.class);
+        homeServicePackageMapper.insert(packageDO);
+        return packageDO.getId();
+    }
+
+    @Override
+    public void updateHomeServicePackage(HomeServicePackageSaveReqVO updateReqVO) {
+        HomeServicePackageDO packageDO = BeanUtils.toBean(updateReqVO, HomeServicePackageDO.class);
+        homeServicePackageMapper.updateById(packageDO);
+    }
+
+    @Override
+    public void deleteHomeServicePackage(Long id) {
+        homeServicePackageMapper.deleteById(id);
+    }
+
+    @Override
+    public HomeServicePackageRespVO getHomeServicePackage(Long id) {
+        return BeanUtils.toBean(homeServicePackageMapper.selectById(id), HomeServicePackageRespVO.class);
+    }
+
+    @Override
+    public PageResult<HomeServicePackageRespVO> getHomeServicePackagePage(HomeServicePackagePageReqVO pageReqVO) {
+        LambdaQueryWrapperX<HomeServicePackageDO> query = new LambdaQueryWrapperX<HomeServicePackageDO>()
+                .eqIfPresent(HomeServicePackageDO::getCategoryId, pageReqVO.getCategoryId())
+                .likeIfPresent(HomeServicePackageDO::getPackageName, pageReqVO.getPackageName())
+                .eqIfPresent(HomeServicePackageDO::getStatus, pageReqVO.getStatus())
+                .eqIfPresent(HomeServicePackageDO::getTenantId, pageReqVO.getTenantId())
+                .inIfPresent(HomeServicePackageDO::getTenantId, pageReqVO.getTenantIds())
+                .orderByDesc(HomeServicePackageDO::getId);
+
+        List<HomeServicePackageDO> list = homeServicePackageMapper.selectList(query);
+        if (CollUtil.isEmpty(list)) {
+            return PageResult.empty();
+        }
+        long total = list.size();
+        int fromIndex = Math.max((pageReqVO.getPageNo() - 1) * pageReqVO.getPageSize(), 0);
+        if (fromIndex >= total) {
+            return PageResult.empty(total);
+        }
+        int toIndex = Math.min(fromIndex + pageReqVO.getPageSize(), list.size());
+        List<HomeServicePackageRespVO> pageList = BeanUtils.toBean(list.subList(fromIndex, toIndex), HomeServicePackageRespVO.class);
+        return new PageResult<>(pageList, total);
+    }
+}
+
+

+ 37 - 0
yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/HomeServiceItemMapper.xml

@@ -0,0 +1,37 @@
+<?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.home.HomeServiceItemMapper">
+
+    <select id="selectPageWithCategory" resultType="cn.iocoder.yudao.module.system.controller.admin.home.vo.HomeServiceItemPageRespVO">
+        select
+            i.id,
+            i.category_id as categoryId,
+            c.name as categoryName,
+            i.item_name as itemName,
+            i.icon,
+            i.summarize,
+            i.detail,
+            i.amount,
+            i.status,
+            i.cost_type as costType,
+            i.is_deduct_elder_fee as isDeductElderFee,
+            i.commission_type as commissionType,
+            i.commission_number as commissionNumber,
+            i.is_deduct_volunteer_fee as isDeductVolunteerFee,
+            i.point,
+            i.is_follow_up_visit as isFollowUpVisit,
+            i.is_check_drug_contraindications as isCheckDrugContraindications,
+            i.content,
+            i.tenant_id as tenantId,
+            i.create_time as createTime,
+            i.update_time as updateTime,
+            i.creator,
+            i.updater
+        from home_service_item i
+        left join home_service_category c on c.id = i.category_id
+        where 1 = 1
+    </select>
+
+</mapper>
+
+

+ 2 - 2
yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/HomeServiceMemberMapper.xml

@@ -18,7 +18,7 @@
             m.update_time as updateTime,
             m.creator,
             m.updater
-        from home_service_memeber m
+        from home_service_member m
         left join home_service_area a on a.id = m.service_area_id
         left join home_service_department d on d.id = m.service_dept_id
         where 1 = 1
@@ -65,7 +65,7 @@
             m.update_time as updateTime,
             m.creator,
             m.updater
-        from home_service_memeber m
+        from home_service_member m
         left join home_service_area a on a.id = m.service_area_id
         left join home_service_department d on d.id = m.service_dept_id
         where m.id = #{id}