From 9f2c4658a044c479c9cb3600e2d66013d5aa2cc7 Mon Sep 17 00:00:00 2001 From: yuyongle <1150359267@qq.com> Date: Fri, 18 Jul 2025 09:21:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=B4=B9=E7=94=A8=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CostCarChargeController.java | 106 ++++++++++++ .../controller/CostHouseChargeController.java | 106 ++++++++++++ .../controller/CostItemsController.java | 106 ++++++++++++ .../controller/CostMeterTypeController.java | 106 ++++++++++++ .../controller/CostMeterWaterController.java | 106 ++++++++++++ .../controller/CostPayFeeAuditController.java | 106 ++++++++++++ .../CostReturnPayFeeController.java | 106 ++++++++++++ .../controller/MachineController.java | 3 +- .../property/domain/CostCarCharge.java | 82 ++++++++++ .../property/domain/CostHouseCharge.java | 83 ++++++++++ .../dromara/property/domain/CostItems.java | 96 +++++++++++ .../property/domain/CostMeterType.java | 51 ++++++ .../property/domain/CostMeterWater.java | 79 +++++++++ .../property/domain/CostPayFeeAudit.java | 84 ++++++++++ .../property/domain/CostReturnPayFee.java | 83 ++++++++++ .../org/dromara/property/domain/Machine.java | 4 +- .../property/domain/bo/CostCarChargeBo.java | 84 ++++++++++ .../property/domain/bo/CostHouseChargeBo.java | 84 ++++++++++ .../property/domain/bo/CostItemsBo.java | 99 ++++++++++++ .../property/domain/bo/CostMeterTypeBo.java | 52 ++++++ .../property/domain/bo/CostMeterWaterBo.java | 86 ++++++++++ .../property/domain/bo/CostPayFeeAuditBo.java | 92 +++++++++++ .../domain/bo/CostReturnPayFeeBo.java | 87 ++++++++++ .../dromara/property/domain/bo/MachineBo.java | 4 +- .../property/domain/vo/CostCarChargeVo.java | 101 ++++++++++++ .../property/domain/vo/CostHouseChargeVo.java | 100 ++++++++++++ .../property/domain/vo/CostItemsVo.java | 118 ++++++++++++++ .../property/domain/vo/CostMeterTypeVo.java | 62 +++++++ .../property/domain/vo/CostMeterWaterVo.java | 91 +++++++++++ .../property/domain/vo/CostPayFeeAuditVo.java | 98 +++++++++++ .../domain/vo/CostReturnPayFeeVo.java | 96 +++++++++++ .../property/domain/vo/MachineDetailVo.java | 126 +++++++++++++++ .../vo/MachineMaintainTaskDetailVo.java | 5 +- .../dromara/property/domain/vo/MachineVo.java | 3 +- .../property/mapper/CostCarChargeMapper.java | 17 ++ .../mapper/CostHouseChargeMapper.java | 17 ++ .../property/mapper/CostItemsMapper.java | 17 ++ .../property/mapper/CostMeterTypeMapper.java | 17 ++ .../property/mapper/CostMeterWaterMapper.java | 17 ++ .../mapper/CostPayFeeAuditMapper.java | 17 ++ .../mapper/CostReturnPayFeeMapper.java | 16 ++ .../MachineMaintainTaskDetailMapper.java | 3 +- .../property/mapper/MachineMapper.java | 4 +- .../service/ICostCarChargeService.java | 69 ++++++++ .../service/ICostHouseChargeService.java | 69 ++++++++ .../property/service/ICostItemsService.java | 67 ++++++++ .../service/ICostMeterTypeService.java | 69 ++++++++ .../service/ICostMeterWaterService.java | 69 ++++++++ .../service/ICostPayFeeAuditService.java | 67 ++++++++ .../service/ICostReturnPayFeeService.java | 68 ++++++++ .../property/service/IMachineService.java | 3 +- .../impl/CostCarChargeServiceImpl.java | 140 ++++++++++++++++ .../impl/CostHouseChargeServiceImpl.java | 140 ++++++++++++++++ .../service/impl/CostItemsServiceImpl.java | 144 +++++++++++++++++ .../impl/CostMeterTypeServiceImpl.java | 134 +++++++++++++++ .../impl/CostMeterWaterServiceImpl.java | 139 ++++++++++++++++ .../impl/CostPayFeeAuditServiceImpl.java | 140 ++++++++++++++++ .../impl/CostReturnPayFeeServiceImpl.java | 140 ++++++++++++++++ .../impl/MachineLocationServiceImpl.java | 48 +++++- .../MachineMaintainTaskDetailServiceImpl.java | 45 +++--- .../service/impl/MachineServiceImpl.java | 23 ++- .../property/tasks/InspectionTasks.java | 74 ++++----- .../dromara/property/tasks/MachineTasks.java | 153 ++++++++++++++++++ 63 files changed, 4549 insertions(+), 72 deletions(-) create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostCarChargeController.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostHouseChargeController.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostItemsController.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostMeterTypeController.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostMeterWaterController.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostPayFeeAuditController.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostReturnPayFeeController.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostCarCharge.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostHouseCharge.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostItems.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostMeterType.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostMeterWater.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostPayFeeAudit.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostReturnPayFee.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostCarChargeBo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostHouseChargeBo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostItemsBo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostMeterTypeBo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostMeterWaterBo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostPayFeeAuditBo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostReturnPayFeeBo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostCarChargeVo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostHouseChargeVo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostItemsVo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostMeterTypeVo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostMeterWaterVo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostPayFeeAuditVo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostReturnPayFeeVo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/MachineDetailVo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostCarChargeMapper.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostHouseChargeMapper.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostItemsMapper.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostMeterTypeMapper.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostMeterWaterMapper.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostPayFeeAuditMapper.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostReturnPayFeeMapper.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostCarChargeService.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostHouseChargeService.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostItemsService.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostMeterTypeService.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostMeterWaterService.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostPayFeeAuditService.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostReturnPayFeeService.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostCarChargeServiceImpl.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostHouseChargeServiceImpl.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostItemsServiceImpl.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostMeterTypeServiceImpl.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostMeterWaterServiceImpl.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostPayFeeAuditServiceImpl.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostReturnPayFeeServiceImpl.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/MachineTasks.java diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostCarChargeController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostCarChargeController.java new file mode 100644 index 00000000..b469a15c --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostCarChargeController.java @@ -0,0 +1,106 @@ +package org.dromara.property.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.property.domain.vo.CostCarChargeVo; +import org.dromara.property.domain.bo.CostCarChargeBo; +import org.dromara.property.service.ICostCarChargeService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 费用-车辆收费 + * 前端访问路由地址为:/property/carCharge + * + * @author mocheng + * @date 2025-07-17 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/carCharge") +public class CostCarChargeController extends BaseController { + + private final ICostCarChargeService costCarChargeService; + + /** + * 查询费用-车辆收费列表 + */ + @SaCheckPermission("property:carCharge:list") + @GetMapping("/list") + public TableDataInfo list(CostCarChargeBo bo, PageQuery pageQuery) { + return costCarChargeService.queryPageList(bo, pageQuery); + } + + /** + * 导出费用-车辆收费列表 + */ + @SaCheckPermission("property:carCharge:export") + @Log(title = "费用-车辆收费", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(CostCarChargeBo bo, HttpServletResponse response) { + List list = costCarChargeService.queryList(bo); + ExcelUtil.exportExcel(list, "费用-车辆收费", CostCarChargeVo.class, response); + } + + /** + * 获取费用-车辆收费详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("property:carCharge:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return R.ok(costCarChargeService.queryById(id)); + } + + /** + * 新增费用-车辆收费 + */ + @SaCheckPermission("property:carCharge:add") + @Log(title = "费用-车辆收费", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody CostCarChargeBo bo) { + return toAjax(costCarChargeService.insertByBo(bo)); + } + + /** + * 修改费用-车辆收费 + */ + @SaCheckPermission("property:carCharge:edit") + @Log(title = "费用-车辆收费", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody CostCarChargeBo bo) { + return toAjax(costCarChargeService.updateByBo(bo)); + } + + /** + * 删除费用-车辆收费 + * + * @param ids 主键串 + */ + @SaCheckPermission("property:carCharge:remove") + @Log(title = "费用-车辆收费", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("ids") Long[] ids) { + return toAjax(costCarChargeService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostHouseChargeController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostHouseChargeController.java new file mode 100644 index 00000000..d519800a --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostHouseChargeController.java @@ -0,0 +1,106 @@ +package org.dromara.property.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.property.domain.vo.CostHouseChargeVo; +import org.dromara.property.domain.bo.CostHouseChargeBo; +import org.dromara.property.service.ICostHouseChargeService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 房屋收费 + * 前端访问路由地址为:/property/houseCharge + * + * @author mocheng + * @date 2025-07-17 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/houseCharge") +public class CostHouseChargeController extends BaseController { + + private final ICostHouseChargeService costHouseChargeService; + + /** + * 查询房屋收费列表 + */ + @SaCheckPermission("property:houseCharge:list") + @GetMapping("/list") + public TableDataInfo list(CostHouseChargeBo bo, PageQuery pageQuery) { + return costHouseChargeService.queryPageList(bo, pageQuery); + } + + /** + * 导出房屋收费列表 + */ + @SaCheckPermission("property:houseCharge:export") + @Log(title = "房屋收费", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(CostHouseChargeBo bo, HttpServletResponse response) { + List list = costHouseChargeService.queryList(bo); + ExcelUtil.exportExcel(list, "房屋收费", CostHouseChargeVo.class, response); + } + + /** + * 获取房屋收费详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("property:houseCharge:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return R.ok(costHouseChargeService.queryById(id)); + } + + /** + * 新增房屋收费 + */ + @SaCheckPermission("property:houseCharge:add") + @Log(title = "房屋收费", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody CostHouseChargeBo bo) { + return toAjax(costHouseChargeService.insertByBo(bo)); + } + + /** + * 修改房屋收费 + */ + @SaCheckPermission("property:houseCharge:edit") + @Log(title = "房屋收费", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody CostHouseChargeBo bo) { + return toAjax(costHouseChargeService.updateByBo(bo)); + } + + /** + * 删除房屋收费 + * + * @param ids 主键串 + */ + @SaCheckPermission("property:houseCharge:remove") + @Log(title = "房屋收费", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("ids") Long[] ids) { + return toAjax(costHouseChargeService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostItemsController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostItemsController.java new file mode 100644 index 00000000..b18ac483 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostItemsController.java @@ -0,0 +1,106 @@ +package org.dromara.property.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.property.domain.vo.CostItemsVo; +import org.dromara.property.domain.bo.CostItemsBo; +import org.dromara.property.service.ICostItemsService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 费用项设置 + * 前端访问路由地址为:/property/costItems + * + * @author mocheng + * @date 2025-07-17 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/costItems") +public class CostItemsController extends BaseController { + + private final ICostItemsService costItemsService; + + /** + * 查询费用项设置列表 + */ + @SaCheckPermission("property:costItems:list") + @GetMapping("/list") + public TableDataInfo list(CostItemsBo bo, PageQuery pageQuery) { + return costItemsService.queryPageList(bo, pageQuery); + } + + /** + * 导出费用项设置列表 + */ + @SaCheckPermission("property:costItems:export") + @Log(title = "费用项设置", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(CostItemsBo bo, HttpServletResponse response) { + List list = costItemsService.queryList(bo); + ExcelUtil.exportExcel(list, "费用项设置", CostItemsVo.class, response); + } + + /** + * 获取费用项设置详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("property:costItems:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return R.ok(costItemsService.queryById(id)); + } + + /** + * 新增费用项设置 + */ + @SaCheckPermission("property:costItems:add") + @Log(title = "费用项设置", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody CostItemsBo bo) { + return toAjax(costItemsService.insertByBo(bo)); + } + + /** + * 修改费用项设置 + */ + @SaCheckPermission("property:costItems:edit") + @Log(title = "费用项设置", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody CostItemsBo bo) { + return toAjax(costItemsService.updateByBo(bo)); + } + + /** + * 删除费用项设置 + * + * @param ids 主键串 + */ + @SaCheckPermission("property:costItems:remove") + @Log(title = "费用项设置", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("ids") Long[] ids) { + return toAjax(costItemsService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostMeterTypeController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostMeterTypeController.java new file mode 100644 index 00000000..b74c3e94 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostMeterTypeController.java @@ -0,0 +1,106 @@ +package org.dromara.property.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.property.domain.vo.CostMeterTypeVo; +import org.dromara.property.domain.bo.CostMeterTypeBo; +import org.dromara.property.service.ICostMeterTypeService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 抄表类型 + * 前端访问路由地址为:/property/meterReadingType + * + * @author mocheng + * @date 2025-07-17 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/meterReadingType") +public class CostMeterTypeController extends BaseController { + + private final ICostMeterTypeService costMeterTypeService; + + /** + * 查询抄表类型列表 + */ + @SaCheckPermission("property:meterReadingType:list") + @GetMapping("/list") + public TableDataInfo list(CostMeterTypeBo bo, PageQuery pageQuery) { + return costMeterTypeService.queryPageList(bo, pageQuery); + } + + /** + * 导出抄表类型列表 + */ + @SaCheckPermission("property:meterReadingType:export") + @Log(title = "抄表类型", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(CostMeterTypeBo bo, HttpServletResponse response) { + List list = costMeterTypeService.queryList(bo); + ExcelUtil.exportExcel(list, "抄表类型", CostMeterTypeVo.class, response); + } + + /** + * 获取抄表类型详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("property:meterReadingType:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return R.ok(costMeterTypeService.queryById(id)); + } + + /** + * 新增抄表类型 + */ + @SaCheckPermission("property:meterReadingType:add") + @Log(title = "抄表类型", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody CostMeterTypeBo bo) { + return toAjax(costMeterTypeService.insertByBo(bo)); + } + + /** + * 修改抄表类型 + */ + @SaCheckPermission("property:meterReadingType:edit") + @Log(title = "抄表类型", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody CostMeterTypeBo bo) { + return toAjax(costMeterTypeService.updateByBo(bo)); + } + + /** + * 删除抄表类型 + * + * @param ids 主键串 + */ + @SaCheckPermission("property:meterReadingType:remove") + @Log(title = "抄表类型", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("ids") Long[] ids) { + return toAjax(costMeterTypeService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostMeterWaterController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostMeterWaterController.java new file mode 100644 index 00000000..f63a9fb4 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostMeterWaterController.java @@ -0,0 +1,106 @@ +package org.dromara.property.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.property.domain.vo.CostMeterWaterVo; +import org.dromara.property.domain.bo.CostMeterWaterBo; +import org.dromara.property.service.ICostMeterWaterService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 费用-水电抄 + * 前端访问路由地址为:/system/meterWater + * + * @author mocheng + * @date 2025-07-17 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/meterWater") +public class CostMeterWaterController extends BaseController { + + private final ICostMeterWaterService costMeterWaterService; + + /** + * 查询费用-水电抄列表 + */ + @SaCheckPermission("system:meterWater:list") + @GetMapping("/list") + public TableDataInfo list(CostMeterWaterBo bo, PageQuery pageQuery) { + return costMeterWaterService.queryPageList(bo, pageQuery); + } + + /** + * 导出费用-水电抄列表 + */ + @SaCheckPermission("system:meterWater:export") + @Log(title = "费用-水电抄", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(CostMeterWaterBo bo, HttpServletResponse response) { + List list = costMeterWaterService.queryList(bo); + ExcelUtil.exportExcel(list, "费用-水电抄", CostMeterWaterVo.class, response); + } + + /** + * 获取费用-水电抄详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("system:meterWater:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return R.ok(costMeterWaterService.queryById(id)); + } + + /** + * 新增费用-水电抄 + */ + @SaCheckPermission("system:meterWater:add") + @Log(title = "费用-水电抄", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody CostMeterWaterBo bo) { + return toAjax(costMeterWaterService.insertByBo(bo)); + } + + /** + * 修改费用-水电抄 + */ + @SaCheckPermission("system:meterWater:edit") + @Log(title = "费用-水电抄", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody CostMeterWaterBo bo) { + return toAjax(costMeterWaterService.updateByBo(bo)); + } + + /** + * 删除费用-水电抄 + * + * @param ids 主键串 + */ + @SaCheckPermission("system:meterWater:remove") + @Log(title = "费用-水电抄", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("ids") Long[] ids) { + return toAjax(costMeterWaterService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostPayFeeAuditController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostPayFeeAuditController.java new file mode 100644 index 00000000..91264539 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostPayFeeAuditController.java @@ -0,0 +1,106 @@ +package org.dromara.property.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.property.domain.bo.CostPayFeeAuditBo; +import org.dromara.property.domain.vo.CostPayFeeAuditVo; +import org.dromara.property.service.ICostPayFeeAuditService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 费用-缴费审核 + * 前端访问路由地址为:/system/payFeeAudit + * + * @author mocheng + * @date 2025-07-17 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/payFeeAudit") +public class CostPayFeeAuditController extends BaseController { + + private final ICostPayFeeAuditService costPayFeeAuditService; + + /** + * 查询费用-缴费审核列表 + */ + @SaCheckPermission("system:payFeeAudit:list") + @GetMapping("/list") + public TableDataInfo list(CostPayFeeAuditBo bo, PageQuery pageQuery) { + return costPayFeeAuditService.queryPageList(bo, pageQuery); + } + + /** + * 导出费用-缴费审核列表 + */ + @SaCheckPermission("system:payFeeAudit:export") + @Log(title = "费用-缴费审核", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(CostPayFeeAuditBo bo, HttpServletResponse response) { + List list = costPayFeeAuditService.queryList(bo); + ExcelUtil.exportExcel(list, "费用-缴费审核", CostPayFeeAuditVo.class, response); + } + + /** + * 获取费用-缴费审核详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("system:payFeeAudit:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return R.ok(costPayFeeAuditService.queryById(id)); + } + + /** + * 新增费用-缴费审核 + */ + @SaCheckPermission("system:payFeeAudit:add") + @Log(title = "费用-缴费审核", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody CostPayFeeAuditBo bo) { + return toAjax(costPayFeeAuditService.insertByBo(bo)); + } + + /** + * 修改费用-缴费审核 + */ + @SaCheckPermission("system:payFeeAudit:edit") + @Log(title = "费用-缴费审核", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody CostPayFeeAuditBo bo) { + return toAjax(costPayFeeAuditService.updateByBo(bo)); + } + + /** + * 删除费用-缴费审核 + * + * @param ids 主键串 + */ + @SaCheckPermission("system:payFeeAudit:remove") + @Log(title = "费用-缴费审核", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("ids") Long[] ids) { + return toAjax(costPayFeeAuditService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostReturnPayFeeController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostReturnPayFeeController.java new file mode 100644 index 00000000..79c7e7bb --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/CostReturnPayFeeController.java @@ -0,0 +1,106 @@ +package org.dromara.property.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.property.domain.bo.CostReturnPayFeeBo; +import org.dromara.property.domain.vo.CostReturnPayFeeVo; +import org.dromara.property.service.ICostReturnPayFeeService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 费用-抄类型 + * 前端访问路由地址为:/system/returnPayFee + * + * @author mocheng + * @date 2025-07-17 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/returnPayFee") +public class CostReturnPayFeeController extends BaseController { + + private final ICostReturnPayFeeService costReturnPayFeeService; + + /** + * 查询费用-抄类型列表 + */ + @SaCheckPermission("system:returnPayFee:list") + @GetMapping("/list") + public TableDataInfo list(CostReturnPayFeeBo bo, PageQuery pageQuery) { + return costReturnPayFeeService.queryPageList(bo, pageQuery); + } + + /** + * 导出费用-抄类型列表 + */ + @SaCheckPermission("system:returnPayFee:export") + @Log(title = "费用-抄类型", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(CostReturnPayFeeBo bo, HttpServletResponse response) { + List list = costReturnPayFeeService.queryList(bo); + ExcelUtil.exportExcel(list, "费用-抄类型", CostReturnPayFeeVo.class, response); + } + + /** + * 获取费用-抄类型详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("system:returnPayFee:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return R.ok(costReturnPayFeeService.queryById(id)); + } + + /** + * 新增费用-抄类型 + */ + @SaCheckPermission("system:returnPayFee:add") + @Log(title = "费用-抄类型", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody CostReturnPayFeeBo bo) { + return toAjax(costReturnPayFeeService.insertByBo(bo)); + } + + /** + * 修改费用-抄类型 + */ + @SaCheckPermission("system:returnPayFee:edit") + @Log(title = "费用-抄类型", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody CostReturnPayFeeBo bo) { + return toAjax(costReturnPayFeeService.updateByBo(bo)); + } + + /** + * 删除费用-抄类型 + * + * @param ids 主键串 + */ + @SaCheckPermission("system:returnPayFee:remove") + @Log(title = "费用-抄类型", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("ids") Long[] ids) { + return toAjax(costReturnPayFeeService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/MachineController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/MachineController.java index 4b937304..017bab3a 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/MachineController.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/MachineController.java @@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.property.domain.vo.MachineDetailVo; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -64,7 +65,7 @@ public class MachineController extends BaseController { */ @SaCheckPermission("property:machine:query") @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") + public R getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) { return R.ok(machineService.queryById(id)); } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostCarCharge.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostCarCharge.java new file mode 100644 index 00000000..13aaf1e8 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostCarCharge.java @@ -0,0 +1,82 @@ +package org.dromara.property.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; + +import java.io.Serial; + +/** + * 费用-车辆收费对象 cost_car_charge + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("cost_car_charge") +public class CostCarCharge extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 车牌号 + */ + private String carNumber; + + /** + * 业主 + */ + private Long personId; + + /** + * 楼层 + */ + private Long floorId; + + /** + * 车位 + */ + private String location; + + /** + * 状态 + */ + private String state; + + /** + * 收费项目 + */ + private Long costItemsId; + + /** + * 计费开始时间 + */ + private Date starTime; + + /** + * 计费结束时间 + */ + private Date endTime; + + /** + * 说明 + */ + private String remark; + + /** + * 搜索值 + */ + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostHouseCharge.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostHouseCharge.java new file mode 100644 index 00000000..1aac5ee1 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostHouseCharge.java @@ -0,0 +1,83 @@ +package org.dromara.property.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 房屋收费对象 cost_house_charge + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("cost_house_charge") +public class CostHouseCharge extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 房屋 + */ + private Long roomId; + + /** + * 收费项目 + */ + private Long costItemsId; + + /** + * 支付方式 + */ + private String payType; + + /** + * 支付周期 + */ + private String chargeCycle; + + /** + * 应收金额 + */ + private Long amountReceivable; + + /** + * 计费开始时间 + */ + private Date startTime; + + /** + * 计费结束时间 + */ + private Date endTime; + + /** + * 状态 + */ + private String state; + + /** + * 说明 + */ + private String remark; + + /** + * 搜索值 + */ + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostItems.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostItems.java new file mode 100644 index 00000000..68e65aa0 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostItems.java @@ -0,0 +1,96 @@ +package org.dromara.property.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 费用项设置对象 costItemSetting + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("costItemSetting") +public class CostItems extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 费用类型 + */ + private String costType; + + /** + * 收费项目 + */ + private String chargeItem; + + /** + * 费用标识 + */ + private String costMark; + + /** + * 付费类型 + */ + private String paymentType; + + /** + * 缴费周期(月) + */ + private Long chargeCycle; + + /** + * 是否手机缴费 + */ + private String isMobilePay; + + /** + * 进位方式 + */ + private String roundingMode; + + /** + * 保留小数 + */ + private String currencyDecimals; + + /** + * 启用状态 + */ + private String state; + + /** + * 计算公式 + */ + private String formula; + + /** + * 计费单价 + */ + private Long unitPrice; + + /** + * 附加费 + */ + private Long surcharge; + + /** + * 搜索值 + */ + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostMeterType.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostMeterType.java new file mode 100644 index 00000000..6d208417 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostMeterType.java @@ -0,0 +1,51 @@ +package org.dromara.property.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 抄表类型对象 meterReadingType + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("meterReadingType") +public class CostMeterType extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 抄表类型 + */ + private String meterType; + + /** + * 名称 + */ + private String name; + + /** + * 说明 + */ + private String remark; + + /** + * 搜索值 + */ + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostMeterWater.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostMeterWater.java new file mode 100644 index 00000000..d3250a20 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostMeterWater.java @@ -0,0 +1,79 @@ +package org.dromara.property.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 费用-水电抄对象 cost_meter_water + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("cost_meter_water") +public class CostMeterWater extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 费用类型id + */ + private Long itemId; + + /** + * 抄表类型id + */ + private Long meterTypeId; + + /** + * 对象名称 + */ + private String objName; + + /** + * 本期度数 + */ + private String curDegrees; + + /** + * 上期度数 + */ + private String preDegrees; + + /** + * 上期读表时间 + + */ + private Date preReadingTime; + + /** + * 本期读表时间 + */ + private Date curReadingTime; + + /** + * 备注 + */ + private String remark; + + /** + * 搜索值 + */ + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostPayFeeAudit.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostPayFeeAudit.java new file mode 100644 index 00000000..d4f3a67e --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostPayFeeAudit.java @@ -0,0 +1,84 @@ +package org.dromara.property.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; + +import java.io.Serial; + +/** + * 费用-缴费审核对象 cost_pay_fee_audit + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("cost_pay_fee_audit") +public class CostPayFeeAudit extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 房屋收费id + */ + private Long houseChargeId; + + /** + * 费用项目id + */ + private Long itemId; + + /** + * 缴费开始时间 + */ + private Date startTime; + + /** + * 缴费结束时间 + */ + private Date endTime; + + /** + * 实付金额 + */ + private String receivedAmount; + + /** + * 应收金额 + */ + private Long receivableAmount; + + /** + * 缴费时间 + + + */ + private Date payTime; + + /** + * 审核状态 + */ + private String state; + + /** + * 备注 + */ + private String remark; + + /** + * 搜索值 + */ + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostReturnPayFee.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostReturnPayFee.java new file mode 100644 index 00000000..97cb8805 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CostReturnPayFee.java @@ -0,0 +1,83 @@ +package org.dromara.property.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 费用-抄类型对象 cost_return_pay_fee + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("cost_return_pay_fee") +public class CostReturnPayFee extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 退款单号 + */ + private String returnNo; + + /** + * 支付单号 + */ + private String payNo; + + /** + * 退款原因 + */ + private String reason; + + /** + * 费用类型id + */ + private Long itemId; + + /** + * 业主id + */ + private Long userId; + + /** + * 支付金额 + */ + private Long payAcount; + + /** + * 支付时间 + */ + private Date payTime; + + /** + * 退费状态 + */ + private String state; + + /** + * 说明 + */ + private String remark; + + /** + * 搜索值 + */ + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/Machine.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/Machine.java index 68253f6a..d1636a76 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/Machine.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/Machine.java @@ -4,6 +4,8 @@ import org.dromara.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @@ -57,7 +59,7 @@ public class Machine extends TenantEntity { /** * 采购价格 */ - private Long purchasePrice; + private BigDecimal purchasePrice; /** * 启用时间 diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostCarChargeBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostCarChargeBo.java new file mode 100644 index 00000000..1dfdc309 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostCarChargeBo.java @@ -0,0 +1,84 @@ +package org.dromara.property.domain.bo; + +import org.dromara.property.domain.CostCarCharge; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 费用-车辆收费业务对象 cost_car_charge + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = CostCarCharge.class, reverseConvertGenerate = false) +public class CostCarChargeBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 车牌号 + */ + @NotBlank(message = "车牌号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String carNumber; + + /** + * 业主 + */ + private Long personId; + + /** + * 楼层 + */ + @NotNull(message = "楼层不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long floorId; + + /** + * 车位 + */ + private String location; + + /** + * 状态 + */ + private String state; + + /** + * 收费项目 + */ + private Long costItemsId; + + /** + * 计费开始时间 + */ + private Date starTime; + + /** + * 计费结束时间 + */ + private Date endTime; + + /** + * 说明 + */ + private String remark; + + /** + * 搜索值 + */ + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostHouseChargeBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostHouseChargeBo.java new file mode 100644 index 00000000..322041f3 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostHouseChargeBo.java @@ -0,0 +1,84 @@ +package org.dromara.property.domain.bo; + +import org.dromara.property.domain.CostHouseCharge; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 房屋收费业务对象 cost_house_charge + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = CostHouseCharge.class, reverseConvertGenerate = false) +public class CostHouseChargeBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 房屋 + */ + @NotNull(message = "房屋不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long roomId; + + /** + * 收费项目 + */ + @NotNull(message = "收费项目不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long costItemsId; + + /** + * 支付方式 + */ + private String payType; + + /** + * 支付周期 + */ + private String chargeCycle; + + /** + * 应收金额 + */ + private Long amountReceivable; + + /** + * 计费开始时间 + */ + private Date startTime; + + /** + * 计费结束时间 + */ + private Date endTime; + + /** + * 状态 + */ + private String state; + + /** + * 说明 + */ + private String remark; + + /** + * 搜索值 + */ + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostItemsBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostItemsBo.java new file mode 100644 index 00000000..78e745fc --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostItemsBo.java @@ -0,0 +1,99 @@ +package org.dromara.property.domain.bo; + +import org.dromara.property.domain.CostItems; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 费用项设置业务对象 costItemSetting + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = CostItems.class, reverseConvertGenerate = false) +public class CostItemsBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 费用类型 + */ + @NotBlank(message = "费用类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String costType; + + /** + * 收费项目 + */ + @NotBlank(message = "收费项目不能为空", groups = { AddGroup.class, EditGroup.class }) + private String chargeItem; + + /** + * 费用标识 + */ + @NotBlank(message = "费用标识不能为空", groups = { AddGroup.class, EditGroup.class }) + private String costMark; + + /** + * 付费类型 + */ + @NotBlank(message = "付费类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String paymentType; + + /** + * 缴费周期(月) + */ + private Long chargeCycle; + + /** + * 是否手机缴费 + */ + private String isMobilePay; + + /** + * 进位方式 + */ + private String roundingMode; + + /** + * 保留小数 + */ + private String currencyDecimals; + + /** + * 启用状态 + */ + private String state; + + /** + * 计算公式 + */ + private String formula; + + /** + * 计费单价 + */ + private Long unitPrice; + + /** + * 附加费 + */ + private Long surcharge; + + /** + * 搜索值 + */ + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostMeterTypeBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostMeterTypeBo.java new file mode 100644 index 00000000..94a6b59a --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostMeterTypeBo.java @@ -0,0 +1,52 @@ +package org.dromara.property.domain.bo; + +import org.dromara.property.domain.CostMeterType; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 抄表类型业务对象 meterReadingType + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = CostMeterType.class, reverseConvertGenerate = false) +public class CostMeterTypeBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 抄表类型 + */ + @NotBlank(message = "抄表类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String meterType; + + /** + * 名称 + */ + @NotBlank(message = "名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String name; + + /** + * 说明 + */ + private String remark; + + /** + * 搜索值 + */ + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostMeterWaterBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostMeterWaterBo.java new file mode 100644 index 00000000..8232ab36 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostMeterWaterBo.java @@ -0,0 +1,86 @@ +package org.dromara.property.domain.bo; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.property.domain.CostMeterWater; + +import java.util.Date; + +/** + * 费用-水电抄业务对象 cost_meter_water + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = CostMeterWater.class, reverseConvertGenerate = false) +public class CostMeterWaterBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 费用类型id + */ + @NotNull(message = "费用类型id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long itemId; + + /** + * 抄表类型id + */ + @NotNull(message = "抄表类型id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long meterTypeId; + + /** + * 对象名称 + */ + @NotBlank(message = "对象名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String objName; + + /** + * 本期度数 + */ + @NotBlank(message = "本期度数不能为空", groups = { AddGroup.class, EditGroup.class }) + private String curDegrees; + + /** + * 上期度数 + */ + @NotBlank(message = "上期度数不能为空", groups = { AddGroup.class, EditGroup.class }) + private String preDegrees; + + /** + * 上期读表时间 + + */ + @NotNull(message = "上期读表时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date preReadingTime; + + /** + * 本期读表时间 + */ + @NotNull(message = "本期读表时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date curReadingTime; + + /** + * 备注 + */ + private String remark; + + /** + * 搜索值 + */ + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostPayFeeAuditBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostPayFeeAuditBo.java new file mode 100644 index 00000000..22612abd --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostPayFeeAuditBo.java @@ -0,0 +1,92 @@ +package org.dromara.property.domain.bo; + + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.property.domain.CostPayFeeAudit; + +import java.util.Date; + +/** + * 费用-缴费审核业务对象 cost_pay_fee_audit + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = CostPayFeeAudit.class, reverseConvertGenerate = false) +public class CostPayFeeAuditBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 房屋收费id + */ + @NotNull(message = "房屋收费id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long houseChargeId; + + /** + * 费用项目id + */ + @NotNull(message = "费用项目id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long itemId; + + /** + * 缴费开始时间 + */ + @NotNull(message = "缴费开始时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date startTime; + + /** + * 缴费结束时间 + */ + @NotNull(message = "缴费结束时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date endTime; + + /** + * 实付金额 + */ + private String receivedAmount; + + /** + * 应收金额 + */ + @NotNull(message = "应收金额不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long receivableAmount; + + /** + * 缴费时间 + + + */ + @NotNull(message = "缴费时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date payTime; + + /** + * 审核状态 + */ + @NotBlank(message = "审核状态不能为空", groups = { AddGroup.class, EditGroup.class }) + private String state; + + /** + * 备注 + */ + private String remark; + + /** + * 搜索值 + */ + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostReturnPayFeeBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostReturnPayFeeBo.java new file mode 100644 index 00000000..a8c6407f --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CostReturnPayFeeBo.java @@ -0,0 +1,87 @@ +package org.dromara.property.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.property.domain.CostReturnPayFee; + +import java.util.Date; + +/** + * 费用-抄类型业务对象 cost_return_pay_fee + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = CostReturnPayFee.class, reverseConvertGenerate = false) +public class CostReturnPayFeeBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 退款单号 + */ + @NotBlank(message = "退款单号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String returnNo; + + /** + * 支付单号 + */ + private String payNo; + + /** + * 退款原因 + */ + @NotBlank(message = "退款原因不能为空", groups = { AddGroup.class, EditGroup.class }) + private String reason; + + /** + * 费用类型id + */ + @NotNull(message = "费用类型id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long itemId; + + /** + * 业主id + */ + @NotNull(message = "业主id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 支付金额 + */ + private Long payAcount; + + /** + * 支付时间 + */ + @NotNull(message = "支付时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date payTime; + + /** + * 退费状态 + */ + private String state; + + /** + * 说明 + */ + private String remark; + + /** + * 搜索值 + */ + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/MachineBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/MachineBo.java index 53b9925c..d81d850b 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/MachineBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/MachineBo.java @@ -8,6 +8,8 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; + +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @@ -61,7 +63,7 @@ public class MachineBo extends BaseEntity { * 采购价格 */ @NotNull(message = "采购价格不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long purchasePrice; + private BigDecimal purchasePrice; /** * 启用时间 diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostCarChargeVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostCarChargeVo.java new file mode 100644 index 00000000..e80f6600 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostCarChargeVo.java @@ -0,0 +1,101 @@ +package org.dromara.property.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.property.domain.CostCarCharge; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 费用-车辆收费视图对象 cost_car_charge + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = CostCarCharge.class) +public class CostCarChargeVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 车牌号 + */ + @ExcelProperty(value = "车牌号") + private String carNumber; + + /** + * 业主 + */ + @ExcelProperty(value = "业主") + private Long personId; + + /** + * 楼层 + */ + @ExcelProperty(value = "楼层") + private Long floorId; + + /** + * 车位 + */ + @ExcelProperty(value = "车位") + private String location; + + /** + * 状态 + */ + @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "wy_cszt") + private String state; + + /** + * 收费项目 + */ + @ExcelProperty(value = "收费项目") + private Long costItemsId; + + /** + * 计费开始时间 + */ + @ExcelProperty(value = "计费开始时间") + private Date starTime; + + /** + * 计费结束时间 + */ + @ExcelProperty(value = "计费结束时间") + private Date endTime; + + /** + * 说明 + */ + @ExcelProperty(value = "说明") + private String remark; + + /** + * 搜索值 + */ + @ExcelProperty(value = "搜索值") + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostHouseChargeVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostHouseChargeVo.java new file mode 100644 index 00000000..1b412adc --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostHouseChargeVo.java @@ -0,0 +1,100 @@ +package org.dromara.property.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.property.domain.CostHouseCharge; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 房屋收费视图对象 cost_house_charge + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = CostHouseCharge.class) +public class CostHouseChargeVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 房屋 + */ + @ExcelProperty(value = "房屋") + private Long roomId; + + /** + * 收费项目 + */ + @ExcelProperty(value = "收费项目") + private Long costItemsId; + + /** + * 支付方式 + */ + @ExcelProperty(value = "支付方式") + private String payType; + + /** + * 支付周期 + */ + @ExcelProperty(value = "支付周期") + private String chargeCycle; + + /** + * 应收金额 + */ + @ExcelProperty(value = "应收金额") + private Long amountReceivable; + + /** + * 计费开始时间 + */ + @ExcelProperty(value = "计费开始时间") + private Date startTime; + + /** + * 计费结束时间 + */ + @ExcelProperty(value = "计费结束时间") + private Date endTime; + + /** + * 状态 + */ + @ExcelProperty(value = "状态") + private String state; + + /** + * 说明 + */ + @ExcelProperty(value = "说明") + private String remark; + + /** + * 搜索值 + */ + @ExcelProperty(value = "搜索值") + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostItemsVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostItemsVo.java new file mode 100644 index 00000000..455980f7 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostItemsVo.java @@ -0,0 +1,118 @@ +package org.dromara.property.domain.vo; + +import org.dromara.property.domain.CostItems; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 费用项设置视图对象 costItemSetting + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = CostItems.class) +public class CostItemsVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 费用类型 + */ + @ExcelProperty(value = "费用类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "pro_expense_type") + private String costType; + + /** + * 收费项目 + */ + @ExcelProperty(value = "收费项目") + private String chargeItem; + + /** + * 费用标识 + */ + @ExcelProperty(value = "费用标识") + private String costMark; + + /** + * 付费类型 + */ + @ExcelProperty(value = "付费类型") + private String paymentType; + + /** + * 缴费周期(月) + */ + @ExcelProperty(value = "缴费周期", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "月=") + private Long chargeCycle; + + /** + * 是否手机缴费 + */ + @ExcelProperty(value = "是否手机缴费") + private String isMobilePay; + + /** + * 进位方式 + */ + @ExcelProperty(value = "进位方式") + private String roundingMode; + + /** + * 保留小数 + */ + @ExcelProperty(value = "保留小数") + private String currencyDecimals; + + /** + * 启用状态 + */ + @ExcelProperty(value = "启用状态") + private String state; + + /** + * 计算公式 + */ + @ExcelProperty(value = "计算公式") + private String formula; + + /** + * 计费单价 + */ + @ExcelProperty(value = "计费单价") + private Long unitPrice; + + /** + * 附加费 + */ + @ExcelProperty(value = "附加费") + private Long surcharge; + + /** + * 搜索值 + */ + @ExcelProperty(value = "搜索值") + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostMeterTypeVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostMeterTypeVo.java new file mode 100644 index 00000000..ebce0fa5 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostMeterTypeVo.java @@ -0,0 +1,62 @@ +package org.dromara.property.domain.vo; + +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.property.domain.CostMeterType; + +import java.io.Serial; +import java.io.Serializable; + + + +/** + * 抄表类型视图对象 meterReadingType + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = CostMeterType.class) +public class CostMeterTypeVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 抄表类型 + */ + @ExcelProperty(value = "抄表类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "meter_reading_type") + private String meterType; + + /** + * 名称 + */ + @ExcelProperty(value = "名称") + private String name; + + /** + * 说明 + */ + @ExcelProperty(value = "说明") + private String remark; + + /** + * 搜索值 + */ + @ExcelProperty(value = "搜索值") + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostMeterWaterVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostMeterWaterVo.java new file mode 100644 index 00000000..0b72aa74 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostMeterWaterVo.java @@ -0,0 +1,91 @@ +package org.dromara.property.domain.vo; + +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.property.domain.CostMeterWater; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 费用-水电抄视图对象 cost_meter_water + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = CostMeterWater.class) +public class CostMeterWaterVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 费用类型id + */ + @ExcelProperty(value = "费用类型id") + private Long itemId; + + /** + * 抄表类型id + */ + @ExcelProperty(value = "抄表类型id") + private Long meterTypeId; + + /** + * 对象名称 + */ + @ExcelProperty(value = "对象名称") + private String objName; + + /** + * 本期度数 + */ + @ExcelProperty(value = "本期度数") + private String curDegrees; + + /** + * 上期度数 + */ + @ExcelProperty(value = "上期度数") + private String preDegrees; + + /** + * 上期读表时间 + + */ + @ExcelProperty(value = "上期读表时间") + private Date preReadingTime; + + /** + * 本期读表时间 + */ + @ExcelProperty(value = "本期读表时间") + private Date curReadingTime; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 搜索值 + */ + @ExcelProperty(value = "搜索值") + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostPayFeeAuditVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostPayFeeAuditVo.java new file mode 100644 index 00000000..3d2c6341 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostPayFeeAuditVo.java @@ -0,0 +1,98 @@ +package org.dromara.property.domain.vo; + +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.property.domain.CostPayFeeAudit; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 费用-缴费审核视图对象 cost_pay_fee_audit + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = CostPayFeeAudit.class) +public class CostPayFeeAuditVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 房屋收费id + */ + @ExcelProperty(value = "房屋收费id") + private Long houseChargeId; + + /** + * 费用项目id + */ + @ExcelProperty(value = "费用项目id") + private Long itemId; + + /** + * 缴费开始时间 + */ + @ExcelProperty(value = "缴费开始时间") + private Date startTime; + + /** + * 缴费结束时间 + */ + @ExcelProperty(value = "缴费结束时间") + private Date endTime; + + /** + * 实付金额 + */ + @ExcelProperty(value = "实付金额") + private String receivedAmount; + + /** + * 应收金额 + */ + @ExcelProperty(value = "应收金额") + private Long receivableAmount; + + /** + * 缴费时间 + + + */ + @ExcelProperty(value = "缴费时间") + private Date payTime; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String state; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 搜索值 + */ + @ExcelProperty(value = "搜索值") + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostReturnPayFeeVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostReturnPayFeeVo.java new file mode 100644 index 00000000..cf03a1f6 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CostReturnPayFeeVo.java @@ -0,0 +1,96 @@ +package org.dromara.property.domain.vo; + +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.property.domain.CostReturnPayFee; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 费用-抄类型视图对象 cost_return_pay_fee + * + * @author mocheng + * @date 2025-07-17 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = CostReturnPayFee.class) +public class CostReturnPayFeeVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 退款单号 + */ + @ExcelProperty(value = "退款单号") + private String returnNo; + + /** + * 支付单号 + */ + @ExcelProperty(value = "支付单号") + private String payNo; + + /** + * 退款原因 + */ + @ExcelProperty(value = "退款原因") + private String reason; + + /** + * 费用类型id + */ + @ExcelProperty(value = "费用类型id") + private Long itemId; + + /** + * 业主id + */ + @ExcelProperty(value = "业主id") + private Long userId; + + /** + * 支付金额 + */ + @ExcelProperty(value = "支付金额") + private Long payAcount; + + /** + * 支付时间 + */ + @ExcelProperty(value = "支付时间") + private Date payTime; + + /** + * 退费状态 + */ + @ExcelProperty(value = "退费状态") + private String state; + + /** + * 说明 + */ + @ExcelProperty(value = "说明") + private String remark; + + /** + * 搜索值 + */ + @ExcelProperty(value = "搜索值") + private String searchValue; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/MachineDetailVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/MachineDetailVo.java new file mode 100644 index 00000000..9970a2ce --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/MachineDetailVo.java @@ -0,0 +1,126 @@ +package org.dromara.property.domain.vo; + +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.property.domain.Machine; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + + +/** + * 设备列表视图对象 machine + * + * @author mocheng + * @date 2025-07-16 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = Machine.class) +public class MachineDetailVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 设备名称 + */ + @ExcelProperty(value = "设备名称") + private String machineName; + + /** + * 设备编码 + */ + @ExcelProperty(value = "设备编码") + private String machineCode; + + /** + * 设备品牌 + */ + @ExcelProperty(value = "设备品牌") + private String machineBrand; + + /** + * 设备类型 + */ + @ExcelProperty(value = "设备类型") + private Long machineTypeId; + /** + * 设备类型名称 + */ + @ExcelProperty(value = "设备类型名称") + private String machineTypeName; + + /** + * 位置详情 + */ + @ExcelProperty(value = "位置详情") + private Long locationId; + /** + * 位置详情名称 + */ + @ExcelProperty(value = "位置详情名称") + private String locationName; + + /** + * 采购价格 + */ + @ExcelProperty(value = "采购价格") + private BigDecimal purchasePrice; + + /** + * 启用时间 + */ + @ExcelProperty(value = "启用时间") + private Date activationTime; + + /** + * 保修截至时间 + */ + @ExcelProperty(value = "保修截至时间") + private Date deadline; + + /** + * 使用年限(年) + */ + @ExcelProperty(value = "使用年限", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "年=") + private Long serviceLife; + + /** + * 保修周期 + */ + @ExcelProperty(value = "保修周期") + private String maintenanceCycle; + + /** + * 使用状态 + */ + @ExcelProperty(value = "使用状态") + private String state; + + /** + * 责任人 + */ + @ExcelProperty(value = "责任人") + private Long personId; + /** + * 责任人名称 + */ + @ExcelProperty(value = "责任人名称") + private String personName; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/MachineMaintainTaskDetailVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/MachineMaintainTaskDetailVo.java index 0d4034db..e0d6aed3 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/MachineMaintainTaskDetailVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/MachineMaintainTaskDetailVo.java @@ -39,7 +39,10 @@ public class MachineMaintainTaskDetailVo implements Serializable { */ @ExcelProperty(value = "任务id") private Long taskId; - + /** + * 任务编号 + */ + private String maintainTaskNo; /** * 位置编号 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/MachineVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/MachineVo.java index 3cf9bc25..edb1cafa 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/MachineVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/MachineVo.java @@ -1,5 +1,6 @@ package org.dromara.property.domain.vo; +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import org.dromara.property.domain.Machine; @@ -70,7 +71,7 @@ public class MachineVo implements Serializable { * 采购价格 */ @ExcelProperty(value = "采购价格") - private Long purchasePrice; + private BigDecimal purchasePrice; /** * 启用时间 diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostCarChargeMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostCarChargeMapper.java new file mode 100644 index 00000000..6ac28eb4 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostCarChargeMapper.java @@ -0,0 +1,17 @@ +package org.dromara.property.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.dromara.property.domain.CostCarCharge; +import org.dromara.property.domain.vo.CostCarChargeVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 费用-车辆收费Mapper接口 + * + * @author mocheng + * @date 2025-07-17 + */ +@Mapper +public interface CostCarChargeMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostHouseChargeMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostHouseChargeMapper.java new file mode 100644 index 00000000..4d22f46a --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostHouseChargeMapper.java @@ -0,0 +1,17 @@ +package org.dromara.property.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.dromara.property.domain.CostHouseCharge; +import org.dromara.property.domain.vo.CostHouseChargeVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 房屋收费Mapper接口 + * + * @author mocheng + * @date 2025-07-17 + */ +@Mapper +public interface CostHouseChargeMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostItemsMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostItemsMapper.java new file mode 100644 index 00000000..5019b702 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostItemsMapper.java @@ -0,0 +1,17 @@ +package org.dromara.property.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.dromara.property.domain.CostItems; +import org.dromara.property.domain.vo.CostItemsVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 费用项设置Mapper接口 + * + * @author mocheng + * @date 2025-07-17 + */ +@Mapper +public interface CostItemsMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostMeterTypeMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostMeterTypeMapper.java new file mode 100644 index 00000000..b30f6283 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostMeterTypeMapper.java @@ -0,0 +1,17 @@ +package org.dromara.property.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.dromara.property.domain.CostMeterType; +import org.dromara.property.domain.vo.CostMeterTypeVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 抄表类型Mapper接口 + * + * @author mocheng + * @date 2025-07-17 + */ +@Mapper +public interface CostMeterTypeMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostMeterWaterMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostMeterWaterMapper.java new file mode 100644 index 00000000..83486bf9 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostMeterWaterMapper.java @@ -0,0 +1,17 @@ +package org.dromara.property.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.dromara.property.domain.CostMeterWater; +import org.dromara.property.domain.vo.CostMeterWaterVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 费用-水电抄Mapper接口 + * + * @author mocheng + * @date 2025-07-17 + */ +@Mapper +public interface CostMeterWaterMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostPayFeeAuditMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostPayFeeAuditMapper.java new file mode 100644 index 00000000..dc74e2e1 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostPayFeeAuditMapper.java @@ -0,0 +1,17 @@ +package org.dromara.property.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.property.domain.CostPayFeeAudit; +import org.dromara.property.domain.vo.CostPayFeeAuditVo; + +/** + * 费用-缴费审核Mapper接口 + * + * @author mocheng + * @date 2025-07-17 + */ +@Mapper +public interface CostPayFeeAuditMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostReturnPayFeeMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostReturnPayFeeMapper.java new file mode 100644 index 00000000..e766c9a8 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CostReturnPayFeeMapper.java @@ -0,0 +1,16 @@ +package org.dromara.property.mapper; +import org.apache.ibatis.annotations.Mapper; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.property.domain.CostReturnPayFee; +import org.dromara.property.domain.vo.CostReturnPayFeeVo; + +/** + * 费用-抄类型Mapper接口 + * + * @author mocheng + * @date 2025-07-17 + */ +@Mapper +public interface CostReturnPayFeeMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/MachineMaintainTaskDetailMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/MachineMaintainTaskDetailMapper.java index 2b06b6bf..b4b2e4da 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/MachineMaintainTaskDetailMapper.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/MachineMaintainTaskDetailMapper.java @@ -1,5 +1,6 @@ package org.dromara.property.mapper; +import com.github.yulichang.base.MPJBaseMapper; import org.apache.ibatis.annotations.Mapper; import org.dromara.property.domain.MachineMaintainTaskDetail; import org.dromara.property.domain.vo.MachineMaintainTaskDetailVo; @@ -13,6 +14,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; * @date 2025-07-16 */ @Mapper -public interface MachineMaintainTaskDetailMapper extends BaseMapperPlus { +public interface MachineMaintainTaskDetailMapper extends MPJBaseMapper { } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/MachineMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/MachineMapper.java index 37599a42..378e4d7d 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/MachineMapper.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/MachineMapper.java @@ -1,5 +1,6 @@ package org.dromara.property.mapper; +import org.apache.ibatis.annotations.Mapper; import org.dromara.property.domain.Machine; import org.dromara.property.domain.vo.MachineVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; @@ -10,6 +11,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; * @author mocheng * @date 2025-07-16 */ -public interface MachineMapper extends BaseMapperPlus { +@Mapper +public interface MachineMapper extends BaseMapperPlus { } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostCarChargeService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostCarChargeService.java new file mode 100644 index 00000000..b4435f50 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostCarChargeService.java @@ -0,0 +1,69 @@ +package org.dromara.property.service; + +import org.dromara.property.domain.CostCarCharge; +import org.dromara.property.domain.vo.CostCarChargeVo; +import org.dromara.property.domain.bo.CostCarChargeBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 费用-车辆收费Service接口 + * + * @author mocheng + * @date 2025-07-17 + */ +public interface ICostCarChargeService { + + /** + * 查询费用-车辆收费 + * + * @param id 主键 + * @return 费用-车辆收费 + */ + CostCarChargeVo queryById(Long id); + + /** + * 分页查询费用-车辆收费列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 费用-车辆收费分页列表 + */ + TableDataInfo queryPageList(CostCarChargeBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的费用-车辆收费列表 + * + * @param bo 查询条件 + * @return 费用-车辆收费列表 + */ + List queryList(CostCarChargeBo bo); + + /** + * 新增费用-车辆收费 + * + * @param bo 费用-车辆收费 + * @return 是否新增成功 + */ + Boolean insertByBo(CostCarChargeBo bo); + + /** + * 修改费用-车辆收费 + * + * @param bo 费用-车辆收费 + * @return 是否修改成功 + */ + Boolean updateByBo(CostCarChargeBo bo); + + /** + * 校验并批量删除费用-车辆收费信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostHouseChargeService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostHouseChargeService.java new file mode 100644 index 00000000..7a413523 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostHouseChargeService.java @@ -0,0 +1,69 @@ +package org.dromara.property.service; + +import org.dromara.property.domain.CostHouseCharge; +import org.dromara.property.domain.vo.CostHouseChargeVo; +import org.dromara.property.domain.bo.CostHouseChargeBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 房屋收费Service接口 + * + * @author mocheng + * @date 2025-07-17 + */ +public interface ICostHouseChargeService { + + /** + * 查询房屋收费 + * + * @param id 主键 + * @return 房屋收费 + */ + CostHouseChargeVo queryById(Long id); + + /** + * 分页查询房屋收费列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 房屋收费分页列表 + */ + TableDataInfo queryPageList(CostHouseChargeBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的房屋收费列表 + * + * @param bo 查询条件 + * @return 房屋收费列表 + */ + List queryList(CostHouseChargeBo bo); + + /** + * 新增房屋收费 + * + * @param bo 房屋收费 + * @return 是否新增成功 + */ + Boolean insertByBo(CostHouseChargeBo bo); + + /** + * 修改房屋收费 + * + * @param bo 房屋收费 + * @return 是否修改成功 + */ + Boolean updateByBo(CostHouseChargeBo bo); + + /** + * 校验并批量删除房屋收费信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostItemsService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostItemsService.java new file mode 100644 index 00000000..3e3589e8 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostItemsService.java @@ -0,0 +1,67 @@ +package org.dromara.property.service; +import org.dromara.property.domain.vo.CostItemsVo; +import org.dromara.property.domain.bo.CostItemsBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 费用项设置Service接口 + * + * @author mocheng + * @date 2025-07-17 + */ +public interface ICostItemsService { + + /** + * 查询费用项设置 + * + * @param id 主键 + * @return 费用项设置 + */ + CostItemsVo queryById(Long id); + + /** + * 分页查询费用项设置列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 费用项设置分页列表 + */ + TableDataInfo queryPageList(CostItemsBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的费用项设置列表 + * + * @param bo 查询条件 + * @return 费用项设置列表 + */ + List queryList(CostItemsBo bo); + + /** + * 新增费用项设置 + * + * @param bo 费用项设置 + * @return 是否新增成功 + */ + Boolean insertByBo(CostItemsBo bo); + + /** + * 修改费用项设置 + * + * @param bo 费用项设置 + * @return 是否修改成功 + */ + Boolean updateByBo(CostItemsBo bo); + + /** + * 校验并批量删除费用项设置信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostMeterTypeService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostMeterTypeService.java new file mode 100644 index 00000000..a131c994 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostMeterTypeService.java @@ -0,0 +1,69 @@ +package org.dromara.property.service; + +import org.dromara.property.domain.CostMeterType; +import org.dromara.property.domain.vo.CostMeterTypeVo; +import org.dromara.property.domain.bo.CostMeterTypeBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 抄表类型Service接口 + * + * @author mocheng + * @date 2025-07-17 + */ +public interface ICostMeterTypeService { + + /** + * 查询抄表类型 + * + * @param id 主键 + * @return 抄表类型 + */ + CostMeterTypeVo queryById(Long id); + + /** + * 分页查询抄表类型列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 抄表类型分页列表 + */ + TableDataInfo queryPageList(CostMeterTypeBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的抄表类型列表 + * + * @param bo 查询条件 + * @return 抄表类型列表 + */ + List queryList(CostMeterTypeBo bo); + + /** + * 新增抄表类型 + * + * @param bo 抄表类型 + * @return 是否新增成功 + */ + Boolean insertByBo(CostMeterTypeBo bo); + + /** + * 修改抄表类型 + * + * @param bo 抄表类型 + * @return 是否修改成功 + */ + Boolean updateByBo(CostMeterTypeBo bo); + + /** + * 校验并批量删除抄表类型信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostMeterWaterService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostMeterWaterService.java new file mode 100644 index 00000000..e301107c --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostMeterWaterService.java @@ -0,0 +1,69 @@ +package org.dromara.property.service; + +import org.dromara.property.domain.CostMeterWater; +import org.dromara.property.domain.vo.CostMeterWaterVo; +import org.dromara.property.domain.bo.CostMeterWaterBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 费用-水电抄Service接口 + * + * @author mocheng + * @date 2025-07-17 + */ +public interface ICostMeterWaterService { + + /** + * 查询费用-水电抄 + * + * @param id 主键 + * @return 费用-水电抄 + */ + CostMeterWaterVo queryById(Long id); + + /** + * 分页查询费用-水电抄列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 费用-水电抄分页列表 + */ + TableDataInfo queryPageList(CostMeterWaterBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的费用-水电抄列表 + * + * @param bo 查询条件 + * @return 费用-水电抄列表 + */ + List queryList(CostMeterWaterBo bo); + + /** + * 新增费用-水电抄 + * + * @param bo 费用-水电抄 + * @return 是否新增成功 + */ + Boolean insertByBo(CostMeterWaterBo bo); + + /** + * 修改费用-水电抄 + * + * @param bo 费用-水电抄 + * @return 是否修改成功 + */ + Boolean updateByBo(CostMeterWaterBo bo); + + /** + * 校验并批量删除费用-水电抄信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostPayFeeAuditService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostPayFeeAuditService.java new file mode 100644 index 00000000..47cd6a76 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostPayFeeAuditService.java @@ -0,0 +1,67 @@ +package org.dromara.property.service; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.property.domain.bo.CostPayFeeAuditBo; +import org.dromara.property.domain.vo.CostPayFeeAuditVo; + +import java.util.Collection; +import java.util.List; + +/** + * 费用-缴费审核Service接口 + * + * @author mocheng + * @date 2025-07-17 + */ +public interface ICostPayFeeAuditService { + + /** + * 查询费用-缴费审核 + * + * @param id 主键 + * @return 费用-缴费审核 + */ + CostPayFeeAuditVo queryById(Long id); + + /** + * 分页查询费用-缴费审核列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 费用-缴费审核分页列表 + */ + TableDataInfo queryPageList(CostPayFeeAuditBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的费用-缴费审核列表 + * + * @param bo 查询条件 + * @return 费用-缴费审核列表 + */ + List queryList(CostPayFeeAuditBo bo); + + /** + * 新增费用-缴费审核 + * + * @param bo 费用-缴费审核 + * @return 是否新增成功 + */ + Boolean insertByBo(CostPayFeeAuditBo bo); + + /** + * 修改费用-缴费审核 + * + * @param bo 费用-缴费审核 + * @return 是否修改成功 + */ + Boolean updateByBo(CostPayFeeAuditBo bo); + + /** + * 校验并批量删除费用-缴费审核信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostReturnPayFeeService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostReturnPayFeeService.java new file mode 100644 index 00000000..d568da0c --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ICostReturnPayFeeService.java @@ -0,0 +1,68 @@ +package org.dromara.property.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.property.domain.bo.CostReturnPayFeeBo; +import org.dromara.property.domain.vo.CostReturnPayFeeVo; + +import java.util.Collection; +import java.util.List; + +/** + * 费用-抄类型Service接口 + * + * @author mocheng + * @date 2025-07-17 + */ +public interface ICostReturnPayFeeService { + + /** + * 查询费用-抄类型 + * + * @param id 主键 + * @return 费用-抄类型 + */ + CostReturnPayFeeVo queryById(Long id); + + /** + * 分页查询费用-抄类型列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 费用-抄类型分页列表 + */ + TableDataInfo queryPageList(CostReturnPayFeeBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的费用-抄类型列表 + * + * @param bo 查询条件 + * @return 费用-抄类型列表 + */ + List queryList(CostReturnPayFeeBo bo); + + /** + * 新增费用-抄类型 + * + * @param bo 费用-抄类型 + * @return 是否新增成功 + */ + Boolean insertByBo(CostReturnPayFeeBo bo); + + /** + * 修改费用-抄类型 + * + * @param bo 费用-抄类型 + * @return 是否修改成功 + */ + Boolean updateByBo(CostReturnPayFeeBo bo); + + /** + * 校验并批量删除费用-抄类型信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IMachineService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IMachineService.java index 62e4b855..a78e4c0d 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IMachineService.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IMachineService.java @@ -1,6 +1,7 @@ package org.dromara.property.service; import org.dromara.property.domain.Machine; +import org.dromara.property.domain.vo.MachineDetailVo; import org.dromara.property.domain.vo.MachineVo; import org.dromara.property.domain.bo.MachineBo; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -23,7 +24,7 @@ public interface IMachineService { * @param id 主键 * @return 设备列表 */ - MachineVo queryById(Long id); + MachineDetailVo queryById(Long id); /** * 分页查询设备列表列表 diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostCarChargeServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostCarChargeServiceImpl.java new file mode 100644 index 00000000..63893679 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostCarChargeServiceImpl.java @@ -0,0 +1,140 @@ +package org.dromara.property.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.dromara.property.domain.bo.CostCarChargeBo; +import org.dromara.property.domain.vo.CostCarChargeVo; +import org.dromara.property.domain.CostCarCharge; +import org.dromara.property.mapper.CostCarChargeMapper; +import org.dromara.property.service.ICostCarChargeService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 费用-车辆收费Service业务层处理 + * + * @author mocheng + * @date 2025-07-17 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class CostCarChargeServiceImpl implements ICostCarChargeService { + + private final CostCarChargeMapper baseMapper; + + /** + * 查询费用-车辆收费 + * + * @param id 主键 + * @return 费用-车辆收费 + */ + @Override + public CostCarChargeVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询费用-车辆收费列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 费用-车辆收费分页列表 + */ + @Override + public TableDataInfo queryPageList(CostCarChargeBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的费用-车辆收费列表 + * + * @param bo 查询条件 + * @return 费用-车辆收费列表 + */ + @Override + public List queryList(CostCarChargeBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(CostCarChargeBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(CostCarCharge::getId); + lqw.eq(StringUtils.isNotBlank(bo.getCarNumber()), CostCarCharge::getCarNumber, bo.getCarNumber()); + lqw.eq(bo.getPersonId() != null, CostCarCharge::getPersonId, bo.getPersonId()); + lqw.eq(bo.getFloorId() != null, CostCarCharge::getFloorId, bo.getFloorId()); + lqw.eq(StringUtils.isNotBlank(bo.getLocation()), CostCarCharge::getLocation, bo.getLocation()); + lqw.eq(StringUtils.isNotBlank(bo.getState()), CostCarCharge::getState, bo.getState()); + lqw.eq(bo.getCostItemsId() != null, CostCarCharge::getCostItemsId, bo.getCostItemsId()); + lqw.eq(bo.getStarTime() != null, CostCarCharge::getStarTime, bo.getStarTime()); + lqw.eq(bo.getEndTime() != null, CostCarCharge::getEndTime, bo.getEndTime()); + lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), CostCarCharge::getSearchValue, bo.getSearchValue()); + return lqw; + } + + /** + * 新增费用-车辆收费 + * + * @param bo 费用-车辆收费 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(CostCarChargeBo bo) { + CostCarCharge add = MapstructUtils.convert(bo, CostCarCharge.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改费用-车辆收费 + * + * @param bo 费用-车辆收费 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(CostCarChargeBo bo) { + CostCarCharge update = MapstructUtils.convert(bo, CostCarCharge.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(CostCarCharge entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除费用-车辆收费信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostHouseChargeServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostHouseChargeServiceImpl.java new file mode 100644 index 00000000..fb892c03 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostHouseChargeServiceImpl.java @@ -0,0 +1,140 @@ +package org.dromara.property.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.dromara.property.domain.bo.CostHouseChargeBo; +import org.dromara.property.domain.vo.CostHouseChargeVo; +import org.dromara.property.domain.CostHouseCharge; +import org.dromara.property.mapper.CostHouseChargeMapper; +import org.dromara.property.service.ICostHouseChargeService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 房屋收费Service业务层处理 + * + * @author mocheng + * @date 2025-07-17 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class CostHouseChargeServiceImpl implements ICostHouseChargeService { + + private final CostHouseChargeMapper baseMapper; + + /** + * 查询房屋收费 + * + * @param id 主键 + * @return 房屋收费 + */ + @Override + public CostHouseChargeVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询房屋收费列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 房屋收费分页列表 + */ + @Override + public TableDataInfo queryPageList(CostHouseChargeBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的房屋收费列表 + * + * @param bo 查询条件 + * @return 房屋收费列表 + */ + @Override + public List queryList(CostHouseChargeBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(CostHouseChargeBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(CostHouseCharge::getId); + lqw.eq(bo.getRoomId() != null, CostHouseCharge::getRoomId, bo.getRoomId()); + lqw.eq(bo.getCostItemsId() != null, CostHouseCharge::getCostItemsId, bo.getCostItemsId()); + lqw.eq(StringUtils.isNotBlank(bo.getPayType()), CostHouseCharge::getPayType, bo.getPayType()); + lqw.eq(StringUtils.isNotBlank(bo.getChargeCycle()), CostHouseCharge::getChargeCycle, bo.getChargeCycle()); + lqw.eq(bo.getAmountReceivable() != null, CostHouseCharge::getAmountReceivable, bo.getAmountReceivable()); + lqw.eq(bo.getStartTime() != null, CostHouseCharge::getStartTime, bo.getStartTime()); + lqw.eq(bo.getEndTime() != null, CostHouseCharge::getEndTime, bo.getEndTime()); + lqw.eq(StringUtils.isNotBlank(bo.getState()), CostHouseCharge::getState, bo.getState()); + lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), CostHouseCharge::getSearchValue, bo.getSearchValue()); + return lqw; + } + + /** + * 新增房屋收费 + * + * @param bo 房屋收费 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(CostHouseChargeBo bo) { + CostHouseCharge add = MapstructUtils.convert(bo, CostHouseCharge.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改房屋收费 + * + * @param bo 房屋收费 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(CostHouseChargeBo bo) { + CostHouseCharge update = MapstructUtils.convert(bo, CostHouseCharge.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(CostHouseCharge entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除房屋收费信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostItemsServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostItemsServiceImpl.java new file mode 100644 index 00000000..2b9e954e --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostItemsServiceImpl.java @@ -0,0 +1,144 @@ +package org.dromara.property.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.dromara.property.domain.bo.CostItemsBo; +import org.dromara.property.domain.vo.CostItemsVo; +import org.dromara.property.domain.CostItems; +import org.dromara.property.mapper.CostItemsMapper; +import org.dromara.property.service.ICostItemsService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 费用项设置Service业务层处理 + * + * @author mocheng + * @date 2025-07-17 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class CostItemsServiceImpl implements ICostItemsService { + + private final CostItemsMapper baseMapper; + + /** + * 查询费用项设置 + * + * @param id 主键 + * @return 费用项设置 + */ + @Override + public CostItemsVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询费用项设置列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 费用项设置分页列表 + */ + @Override + public TableDataInfo queryPageList(CostItemsBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的费用项设置列表 + * + * @param bo 查询条件 + * @return 费用项设置列表 + */ + @Override + public List queryList(CostItemsBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(CostItemsBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(CostItems::getId); + lqw.eq(StringUtils.isNotBlank(bo.getCostType()), CostItems::getCostType, bo.getCostType()); + lqw.eq(StringUtils.isNotBlank(bo.getChargeItem()), CostItems::getChargeItem, bo.getChargeItem()); + lqw.eq(StringUtils.isNotBlank(bo.getCostMark()), CostItems::getCostMark, bo.getCostMark()); + lqw.eq(StringUtils.isNotBlank(bo.getPaymentType()), CostItems::getPaymentType, bo.getPaymentType()); + lqw.eq(bo.getChargeCycle() != null, CostItems::getChargeCycle, bo.getChargeCycle()); + lqw.eq(StringUtils.isNotBlank(bo.getIsMobilePay()), CostItems::getIsMobilePay, bo.getIsMobilePay()); + lqw.eq(StringUtils.isNotBlank(bo.getRoundingMode()), CostItems::getRoundingMode, bo.getRoundingMode()); + lqw.eq(StringUtils.isNotBlank(bo.getCurrencyDecimals()), CostItems::getCurrencyDecimals, bo.getCurrencyDecimals()); + lqw.eq(StringUtils.isNotBlank(bo.getState()), CostItems::getState, bo.getState()); + lqw.eq(StringUtils.isNotBlank(bo.getFormula()), CostItems::getFormula, bo.getFormula()); + lqw.eq(bo.getUnitPrice() != null, CostItems::getUnitPrice, bo.getUnitPrice()); + lqw.eq(bo.getSurcharge() != null, CostItems::getSurcharge, bo.getSurcharge()); + lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), CostItems::getSearchValue, bo.getSearchValue()); + return lqw; + } + + /** + * 新增费用项设置 + * + * @param bo 费用项设置 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(CostItemsBo bo) { + CostItems add = MapstructUtils.convert(bo, CostItems.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改费用项设置 + * + * @param bo 费用项设置 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(CostItemsBo bo) { + CostItems update = MapstructUtils.convert(bo, CostItems.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(CostItems entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除费用项设置信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostMeterTypeServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostMeterTypeServiceImpl.java new file mode 100644 index 00000000..878c5b81 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostMeterTypeServiceImpl.java @@ -0,0 +1,134 @@ +package org.dromara.property.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.dromara.property.domain.bo.CostMeterTypeBo; +import org.dromara.property.domain.vo.CostMeterTypeVo; +import org.dromara.property.domain.CostMeterType; +import org.dromara.property.mapper.CostMeterTypeMapper; +import org.dromara.property.service.ICostMeterTypeService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 抄表类型Service业务层处理 + * + * @author mocheng + * @date 2025-07-17 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class CostMeterTypeServiceImpl implements ICostMeterTypeService { + + private final CostMeterTypeMapper baseMapper; + + /** + * 查询抄表类型 + * + * @param id 主键 + * @return 抄表类型 + */ + @Override + public CostMeterTypeVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询抄表类型列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 抄表类型分页列表 + */ + @Override + public TableDataInfo queryPageList(CostMeterTypeBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的抄表类型列表 + * + * @param bo 查询条件 + * @return 抄表类型列表 + */ + @Override + public List queryList(CostMeterTypeBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(CostMeterTypeBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(CostMeterType::getId); + lqw.eq(StringUtils.isNotBlank(bo.getMeterType()), CostMeterType::getMeterType, bo.getMeterType()); + lqw.like(StringUtils.isNotBlank(bo.getName()), CostMeterType::getName, bo.getName()); + lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), CostMeterType::getSearchValue, bo.getSearchValue()); + return lqw; + } + + /** + * 新增抄表类型 + * + * @param bo 抄表类型 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(CostMeterTypeBo bo) { + CostMeterType add = MapstructUtils.convert(bo, CostMeterType.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改抄表类型 + * + * @param bo 抄表类型 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(CostMeterTypeBo bo) { + CostMeterType update = MapstructUtils.convert(bo, CostMeterType.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(CostMeterType entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除抄表类型信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostMeterWaterServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostMeterWaterServiceImpl.java new file mode 100644 index 00000000..c8f8dcb1 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostMeterWaterServiceImpl.java @@ -0,0 +1,139 @@ +package org.dromara.property.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.dromara.property.domain.bo.CostMeterWaterBo; +import org.dromara.property.domain.vo.CostMeterWaterVo; +import org.dromara.property.domain.CostMeterWater; +import org.dromara.property.mapper.CostMeterWaterMapper; +import org.dromara.property.service.ICostMeterWaterService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 费用-水电抄Service业务层处理 + * + * @author mocheng + * @date 2025-07-17 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class CostMeterWaterServiceImpl implements ICostMeterWaterService { + + private final CostMeterWaterMapper baseMapper; + + /** + * 查询费用-水电抄 + * + * @param id 主键 + * @return 费用-水电抄 + */ + @Override + public CostMeterWaterVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询费用-水电抄列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 费用-水电抄分页列表 + */ + @Override + public TableDataInfo queryPageList(CostMeterWaterBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的费用-水电抄列表 + * + * @param bo 查询条件 + * @return 费用-水电抄列表 + */ + @Override + public List queryList(CostMeterWaterBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(CostMeterWaterBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(CostMeterWater::getId); + lqw.eq(bo.getItemId() != null, CostMeterWater::getItemId, bo.getItemId()); + lqw.eq(bo.getMeterTypeId() != null, CostMeterWater::getMeterTypeId, bo.getMeterTypeId()); + lqw.like(StringUtils.isNotBlank(bo.getObjName()), CostMeterWater::getObjName, bo.getObjName()); + lqw.eq(StringUtils.isNotBlank(bo.getCurDegrees()), CostMeterWater::getCurDegrees, bo.getCurDegrees()); + lqw.eq(StringUtils.isNotBlank(bo.getPreDegrees()), CostMeterWater::getPreDegrees, bo.getPreDegrees()); + lqw.eq(bo.getPreReadingTime() != null, CostMeterWater::getPreReadingTime, bo.getPreReadingTime()); + lqw.eq(bo.getCurReadingTime() != null, CostMeterWater::getCurReadingTime, bo.getCurReadingTime()); + lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), CostMeterWater::getSearchValue, bo.getSearchValue()); + return lqw; + } + + /** + * 新增费用-水电抄 + * + * @param bo 费用-水电抄 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(CostMeterWaterBo bo) { + CostMeterWater add = MapstructUtils.convert(bo, CostMeterWater.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改费用-水电抄 + * + * @param bo 费用-水电抄 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(CostMeterWaterBo bo) { + CostMeterWater update = MapstructUtils.convert(bo, CostMeterWater.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(CostMeterWater entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除费用-水电抄信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostPayFeeAuditServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostPayFeeAuditServiceImpl.java new file mode 100644 index 00000000..0be06bb1 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostPayFeeAuditServiceImpl.java @@ -0,0 +1,140 @@ +package org.dromara.property.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.property.domain.CostPayFeeAudit; +import org.dromara.property.domain.bo.CostPayFeeAuditBo; +import org.dromara.property.domain.vo.CostPayFeeAuditVo; +import org.dromara.property.mapper.CostPayFeeAuditMapper; +import org.dromara.property.service.ICostPayFeeAuditService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 费用-缴费审核Service业务层处理 + * + * @author mocheng + * @date 2025-07-17 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class CostPayFeeAuditServiceImpl implements ICostPayFeeAuditService { + + private final CostPayFeeAuditMapper baseMapper; + + /** + * 查询费用-缴费审核 + * + * @param id 主键 + * @return 费用-缴费审核 + */ + @Override + public CostPayFeeAuditVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询费用-缴费审核列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 费用-缴费审核分页列表 + */ + @Override + public TableDataInfo queryPageList(CostPayFeeAuditBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的费用-缴费审核列表 + * + * @param bo 查询条件 + * @return 费用-缴费审核列表 + */ + @Override + public List queryList(CostPayFeeAuditBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(CostPayFeeAuditBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(CostPayFeeAudit::getId); + lqw.eq(bo.getHouseChargeId() != null, CostPayFeeAudit::getHouseChargeId, bo.getHouseChargeId()); + lqw.eq(bo.getItemId() != null, CostPayFeeAudit::getItemId, bo.getItemId()); + lqw.eq(bo.getStartTime() != null, CostPayFeeAudit::getStartTime, bo.getStartTime()); + lqw.eq(bo.getEndTime() != null, CostPayFeeAudit::getEndTime, bo.getEndTime()); + lqw.eq(StringUtils.isNotBlank(bo.getReceivedAmount()), CostPayFeeAudit::getReceivedAmount, bo.getReceivedAmount()); + lqw.eq(bo.getReceivableAmount() != null, CostPayFeeAudit::getReceivableAmount, bo.getReceivableAmount()); + lqw.eq(bo.getPayTime() != null, CostPayFeeAudit::getPayTime, bo.getPayTime()); + lqw.eq(StringUtils.isNotBlank(bo.getState()), CostPayFeeAudit::getState, bo.getState()); + lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), CostPayFeeAudit::getSearchValue, bo.getSearchValue()); + return lqw; + } + + /** + * 新增费用-缴费审核 + * + * @param bo 费用-缴费审核 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(CostPayFeeAuditBo bo) { + CostPayFeeAudit add = MapstructUtils.convert(bo, CostPayFeeAudit.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改费用-缴费审核 + * + * @param bo 费用-缴费审核 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(CostPayFeeAuditBo bo) { + CostPayFeeAudit update = MapstructUtils.convert(bo, CostPayFeeAudit.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(CostPayFeeAudit entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除费用-缴费审核信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostReturnPayFeeServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostReturnPayFeeServiceImpl.java new file mode 100644 index 00000000..1c0aa394 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CostReturnPayFeeServiceImpl.java @@ -0,0 +1,140 @@ +package org.dromara.property.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.property.domain.CostReturnPayFee; +import org.dromara.property.domain.bo.CostReturnPayFeeBo; +import org.dromara.property.domain.vo.CostReturnPayFeeVo; +import org.dromara.property.mapper.CostReturnPayFeeMapper; +import org.dromara.property.service.ICostReturnPayFeeService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 费用-抄类型Service业务层处理 + * + * @author mocheng + * @date 2025-07-17 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class CostReturnPayFeeServiceImpl implements ICostReturnPayFeeService { + + private final CostReturnPayFeeMapper baseMapper; + + /** + * 查询费用-抄类型 + * + * @param id 主键 + * @return 费用-抄类型 + */ + @Override + public CostReturnPayFeeVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询费用-抄类型列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 费用-抄类型分页列表 + */ + @Override + public TableDataInfo queryPageList(CostReturnPayFeeBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的费用-抄类型列表 + * + * @param bo 查询条件 + * @return 费用-抄类型列表 + */ + @Override + public List queryList(CostReturnPayFeeBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(CostReturnPayFeeBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(CostReturnPayFee::getId); + lqw.eq(StringUtils.isNotBlank(bo.getReturnNo()), CostReturnPayFee::getReturnNo, bo.getReturnNo()); + lqw.eq(StringUtils.isNotBlank(bo.getPayNo()), CostReturnPayFee::getPayNo, bo.getPayNo()); + lqw.eq(StringUtils.isNotBlank(bo.getReason()), CostReturnPayFee::getReason, bo.getReason()); + lqw.eq(bo.getItemId() != null, CostReturnPayFee::getItemId, bo.getItemId()); + lqw.eq(bo.getUserId() != null, CostReturnPayFee::getUserId, bo.getUserId()); + lqw.eq(bo.getPayAcount() != null, CostReturnPayFee::getPayAcount, bo.getPayAcount()); + lqw.eq(bo.getPayTime() != null, CostReturnPayFee::getPayTime, bo.getPayTime()); + lqw.eq(StringUtils.isNotBlank(bo.getState()), CostReturnPayFee::getState, bo.getState()); + lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), CostReturnPayFee::getSearchValue, bo.getSearchValue()); + return lqw; + } + + /** + * 新增费用-抄类型 + * + * @param bo 费用-抄类型 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(CostReturnPayFeeBo bo) { + CostReturnPayFee add = MapstructUtils.convert(bo, CostReturnPayFee.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改费用-抄类型 + * + * @param bo 费用-抄类型 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(CostReturnPayFeeBo bo) { + CostReturnPayFee update = MapstructUtils.convert(bo, CostReturnPayFee.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(CostReturnPayFee entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除费用-抄类型信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/MachineLocationServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/MachineLocationServiceImpl.java index 830e8998..7a95e84c 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/MachineLocationServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/MachineLocationServiceImpl.java @@ -54,22 +54,58 @@ public class MachineLocationServiceImpl implements IMachineLocationService { public MachineLocationDetailVo queryById(Long id) { MachineLocationVo machineLocationVo = baseMapper.selectVoById(id); MachineLocationDetailVo machineLocationDetailVo = BeanUtil.copyProperties(machineLocationVo, MachineLocationDetailVo.class); - Long locationObjId = Long.valueOf(machineLocationDetailVo.getLocationObjId()); + Long locationObjId = machineLocationDetailVo.getLocationObjId(); + if (locationObjId == null) { + return machineLocationDetailVo; + } switch (machineLocationDetailVo.getLocationType()) { case "0": - machineLocationDetailVo.setLocationObjName(tbCommunityMapper.selectVoById(locationObjId).getCommunityName()); + var community = tbCommunityMapper.selectVoById(locationObjId); + if (community != null && StringUtils.isNotBlank(community.getCommunityName())) { + machineLocationDetailVo.setLocationObjName(community.getCommunityName()); + } else { + machineLocationDetailVo.setLocationObjName(null); + } + break; case "1": - machineLocationDetailVo.setLocationObjName(tbBuildingMapper.selectVoById(locationObjId).getBuildingName()); + var building = tbBuildingMapper.selectVoById(locationObjId); + if (building != null && StringUtils.isNotBlank(building.getBuildingName())) { + machineLocationDetailVo.setLocationObjName(building.getBuildingName()); + } else { + machineLocationDetailVo.setLocationObjName(null); + } + break; case "2": - machineLocationDetailVo.setLocationObjName(tbUnitMapper.selectVoById(locationObjId).getUnitName()); + var unit = tbUnitMapper.selectVoById(locationObjId); + if (unit != null && StringUtils.isNotBlank(unit.getUnitName())) { + machineLocationDetailVo.setLocationObjName(unit.getUnitName()); + } else { + machineLocationDetailVo.setLocationObjName(null); + } + break; case "3": - machineLocationDetailVo.setLocationObjName(tbFloorMapper.selectVoById(locationObjId).getFloorName()); + var floor = tbFloorMapper.selectVoById(locationObjId); + if (floor != null && StringUtils.isNotBlank(floor.getFloorName())) { + machineLocationDetailVo.setLocationObjName(floor.getFloorName()); + } else { + machineLocationDetailVo.setLocationObjName(null); + } + break; case "4": - machineLocationDetailVo.setLocationObjName(tbRoomMapper.selectVoById(locationObjId).getRoomNumber()); + var room = tbRoomMapper.selectVoById(locationObjId); + if (room != null && StringUtils.isNotBlank(room.getRoomNumber())) { + machineLocationDetailVo.setLocationObjName(room.getRoomNumber()); + } else { + machineLocationDetailVo.setLocationObjName(null); + } + break; + default: + machineLocationDetailVo.setLocationObjName(null); } return machineLocationDetailVo; } + /** * 分页查询设备位置列表 * diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/MachineMaintainTaskDetailServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/MachineMaintainTaskDetailServiceImpl.java index 44c65e9f..d088e18b 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/MachineMaintainTaskDetailServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/MachineMaintainTaskDetailServiceImpl.java @@ -1,5 +1,9 @@ package org.dromara.property.service.impl; +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.yulichang.query.MPJLambdaQueryWrapper; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -9,6 +13,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.property.domain.MachineMaintainTask; import org.springframework.stereotype.Service; import org.dromara.property.domain.bo.MachineMaintainTaskDetailBo; import org.dromara.property.domain.vo.MachineMaintainTaskDetailVo; @@ -41,7 +46,9 @@ public class MachineMaintainTaskDetailServiceImpl implements IMachineMaintainTas */ @Override public MachineMaintainTaskDetailVo queryById(Long id){ - return baseMapper.selectVoById(id); + MachineMaintainTaskDetail machineMaintainTaskDetail = baseMapper.selectById(id); + MachineMaintainTaskDetailVo machineMaintainTaskDetailVo = BeanUtil.copyProperties(machineMaintainTaskDetail, MachineMaintainTaskDetailVo.class); + return machineMaintainTaskDetailVo; } /** @@ -53,9 +60,10 @@ public class MachineMaintainTaskDetailServiceImpl implements IMachineMaintainTas */ @Override public TableDataInfo queryPageList(MachineMaintainTaskDetailBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + IPage result = baseMapper.selectJoinPage(pageQuery.build(),MachineMaintainTaskDetailVo.class, lqw); return TableDataInfo.build(result); + } /** @@ -66,21 +74,22 @@ public class MachineMaintainTaskDetailServiceImpl implements IMachineMaintainTas */ @Override public List queryList(MachineMaintainTaskDetailBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectJoinList(MachineMaintainTaskDetailVo.class, lqw); } - private LambdaQueryWrapper buildQueryWrapper(MachineMaintainTaskDetailBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.orderByAsc(MachineMaintainTaskDetail::getId); - lqw.eq(bo.getTaskId() != null, MachineMaintainTaskDetail::getTaskId, bo.getTaskId()); - lqw.eq(bo.getMachineId() != null, MachineMaintainTaskDetail::getMachineId, bo.getMachineId()); - lqw.eq(StringUtils.isNotBlank(bo.getSendFlag()), MachineMaintainTaskDetail::getSendFlag, bo.getSendFlag()); - lqw.eq(bo.getSortNumber() != null, MachineMaintainTaskDetail::getSortNumber, bo.getSortNumber()); - lqw.eq(StringUtils.isNotBlank(bo.getState()), MachineMaintainTaskDetail::getState, bo.getState()); - lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), MachineMaintainTaskDetail::getSearchValue, bo.getSearchValue()); - return lqw; + private MPJLambdaWrapper buildQueryWrapper(MachineMaintainTaskDetailBo bo) { + return new MPJLambdaWrapper() + .orderByAsc(MachineMaintainTaskDetail::getId) + .eq(bo.getTaskId() != null, MachineMaintainTaskDetail::getTaskId, bo.getTaskId()) + .eq(bo.getMachineId() != null, MachineMaintainTaskDetail::getMachineId, bo.getMachineId()) + .eq(StringUtils.isNotBlank(bo.getSendFlag()), MachineMaintainTaskDetail::getSendFlag, bo.getSendFlag()) + .eq(bo.getSortNumber() != null, MachineMaintainTaskDetail::getSortNumber, bo.getSortNumber()) + .eq(StringUtils.isNotBlank(bo.getState()), MachineMaintainTaskDetail::getState, bo.getState()) + .eq(StringUtils.isNotBlank(bo.getSearchValue()), MachineMaintainTaskDetail::getSearchValue, bo.getSearchValue()) + .selectAll(MachineMaintainTaskDetail.class) + .select(MachineMaintainTask::getMaintainTaskNo) + .leftJoin(MachineMaintainTask.class, MachineMaintainTask::getId, MachineMaintainTaskDetail::getTaskId); } /** @@ -93,7 +102,7 @@ public class MachineMaintainTaskDetailServiceImpl implements IMachineMaintainTas public Boolean insertByBo(MachineMaintainTaskDetailBo bo) { MachineMaintainTaskDetail add = MapstructUtils.convert(bo, MachineMaintainTaskDetail.class); validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; + boolean flag = this.insertByBo(bo); if (flag) { bo.setId(add.getId()); } @@ -110,7 +119,7 @@ public class MachineMaintainTaskDetailServiceImpl implements IMachineMaintainTas public Boolean updateByBo(MachineMaintainTaskDetailBo bo) { MachineMaintainTaskDetail update = MapstructUtils.convert(bo, MachineMaintainTaskDetail.class); validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; + return baseMapper.updateById(update)>0; } /** diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/MachineServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/MachineServiceImpl.java index da25d8f7..8dc1dc67 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/MachineServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/MachineServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.property.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -9,9 +11,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.property.domain.MachineType; +import org.dromara.property.domain.vo.*; +import org.dromara.property.mapper.MachineLocationMapper; +import org.dromara.property.mapper.MachineTypeMapper; +import org.dromara.property.mapper.ResidentPersonMapper; import org.springframework.stereotype.Service; import org.dromara.property.domain.bo.MachineBo; -import org.dromara.property.domain.vo.MachineVo; import org.dromara.property.domain.Machine; import org.dromara.property.mapper.MachineMapper; import org.dromara.property.service.IMachineService; @@ -32,6 +38,9 @@ import java.util.Collection; public class MachineServiceImpl implements IMachineService { private final MachineMapper baseMapper; + private final MachineTypeMapper machineTypeMapper; + private final ResidentPersonMapper residentPersonMapper; + private final MachineLocationMapper machineLocationMapper; /** * 查询设备列表 @@ -40,8 +49,16 @@ public class MachineServiceImpl implements IMachineService { * @return 设备列表 */ @Override - public MachineVo queryById(Long id){ - return baseMapper.selectVoById(id); + public MachineDetailVo queryById(Long id){ + MachineVo machineVo = baseMapper.selectVoById(id); + MachineDetailVo machineDetailVo = BeanUtil.copyProperties(machineVo, MachineDetailVo.class); + MachineTypeVo machineTypeVo = machineTypeMapper.selectVoById(machineDetailVo.getMachineTypeId()); + machineDetailVo.setMachineTypeName(machineTypeVo.getMachineTypeName()); + ResidentPersonVo residentPersonVo = residentPersonMapper.selectVoById(machineVo.getPersonId()); + machineDetailVo.setPersonName(ObjectUtil.isNotEmpty(residentPersonVo) ? residentPersonVo.getUserName() : null); + MachineLocationVo machineLocationVo = machineLocationMapper.selectVoById(machineVo.getLocationId()); + machineDetailVo.setLocationName(ObjectUtil.isNotEmpty(machineLocationVo)? machineLocationVo.getLocationName():null); + return machineDetailVo; } /** diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/InspectionTasks.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/InspectionTasks.java index 337b3fca..ebd3d47c 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/InspectionTasks.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/InspectionTasks.java @@ -1,4 +1,3 @@ - package org.dromara.property.tasks; import cn.hutool.core.collection.CollectionUtil; @@ -18,13 +17,19 @@ import org.dromara.property.mapper.InspectionPlanStaffMapper; import org.dromara.property.mapper.InspectionTaskMapper; import org.dromara.property.mapper.ResidentPersonMapper; import org.dromara.property.service.IInspectionPlanService; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; 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.RestController; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneId; import java.util.Arrays; +import java.util.Date; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -36,22 +41,22 @@ import static org.dromara.common.mybatis.core.mapper.BaseMapperPlus.log; * @Date:2025/7/11 15:28 * @Description: 巡检任务定时处理器 **/ -//@Component -//@RequiredArgsConstructor -@Validated +@Component @RequiredArgsConstructor -@RestController -@RequestMapping("/task") +//@Validated +//@RequiredArgsConstructor +//@RestController +//@RequestMapping("/inspectionPlanTask") public class InspectionTasks { private final IInspectionPlanService inspectionPlanService; private final InspectionPlanStaffMapper inspectionPlanStaffMapper; private final InspectionTaskMapper inspectionTaskMapper; private final ResidentPersonMapper residentPersonMapper; + // 通过巡检计划定时生成巡检任务 - //@Scheduled(cron = "0 0 2 * * ?") - //@PostConstruct - @GetMapping("/taskId") + @Scheduled(cron = "0 0 2 * * ?") + //@GetMapping("/taskId") @Transactional(rollbackFor = Exception.class) public void doInspectionPianTask() { // 查询所有启用状态的巡检计划 @@ -64,11 +69,15 @@ public class InspectionTasks { } // 处理每个巡检计划 inspectionPlanVoList.forEach(plan -> { - LambdaQueryWrapperinspectionTaskWrapper = new LambdaQueryWrapper<>(); - inspectionTaskWrapper.eq(InspectionTask::getInspectionPlanId,plan.getId()); - inspectionTaskWrapper.eq(InspectionTask::getInspectionPlanId,plan.getId()); + // 获取今天的起始时间 + LocalDateTime todayStart = LocalDateTime.now().with(LocalTime.MIN); + // 获取今天的结束时间 + LocalDateTime todayEnd = LocalDateTime.now().with(LocalTime.MAX); + LambdaQueryWrapper inspectionTaskWrapper = new LambdaQueryWrapper<>(); + inspectionTaskWrapper.eq(InspectionTask::getInspectionPlanId, plan.getId()); + inspectionTaskWrapper.between(InspectionTask::getCreateTime, Date.from(todayStart.atZone(ZoneId.systemDefault()).toInstant()), Date.from(todayEnd.atZone(ZoneId.systemDefault()).toInstant())); boolean exists = inspectionTaskMapper.exists(inspectionTaskWrapper); - if(!exists){ + if (!exists) { // 根据不同的巡检周期执行相应处理 switch (plan.getInspectionPlanPeriod()) { case "1": @@ -96,12 +105,10 @@ public class InspectionTasks { */ private void handleMonthlyDailyPlan(InspectionPlanVo plan) { LambdaQueryWrapper staffQueryWrapper = Wrappers.lambdaQuery(); - staffQueryWrapper .eq(InspectionPlanStaff::getInspectionPlanId, plan.getId()); + staffQueryWrapper.eq(InspectionPlanStaff::getInspectionPlanId, plan.getId()); //查询该计划巡查人员 List inspectionPlanStaffVos = inspectionPlanStaffMapper.selectVoList(staffQueryWrapper); - List userIdList = inspectionPlanStaffVos.stream().map(vo -> vo.getUserId()) - .distinct() - .collect(Collectors.toList()); + List userIdList = inspectionPlanStaffVos.stream().map(vo -> vo.getUserId()).distinct().collect(Collectors.toList()); List residentPersonVoList = residentPersonMapper.selectVoByIds(userIdList); // 使用Optional安全处理可能为null的对象 Optional.ofNullable(plan).ifPresent(p -> { @@ -110,35 +117,32 @@ public class InspectionTasks { DateTime endDate = DateUtil.date(plan.getEndDate()); String day = DateUtil.today().split("-")[2]; List inspectionDayList = Arrays.asList(p.getInspectionDay().split(",")); - if(DateUtil.isIn(today, startDate, endDate)&&inspectionDayList.contains(day)){ + if (DateUtil.isIn(today, startDate, endDate) && inspectionDayList.contains(day)) { InspectionTask task = new InspectionTask(); task.setInspectionPlanId(p.getId()); task.setTaskType(plan.getSignType()); - task.setPlanInsTime(startDate+"~"+p.getEndTime()); + task.setPlanInsTime(startDate + "~" + p.getEndTime()); task.setTenantId(plan.getTenantId()); task.setStatus("0"); if (CollectionUtil.isNotEmpty(inspectionPlanStaffVos)) { - String userIds = residentPersonVoList.stream() - .map(vo -> vo.getId().toString()) - .collect(Collectors.joining(",")); + String userIds = residentPersonVoList.stream().map(vo -> vo.getId().toString()).collect(Collectors.joining(",")); - String userNames = residentPersonVoList.stream() - .map(vo -> vo.getUserName()) - .collect(Collectors.joining(",")); - task.setPlanUserId(ObjectUtil.isNotEmpty(userIds)?userIds:""); - task.setPlanUserName(ObjectUtil.isNotEmpty(userNames)?userNames:""); + String userNames = residentPersonVoList.stream().map(vo -> vo.getUserName()).collect(Collectors.joining(",")); + task.setPlanUserId(ObjectUtil.isNotEmpty(userIds) ? userIds : ""); + task.setPlanUserName(ObjectUtil.isNotEmpty(userNames) ? userNames : ""); } inspectionTaskMapper.insert(task); - } + } }); } + /** * 处理按周的巡检计划 * @param plan 巡检计划信息 */ private void handleWeeklyDailyPlan(InspectionPlanVo plan) { LambdaQueryWrapper staffQueryWrapper = Wrappers.lambdaQuery(); - staffQueryWrapper .eq(InspectionPlanStaff::getInspectionPlanId, plan.getId()); + staffQueryWrapper.eq(InspectionPlanStaff::getInspectionPlanId, plan.getId()); //查询该计划巡查人员 List inspectionPlanStaffVos = inspectionPlanStaffMapper.selectVoList(staffQueryWrapper); // 使用Optional安全处理可能为null的对象 @@ -148,22 +152,18 @@ public class InspectionTasks { DateTime endDate = DateUtil.date(plan.getEndDate()); String week = String.valueOf(DateUtil.dayOfWeek(DateUtil.date())); List inspectionWorkdayList = Arrays.asList(p.getInspectionWorkday().split(",")); - if(DateUtil.isIn(today, startDate, endDate)&&inspectionWorkdayList.contains(week)) { + if (DateUtil.isIn(today, startDate, endDate) && inspectionWorkdayList.contains(week)) { InspectionTask task = new InspectionTask(); task.setInspectionPlanId(p.getId()); task.setInspectionPlanId(p.getId()); task.setTaskType(plan.getSignType()); - task.setPlanInsTime(startDate+"~"+p.getEndTime()); + task.setPlanInsTime(startDate + "~" + p.getEndTime()); task.setTenantId(plan.getTenantId()); task.setStatus("0"); if (CollectionUtil.isNotEmpty(inspectionPlanStaffVos)) { - String userIds = inspectionPlanStaffVos.stream() - .map(vo -> vo.getUserId().toString()) - .collect(Collectors.joining(",")); + String userIds = inspectionPlanStaffVos.stream().map(vo -> vo.getUserId().toString()).collect(Collectors.joining(",")); - String userNames = inspectionPlanStaffVos.stream() - .map(InspectionPlanStaffVo::getUserName) - .collect(Collectors.joining(",")); + String userNames = inspectionPlanStaffVos.stream().map(InspectionPlanStaffVo::getUserName).collect(Collectors.joining(",")); task.setPlanUserId(userIds); task.setPlanUserName(userNames); diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/MachineTasks.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/MachineTasks.java new file mode 100644 index 00000000..10fd845f --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/tasks/MachineTasks.java @@ -0,0 +1,153 @@ +package org.dromara.property.tasks; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.RandomUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.property.domain.MachineMaintainPlanStaff; +import org.dromara.property.domain.MachineMaintainTask; +import org.dromara.property.domain.bo.MachineMaintainPlanBo; +import org.dromara.property.domain.vo.MachineMaintainPlanStaffVo; +import org.dromara.property.domain.vo.MachineMaintainPlanVo; +import org.dromara.property.domain.vo.ResidentPersonVo; +import org.dromara.property.mapper.MachineMaintainPlanStaffMapper; +import org.dromara.property.mapper.MachineMaintainTaskMapper; +import org.dromara.property.mapper.ResidentPersonMapper; +import org.dromara.property.service.IMachineMaintainPlanService; +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.RestController; + +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneId; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import static org.dromara.common.mybatis.core.mapper.BaseMapperPlus.log; + +/** + * @Author:yuyongle + * @Date:2025/7/17 09:25 + * @Description: + **/ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/machineTask") +public class MachineTasks { + private final IMachineMaintainPlanService machineMaintainPlanService; + private final MachineMaintainTaskMapper machineMaintainTaskMapper; + private final MachineMaintainPlanStaffMapper machineMaintainPlanStaffMapper; + private final ResidentPersonMapper residentPersonMapper; + + @GetMapping("/taskId") + public void doMachineMaintainPianTask() { + // 查询所有启用状态的巡检计划 + MachineMaintainPlanBo machineMaintainPlanBo= new MachineMaintainPlanBo(); + machineMaintainPlanBo.setState("0"); + List machineMaintainPlanVoList = machineMaintainPlanService.queryList(machineMaintainPlanBo); + // 如果没有有效计划,直接返回 + if (ObjectUtil.isEmpty(machineMaintainPlanVoList)) { + return; + } + machineMaintainPlanVoList.stream().forEach(plan->{ + // 获取今天的起始时间 + LocalDateTime todayStart = LocalDateTime.now().with(LocalTime.MIN); + // 获取今天的结束时间 + LocalDateTime todayEnd = LocalDateTime.now().with(LocalTime.MAX); + LambdaQueryWrapper machineMaintainPianWrapper = new LambdaQueryWrapper<>(); + machineMaintainPianWrapper.eq(MachineMaintainTask::getMaintainPlanId, plan.getId()); + machineMaintainPianWrapper.between(MachineMaintainTask::getCreateTime, Date.from(todayStart.atZone(ZoneId.systemDefault()).toInstant()), Date.from(todayEnd.atZone(ZoneId.systemDefault()).toInstant())); + boolean exists = machineMaintainTaskMapper .exists(machineMaintainPianWrapper); + if(!exists){ + // 根据不同的巡检周期执行相应处理 + switch (plan.getPlanPeriod()) { + case "1": + // 处理按月/天的巡检计划 + handleMonthlyDailyPlan(plan); + break; + + case "2": + // 处理按固定天的设备保养计划 + handleDaylyDailyPlan(plan); + break; + default: + // 对于未知的巡检周期类型,记录警告日志 + log.warn("未知类型"); + break; + } + } + }); + } + + /** + * 处理按月/天的巡检计划 + * @param plan 巡检计划信息 + */ + private void handleMonthlyDailyPlan(MachineMaintainPlanVo plan) { + LambdaQueryWrapper staffQueryWrapper = Wrappers.lambdaQuery(); + staffQueryWrapper.eq(MachineMaintainPlanStaff::getMaintainPlanId, plan.getId()); + //查询该计划巡查人员 + List machineMaintainPlanStaffs = machineMaintainPlanStaffMapper.selectVoList(staffQueryWrapper); + List userIdList = machineMaintainPlanStaffs.stream().map(vo -> vo.getUserId()).distinct().collect(Collectors.toList()); + List residentPersonVoList = residentPersonMapper.selectVoByIds(userIdList); + // 使用Optional安全处理可能为null的对象 + Optional.ofNullable(plan).ifPresent(p -> { + DateTime today = DateUtil.date(); + DateTime startDate = DateUtil.date(plan.getStartDate()); + DateTime endDate = DateUtil.date(plan.getEndDate()); + String day = DateUtil.today().split("-")[2]; + List inspectionDayList = Arrays.asList(p.getMaintainDay().split(",")); + if (DateUtil.isIn(today, startDate, endDate) && inspectionDayList.contains(day)) { + MachineMaintainTask task = new MachineMaintainTask(); + task.setMaintainPlanId(p.getId()); + task.setMaintainTaskNo(RandomUtil.randomString(6)); + if (CollectionUtil.isNotEmpty(machineMaintainPlanStaffs )) { + String userIds = residentPersonVoList.stream().map(vo -> vo.getId().toString()).collect(Collectors.joining(",")); + task.setPlanUserId(ObjectUtil.isNotEmpty(userIds) ? userIds : ""); + } + machineMaintainTaskMapper.insert(task); + } + }); + } + + /** + * 处理按固定天的巡检计划 + * @param plan 巡检计划信息 + */ + private void handleDaylyDailyPlan(MachineMaintainPlanVo plan) { + LambdaQueryWrapper staffQueryWrapper = Wrappers.lambdaQuery(); + staffQueryWrapper.eq(MachineMaintainPlanStaff::getMaintainPlanId, plan.getId()); + //查询该计划巡查人员 + List machineMaintainPlanStaffs = machineMaintainPlanStaffMapper.selectVoList(staffQueryWrapper); + List userIdList = machineMaintainPlanStaffs.stream().map(vo -> vo.getUserId()).distinct().collect(Collectors.toList()); + List residentPersonVoList = residentPersonMapper.selectVoByIds(userIdList); + // 使用Optional安全处理可能为null的对象 + Optional.ofNullable(plan).ifPresent(p -> { + DateTime today = DateUtil.date(); + int day = today.dayOfMonth(); + DateTime startDate = DateUtil.date(plan.getStartDate()); + DateTime endDate = DateUtil.date(plan.getEndDate()); + List inspectionWorkdayList = Arrays.asList(p.getMaintainEveryday().split(",")); + if (DateUtil.isIn(today, startDate, endDate) && inspectionWorkdayList.contains(day)) { + MachineMaintainTask task = new MachineMaintainTask(); + task.setMaintainPlanId(p.getId()); + task.setMaintainTaskNo(RandomUtil.randomString(6)); + if (CollectionUtil.isNotEmpty(machineMaintainPlanStaffs )) { + String userIds = residentPersonVoList.stream().map(vo -> vo.getId().toString()).collect(Collectors.joining(",")); + task.setPlanUserId(ObjectUtil.isNotEmpty(userIds) ? userIds : ""); + } + machineMaintainTaskMapper.insert(task); + } + }); + } +}