Sfoglia il codice sorgente

feature: 卡务中心->卡务操作 充值与退款逻辑
1.充值、消费存储表

autumnal_wind@yeah.net 1 anno fa
parent
commit
6f735c1369
48 ha cambiato i file con 5161 aggiunte e 0 eliminazioni
  1. 106 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfConsumedetailController.java
  2. 106 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfConsumedetailoriginalController.java
  3. 106 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfCreditaccountController.java
  4. 106 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfCreditaccountbackController.java
  5. 106 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfTermtotalController.java
  6. 106 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfUsertotalController.java
  7. 199 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfConsumedetail.java
  8. 169 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfConsumedetailoriginal.java
  9. 199 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfCreditaccount.java
  10. 159 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfCreditaccountback.java
  11. 102 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfTermtotal.java
  12. 82 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfUsertotal.java
  13. 206 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfConsumedetailBo.java
  14. 170 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfConsumedetailoriginalBo.java
  15. 203 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfCreditaccountBo.java
  16. 159 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfCreditaccountbackBo.java
  17. 101 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfTermtotalBo.java
  18. 79 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfUsertotalBo.java
  19. 233 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfConsumedetailVo.java
  20. 198 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfConsumedetailoriginalVo.java
  21. 232 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfCreditaccountVo.java
  22. 184 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfCreditaccountbackVo.java
  23. 116 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfTermtotalVo.java
  24. 92 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfUsertotalVo.java
  25. 15 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfConsumedetailMapper.java
  26. 15 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfConsumedetailoriginalMapper.java
  27. 15 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfCreditaccountMapper.java
  28. 15 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfCreditaccountbackMapper.java
  29. 15 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfTermtotalMapper.java
  30. 15 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfUsertotalMapper.java
  31. 69 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfConsumedetailService.java
  32. 69 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfConsumedetailoriginalService.java
  33. 69 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfCreditaccountService.java
  34. 69 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfCreditaccountbackService.java
  35. 69 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfTermtotalService.java
  36. 69 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfUsertotalService.java
  37. 159 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfConsumedetailServiceImpl.java
  38. 154 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfConsumedetailoriginalServiceImpl.java
  39. 158 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfCreditaccountServiceImpl.java
  40. 151 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfCreditaccountbackServiceImpl.java
  41. 141 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfTermtotalServiceImpl.java
  42. 137 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfUsertotalServiceImpl.java
  43. 49 0
      ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfConsumedetailMapper.xml
  44. 43 0
      ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfConsumedetailoriginalMapper.xml
  45. 49 0
      ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfCreditaccountMapper.xml
  46. 41 0
      ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfCreditaccountbackMapper.xml
  47. 30 0
      ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfTermtotalMapper.xml
  48. 26 0
      ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfUsertotalMapper.xml

+ 106 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfConsumedetailController.java

@@ -0,0 +1,106 @@
+package org.dromara.backstage.consumption.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.backstage.consumption.domain.vo.XfConsumedetailVo;
+import org.dromara.backstage.consumption.domain.bo.XfConsumedetailBo;
+import org.dromara.backstage.consumption.service.IXfConsumedetailService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 消费明细
+ * 前端访问路由地址为:/consumption/xfConsumedetail
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/consumption/xfConsumedetail")
+public class XfConsumedetailController extends BaseController {
+
+    private final IXfConsumedetailService xfConsumedetailService;
+
+    /**
+     * 查询消费明细列表
+     */
+    @SaCheckPermission("consumption:xfConsumedetail:list")
+    @GetMapping("/list")
+    public TableDataInfo<XfConsumedetailVo> list(XfConsumedetailBo bo, PageQuery pageQuery) {
+        return xfConsumedetailService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出消费明细列表
+     */
+    @SaCheckPermission("consumption:xfConsumedetail:export")
+    @Log(title = "消费明细", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(XfConsumedetailBo bo, HttpServletResponse response) {
+        List<XfConsumedetailVo> list = xfConsumedetailService.queryList(bo);
+        ExcelUtil.exportExcel(list, "消费明细", XfConsumedetailVo.class, response);
+    }
+
+    /**
+     * 获取消费明细详细信息
+     *
+     * @param consumeId 主键
+     */
+    @SaCheckPermission("consumption:xfConsumedetail:query")
+    @GetMapping("/{consumeId}")
+    public R<XfConsumedetailVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable String consumeId) {
+        return R.ok(xfConsumedetailService.queryById(consumeId));
+    }
+
+    /**
+     * 新增消费明细
+     */
+    @SaCheckPermission("consumption:xfConsumedetail:add")
+    @Log(title = "消费明细", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody XfConsumedetailBo bo) {
+        return toAjax(xfConsumedetailService.insertByBo(bo));
+    }
+
+    /**
+     * 修改消费明细
+     */
+    @SaCheckPermission("consumption:xfConsumedetail:edit")
+    @Log(title = "消费明细", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody XfConsumedetailBo bo) {
+        return toAjax(xfConsumedetailService.updateByBo(bo));
+    }
+
+    /**
+     * 删除消费明细
+     *
+     * @param consumeIds 主键串
+     */
+    @SaCheckPermission("consumption:xfConsumedetail:remove")
+    @Log(title = "消费明细", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{consumeIds}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable String[] consumeIds) {
+        return toAjax(xfConsumedetailService.deleteWithValidByIds(List.of(consumeIds), true));
+    }
+}

+ 106 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfConsumedetailoriginalController.java

@@ -0,0 +1,106 @@
+package org.dromara.backstage.consumption.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.backstage.consumption.domain.vo.XfConsumedetailoriginalVo;
+import org.dromara.backstage.consumption.domain.bo.XfConsumedetailoriginalBo;
+import org.dromara.backstage.consumption.service.IXfConsumedetailoriginalService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 原始消费记录
+ * 前端访问路由地址为:/consumption/xfConsumedetailoriginal
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/consumption/xfConsumedetailoriginal")
+public class XfConsumedetailoriginalController extends BaseController {
+
+    private final IXfConsumedetailoriginalService xfConsumedetailoriginalService;
+
+    /**
+     * 查询原始消费记录列表
+     */
+    @SaCheckPermission("consumption:xfConsumedetailoriginal:list")
+    @GetMapping("/list")
+    public TableDataInfo<XfConsumedetailoriginalVo> list(XfConsumedetailoriginalBo bo, PageQuery pageQuery) {
+        return xfConsumedetailoriginalService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出原始消费记录列表
+     */
+    @SaCheckPermission("consumption:xfConsumedetailoriginal:export")
+    @Log(title = "原始消费记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(XfConsumedetailoriginalBo bo, HttpServletResponse response) {
+        List<XfConsumedetailoriginalVo> list = xfConsumedetailoriginalService.queryList(bo);
+        ExcelUtil.exportExcel(list, "原始消费记录", XfConsumedetailoriginalVo.class, response);
+    }
+
+    /**
+     * 获取原始消费记录详细信息
+     *
+     * @param originalId 主键
+     */
+    @SaCheckPermission("consumption:xfConsumedetailoriginal:query")
+    @GetMapping("/{originalId}")
+    public R<XfConsumedetailoriginalVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable String originalId) {
+        return R.ok(xfConsumedetailoriginalService.queryById(originalId));
+    }
+
+    /**
+     * 新增原始消费记录
+     */
+    @SaCheckPermission("consumption:xfConsumedetailoriginal:add")
+    @Log(title = "原始消费记录", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody XfConsumedetailoriginalBo bo) {
+        return toAjax(xfConsumedetailoriginalService.insertByBo(bo));
+    }
+
+    /**
+     * 修改原始消费记录
+     */
+    @SaCheckPermission("consumption:xfConsumedetailoriginal:edit")
+    @Log(title = "原始消费记录", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody XfConsumedetailoriginalBo bo) {
+        return toAjax(xfConsumedetailoriginalService.updateByBo(bo));
+    }
+
+    /**
+     * 删除原始消费记录
+     *
+     * @param originalIds 主键串
+     */
+    @SaCheckPermission("consumption:xfConsumedetailoriginal:remove")
+    @Log(title = "原始消费记录", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{originalIds}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable String[] originalIds) {
+        return toAjax(xfConsumedetailoriginalService.deleteWithValidByIds(List.of(originalIds), true));
+    }
+}

+ 106 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfCreditaccountController.java

@@ -0,0 +1,106 @@
+package org.dromara.backstage.consumption.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.backstage.consumption.domain.vo.XfCreditaccountVo;
+import org.dromara.backstage.consumption.domain.bo.XfCreditaccountBo;
+import org.dromara.backstage.consumption.service.IXfCreditaccountService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 资金收支明细
+ * 前端访问路由地址为:/consumption/xfCreditaccount
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/consumption/xfCreditaccount")
+public class XfCreditaccountController extends BaseController {
+
+    private final IXfCreditaccountService xfCreditaccountService;
+
+    /**
+     * 查询资金收支明细列表
+     */
+    @SaCheckPermission("consumption:xfCreditaccount:list")
+    @GetMapping("/list")
+    public TableDataInfo<XfCreditaccountVo> list(XfCreditaccountBo bo, PageQuery pageQuery) {
+        return xfCreditaccountService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出资金收支明细列表
+     */
+    @SaCheckPermission("consumption:xfCreditaccount:export")
+    @Log(title = "资金收支明细", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(XfCreditaccountBo bo, HttpServletResponse response) {
+        List<XfCreditaccountVo> list = xfCreditaccountService.queryList(bo);
+        ExcelUtil.exportExcel(list, "资金收支明细", XfCreditaccountVo.class, response);
+    }
+
+    /**
+     * 获取资金收支明细详细信息
+     *
+     * @param creditId 主键
+     */
+    @SaCheckPermission("consumption:xfCreditaccount:query")
+    @GetMapping("/{creditId}")
+    public R<XfCreditaccountVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable String creditId) {
+        return R.ok(xfCreditaccountService.queryById(creditId));
+    }
+
+    /**
+     * 新增资金收支明细
+     */
+    @SaCheckPermission("consumption:xfCreditaccount:add")
+    @Log(title = "资金收支明细", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody XfCreditaccountBo bo) {
+        return toAjax(xfCreditaccountService.insertByBo(bo));
+    }
+
+    /**
+     * 修改资金收支明细
+     */
+    @SaCheckPermission("consumption:xfCreditaccount:edit")
+    @Log(title = "资金收支明细", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody XfCreditaccountBo bo) {
+        return toAjax(xfCreditaccountService.updateByBo(bo));
+    }
+
+    /**
+     * 删除资金收支明细
+     *
+     * @param creditIds 主键串
+     */
+    @SaCheckPermission("consumption:xfCreditaccount:remove")
+    @Log(title = "资金收支明细", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{creditIds}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable String[] creditIds) {
+        return toAjax(xfCreditaccountService.deleteWithValidByIds(List.of(creditIds), true));
+    }
+}

+ 106 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfCreditaccountbackController.java

@@ -0,0 +1,106 @@
+package org.dromara.backstage.consumption.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.backstage.consumption.domain.vo.XfCreditaccountbackVo;
+import org.dromara.backstage.consumption.domain.bo.XfCreditaccountbackBo;
+import org.dromara.backstage.consumption.service.IXfCreditaccountbackService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 资金收支备份
+ * 前端访问路由地址为:/consumption/xfCreditaccountback
+ *
+ * @author Yb
+ * @date 2024-08-15
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/consumption/xfCreditaccountback")
+public class XfCreditaccountbackController extends BaseController {
+
+    private final IXfCreditaccountbackService xfCreditaccountbackService;
+
+    /**
+     * 查询资金收支备份列表
+     */
+    @SaCheckPermission("consumption:xfCreditaccountback:list")
+    @GetMapping("/list")
+    public TableDataInfo<XfCreditaccountbackVo> list(XfCreditaccountbackBo bo, PageQuery pageQuery) {
+        return xfCreditaccountbackService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出资金收支备份列表
+     */
+    @SaCheckPermission("consumption:xfCreditaccountback:export")
+    @Log(title = "资金收支备份", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(XfCreditaccountbackBo bo, HttpServletResponse response) {
+        List<XfCreditaccountbackVo> list = xfCreditaccountbackService.queryList(bo);
+        ExcelUtil.exportExcel(list, "资金收支备份", XfCreditaccountbackVo.class, response);
+    }
+
+    /**
+     * 获取资金收支备份详细信息
+     *
+     * @param backId 主键
+     */
+    @SaCheckPermission("consumption:xfCreditaccountback:query")
+    @GetMapping("/{backId}")
+    public R<XfCreditaccountbackVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable String backId) {
+        return R.ok(xfCreditaccountbackService.queryById(backId));
+    }
+
+    /**
+     * 新增资金收支备份
+     */
+    @SaCheckPermission("consumption:xfCreditaccountback:add")
+    @Log(title = "资金收支备份", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody XfCreditaccountbackBo bo) {
+        return toAjax(xfCreditaccountbackService.insertByBo(bo));
+    }
+
+    /**
+     * 修改资金收支备份
+     */
+    @SaCheckPermission("consumption:xfCreditaccountback:edit")
+    @Log(title = "资金收支备份", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody XfCreditaccountbackBo bo) {
+        return toAjax(xfCreditaccountbackService.updateByBo(bo));
+    }
+
+    /**
+     * 删除资金收支备份
+     *
+     * @param backIds 主键串
+     */
+    @SaCheckPermission("consumption:xfCreditaccountback:remove")
+    @Log(title = "资金收支备份", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{backIds}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable String[] backIds) {
+        return toAjax(xfCreditaccountbackService.deleteWithValidByIds(List.of(backIds), true));
+    }
+}

+ 106 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfTermtotalController.java

@@ -0,0 +1,106 @@
+package org.dromara.backstage.consumption.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.backstage.consumption.domain.vo.XfTermtotalVo;
+import org.dromara.backstage.consumption.domain.bo.XfTermtotalBo;
+import org.dromara.backstage.consumption.service.IXfTermtotalService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 消费机消费记录
+ * 前端访问路由地址为:/consumption/xfTermtotal
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/consumption/xfTermtotal")
+public class XfTermtotalController extends BaseController {
+
+    private final IXfTermtotalService xfTermtotalService;
+
+    /**
+     * 查询消费机消费记录列表
+     */
+    @SaCheckPermission("consumption:xfTermtotal:list")
+    @GetMapping("/list")
+    public TableDataInfo<XfTermtotalVo> list(XfTermtotalBo bo, PageQuery pageQuery) {
+        return xfTermtotalService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出消费机消费记录列表
+     */
+    @SaCheckPermission("consumption:xfTermtotal:export")
+    @Log(title = "消费机消费记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(XfTermtotalBo bo, HttpServletResponse response) {
+        List<XfTermtotalVo> list = xfTermtotalService.queryList(bo);
+        ExcelUtil.exportExcel(list, "消费机消费记录", XfTermtotalVo.class, response);
+    }
+
+    /**
+     * 获取消费机消费记录详细信息
+     *
+     * @param totalId 主键
+     */
+    @SaCheckPermission("consumption:xfTermtotal:query")
+    @GetMapping("/{totalId}")
+    public R<XfTermtotalVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable String totalId) {
+        return R.ok(xfTermtotalService.queryById(totalId));
+    }
+
+    /**
+     * 新增消费机消费记录
+     */
+    @SaCheckPermission("consumption:xfTermtotal:add")
+    @Log(title = "消费机消费记录", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody XfTermtotalBo bo) {
+        return toAjax(xfTermtotalService.insertByBo(bo));
+    }
+
+    /**
+     * 修改消费机消费记录
+     */
+    @SaCheckPermission("consumption:xfTermtotal:edit")
+    @Log(title = "消费机消费记录", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody XfTermtotalBo bo) {
+        return toAjax(xfTermtotalService.updateByBo(bo));
+    }
+
+    /**
+     * 删除消费机消费记录
+     *
+     * @param totalIds 主键串
+     */
+    @SaCheckPermission("consumption:xfTermtotal:remove")
+    @Log(title = "消费机消费记录", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{totalIds}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable String[] totalIds) {
+        return toAjax(xfTermtotalService.deleteWithValidByIds(List.of(totalIds), true));
+    }
+}

+ 106 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfUsertotalController.java

@@ -0,0 +1,106 @@
+package org.dromara.backstage.consumption.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.backstage.consumption.domain.vo.XfUsertotalVo;
+import org.dromara.backstage.consumption.domain.bo.XfUsertotalBo;
+import org.dromara.backstage.consumption.service.IXfUsertotalService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 个人与消费与充值统计
+ * 前端访问路由地址为:/consumption/xfUsertotal
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/consumption/xfUsertotal")
+public class XfUsertotalController extends BaseController {
+
+    private final IXfUsertotalService xfUsertotalService;
+
+    /**
+     * 查询个人与消费与充值统计列表
+     */
+    @SaCheckPermission("consumption:xfUsertotal:list")
+    @GetMapping("/list")
+    public TableDataInfo<XfUsertotalVo> list(XfUsertotalBo bo, PageQuery pageQuery) {
+        return xfUsertotalService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出个人与消费与充值统计列表
+     */
+    @SaCheckPermission("consumption:xfUsertotal:export")
+    @Log(title = "个人与消费与充值统计", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(XfUsertotalBo bo, HttpServletResponse response) {
+        List<XfUsertotalVo> list = xfUsertotalService.queryList(bo);
+        ExcelUtil.exportExcel(list, "个人与消费与充值统计", XfUsertotalVo.class, response);
+    }
+
+    /**
+     * 获取个人与消费与充值统计详细信息
+     *
+     * @param totalId 主键
+     */
+    @SaCheckPermission("consumption:xfUsertotal:query")
+    @GetMapping("/{totalId}")
+    public R<XfUsertotalVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable String totalId) {
+        return R.ok(xfUsertotalService.queryById(totalId));
+    }
+
+    /**
+     * 新增个人与消费与充值统计
+     */
+    @SaCheckPermission("consumption:xfUsertotal:add")
+    @Log(title = "个人与消费与充值统计", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody XfUsertotalBo bo) {
+        return toAjax(xfUsertotalService.insertByBo(bo));
+    }
+
+    /**
+     * 修改个人与消费与充值统计
+     */
+    @SaCheckPermission("consumption:xfUsertotal:edit")
+    @Log(title = "个人与消费与充值统计", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody XfUsertotalBo bo) {
+        return toAjax(xfUsertotalService.updateByBo(bo));
+    }
+
+    /**
+     * 删除个人与消费与充值统计
+     *
+     * @param totalIds 主键串
+     */
+    @SaCheckPermission("consumption:xfUsertotal:remove")
+    @Log(title = "个人与消费与充值统计", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{totalIds}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable String[] totalIds) {
+        return toAjax(xfUsertotalService.deleteWithValidByIds(List.of(totalIds), true));
+    }
+}

+ 199 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfConsumedetail.java

@@ -0,0 +1,199 @@
+package org.dromara.backstage.consumption.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;
+
+/**
+ * 消费明细对象 t_xf_consumeDetail
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("t_xf_consumeDetail")
+public class XfConsumedetail extends TenantEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 消费记录Id,主键
+     */
+    @TableId(value = "consume_id")
+    private String consumeId;
+
+    /**
+     * 原始记录Id,主键
+     */
+    private String originalId;
+
+    /**
+     * 记录Id
+     */
+    private Long recordId;
+
+    /**
+     * 人员Id
+     */
+    private Long userId;
+
+    /**
+     * 学/工号
+     */
+    private String userNumb;
+
+    /**
+     * 用户姓名
+     */
+    private String realName;
+
+    /**
+     * 部门Id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+    /**
+     * 消费日期
+     */
+    private Date consumeDate;
+
+    /**
+     * 消费金额
+     */
+    private Long consumeMoney;
+
+    /**
+     * 卡流水号
+     */
+    private Long cardNo;
+
+    /**
+     * 物理卡号
+     */
+    private Long factoryId;
+
+    /**
+     * 卡上余额
+     */
+    private Long cardValue;
+
+    /**
+     * 卡使用次数
+     */
+    private Long cardCount;
+
+    /**
+     * 消费账户金额
+     */
+    private Long consumeBalance;
+
+    /**
+     * 设备机号
+     */
+    private Long termNo;
+
+    /**
+     * 设备名称
+     */
+    private String termName;
+
+    /**
+     * 机器流水号
+     */
+    private Long termRecordId;
+
+    /**
+     * 是否已处理(和灰记录处理有关)
+     */
+    private Long analysisFlag;
+
+    /**
+     * 状态标识(记录消费类型?)
+     */
+    private Long statusFlag;
+
+    /**
+     * 营业员Id
+     */
+    private Long operatorId;
+
+    /**
+     * 营业员名称
+     */
+    private String operatorName;
+
+    /**
+     * 结算账户Id
+     */
+    private Long accountId;
+
+    /**
+     * 结算账户名称
+     */
+    private String accountName;
+
+    /**
+     * 房间Id
+     */
+    private Long roomId;
+
+    /**
+     * 房间名称
+     */
+    private String roomName;
+
+    /**
+     * 钱包类型
+     */
+    private String bagType;
+
+    /**
+     * 餐类Id
+     */
+    private Long mealType;
+
+    /**
+     * 餐类名称
+     */
+    private String mealName;
+
+    /**
+     * 是否发送短信,见 sys_yes_no字典类别
+     */
+    private String smsSend;
+
+    /**
+     * 消费记录标志位?
+     */
+    private Long recordStatus;
+
+    /**
+     * 同步标志,0-未同步,1-已同步
+     */
+    private Long syncStatus;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 删除标志(0-未删除 2-已删除)
+     */
+    @TableLogic
+    private String delFlag;
+
+
+}

+ 169 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfConsumedetailoriginal.java

@@ -0,0 +1,169 @@
+package org.dromara.backstage.consumption.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;
+
+/**
+ * 原始消费记录对象 t_xf_consumeDetailOriginal
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("t_xf_consumeDetailOriginal")
+public class XfConsumedetailoriginal extends TenantEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 原始记录Id,主键
+     */
+    @TableId(value = "original_id")
+    private String originalId;
+
+    /**
+     * 记录Id
+     */
+    private Long recordId;
+
+    /**
+     * 人员Id
+     */
+    private Long userId;
+
+    /**
+     * 学/工号
+     */
+    private String userNumb;
+
+    /**
+     * 用户姓名
+     */
+    private String realName;
+
+    /**
+     * 部门Id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+    /**
+     * 消费日期
+     */
+    private Date consumeDate;
+
+    /**
+     * 消费金额
+     */
+    private Long consumeMoney;
+
+    /**
+     * 卡流水号
+     */
+    private Long cardNo;
+
+    /**
+     * 物理卡号
+     */
+    private Long factoryId;
+
+    /**
+     * 卡上余额
+     */
+    private Long cardValue;
+
+    /**
+     * 卡使用次数
+     */
+    private Long cardCount;
+
+    /**
+     * 消费账户金额
+     */
+    private Long consumeBalance;
+
+    /**
+     * 设备机号
+     */
+    private Long termNo;
+
+    /**
+     * 设备名称
+     */
+    private String termName;
+
+    /**
+     * 机器流水号
+     */
+    private Long termRecordId;
+
+    /**
+     * 是否已处理(和灰记录处理有关)
+     */
+    private Long anlysFlag;
+
+    /**
+     * 消费记录标志
+     */
+    private Long dataFlag;
+
+    /**
+     * 状态标识(记录消费类型?)
+     */
+    private Long statusFlag;
+
+    /**
+     * 防伪验证码(记录消费模式的中文信息)
+     */
+    private String digitalSign;
+
+    /**
+     * 水控金额
+     */
+    private Long waterValue;
+
+    /**
+     * 水控历史余额
+     */
+    private Long waterHistoryValue;
+
+    /**
+     * 水控当天总和
+     */
+    private Long waterDaySum;
+
+    /**
+     * 水控错误余额
+     */
+    private Long waterErrValue;
+
+    /**
+     * 水控错误消费金额
+     */
+    private Long waterErrMoney;
+
+    /**
+     * 营业员Id
+     */
+    private Long operatorId;
+
+    /**
+     * 删除标志(0-未删除 2-已删除)
+     */
+    @TableLogic
+    private String delFlag;
+
+
+}

+ 199 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfCreditaccount.java

@@ -0,0 +1,199 @@
+package org.dromara.backstage.consumption.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;
+
+/**
+ * 资金收支明细对象 t_xf_creditAccount
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("t_xf_creditAccount")
+public class XfCreditaccount extends TenantEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 收支Id
+     */
+    @TableId(value = "credit_id")
+    private String creditId;
+
+    /**
+     * 记录Id
+     */
+    private Long recordId;
+
+    /**
+     * 人员Id
+     */
+    private Long userId;
+
+    /**
+     * 学/工号
+     */
+    private String userNumb;
+
+    /**
+     * 用户姓名
+     */
+    private String realName;
+
+    /**
+     * 部门Id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+    /**
+     * 设备机号
+     */
+    private Long termNo;
+
+    /**
+     * 设备名称
+     */
+    private String termName;
+
+    /**
+     * 机器流水号
+     */
+    private Long termRecordId;
+
+    /**
+     * 卡流水号
+     */
+    private Long cardNo;
+
+    /**
+     * 卡上余额
+     */
+    private Long cardValue;
+
+    /**
+     * 卡片类型
+     */
+    private Long cardType;
+
+    /**
+     * 卡使用次数
+     */
+    private Long cardCount;
+
+    /**
+     * 卡片类型名称
+     */
+    private String cardTypeName;
+
+    /**
+     * 是否主卡,见sys_yes_no字典类别
+     */
+    private String mainCard;
+
+    /**
+     * 钱包类型
+     */
+    private String bagType;
+
+    /**
+     * 使用类型,100-消费系统
+     */
+    private Long useYpe;
+
+    /**
+     * 工作站编号
+     */
+    private Long stationNumb;
+
+    /**
+     * 工作站名称
+     */
+    private String stationName;
+
+    /**
+     * 营业员Id
+     */
+    private Long operatorId;
+
+    /**
+     * 营业员名称
+     */
+    private String operatorName;
+
+    /**
+     * 交易时间
+     */
+    private Date creditTime;
+
+    /**
+     * 交易类型,见CREDITTYPE字典类型
+     */
+    private String creditType;
+
+    /**
+     * 资金来源,见PAYSTYLE字典类型
+     */
+    private String payStyle;
+
+    /**
+     * 交易金额
+     */
+    private Long receiptMoney;
+
+    /**
+     * 核对状态,见sys_yes_no字典类型
+     */
+    private String auditStatus;
+
+    /**
+     * 核对时间
+     */
+    private Date auditDate;
+
+    /**
+     * 团充Id
+     */
+    private Long groupId;
+
+    /**
+     * 原始记录Id,对应收支备份表的主键字段
+     */
+    private String originalId;
+
+    /**
+     * 是否发送短信,见 sys_yes_no字典类别
+     */
+    private String smsSend;
+
+    /**
+     * 消费记录标志位?
+     */
+    private Long recordStatus;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 删除标志(0-未删除 2-已删除)
+     */
+    @TableLogic
+    private String delFlag;
+
+
+}

+ 159 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfCreditaccountback.java

@@ -0,0 +1,159 @@
+package org.dromara.backstage.consumption.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;
+
+/**
+ * 资金收支备份对象 t_xf_creditAccountBack
+ *
+ * @author Yb
+ * @date 2024-08-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("t_xf_creditAccountBack")
+public class XfCreditaccountback extends TenantEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 收支备份Id,主键
+     */
+    @TableId(value = "back_id")
+    private String backId;
+
+    /**
+     * 记录Id
+     */
+    private Long recordId;
+
+    /**
+     * 人员Id
+     */
+    private Long userId;
+
+    /**
+     * 设备机号
+     */
+    private Long termNo;
+
+    /**
+     * 机器流水号
+     */
+    private Long termRecordId;
+
+    /**
+     * 卡流水号
+     */
+    private Long cardNo;
+
+    /**
+     * 卡上余额
+     */
+    private Long cardValue;
+
+    /**
+     * 是否主卡,见sys_yes_no字典类别
+     */
+    private String mainCard;
+
+    /**
+     * 钱包类型
+     */
+    private String bagType;
+
+    /**
+     * 使用类型,100-消费系统
+     */
+    private Long useYpe;
+
+    /**
+     * 工作站Id
+     */
+    private Long stationId;
+
+    /**
+     * 营业员Id
+     */
+    private Long operatorId;
+
+    /**
+     * 交易时间
+     */
+    private Date creditTime;
+
+    /**
+     * 交易类型,见CREDITTYPE字典类型
+     */
+    private String creditType;
+
+    /**
+     * 资金来源,见PAYSTYLE字典类型
+     */
+    private String payStyle;
+
+    /**
+     * 交易金额
+     */
+    private Long receiptMoney;
+
+    /**
+     * 交易状态
+     */
+    private Long creditStatus;
+
+    /**
+     * 团充Id
+     */
+    private Long groupId;
+
+    /**
+     * 收支记录Id,对应收支明细表的主键字段
+     */
+    private String creditId;
+
+    /**
+     * 原始记录Id?
+     */
+    private String originalId;
+
+    /**
+     * 是否发送短信,见 sys_yes_no字典类别
+     */
+    private String smsSend;
+
+    /**
+     * 消费记录标志位?
+     */
+    private Long recordStatus;
+
+    /**
+     * 统计分析标识
+     */
+    private Long anlysFlag;
+
+    /**
+     * 数字签名
+     */
+    private String digitalSign;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 删除标志(0-未删除 2-已删除)
+     */
+    @TableLogic
+    private String delFlag;
+
+
+}

+ 102 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfTermtotal.java

@@ -0,0 +1,102 @@
+package org.dromara.backstage.consumption.domain;
+
+import org.dromara.common.tenant.core.TenantEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 消费机消费记录对象 t_xf_termTotal
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("t_xf_termTotal")
+public class XfTermtotal extends TenantEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 汇总Id,主键
+     */
+    @TableId(value = "total_id")
+    private String totalId;
+
+    /**
+     * 设备机号
+     */
+    private Long termNo;
+
+    /**
+     * 设备名称
+     */
+    private String termName;
+
+    /**
+     * 房间Id
+     */
+    private Long roomId;
+
+    /**
+     * 房间名称
+     */
+    private String roomName;
+
+    /**
+     * 结算账户Id
+     */
+    private Long accountId;
+
+    /**
+     * 结算账户名称
+     */
+    private String accountName;
+
+    /**
+     * 消费日期
+     */
+    private String dateDay;
+
+    /**
+     * 营业时段
+     */
+    private Long mealType;
+
+    /**
+     * 消费总额(该机该天该餐消费总额)
+     */
+    private Long mealAmount;
+
+    /**
+     * 消费次数(该机该天该餐消费次数)
+     */
+    private Long mealCount;
+
+    /**
+     * 使用类型,100-消费系统
+     */
+    private Long useYpe;
+
+    /**
+     * 错扣补款次数(该机该天该餐错扣补款次数)
+     */
+    private Long errFillCount;
+
+    /**
+     * 错扣补款总额(该机该天该餐错扣补款总额)
+     */
+    private Long errFillMoney;
+
+    /**
+     * 删除标志(0-未删除 2-已删除)
+     */
+    @TableLogic
+    private String delFlag;
+
+
+}

+ 82 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfUsertotal.java

@@ -0,0 +1,82 @@
+package org.dromara.backstage.consumption.domain;
+
+import org.dromara.common.tenant.core.TenantEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 个人与消费与充值统计对象 t_xf_userTotal
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("t_xf_userTotal")
+public class XfUsertotal extends TenantEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 汇总Id,主键
+     */
+    @TableId(value = "total_id")
+    private String totalId;
+
+    /**
+     * 人员Id
+     */
+    private Long userId;
+
+    /**
+     * 学/工号
+     */
+    private String userNumb;
+
+    /**
+     * 用户姓名
+     */
+    private String realName;
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+    /**
+     * 卡流水号
+     */
+    private Long cardNo;
+
+    /**
+     * 消费日期
+     */
+    private String dateDay;
+
+    /**
+     * 使用类型,100-消费系统
+     */
+    private Long useYpe;
+
+    /**
+     * 充值金额
+     */
+    private Long creditMoney;
+
+    /**
+     * 消费金额
+     */
+    private Long consumeMoney;
+
+    /**
+     * 删除标志(0-未删除 2-已删除)
+     */
+    @TableLogic
+    private String delFlag;
+
+
+}

+ 206 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfConsumedetailBo.java

@@ -0,0 +1,206 @@
+package org.dromara.backstage.consumption.domain.bo;
+
+import org.dromara.backstage.consumption.domain.XfConsumedetail;
+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;
+
+/**
+ * 消费明细业务对象 t_xf_consumeDetail
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = XfConsumedetail.class, reverseConvertGenerate = false)
+public class XfConsumedetailBo extends BaseEntity {
+
+    /**
+     * 消费记录Id,主键
+     */
+    @NotBlank(message = "消费记录Id,主键不能为空", groups = { EditGroup.class })
+    private String consumeId;
+
+    /**
+     * 原始记录Id,主键
+     */
+    @NotBlank(message = "原始记录Id,主键不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String originalId;
+
+    /**
+     * 记录Id
+     */
+    @NotNull(message = "记录Id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long recordId;
+
+    /**
+     * 人员Id
+     */
+    @NotNull(message = "人员Id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long userId;
+
+    /**
+     * 学/工号
+     */
+    private String userNumb;
+
+    /**
+     * 用户姓名
+     */
+    private String realName;
+
+    /**
+     * 部门Id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+    /**
+     * 消费日期
+     */
+    @NotNull(message = "消费日期不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date consumeDate;
+
+    /**
+     * 消费金额
+     */
+    @NotNull(message = "消费金额不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long consumeMoney;
+
+    /**
+     * 卡流水号
+     */
+    @NotNull(message = "卡流水号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long cardNo;
+
+    /**
+     * 物理卡号
+     */
+    @NotNull(message = "物理卡号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long factoryId;
+
+    /**
+     * 卡上余额
+     */
+    @NotNull(message = "卡上余额不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long cardValue;
+
+    /**
+     * 卡使用次数
+     */
+    private Long cardCount;
+
+    /**
+     * 消费账户金额
+     */
+    private Long consumeBalance;
+
+    /**
+     * 设备机号
+     */
+    @NotNull(message = "设备机号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long termNo;
+
+    /**
+     * 设备名称
+     */
+    private String termName;
+
+    /**
+     * 机器流水号
+     */
+    private Long termRecordId;
+
+    /**
+     * 是否已处理(和灰记录处理有关)
+     */
+    private Long analysisFlag;
+
+    /**
+     * 状态标识(记录消费类型?)
+     */
+    private Long statusFlag;
+
+    /**
+     * 营业员Id
+     */
+    private Long operatorId;
+
+    /**
+     * 营业员名称
+     */
+    private String operatorName;
+
+    /**
+     * 结算账户Id
+     */
+    @NotNull(message = "结算账户Id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long accountId;
+
+    /**
+     * 结算账户名称
+     */
+    private String accountName;
+
+    /**
+     * 房间Id
+     */
+    @NotNull(message = "房间Id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long roomId;
+
+    /**
+     * 房间名称
+     */
+    private String roomName;
+
+    /**
+     * 钱包类型
+     */
+    @NotBlank(message = "钱包类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String bagType;
+
+    /**
+     * 餐类Id
+     */
+    @NotNull(message = "餐类Id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long mealType;
+
+    /**
+     * 餐类名称
+     */
+    private String mealName;
+
+    /**
+     * 是否发送短信,见 sys_yes_no字典类别
+     */
+    private String smsSend;
+
+    /**
+     * 消费记录标志位?
+     */
+    private Long recordStatus;
+
+    /**
+     * 同步标志,0-未同步,1-已同步
+     */
+    private Long syncStatus;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+
+}

+ 170 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfConsumedetailoriginalBo.java

@@ -0,0 +1,170 @@
+package org.dromara.backstage.consumption.domain.bo;
+
+import org.dromara.backstage.consumption.domain.XfConsumedetailoriginal;
+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;
+
+/**
+ * 原始消费记录业务对象 t_xf_consumeDetailOriginal
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = XfConsumedetailoriginal.class, reverseConvertGenerate = false)
+public class XfConsumedetailoriginalBo extends BaseEntity {
+
+    /**
+     * 原始记录Id,主键
+     */
+    @NotBlank(message = "原始记录Id,主键不能为空", groups = { EditGroup.class })
+    private String originalId;
+
+    /**
+     * 记录Id
+     */
+    @NotNull(message = "记录Id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long recordId;
+
+    /**
+     * 人员Id
+     */
+    @NotNull(message = "人员Id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long userId;
+
+    /**
+     * 学/工号
+     */
+    private String userNumb;
+
+    /**
+     * 用户姓名
+     */
+    private String realName;
+
+    /**
+     * 部门Id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+    /**
+     * 消费日期
+     */
+    @NotNull(message = "消费日期不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date consumeDate;
+
+    /**
+     * 消费金额
+     */
+    @NotNull(message = "消费金额不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long consumeMoney;
+
+    /**
+     * 卡流水号
+     */
+    @NotNull(message = "卡流水号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long cardNo;
+
+    /**
+     * 物理卡号
+     */
+    @NotNull(message = "物理卡号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long factoryId;
+
+    /**
+     * 卡上余额
+     */
+    @NotNull(message = "卡上余额不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long cardValue;
+
+    /**
+     * 卡使用次数
+     */
+    private Long cardCount;
+
+    /**
+     * 消费账户金额
+     */
+    private Long consumeBalance;
+
+    /**
+     * 设备机号
+     */
+    @NotNull(message = "设备机号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long termNo;
+
+    /**
+     * 设备名称
+     */
+    private String termName;
+
+    /**
+     * 机器流水号
+     */
+    private Long termRecordId;
+
+    /**
+     * 是否已处理(和灰记录处理有关)
+     */
+    private Long anlysFlag;
+
+    /**
+     * 消费记录标志
+     */
+    private Long dataFlag;
+
+    /**
+     * 状态标识(记录消费类型?)
+     */
+    private Long statusFlag;
+
+    /**
+     * 防伪验证码(记录消费模式的中文信息)
+     */
+    private String digitalSign;
+
+    /**
+     * 水控金额
+     */
+    private Long waterValue;
+
+    /**
+     * 水控历史余额
+     */
+    private Long waterHistoryValue;
+
+    /**
+     * 水控当天总和
+     */
+    private Long waterDaySum;
+
+    /**
+     * 水控错误余额
+     */
+    private Long waterErrValue;
+
+    /**
+     * 水控错误消费金额
+     */
+    private Long waterErrMoney;
+
+    /**
+     * 营业员Id
+     */
+    private Long operatorId;
+
+
+}

+ 203 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfCreditaccountBo.java

@@ -0,0 +1,203 @@
+package org.dromara.backstage.consumption.domain.bo;
+
+import org.dromara.backstage.consumption.domain.XfCreditaccount;
+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;
+
+/**
+ * 资金收支明细业务对象 t_xf_creditAccount
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = XfCreditaccount.class, reverseConvertGenerate = false)
+public class XfCreditaccountBo extends BaseEntity {
+
+    /**
+     * 收支Id
+     */
+    @NotBlank(message = "收支Id不能为空", groups = { EditGroup.class })
+    private String creditId;
+
+    /**
+     * 记录Id
+     */
+    @NotNull(message = "记录Id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long recordId;
+
+    /**
+     * 人员Id
+     */
+    @NotNull(message = "人员Id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long userId;
+
+    /**
+     * 学/工号
+     */
+    private String userNumb;
+
+    /**
+     * 用户姓名
+     */
+    private String realName;
+
+    /**
+     * 部门Id
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+    /**
+     * 设备机号
+     */
+    private Long termNo;
+
+    /**
+     * 设备名称
+     */
+    private String termName;
+
+    /**
+     * 机器流水号
+     */
+    private Long termRecordId;
+
+    /**
+     * 卡流水号
+     */
+    private Long cardNo;
+
+    /**
+     * 卡上余额
+     */
+    private Long cardValue;
+
+    /**
+     * 卡片类型
+     */
+    private Long cardType;
+
+    /**
+     * 卡使用次数
+     */
+    private Long cardCount;
+
+    /**
+     * 卡片类型名称
+     */
+    private String cardTypeName;
+
+    /**
+     * 是否主卡,见sys_yes_no字典类别
+     */
+    private String mainCard;
+
+    /**
+     * 钱包类型
+     */
+    @NotBlank(message = "钱包类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String bagType;
+
+    /**
+     * 使用类型,100-消费系统
+     */
+    @NotNull(message = "使用类型,100-消费系统不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long useYpe;
+
+    /**
+     * 工作站编号
+     */
+    private Long stationNumb;
+
+    /**
+     * 工作站名称
+     */
+    private String stationName;
+
+    /**
+     * 营业员Id
+     */
+    private Long operatorId;
+
+    /**
+     * 营业员名称
+     */
+    private String operatorName;
+
+    /**
+     * 交易时间
+     */
+    @NotNull(message = "交易时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date creditTime;
+
+    /**
+     * 交易类型,见CREDITTYPE字典类型
+     */
+    @NotBlank(message = "交易类型,见CREDITTYPE字典类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creditType;
+
+    /**
+     * 资金来源,见PAYSTYLE字典类型
+     */
+    @NotBlank(message = "资金来源,见PAYSTYLE字典类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String payStyle;
+
+    /**
+     * 交易金额
+     */
+    @NotNull(message = "交易金额不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long receiptMoney;
+
+    /**
+     * 核对状态,见sys_yes_no字典类型
+     */
+    private String auditStatus;
+
+    /**
+     * 核对时间
+     */
+    private Date auditDate;
+
+    /**
+     * 团充Id
+     */
+    private Long groupId;
+
+    /**
+     * 原始记录Id,对应收支备份表的主键字段
+     */
+    @NotBlank(message = "原始记录Id,对应收支备份表的主键字段不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String originalId;
+
+    /**
+     * 是否发送短信,见 sys_yes_no字典类别
+     */
+    @NotBlank(message = "是否发送短信,见 sys_yes_no字典类别不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String smsSend;
+
+    /**
+     * 消费记录标志位?
+     */
+    @NotNull(message = "消费记录标志位?不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long recordStatus;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 159 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfCreditaccountbackBo.java

@@ -0,0 +1,159 @@
+package org.dromara.backstage.consumption.domain.bo;
+
+import org.dromara.backstage.consumption.domain.XfCreditaccountback;
+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;
+
+/**
+ * 资金收支备份业务对象 t_xf_creditAccountBack
+ *
+ * @author Yb
+ * @date 2024-08-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = XfCreditaccountback.class, reverseConvertGenerate = false)
+public class XfCreditaccountbackBo extends BaseEntity {
+
+    /**
+     * 收支备份Id,主键
+     */
+    @NotBlank(message = "收支备份Id,主键不能为空", groups = { EditGroup.class })
+    private String backId;
+
+    /**
+     * 记录Id
+     */
+    @NotNull(message = "记录Id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long recordId;
+
+    /**
+     * 人员Id
+     */
+    private Long userId;
+
+    /**
+     * 设备机号
+     */
+    private Long termNo;
+
+    /**
+     * 机器流水号
+     */
+    private Long termRecordId;
+
+    /**
+     * 卡流水号
+     */
+    private Long cardNo;
+
+    /**
+     * 卡上余额
+     */
+    private Long cardValue;
+
+    /**
+     * 是否主卡,见sys_yes_no字典类别
+     */
+    private String mainCard;
+
+    /**
+     * 钱包类型
+     */
+    @NotBlank(message = "钱包类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String bagType;
+
+    /**
+     * 使用类型,100-消费系统
+     */
+    @NotNull(message = "使用类型,100-消费系统不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long useYpe;
+
+    /**
+     * 工作站Id
+     */
+    private Long stationId;
+
+    /**
+     * 营业员Id
+     */
+    private Long operatorId;
+
+    /**
+     * 交易时间
+     */
+    @NotNull(message = "交易时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date creditTime;
+
+    /**
+     * 交易类型,见CREDITTYPE字典类型
+     */
+    @NotBlank(message = "交易类型,见CREDITTYPE字典类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String creditType;
+
+    /**
+     * 资金来源,见PAYSTYLE字典类型
+     */
+    @NotBlank(message = "资金来源,见PAYSTYLE字典类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String payStyle;
+
+    /**
+     * 交易金额
+     */
+    @NotNull(message = "交易金额不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long receiptMoney;
+
+    /**
+     * 交易状态
+     */
+    private Long creditStatus;
+
+    /**
+     * 团充Id
+     */
+    private Long groupId;
+
+    /**
+     * 收支记录Id,对应收支明细表的主键字段
+     */
+    private String creditId;
+
+    /**
+     * 原始记录Id?
+     */
+    private String originalId;
+
+    /**
+     * 是否发送短信,见 sys_yes_no字典类别
+     */
+    private String smsSend;
+
+    /**
+     * 消费记录标志位?
+     */
+    private Long recordStatus;
+
+    /**
+     * 统计分析标识
+     */
+    private Long anlysFlag;
+
+    /**
+     * 数字签名
+     */
+    private String digitalSign;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 101 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfTermtotalBo.java

@@ -0,0 +1,101 @@
+package org.dromara.backstage.consumption.domain.bo;
+
+import org.dromara.backstage.consumption.domain.XfTermtotal;
+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.*;
+
+/**
+ * 消费机消费记录业务对象 t_xf_termTotal
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = XfTermtotal.class, reverseConvertGenerate = false)
+public class XfTermtotalBo extends BaseEntity {
+
+    /**
+     * 汇总Id,主键
+     */
+    @NotBlank(message = "汇总Id,主键不能为空", groups = { EditGroup.class })
+    private String totalId;
+
+    /**
+     * 设备机号
+     */
+    @NotNull(message = "设备机号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long termNo;
+
+    /**
+     * 设备名称
+     */
+    private String termName;
+
+    /**
+     * 房间Id
+     */
+    @NotNull(message = "房间Id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long roomId;
+
+    /**
+     * 房间名称
+     */
+    private String roomName;
+
+    /**
+     * 结算账户Id
+     */
+    @NotNull(message = "结算账户Id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long accountId;
+
+    /**
+     * 结算账户名称
+     */
+    private String accountName;
+
+    /**
+     * 消费日期
+     */
+    @NotBlank(message = "消费日期不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String dateDay;
+
+    /**
+     * 营业时段
+     */
+    @NotNull(message = "营业时段不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long mealType;
+
+    /**
+     * 消费总额(该机该天该餐消费总额)
+     */
+    private Long mealAmount;
+
+    /**
+     * 消费次数(该机该天该餐消费次数)
+     */
+    private Long mealCount;
+
+    /**
+     * 使用类型,100-消费系统
+     */
+    @NotNull(message = "使用类型,100-消费系统不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long useYpe;
+
+    /**
+     * 错扣补款次数(该机该天该餐错扣补款次数)
+     */
+    private Long errFillCount;
+
+    /**
+     * 错扣补款总额(该机该天该餐错扣补款总额)
+     */
+    private Long errFillMoney;
+
+
+}

+ 79 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfUsertotalBo.java

@@ -0,0 +1,79 @@
+package org.dromara.backstage.consumption.domain.bo;
+
+import org.dromara.backstage.consumption.domain.XfUsertotal;
+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.*;
+
+/**
+ * 个人与消费与充值统计业务对象 t_xf_userTotal
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = XfUsertotal.class, reverseConvertGenerate = false)
+public class XfUsertotalBo extends BaseEntity {
+
+    /**
+     * 汇总Id,主键
+     */
+    @NotBlank(message = "汇总Id,主键不能为空", groups = { EditGroup.class })
+    private String totalId;
+
+    /**
+     * 人员Id
+     */
+    @NotNull(message = "人员Id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long userId;
+
+    /**
+     * 学/工号
+     */
+    private String userNumb;
+
+    /**
+     * 用户姓名
+     */
+    private String realName;
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+    /**
+     * 卡流水号
+     */
+    @NotNull(message = "卡流水号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long cardNo;
+
+    /**
+     * 消费日期
+     */
+    @NotBlank(message = "消费日期不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String dateDay;
+
+    /**
+     * 使用类型,100-消费系统
+     */
+    @NotNull(message = "使用类型,100-消费系统不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long useYpe;
+
+    /**
+     * 充值金额
+     */
+    private Long creditMoney;
+
+    /**
+     * 消费金额
+     */
+    private Long consumeMoney;
+
+
+}

+ 233 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfConsumedetailVo.java

@@ -0,0 +1,233 @@
+package org.dromara.backstage.consumption.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.dromara.backstage.consumption.domain.XfConsumedetail;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.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;
+
+
+
+/**
+ * 消费明细视图对象 t_xf_consumeDetail
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = XfConsumedetail.class)
+public class XfConsumedetailVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 消费记录Id,主键
+     */
+    @ExcelProperty(value = "消费记录Id,主键")
+    private String consumeId;
+
+    /**
+     * 原始记录Id,主键
+     */
+    @ExcelProperty(value = "原始记录Id,主键")
+    private String originalId;
+
+    /**
+     * 记录Id
+     */
+    @ExcelProperty(value = "记录Id")
+    private Long recordId;
+
+    /**
+     * 人员Id
+     */
+    @ExcelProperty(value = "人员Id")
+    private Long userId;
+
+    /**
+     * 学/工号
+     */
+    @ExcelProperty(value = "学/工号")
+    private String userNumb;
+
+    /**
+     * 用户姓名
+     */
+    @ExcelProperty(value = "用户姓名")
+    private String realName;
+
+    /**
+     * 部门Id
+     */
+    @ExcelProperty(value = "部门Id")
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    @ExcelProperty(value = "部门名称")
+    private String deptName;
+
+    /**
+     * 消费日期
+     */
+    @ExcelProperty(value = "消费日期")
+    private Date consumeDate;
+
+    /**
+     * 消费金额
+     */
+    @ExcelProperty(value = "消费金额")
+    private Long consumeMoney;
+
+    /**
+     * 卡流水号
+     */
+    @ExcelProperty(value = "卡流水号")
+    private Long cardNo;
+
+    /**
+     * 物理卡号
+     */
+    @ExcelProperty(value = "物理卡号")
+    private Long factoryId;
+
+    /**
+     * 卡上余额
+     */
+    @ExcelProperty(value = "卡上余额")
+    private Long cardValue;
+
+    /**
+     * 卡使用次数
+     */
+    @ExcelProperty(value = "卡使用次数")
+    private Long cardCount;
+
+    /**
+     * 消费账户金额
+     */
+    @ExcelProperty(value = "消费账户金额")
+    private Long consumeBalance;
+
+    /**
+     * 设备机号
+     */
+    @ExcelProperty(value = "设备机号")
+    private Long termNo;
+
+    /**
+     * 设备名称
+     */
+    @ExcelProperty(value = "设备名称")
+    private String termName;
+
+    /**
+     * 机器流水号
+     */
+    @ExcelProperty(value = "机器流水号")
+    private Long termRecordId;
+
+    /**
+     * 是否已处理(和灰记录处理有关)
+     */
+    @ExcelProperty(value = "是否已处理(和灰记录处理有关)")
+    private Long analysisFlag;
+
+    /**
+     * 状态标识(记录消费类型?)
+     */
+    @ExcelProperty(value = "状态标识", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(readConverterExp = "记=录消费类型?")
+    private Long statusFlag;
+
+    /**
+     * 营业员Id
+     */
+    @ExcelProperty(value = "营业员Id")
+    private Long operatorId;
+
+    /**
+     * 营业员名称
+     */
+    @ExcelProperty(value = "营业员名称")
+    private String operatorName;
+
+    /**
+     * 结算账户Id
+     */
+    @ExcelProperty(value = "结算账户Id")
+    private Long accountId;
+
+    /**
+     * 结算账户名称
+     */
+    @ExcelProperty(value = "结算账户名称")
+    private String accountName;
+
+    /**
+     * 房间Id
+     */
+    @ExcelProperty(value = "房间Id")
+    private Long roomId;
+
+    /**
+     * 房间名称
+     */
+    @ExcelProperty(value = "房间名称")
+    private String roomName;
+
+    /**
+     * 钱包类型
+     */
+    @ExcelProperty(value = "钱包类型")
+    private String bagType;
+
+    /**
+     * 餐类Id
+     */
+    @ExcelProperty(value = "餐类Id")
+    private Long mealType;
+
+    /**
+     * 餐类名称
+     */
+    @ExcelProperty(value = "餐类名称")
+    private String mealName;
+
+    /**
+     * 是否发送短信,见 sys_yes_no字典类别
+     */
+    @ExcelProperty(value = "是否发送短信,见 sys_yes_no字典类别")
+    private String smsSend;
+
+    /**
+     * 消费记录标志位?
+     */
+    @ExcelProperty(value = "消费记录标志位?")
+    private Long recordStatus;
+
+    /**
+     * 同步标志,0-未同步,1-已同步
+     */
+    @ExcelProperty(value = "同步标志,0-未同步,1-已同步")
+    private Long syncStatus;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+
+}

+ 198 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfConsumedetailoriginalVo.java

@@ -0,0 +1,198 @@
+package org.dromara.backstage.consumption.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.dromara.backstage.consumption.domain.XfConsumedetailoriginal;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.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;
+
+
+
+/**
+ * 原始消费记录视图对象 t_xf_consumeDetailOriginal
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = XfConsumedetailoriginal.class)
+public class XfConsumedetailoriginalVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 原始记录Id,主键
+     */
+    @ExcelProperty(value = "原始记录Id,主键")
+    private String originalId;
+
+    /**
+     * 记录Id
+     */
+    @ExcelProperty(value = "记录Id")
+    private Long recordId;
+
+    /**
+     * 人员Id
+     */
+    @ExcelProperty(value = "人员Id")
+    private Long userId;
+
+    /**
+     * 学/工号
+     */
+    @ExcelProperty(value = "学/工号")
+    private String userNumb;
+
+    /**
+     * 用户姓名
+     */
+    @ExcelProperty(value = "用户姓名")
+    private String realName;
+
+    /**
+     * 部门Id
+     */
+    @ExcelProperty(value = "部门Id")
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    @ExcelProperty(value = "部门名称")
+    private String deptName;
+
+    /**
+     * 消费日期
+     */
+    @ExcelProperty(value = "消费日期")
+    private Date consumeDate;
+
+    /**
+     * 消费金额
+     */
+    @ExcelProperty(value = "消费金额")
+    private Long consumeMoney;
+
+    /**
+     * 卡流水号
+     */
+    @ExcelProperty(value = "卡流水号")
+    private Long cardNo;
+
+    /**
+     * 物理卡号
+     */
+    @ExcelProperty(value = "物理卡号")
+    private Long factoryId;
+
+    /**
+     * 卡上余额
+     */
+    @ExcelProperty(value = "卡上余额")
+    private Long cardValue;
+
+    /**
+     * 卡使用次数
+     */
+    @ExcelProperty(value = "卡使用次数")
+    private Long cardCount;
+
+    /**
+     * 消费账户金额
+     */
+    @ExcelProperty(value = "消费账户金额")
+    private Long consumeBalance;
+
+    /**
+     * 设备机号
+     */
+    @ExcelProperty(value = "设备机号")
+    private Long termNo;
+
+    /**
+     * 设备名称
+     */
+    @ExcelProperty(value = "设备名称")
+    private String termName;
+
+    /**
+     * 机器流水号
+     */
+    @ExcelProperty(value = "机器流水号")
+    private Long termRecordId;
+
+    /**
+     * 是否已处理(和灰记录处理有关)
+     */
+    @ExcelProperty(value = "是否已处理(和灰记录处理有关)")
+    private Long anlysFlag;
+
+    /**
+     * 消费记录标志
+     */
+    @ExcelProperty(value = "消费记录标志")
+    private Long dataFlag;
+
+    /**
+     * 状态标识(记录消费类型?)
+     */
+    @ExcelProperty(value = "状态标识", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(readConverterExp = "记=录消费类型?")
+    private Long statusFlag;
+
+    /**
+     * 防伪验证码(记录消费模式的中文信息)
+     */
+    @ExcelProperty(value = "防伪验证码", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(readConverterExp = "记=录消费模式的中文信息")
+    private String digitalSign;
+
+    /**
+     * 水控金额
+     */
+    @ExcelProperty(value = "水控金额")
+    private Long waterValue;
+
+    /**
+     * 水控历史余额
+     */
+    @ExcelProperty(value = "水控历史余额")
+    private Long waterHistoryValue;
+
+    /**
+     * 水控当天总和
+     */
+    @ExcelProperty(value = "水控当天总和")
+    private Long waterDaySum;
+
+    /**
+     * 水控错误余额
+     */
+    @ExcelProperty(value = "水控错误余额")
+    private Long waterErrValue;
+
+    /**
+     * 水控错误消费金额
+     */
+    @ExcelProperty(value = "水控错误消费金额")
+    private Long waterErrMoney;
+
+    /**
+     * 营业员Id
+     */
+    @ExcelProperty(value = "营业员Id")
+    private Long operatorId;
+
+
+}

+ 232 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfCreditaccountVo.java

@@ -0,0 +1,232 @@
+package org.dromara.backstage.consumption.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.dromara.backstage.consumption.domain.XfCreditaccount;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.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;
+
+
+
+/**
+ * 资金收支明细视图对象 t_xf_creditAccount
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = XfCreditaccount.class)
+public class XfCreditaccountVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 收支Id
+     */
+    @ExcelProperty(value = "收支Id")
+    private String creditId;
+
+    /**
+     * 记录Id
+     */
+    @ExcelProperty(value = "记录Id")
+    private Long recordId;
+
+    /**
+     * 人员Id
+     */
+    @ExcelProperty(value = "人员Id")
+    private Long userId;
+
+    /**
+     * 学/工号
+     */
+    @ExcelProperty(value = "学/工号")
+    private String userNumb;
+
+    /**
+     * 用户姓名
+     */
+    @ExcelProperty(value = "用户姓名")
+    private String realName;
+
+    /**
+     * 部门Id
+     */
+    @ExcelProperty(value = "部门Id")
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    @ExcelProperty(value = "部门名称")
+    private String deptName;
+
+    /**
+     * 设备机号
+     */
+    @ExcelProperty(value = "设备机号")
+    private Long termNo;
+
+    /**
+     * 设备名称
+     */
+    @ExcelProperty(value = "设备名称")
+    private String termName;
+
+    /**
+     * 机器流水号
+     */
+    @ExcelProperty(value = "机器流水号")
+    private Long termRecordId;
+
+    /**
+     * 卡流水号
+     */
+    @ExcelProperty(value = "卡流水号")
+    private Long cardNo;
+
+    /**
+     * 卡上余额
+     */
+    @ExcelProperty(value = "卡上余额")
+    private Long cardValue;
+
+    /**
+     * 卡片类型
+     */
+    @ExcelProperty(value = "卡片类型")
+    private Long cardType;
+
+    /**
+     * 卡使用次数
+     */
+    @ExcelProperty(value = "卡使用次数")
+    private Long cardCount;
+
+    /**
+     * 卡片类型名称
+     */
+    @ExcelProperty(value = "卡片类型名称")
+    private String cardTypeName;
+
+    /**
+     * 是否主卡,见sys_yes_no字典类别
+     */
+    @ExcelProperty(value = "是否主卡,见sys_yes_no字典类别")
+    private String mainCard;
+
+    /**
+     * 钱包类型
+     */
+    @ExcelProperty(value = "钱包类型")
+    private String bagType;
+
+    /**
+     * 使用类型,100-消费系统
+     */
+    @ExcelProperty(value = "使用类型,100-消费系统")
+    private Long useYpe;
+
+    /**
+     * 工作站编号
+     */
+    @ExcelProperty(value = "工作站编号")
+    private Long stationNumb;
+
+    /**
+     * 工作站名称
+     */
+    @ExcelProperty(value = "工作站名称")
+    private String stationName;
+
+    /**
+     * 营业员Id
+     */
+    @ExcelProperty(value = "营业员Id")
+    private Long operatorId;
+
+    /**
+     * 营业员名称
+     */
+    @ExcelProperty(value = "营业员名称")
+    private String operatorName;
+
+    /**
+     * 交易时间
+     */
+    @ExcelProperty(value = "交易时间")
+    private Date creditTime;
+
+    /**
+     * 交易类型,见CREDITTYPE字典类型
+     */
+    @ExcelProperty(value = "交易类型,见CREDITTYPE字典类型")
+    private String creditType;
+
+    /**
+     * 资金来源,见PAYSTYLE字典类型
+     */
+    @ExcelProperty(value = "资金来源,见PAYSTYLE字典类型")
+    private String payStyle;
+
+    /**
+     * 交易金额
+     */
+    @ExcelProperty(value = "交易金额")
+    private Long receiptMoney;
+
+    /**
+     * 核对状态,见sys_yes_no字典类型
+     */
+    @ExcelProperty(value = "核对状态,见sys_yes_no字典类型")
+    private String auditStatus;
+
+    /**
+     * 核对时间
+     */
+    @ExcelProperty(value = "核对时间")
+    private Date auditDate;
+
+    /**
+     * 团充Id
+     */
+    @ExcelProperty(value = "团充Id")
+    private Long groupId;
+
+    /**
+     * 原始记录Id,对应收支备份表的主键字段
+     */
+    @ExcelProperty(value = "原始记录Id,对应收支备份表的主键字段")
+    private String originalId;
+
+    /**
+     * 是否发送短信,见 sys_yes_no字典类别
+     */
+    @ExcelProperty(value = "是否发送短信,见 sys_yes_no字典类别")
+    private String smsSend;
+
+    /**
+     * 消费记录标志位?
+     */
+    @ExcelProperty(value = "消费记录标志位?")
+    private Long recordStatus;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+
+}

+ 184 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfCreditaccountbackVo.java

@@ -0,0 +1,184 @@
+package org.dromara.backstage.consumption.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.dromara.backstage.consumption.domain.XfCreditaccountback;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.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;
+
+
+
+/**
+ * 资金收支备份视图对象 t_xf_creditAccountBack
+ *
+ * @author Yb
+ * @date 2024-08-15
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = XfCreditaccountback.class)
+public class XfCreditaccountbackVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 收支备份Id,主键
+     */
+    @ExcelProperty(value = "收支备份Id,主键")
+    private String backId;
+
+    /**
+     * 记录Id
+     */
+    @ExcelProperty(value = "记录Id")
+    private Long recordId;
+
+    /**
+     * 人员Id
+     */
+    @ExcelProperty(value = "人员Id")
+    private Long userId;
+
+    /**
+     * 设备机号
+     */
+    @ExcelProperty(value = "设备机号")
+    private Long termNo;
+
+    /**
+     * 机器流水号
+     */
+    @ExcelProperty(value = "机器流水号")
+    private Long termRecordId;
+
+    /**
+     * 卡流水号
+     */
+    @ExcelProperty(value = "卡流水号")
+    private Long cardNo;
+
+    /**
+     * 卡上余额
+     */
+    @ExcelProperty(value = "卡上余额")
+    private Long cardValue;
+
+    /**
+     * 是否主卡,见sys_yes_no字典类别
+     */
+    @ExcelProperty(value = "是否主卡,见sys_yes_no字典类别")
+    private String mainCard;
+
+    /**
+     * 钱包类型
+     */
+    @ExcelProperty(value = "钱包类型")
+    private String bagType;
+
+    /**
+     * 使用类型,100-消费系统
+     */
+    @ExcelProperty(value = "使用类型,100-消费系统")
+    private Long useYpe;
+
+    /**
+     * 工作站Id
+     */
+    @ExcelProperty(value = "工作站Id")
+    private Long stationId;
+
+    /**
+     * 营业员Id
+     */
+    @ExcelProperty(value = "营业员Id")
+    private Long operatorId;
+
+    /**
+     * 交易时间
+     */
+    @ExcelProperty(value = "交易时间")
+    private Date creditTime;
+
+    /**
+     * 交易类型,见CREDITTYPE字典类型
+     */
+    @ExcelProperty(value = "交易类型,见CREDITTYPE字典类型")
+    private String creditType;
+
+    /**
+     * 资金来源,见PAYSTYLE字典类型
+     */
+    @ExcelProperty(value = "资金来源,见PAYSTYLE字典类型")
+    private String payStyle;
+
+    /**
+     * 交易金额
+     */
+    @ExcelProperty(value = "交易金额")
+    private Long receiptMoney;
+
+    /**
+     * 交易状态
+     */
+    @ExcelProperty(value = "交易状态")
+    private Long creditStatus;
+
+    /**
+     * 团充Id
+     */
+    @ExcelProperty(value = "团充Id")
+    private Long groupId;
+
+    /**
+     * 收支记录Id,对应收支明细表的主键字段
+     */
+    @ExcelProperty(value = "收支记录Id,对应收支明细表的主键字段")
+    private String creditId;
+
+    /**
+     * 原始记录Id?
+     */
+    @ExcelProperty(value = "原始记录Id?")
+    private String originalId;
+
+    /**
+     * 是否发送短信,见 sys_yes_no字典类别
+     */
+    @ExcelProperty(value = "是否发送短信,见 sys_yes_no字典类别")
+    private String smsSend;
+
+    /**
+     * 消费记录标志位?
+     */
+    @ExcelProperty(value = "消费记录标志位?")
+    private Long recordStatus;
+
+    /**
+     * 统计分析标识
+     */
+    @ExcelProperty(value = "统计分析标识")
+    private Long anlysFlag;
+
+    /**
+     * 数字签名
+     */
+    @ExcelProperty(value = "数字签名")
+    private String digitalSign;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+
+}

+ 116 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfTermtotalVo.java

@@ -0,0 +1,116 @@
+package org.dromara.backstage.consumption.domain.vo;
+
+import org.dromara.backstage.consumption.domain.XfTermtotal;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.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;
+
+
+
+/**
+ * 消费机消费记录视图对象 t_xf_termTotal
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = XfTermtotal.class)
+public class XfTermtotalVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 汇总Id,主键
+     */
+    @ExcelProperty(value = "汇总Id,主键")
+    private String totalId;
+
+    /**
+     * 设备机号
+     */
+    @ExcelProperty(value = "设备机号")
+    private Long termNo;
+
+    /**
+     * 设备名称
+     */
+    @ExcelProperty(value = "设备名称")
+    private String termName;
+
+    /**
+     * 房间Id
+     */
+    @ExcelProperty(value = "房间Id")
+    private Long roomId;
+
+    /**
+     * 房间名称
+     */
+    @ExcelProperty(value = "房间名称")
+    private String roomName;
+
+    /**
+     * 结算账户Id
+     */
+    @ExcelProperty(value = "结算账户Id")
+    private Long accountId;
+
+    /**
+     * 结算账户名称
+     */
+    @ExcelProperty(value = "结算账户名称")
+    private String accountName;
+
+    /**
+     * 消费日期
+     */
+    @ExcelProperty(value = "消费日期")
+    private String dateDay;
+
+    /**
+     * 营业时段
+     */
+    @ExcelProperty(value = "营业时段")
+    private Long mealType;
+
+    /**
+     * 消费总额(该机该天该餐消费总额)
+     */
+    @ExcelProperty(value = "消费总额(该机该天该餐消费总额)")
+    private Long mealAmount;
+
+    /**
+     * 消费次数(该机该天该餐消费次数)
+     */
+    @ExcelProperty(value = "消费次数(该机该天该餐消费次数)")
+    private Long mealCount;
+
+    /**
+     * 使用类型,100-消费系统
+     */
+    @ExcelProperty(value = "使用类型,100-消费系统")
+    private Long useYpe;
+
+    /**
+     * 错扣补款次数(该机该天该餐错扣补款次数)
+     */
+    @ExcelProperty(value = "错扣补款次数(该机该天该餐错扣补款次数)")
+    private Long errFillCount;
+
+    /**
+     * 错扣补款总额(该机该天该餐错扣补款总额)
+     */
+    @ExcelProperty(value = "错扣补款总额(该机该天该餐错扣补款总额)")
+    private Long errFillMoney;
+
+
+}

+ 92 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfUsertotalVo.java

@@ -0,0 +1,92 @@
+package org.dromara.backstage.consumption.domain.vo;
+
+import org.dromara.backstage.consumption.domain.XfUsertotal;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.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;
+
+
+
+/**
+ * 个人与消费与充值统计视图对象 t_xf_userTotal
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = XfUsertotal.class)
+public class XfUsertotalVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 汇总Id,主键
+     */
+    @ExcelProperty(value = "汇总Id,主键")
+    private String totalId;
+
+    /**
+     * 人员Id
+     */
+    @ExcelProperty(value = "人员Id")
+    private Long userId;
+
+    /**
+     * 学/工号
+     */
+    @ExcelProperty(value = "学/工号")
+    private String userNumb;
+
+    /**
+     * 用户姓名
+     */
+    @ExcelProperty(value = "用户姓名")
+    private String realName;
+
+    /**
+     * 部门名称
+     */
+    @ExcelProperty(value = "部门名称")
+    private String deptName;
+
+    /**
+     * 卡流水号
+     */
+    @ExcelProperty(value = "卡流水号")
+    private Long cardNo;
+
+    /**
+     * 消费日期
+     */
+    @ExcelProperty(value = "消费日期")
+    private String dateDay;
+
+    /**
+     * 使用类型,100-消费系统
+     */
+    @ExcelProperty(value = "使用类型,100-消费系统")
+    private Long useYpe;
+
+    /**
+     * 充值金额
+     */
+    @ExcelProperty(value = "充值金额")
+    private Long creditMoney;
+
+    /**
+     * 消费金额
+     */
+    @ExcelProperty(value = "消费金额")
+    private Long consumeMoney;
+
+
+}

+ 15 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfConsumedetailMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.backstage.consumption.mapper;
+
+import org.dromara.backstage.consumption.domain.XfConsumedetail;
+import org.dromara.backstage.consumption.domain.vo.XfConsumedetailVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 消费明细Mapper接口
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+public interface XfConsumedetailMapper extends BaseMapperPlus<XfConsumedetail, XfConsumedetailVo> {
+
+}

+ 15 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfConsumedetailoriginalMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.backstage.consumption.mapper;
+
+import org.dromara.backstage.consumption.domain.XfConsumedetailoriginal;
+import org.dromara.backstage.consumption.domain.vo.XfConsumedetailoriginalVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 原始消费记录Mapper接口
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+public interface XfConsumedetailoriginalMapper extends BaseMapperPlus<XfConsumedetailoriginal, XfConsumedetailoriginalVo> {
+
+}

+ 15 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfCreditaccountMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.backstage.consumption.mapper;
+
+import org.dromara.backstage.consumption.domain.XfCreditaccount;
+import org.dromara.backstage.consumption.domain.vo.XfCreditaccountVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 资金收支明细Mapper接口
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+public interface XfCreditaccountMapper extends BaseMapperPlus<XfCreditaccount, XfCreditaccountVo> {
+
+}

+ 15 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfCreditaccountbackMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.backstage.consumption.mapper;
+
+import org.dromara.backstage.consumption.domain.XfCreditaccountback;
+import org.dromara.backstage.consumption.domain.vo.XfCreditaccountbackVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 资金收支备份Mapper接口
+ *
+ * @author Yb
+ * @date 2024-08-15
+ */
+public interface XfCreditaccountbackMapper extends BaseMapperPlus<XfCreditaccountback, XfCreditaccountbackVo> {
+
+}

+ 15 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfTermtotalMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.backstage.consumption.mapper;
+
+import org.dromara.backstage.consumption.domain.XfTermtotal;
+import org.dromara.backstage.consumption.domain.vo.XfTermtotalVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 消费机消费记录Mapper接口
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+public interface XfTermtotalMapper extends BaseMapperPlus<XfTermtotal, XfTermtotalVo> {
+
+}

+ 15 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfUsertotalMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.backstage.consumption.mapper;
+
+import org.dromara.backstage.consumption.domain.XfUsertotal;
+import org.dromara.backstage.consumption.domain.vo.XfUsertotalVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 个人与消费与充值统计Mapper接口
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+public interface XfUsertotalMapper extends BaseMapperPlus<XfUsertotal, XfUsertotalVo> {
+
+}

+ 69 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfConsumedetailService.java

@@ -0,0 +1,69 @@
+package org.dromara.backstage.consumption.service;
+
+import org.dromara.backstage.consumption.domain.XfConsumedetail;
+import org.dromara.backstage.consumption.domain.vo.XfConsumedetailVo;
+import org.dromara.backstage.consumption.domain.bo.XfConsumedetailBo;
+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 LionLi
+ * @date 2024-08-15
+ */
+public interface IXfConsumedetailService {
+
+    /**
+     * 查询消费明细
+     *
+     * @param consumeId 主键
+     * @return 消费明细
+     */
+    XfConsumedetailVo queryById(String consumeId);
+
+    /**
+     * 分页查询消费明细列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 消费明细分页列表
+     */
+    TableDataInfo<XfConsumedetailVo> queryPageList(XfConsumedetailBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询符合条件的消费明细列表
+     *
+     * @param bo 查询条件
+     * @return 消费明细列表
+     */
+    List<XfConsumedetailVo> queryList(XfConsumedetailBo bo);
+
+    /**
+     * 新增消费明细
+     *
+     * @param bo 消费明细
+     * @return 是否新增成功
+     */
+    Boolean insertByBo(XfConsumedetailBo bo);
+
+    /**
+     * 修改消费明细
+     *
+     * @param bo 消费明细
+     * @return 是否修改成功
+     */
+    Boolean updateByBo(XfConsumedetailBo bo);
+
+    /**
+     * 校验并批量删除消费明细信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

+ 69 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfConsumedetailoriginalService.java

@@ -0,0 +1,69 @@
+package org.dromara.backstage.consumption.service;
+
+import org.dromara.backstage.consumption.domain.XfConsumedetailoriginal;
+import org.dromara.backstage.consumption.domain.vo.XfConsumedetailoriginalVo;
+import org.dromara.backstage.consumption.domain.bo.XfConsumedetailoriginalBo;
+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 LionLi
+ * @date 2024-08-15
+ */
+public interface IXfConsumedetailoriginalService {
+
+    /**
+     * 查询原始消费记录
+     *
+     * @param originalId 主键
+     * @return 原始消费记录
+     */
+    XfConsumedetailoriginalVo queryById(String originalId);
+
+    /**
+     * 分页查询原始消费记录列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 原始消费记录分页列表
+     */
+    TableDataInfo<XfConsumedetailoriginalVo> queryPageList(XfConsumedetailoriginalBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询符合条件的原始消费记录列表
+     *
+     * @param bo 查询条件
+     * @return 原始消费记录列表
+     */
+    List<XfConsumedetailoriginalVo> queryList(XfConsumedetailoriginalBo bo);
+
+    /**
+     * 新增原始消费记录
+     *
+     * @param bo 原始消费记录
+     * @return 是否新增成功
+     */
+    Boolean insertByBo(XfConsumedetailoriginalBo bo);
+
+    /**
+     * 修改原始消费记录
+     *
+     * @param bo 原始消费记录
+     * @return 是否修改成功
+     */
+    Boolean updateByBo(XfConsumedetailoriginalBo bo);
+
+    /**
+     * 校验并批量删除原始消费记录信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

+ 69 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfCreditaccountService.java

@@ -0,0 +1,69 @@
+package org.dromara.backstage.consumption.service;
+
+import org.dromara.backstage.consumption.domain.XfCreditaccount;
+import org.dromara.backstage.consumption.domain.vo.XfCreditaccountVo;
+import org.dromara.backstage.consumption.domain.bo.XfCreditaccountBo;
+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 LionLi
+ * @date 2024-08-15
+ */
+public interface IXfCreditaccountService {
+
+    /**
+     * 查询资金收支明细
+     *
+     * @param creditId 主键
+     * @return 资金收支明细
+     */
+    XfCreditaccountVo queryById(String creditId);
+
+    /**
+     * 分页查询资金收支明细列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 资金收支明细分页列表
+     */
+    TableDataInfo<XfCreditaccountVo> queryPageList(XfCreditaccountBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询符合条件的资金收支明细列表
+     *
+     * @param bo 查询条件
+     * @return 资金收支明细列表
+     */
+    List<XfCreditaccountVo> queryList(XfCreditaccountBo bo);
+
+    /**
+     * 新增资金收支明细
+     *
+     * @param bo 资金收支明细
+     * @return 是否新增成功
+     */
+    Boolean insertByBo(XfCreditaccountBo bo);
+
+    /**
+     * 修改资金收支明细
+     *
+     * @param bo 资金收支明细
+     * @return 是否修改成功
+     */
+    Boolean updateByBo(XfCreditaccountBo bo);
+
+    /**
+     * 校验并批量删除资金收支明细信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

+ 69 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfCreditaccountbackService.java

@@ -0,0 +1,69 @@
+package org.dromara.backstage.consumption.service;
+
+import org.dromara.backstage.consumption.domain.XfCreditaccountback;
+import org.dromara.backstage.consumption.domain.vo.XfCreditaccountbackVo;
+import org.dromara.backstage.consumption.domain.bo.XfCreditaccountbackBo;
+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 Yb
+ * @date 2024-08-15
+ */
+public interface IXfCreditaccountbackService {
+
+    /**
+     * 查询资金收支备份
+     *
+     * @param backId 主键
+     * @return 资金收支备份
+     */
+    XfCreditaccountbackVo queryById(String backId);
+
+    /**
+     * 分页查询资金收支备份列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 资金收支备份分页列表
+     */
+    TableDataInfo<XfCreditaccountbackVo> queryPageList(XfCreditaccountbackBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询符合条件的资金收支备份列表
+     *
+     * @param bo 查询条件
+     * @return 资金收支备份列表
+     */
+    List<XfCreditaccountbackVo> queryList(XfCreditaccountbackBo bo);
+
+    /**
+     * 新增资金收支备份
+     *
+     * @param bo 资金收支备份
+     * @return 是否新增成功
+     */
+    Boolean insertByBo(XfCreditaccountbackBo bo);
+
+    /**
+     * 修改资金收支备份
+     *
+     * @param bo 资金收支备份
+     * @return 是否修改成功
+     */
+    Boolean updateByBo(XfCreditaccountbackBo bo);
+
+    /**
+     * 校验并批量删除资金收支备份信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

+ 69 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfTermtotalService.java

@@ -0,0 +1,69 @@
+package org.dromara.backstage.consumption.service;
+
+import org.dromara.backstage.consumption.domain.XfTermtotal;
+import org.dromara.backstage.consumption.domain.vo.XfTermtotalVo;
+import org.dromara.backstage.consumption.domain.bo.XfTermtotalBo;
+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 LionLi
+ * @date 2024-08-15
+ */
+public interface IXfTermtotalService {
+
+    /**
+     * 查询消费机消费记录
+     *
+     * @param totalId 主键
+     * @return 消费机消费记录
+     */
+    XfTermtotalVo queryById(String totalId);
+
+    /**
+     * 分页查询消费机消费记录列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 消费机消费记录分页列表
+     */
+    TableDataInfo<XfTermtotalVo> queryPageList(XfTermtotalBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询符合条件的消费机消费记录列表
+     *
+     * @param bo 查询条件
+     * @return 消费机消费记录列表
+     */
+    List<XfTermtotalVo> queryList(XfTermtotalBo bo);
+
+    /**
+     * 新增消费机消费记录
+     *
+     * @param bo 消费机消费记录
+     * @return 是否新增成功
+     */
+    Boolean insertByBo(XfTermtotalBo bo);
+
+    /**
+     * 修改消费机消费记录
+     *
+     * @param bo 消费机消费记录
+     * @return 是否修改成功
+     */
+    Boolean updateByBo(XfTermtotalBo bo);
+
+    /**
+     * 校验并批量删除消费机消费记录信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

+ 69 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfUsertotalService.java

@@ -0,0 +1,69 @@
+package org.dromara.backstage.consumption.service;
+
+import org.dromara.backstage.consumption.domain.XfUsertotal;
+import org.dromara.backstage.consumption.domain.vo.XfUsertotalVo;
+import org.dromara.backstage.consumption.domain.bo.XfUsertotalBo;
+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 LionLi
+ * @date 2024-08-15
+ */
+public interface IXfUsertotalService {
+
+    /**
+     * 查询个人与消费与充值统计
+     *
+     * @param totalId 主键
+     * @return 个人与消费与充值统计
+     */
+    XfUsertotalVo queryById(String totalId);
+
+    /**
+     * 分页查询个人与消费与充值统计列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 个人与消费与充值统计分页列表
+     */
+    TableDataInfo<XfUsertotalVo> queryPageList(XfUsertotalBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询符合条件的个人与消费与充值统计列表
+     *
+     * @param bo 查询条件
+     * @return 个人与消费与充值统计列表
+     */
+    List<XfUsertotalVo> queryList(XfUsertotalBo bo);
+
+    /**
+     * 新增个人与消费与充值统计
+     *
+     * @param bo 个人与消费与充值统计
+     * @return 是否新增成功
+     */
+    Boolean insertByBo(XfUsertotalBo bo);
+
+    /**
+     * 修改个人与消费与充值统计
+     *
+     * @param bo 个人与消费与充值统计
+     * @return 是否修改成功
+     */
+    Boolean updateByBo(XfUsertotalBo bo);
+
+    /**
+     * 校验并批量删除个人与消费与充值统计信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

+ 159 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfConsumedetailServiceImpl.java

@@ -0,0 +1,159 @@
+package org.dromara.backstage.consumption.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 org.springframework.stereotype.Service;
+import org.dromara.backstage.consumption.domain.bo.XfConsumedetailBo;
+import org.dromara.backstage.consumption.domain.vo.XfConsumedetailVo;
+import org.dromara.backstage.consumption.domain.XfConsumedetail;
+import org.dromara.backstage.consumption.mapper.XfConsumedetailMapper;
+import org.dromara.backstage.consumption.service.IXfConsumedetailService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 消费明细Service业务层处理
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@RequiredArgsConstructor
+@Service
+public class XfConsumedetailServiceImpl implements IXfConsumedetailService {
+
+    private final XfConsumedetailMapper baseMapper;
+
+    /**
+     * 查询消费明细
+     *
+     * @param consumeId 主键
+     * @return 消费明细
+     */
+    @Override
+    public XfConsumedetailVo queryById(String consumeId){
+        return baseMapper.selectVoById(consumeId);
+    }
+
+    /**
+     * 分页查询消费明细列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 消费明细分页列表
+     */
+    @Override
+    public TableDataInfo<XfConsumedetailVo> queryPageList(XfConsumedetailBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<XfConsumedetail> lqw = buildQueryWrapper(bo);
+        Page<XfConsumedetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询符合条件的消费明细列表
+     *
+     * @param bo 查询条件
+     * @return 消费明细列表
+     */
+    @Override
+    public List<XfConsumedetailVo> queryList(XfConsumedetailBo bo) {
+        LambdaQueryWrapper<XfConsumedetail> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<XfConsumedetail> buildQueryWrapper(XfConsumedetailBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<XfConsumedetail> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StringUtils.isNotBlank(bo.getOriginalId()), XfConsumedetail::getOriginalId, bo.getOriginalId());
+        lqw.eq(bo.getRecordId() != null, XfConsumedetail::getRecordId, bo.getRecordId());
+        lqw.eq(bo.getUserId() != null, XfConsumedetail::getUserId, bo.getUserId());
+        lqw.eq(StringUtils.isNotBlank(bo.getUserNumb()), XfConsumedetail::getUserNumb, bo.getUserNumb());
+        lqw.like(StringUtils.isNotBlank(bo.getRealName()), XfConsumedetail::getRealName, bo.getRealName());
+        lqw.eq(bo.getDeptId() != null, XfConsumedetail::getDeptId, bo.getDeptId());
+        lqw.like(StringUtils.isNotBlank(bo.getDeptName()), XfConsumedetail::getDeptName, bo.getDeptName());
+        lqw.eq(bo.getConsumeDate() != null, XfConsumedetail::getConsumeDate, bo.getConsumeDate());
+        lqw.eq(bo.getConsumeMoney() != null, XfConsumedetail::getConsumeMoney, bo.getConsumeMoney());
+        lqw.eq(bo.getCardNo() != null, XfConsumedetail::getCardNo, bo.getCardNo());
+        lqw.eq(bo.getFactoryId() != null, XfConsumedetail::getFactoryId, bo.getFactoryId());
+        lqw.eq(bo.getCardValue() != null, XfConsumedetail::getCardValue, bo.getCardValue());
+        lqw.eq(bo.getCardCount() != null, XfConsumedetail::getCardCount, bo.getCardCount());
+        lqw.eq(bo.getConsumeBalance() != null, XfConsumedetail::getConsumeBalance, bo.getConsumeBalance());
+        lqw.eq(bo.getTermNo() != null, XfConsumedetail::getTermNo, bo.getTermNo());
+        lqw.like(StringUtils.isNotBlank(bo.getTermName()), XfConsumedetail::getTermName, bo.getTermName());
+        lqw.eq(bo.getTermRecordId() != null, XfConsumedetail::getTermRecordId, bo.getTermRecordId());
+        lqw.eq(bo.getAnalysisFlag() != null, XfConsumedetail::getAnalysisFlag, bo.getAnalysisFlag());
+        lqw.eq(bo.getStatusFlag() != null, XfConsumedetail::getStatusFlag, bo.getStatusFlag());
+        lqw.eq(bo.getOperatorId() != null, XfConsumedetail::getOperatorId, bo.getOperatorId());
+        lqw.like(StringUtils.isNotBlank(bo.getOperatorName()), XfConsumedetail::getOperatorName, bo.getOperatorName());
+        lqw.eq(bo.getAccountId() != null, XfConsumedetail::getAccountId, bo.getAccountId());
+        lqw.like(StringUtils.isNotBlank(bo.getAccountName()), XfConsumedetail::getAccountName, bo.getAccountName());
+        lqw.eq(bo.getRoomId() != null, XfConsumedetail::getRoomId, bo.getRoomId());
+        lqw.like(StringUtils.isNotBlank(bo.getRoomName()), XfConsumedetail::getRoomName, bo.getRoomName());
+        lqw.eq(StringUtils.isNotBlank(bo.getBagType()), XfConsumedetail::getBagType, bo.getBagType());
+        lqw.eq(bo.getMealType() != null, XfConsumedetail::getMealType, bo.getMealType());
+        lqw.like(StringUtils.isNotBlank(bo.getMealName()), XfConsumedetail::getMealName, bo.getMealName());
+        lqw.eq(StringUtils.isNotBlank(bo.getSmsSend()), XfConsumedetail::getSmsSend, bo.getSmsSend());
+        lqw.eq(bo.getRecordStatus() != null, XfConsumedetail::getRecordStatus, bo.getRecordStatus());
+        lqw.eq(bo.getSyncStatus() != null, XfConsumedetail::getSyncStatus, bo.getSyncStatus());
+        return lqw;
+    }
+
+    /**
+     * 新增消费明细
+     *
+     * @param bo 消费明细
+     * @return 是否新增成功
+     */
+    @Override
+    public Boolean insertByBo(XfConsumedetailBo bo) {
+        XfConsumedetail add = MapstructUtils.convert(bo, XfConsumedetail.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setConsumeId(add.getConsumeId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改消费明细
+     *
+     * @param bo 消费明细
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateByBo(XfConsumedetailBo bo) {
+        XfConsumedetail update = MapstructUtils.convert(bo, XfConsumedetail.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(XfConsumedetail entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 校验并批量删除消费明细信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}

+ 154 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfConsumedetailoriginalServiceImpl.java

@@ -0,0 +1,154 @@
+package org.dromara.backstage.consumption.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 org.springframework.stereotype.Service;
+import org.dromara.backstage.consumption.domain.bo.XfConsumedetailoriginalBo;
+import org.dromara.backstage.consumption.domain.vo.XfConsumedetailoriginalVo;
+import org.dromara.backstage.consumption.domain.XfConsumedetailoriginal;
+import org.dromara.backstage.consumption.mapper.XfConsumedetailoriginalMapper;
+import org.dromara.backstage.consumption.service.IXfConsumedetailoriginalService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 原始消费记录Service业务层处理
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@RequiredArgsConstructor
+@Service
+public class XfConsumedetailoriginalServiceImpl implements IXfConsumedetailoriginalService {
+
+    private final XfConsumedetailoriginalMapper baseMapper;
+
+    /**
+     * 查询原始消费记录
+     *
+     * @param originalId 主键
+     * @return 原始消费记录
+     */
+    @Override
+    public XfConsumedetailoriginalVo queryById(String originalId){
+        return baseMapper.selectVoById(originalId);
+    }
+
+    /**
+     * 分页查询原始消费记录列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 原始消费记录分页列表
+     */
+    @Override
+    public TableDataInfo<XfConsumedetailoriginalVo> queryPageList(XfConsumedetailoriginalBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<XfConsumedetailoriginal> lqw = buildQueryWrapper(bo);
+        Page<XfConsumedetailoriginalVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询符合条件的原始消费记录列表
+     *
+     * @param bo 查询条件
+     * @return 原始消费记录列表
+     */
+    @Override
+    public List<XfConsumedetailoriginalVo> queryList(XfConsumedetailoriginalBo bo) {
+        LambdaQueryWrapper<XfConsumedetailoriginal> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<XfConsumedetailoriginal> buildQueryWrapper(XfConsumedetailoriginalBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<XfConsumedetailoriginal> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getRecordId() != null, XfConsumedetailoriginal::getRecordId, bo.getRecordId());
+        lqw.eq(bo.getUserId() != null, XfConsumedetailoriginal::getUserId, bo.getUserId());
+        lqw.eq(StringUtils.isNotBlank(bo.getUserNumb()), XfConsumedetailoriginal::getUserNumb, bo.getUserNumb());
+        lqw.like(StringUtils.isNotBlank(bo.getRealName()), XfConsumedetailoriginal::getRealName, bo.getRealName());
+        lqw.eq(bo.getDeptId() != null, XfConsumedetailoriginal::getDeptId, bo.getDeptId());
+        lqw.like(StringUtils.isNotBlank(bo.getDeptName()), XfConsumedetailoriginal::getDeptName, bo.getDeptName());
+        lqw.eq(bo.getConsumeDate() != null, XfConsumedetailoriginal::getConsumeDate, bo.getConsumeDate());
+        lqw.eq(bo.getConsumeMoney() != null, XfConsumedetailoriginal::getConsumeMoney, bo.getConsumeMoney());
+        lqw.eq(bo.getCardNo() != null, XfConsumedetailoriginal::getCardNo, bo.getCardNo());
+        lqw.eq(bo.getFactoryId() != null, XfConsumedetailoriginal::getFactoryId, bo.getFactoryId());
+        lqw.eq(bo.getCardValue() != null, XfConsumedetailoriginal::getCardValue, bo.getCardValue());
+        lqw.eq(bo.getCardCount() != null, XfConsumedetailoriginal::getCardCount, bo.getCardCount());
+        lqw.eq(bo.getConsumeBalance() != null, XfConsumedetailoriginal::getConsumeBalance, bo.getConsumeBalance());
+        lqw.eq(bo.getTermNo() != null, XfConsumedetailoriginal::getTermNo, bo.getTermNo());
+        lqw.like(StringUtils.isNotBlank(bo.getTermName()), XfConsumedetailoriginal::getTermName, bo.getTermName());
+        lqw.eq(bo.getTermRecordId() != null, XfConsumedetailoriginal::getTermRecordId, bo.getTermRecordId());
+        lqw.eq(bo.getAnlysFlag() != null, XfConsumedetailoriginal::getAnlysFlag, bo.getAnlysFlag());
+        lqw.eq(bo.getDataFlag() != null, XfConsumedetailoriginal::getDataFlag, bo.getDataFlag());
+        lqw.eq(bo.getStatusFlag() != null, XfConsumedetailoriginal::getStatusFlag, bo.getStatusFlag());
+        lqw.eq(StringUtils.isNotBlank(bo.getDigitalSign()), XfConsumedetailoriginal::getDigitalSign, bo.getDigitalSign());
+        lqw.eq(bo.getWaterValue() != null, XfConsumedetailoriginal::getWaterValue, bo.getWaterValue());
+        lqw.eq(bo.getWaterHistoryValue() != null, XfConsumedetailoriginal::getWaterHistoryValue, bo.getWaterHistoryValue());
+        lqw.eq(bo.getWaterDaySum() != null, XfConsumedetailoriginal::getWaterDaySum, bo.getWaterDaySum());
+        lqw.eq(bo.getWaterErrValue() != null, XfConsumedetailoriginal::getWaterErrValue, bo.getWaterErrValue());
+        lqw.eq(bo.getWaterErrMoney() != null, XfConsumedetailoriginal::getWaterErrMoney, bo.getWaterErrMoney());
+        lqw.eq(bo.getOperatorId() != null, XfConsumedetailoriginal::getOperatorId, bo.getOperatorId());
+        return lqw;
+    }
+
+    /**
+     * 新增原始消费记录
+     *
+     * @param bo 原始消费记录
+     * @return 是否新增成功
+     */
+    @Override
+    public Boolean insertByBo(XfConsumedetailoriginalBo bo) {
+        XfConsumedetailoriginal add = MapstructUtils.convert(bo, XfConsumedetailoriginal.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setOriginalId(add.getOriginalId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改原始消费记录
+     *
+     * @param bo 原始消费记录
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateByBo(XfConsumedetailoriginalBo bo) {
+        XfConsumedetailoriginal update = MapstructUtils.convert(bo, XfConsumedetailoriginal.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(XfConsumedetailoriginal entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 校验并批量删除原始消费记录信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}

+ 158 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfCreditaccountServiceImpl.java

@@ -0,0 +1,158 @@
+package org.dromara.backstage.consumption.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 org.springframework.stereotype.Service;
+import org.dromara.backstage.consumption.domain.bo.XfCreditaccountBo;
+import org.dromara.backstage.consumption.domain.vo.XfCreditaccountVo;
+import org.dromara.backstage.consumption.domain.XfCreditaccount;
+import org.dromara.backstage.consumption.mapper.XfCreditaccountMapper;
+import org.dromara.backstage.consumption.service.IXfCreditaccountService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 资金收支明细Service业务层处理
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@RequiredArgsConstructor
+@Service
+public class XfCreditaccountServiceImpl implements IXfCreditaccountService {
+
+    private final XfCreditaccountMapper baseMapper;
+
+    /**
+     * 查询资金收支明细
+     *
+     * @param creditId 主键
+     * @return 资金收支明细
+     */
+    @Override
+    public XfCreditaccountVo queryById(String creditId){
+        return baseMapper.selectVoById(creditId);
+    }
+
+    /**
+     * 分页查询资金收支明细列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 资金收支明细分页列表
+     */
+    @Override
+    public TableDataInfo<XfCreditaccountVo> queryPageList(XfCreditaccountBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<XfCreditaccount> lqw = buildQueryWrapper(bo);
+        Page<XfCreditaccountVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询符合条件的资金收支明细列表
+     *
+     * @param bo 查询条件
+     * @return 资金收支明细列表
+     */
+    @Override
+    public List<XfCreditaccountVo> queryList(XfCreditaccountBo bo) {
+        LambdaQueryWrapper<XfCreditaccount> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<XfCreditaccount> buildQueryWrapper(XfCreditaccountBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<XfCreditaccount> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getUserId() != null, XfCreditaccount::getUserId, bo.getUserId());
+        lqw.eq(StringUtils.isNotBlank(bo.getUserNumb()), XfCreditaccount::getUserNumb, bo.getUserNumb());
+        lqw.like(StringUtils.isNotBlank(bo.getRealName()), XfCreditaccount::getRealName, bo.getRealName());
+        lqw.eq(bo.getDeptId() != null, XfCreditaccount::getDeptId, bo.getDeptId());
+        lqw.like(StringUtils.isNotBlank(bo.getDeptName()), XfCreditaccount::getDeptName, bo.getDeptName());
+        lqw.eq(bo.getTermNo() != null, XfCreditaccount::getTermNo, bo.getTermNo());
+        lqw.like(StringUtils.isNotBlank(bo.getTermName()), XfCreditaccount::getTermName, bo.getTermName());
+        lqw.eq(bo.getTermRecordId() != null, XfCreditaccount::getTermRecordId, bo.getTermRecordId());
+        lqw.eq(bo.getCardNo() != null, XfCreditaccount::getCardNo, bo.getCardNo());
+        lqw.eq(bo.getCardValue() != null, XfCreditaccount::getCardValue, bo.getCardValue());
+        lqw.eq(bo.getCardType() != null, XfCreditaccount::getCardType, bo.getCardType());
+        lqw.eq(bo.getCardCount() != null, XfCreditaccount::getCardCount, bo.getCardCount());
+        lqw.like(StringUtils.isNotBlank(bo.getCardTypeName()), XfCreditaccount::getCardTypeName, bo.getCardTypeName());
+        lqw.eq(StringUtils.isNotBlank(bo.getMainCard()), XfCreditaccount::getMainCard, bo.getMainCard());
+        lqw.eq(StringUtils.isNotBlank(bo.getBagType()), XfCreditaccount::getBagType, bo.getBagType());
+        lqw.eq(bo.getUseYpe() != null, XfCreditaccount::getUseYpe, bo.getUseYpe());
+        lqw.eq(bo.getStationNumb() != null, XfCreditaccount::getStationNumb, bo.getStationNumb());
+        lqw.like(StringUtils.isNotBlank(bo.getStationName()), XfCreditaccount::getStationName, bo.getStationName());
+        lqw.eq(bo.getOperatorId() != null, XfCreditaccount::getOperatorId, bo.getOperatorId());
+        lqw.like(StringUtils.isNotBlank(bo.getOperatorName()), XfCreditaccount::getOperatorName, bo.getOperatorName());
+        lqw.eq(bo.getCreditTime() != null, XfCreditaccount::getCreditTime, bo.getCreditTime());
+        lqw.eq(StringUtils.isNotBlank(bo.getCreditType()), XfCreditaccount::getCreditType, bo.getCreditType());
+        lqw.eq(StringUtils.isNotBlank(bo.getPayStyle()), XfCreditaccount::getPayStyle, bo.getPayStyle());
+        lqw.eq(bo.getReceiptMoney() != null, XfCreditaccount::getReceiptMoney, bo.getReceiptMoney());
+        lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XfCreditaccount::getAuditStatus, bo.getAuditStatus());
+        lqw.eq(bo.getAuditDate() != null, XfCreditaccount::getAuditDate, bo.getAuditDate());
+        lqw.eq(bo.getGroupId() != null, XfCreditaccount::getGroupId, bo.getGroupId());
+        lqw.eq(StringUtils.isNotBlank(bo.getOriginalId()), XfCreditaccount::getOriginalId, bo.getOriginalId());
+        lqw.eq(StringUtils.isNotBlank(bo.getSmsSend()), XfCreditaccount::getSmsSend, bo.getSmsSend());
+        lqw.eq(bo.getRecordStatus() != null, XfCreditaccount::getRecordStatus, bo.getRecordStatus());
+        return lqw;
+    }
+
+    /**
+     * 新增资金收支明细
+     *
+     * @param bo 资金收支明细
+     * @return 是否新增成功
+     */
+    @Override
+    public Boolean insertByBo(XfCreditaccountBo bo) {
+        XfCreditaccount add = MapstructUtils.convert(bo, XfCreditaccount.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setCreditId(add.getCreditId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改资金收支明细
+     *
+     * @param bo 资金收支明细
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateByBo(XfCreditaccountBo bo) {
+        XfCreditaccount update = MapstructUtils.convert(bo, XfCreditaccount.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(XfCreditaccount entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 校验并批量删除资金收支明细信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}

+ 151 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfCreditaccountbackServiceImpl.java

@@ -0,0 +1,151 @@
+package org.dromara.backstage.consumption.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 org.springframework.stereotype.Service;
+import org.dromara.backstage.consumption.domain.bo.XfCreditaccountbackBo;
+import org.dromara.backstage.consumption.domain.vo.XfCreditaccountbackVo;
+import org.dromara.backstage.consumption.domain.XfCreditaccountback;
+import org.dromara.backstage.consumption.mapper.XfCreditaccountbackMapper;
+import org.dromara.backstage.consumption.service.IXfCreditaccountbackService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 资金收支备份Service业务层处理
+ *
+ * @author Yb
+ * @date 2024-08-15
+ */
+@RequiredArgsConstructor
+@Service
+public class XfCreditaccountbackServiceImpl implements IXfCreditaccountbackService {
+
+    private final XfCreditaccountbackMapper baseMapper;
+
+    /**
+     * 查询资金收支备份
+     *
+     * @param backId 主键
+     * @return 资金收支备份
+     */
+    @Override
+    public XfCreditaccountbackVo queryById(String backId){
+        return baseMapper.selectVoById(backId);
+    }
+
+    /**
+     * 分页查询资金收支备份列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 资金收支备份分页列表
+     */
+    @Override
+    public TableDataInfo<XfCreditaccountbackVo> queryPageList(XfCreditaccountbackBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<XfCreditaccountback> lqw = buildQueryWrapper(bo);
+        Page<XfCreditaccountbackVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询符合条件的资金收支备份列表
+     *
+     * @param bo 查询条件
+     * @return 资金收支备份列表
+     */
+    @Override
+    public List<XfCreditaccountbackVo> queryList(XfCreditaccountbackBo bo) {
+        LambdaQueryWrapper<XfCreditaccountback> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<XfCreditaccountback> buildQueryWrapper(XfCreditaccountbackBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<XfCreditaccountback> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getRecordId() != null, XfCreditaccountback::getRecordId, bo.getRecordId());
+        lqw.eq(bo.getUserId() != null, XfCreditaccountback::getUserId, bo.getUserId());
+        lqw.eq(bo.getTermNo() != null, XfCreditaccountback::getTermNo, bo.getTermNo());
+        lqw.eq(bo.getTermRecordId() != null, XfCreditaccountback::getTermRecordId, bo.getTermRecordId());
+        lqw.eq(bo.getCardNo() != null, XfCreditaccountback::getCardNo, bo.getCardNo());
+        lqw.eq(bo.getCardValue() != null, XfCreditaccountback::getCardValue, bo.getCardValue());
+        lqw.eq(StringUtils.isNotBlank(bo.getMainCard()), XfCreditaccountback::getMainCard, bo.getMainCard());
+        lqw.eq(StringUtils.isNotBlank(bo.getBagType()), XfCreditaccountback::getBagType, bo.getBagType());
+        lqw.eq(bo.getUseYpe() != null, XfCreditaccountback::getUseYpe, bo.getUseYpe());
+        lqw.eq(bo.getStationId() != null, XfCreditaccountback::getStationId, bo.getStationId());
+        lqw.eq(bo.getOperatorId() != null, XfCreditaccountback::getOperatorId, bo.getOperatorId());
+        lqw.eq(bo.getCreditTime() != null, XfCreditaccountback::getCreditTime, bo.getCreditTime());
+        lqw.eq(StringUtils.isNotBlank(bo.getCreditType()), XfCreditaccountback::getCreditType, bo.getCreditType());
+        lqw.eq(StringUtils.isNotBlank(bo.getPayStyle()), XfCreditaccountback::getPayStyle, bo.getPayStyle());
+        lqw.eq(bo.getReceiptMoney() != null, XfCreditaccountback::getReceiptMoney, bo.getReceiptMoney());
+        lqw.eq(bo.getCreditStatus() != null, XfCreditaccountback::getCreditStatus, bo.getCreditStatus());
+        lqw.eq(bo.getGroupId() != null, XfCreditaccountback::getGroupId, bo.getGroupId());
+        lqw.eq(StringUtils.isNotBlank(bo.getCreditId()), XfCreditaccountback::getCreditId, bo.getCreditId());
+        lqw.eq(StringUtils.isNotBlank(bo.getOriginalId()), XfCreditaccountback::getOriginalId, bo.getOriginalId());
+        lqw.eq(StringUtils.isNotBlank(bo.getSmsSend()), XfCreditaccountback::getSmsSend, bo.getSmsSend());
+        lqw.eq(bo.getRecordStatus() != null, XfCreditaccountback::getRecordStatus, bo.getRecordStatus());
+        lqw.eq(bo.getAnlysFlag() != null, XfCreditaccountback::getAnlysFlag, bo.getAnlysFlag());
+        lqw.eq(StringUtils.isNotBlank(bo.getDigitalSign()), XfCreditaccountback::getDigitalSign, bo.getDigitalSign());
+        return lqw;
+    }
+
+    /**
+     * 新增资金收支备份
+     *
+     * @param bo 资金收支备份
+     * @return 是否新增成功
+     */
+    @Override
+    public Boolean insertByBo(XfCreditaccountbackBo bo) {
+        XfCreditaccountback add = MapstructUtils.convert(bo, XfCreditaccountback.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setBackId(add.getBackId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改资金收支备份
+     *
+     * @param bo 资金收支备份
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateByBo(XfCreditaccountbackBo bo) {
+        XfCreditaccountback update = MapstructUtils.convert(bo, XfCreditaccountback.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(XfCreditaccountback entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 校验并批量删除资金收支备份信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}

+ 141 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfTermtotalServiceImpl.java

@@ -0,0 +1,141 @@
+package org.dromara.backstage.consumption.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 org.springframework.stereotype.Service;
+import org.dromara.backstage.consumption.domain.bo.XfTermtotalBo;
+import org.dromara.backstage.consumption.domain.vo.XfTermtotalVo;
+import org.dromara.backstage.consumption.domain.XfTermtotal;
+import org.dromara.backstage.consumption.mapper.XfTermtotalMapper;
+import org.dromara.backstage.consumption.service.IXfTermtotalService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 消费机消费记录Service业务层处理
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@RequiredArgsConstructor
+@Service
+public class XfTermtotalServiceImpl implements IXfTermtotalService {
+
+    private final XfTermtotalMapper baseMapper;
+
+    /**
+     * 查询消费机消费记录
+     *
+     * @param totalId 主键
+     * @return 消费机消费记录
+     */
+    @Override
+    public XfTermtotalVo queryById(String totalId){
+        return baseMapper.selectVoById(totalId);
+    }
+
+    /**
+     * 分页查询消费机消费记录列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 消费机消费记录分页列表
+     */
+    @Override
+    public TableDataInfo<XfTermtotalVo> queryPageList(XfTermtotalBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<XfTermtotal> lqw = buildQueryWrapper(bo);
+        Page<XfTermtotalVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询符合条件的消费机消费记录列表
+     *
+     * @param bo 查询条件
+     * @return 消费机消费记录列表
+     */
+    @Override
+    public List<XfTermtotalVo> queryList(XfTermtotalBo bo) {
+        LambdaQueryWrapper<XfTermtotal> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<XfTermtotal> buildQueryWrapper(XfTermtotalBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<XfTermtotal> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getTermNo() != null, XfTermtotal::getTermNo, bo.getTermNo());
+        lqw.like(StringUtils.isNotBlank(bo.getTermName()), XfTermtotal::getTermName, bo.getTermName());
+        lqw.eq(bo.getRoomId() != null, XfTermtotal::getRoomId, bo.getRoomId());
+        lqw.like(StringUtils.isNotBlank(bo.getRoomName()), XfTermtotal::getRoomName, bo.getRoomName());
+        lqw.eq(bo.getAccountId() != null, XfTermtotal::getAccountId, bo.getAccountId());
+        lqw.like(StringUtils.isNotBlank(bo.getAccountName()), XfTermtotal::getAccountName, bo.getAccountName());
+        lqw.eq(StringUtils.isNotBlank(bo.getDateDay()), XfTermtotal::getDateDay, bo.getDateDay());
+        lqw.eq(bo.getMealType() != null, XfTermtotal::getMealType, bo.getMealType());
+        lqw.eq(bo.getMealAmount() != null, XfTermtotal::getMealAmount, bo.getMealAmount());
+        lqw.eq(bo.getMealCount() != null, XfTermtotal::getMealCount, bo.getMealCount());
+        lqw.eq(bo.getUseYpe() != null, XfTermtotal::getUseYpe, bo.getUseYpe());
+        lqw.eq(bo.getErrFillCount() != null, XfTermtotal::getErrFillCount, bo.getErrFillCount());
+        lqw.eq(bo.getErrFillMoney() != null, XfTermtotal::getErrFillMoney, bo.getErrFillMoney());
+        return lqw;
+    }
+
+    /**
+     * 新增消费机消费记录
+     *
+     * @param bo 消费机消费记录
+     * @return 是否新增成功
+     */
+    @Override
+    public Boolean insertByBo(XfTermtotalBo bo) {
+        XfTermtotal add = MapstructUtils.convert(bo, XfTermtotal.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setTotalId(add.getTotalId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改消费机消费记录
+     *
+     * @param bo 消费机消费记录
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateByBo(XfTermtotalBo bo) {
+        XfTermtotal update = MapstructUtils.convert(bo, XfTermtotal.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(XfTermtotal entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 校验并批量删除消费机消费记录信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}

+ 137 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfUsertotalServiceImpl.java

@@ -0,0 +1,137 @@
+package org.dromara.backstage.consumption.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 org.springframework.stereotype.Service;
+import org.dromara.backstage.consumption.domain.bo.XfUsertotalBo;
+import org.dromara.backstage.consumption.domain.vo.XfUsertotalVo;
+import org.dromara.backstage.consumption.domain.XfUsertotal;
+import org.dromara.backstage.consumption.mapper.XfUsertotalMapper;
+import org.dromara.backstage.consumption.service.IXfUsertotalService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 个人与消费与充值统计Service业务层处理
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@RequiredArgsConstructor
+@Service
+public class XfUsertotalServiceImpl implements IXfUsertotalService {
+
+    private final XfUsertotalMapper baseMapper;
+
+    /**
+     * 查询个人与消费与充值统计
+     *
+     * @param totalId 主键
+     * @return 个人与消费与充值统计
+     */
+    @Override
+    public XfUsertotalVo queryById(String totalId){
+        return baseMapper.selectVoById(totalId);
+    }
+
+    /**
+     * 分页查询个人与消费与充值统计列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 个人与消费与充值统计分页列表
+     */
+    @Override
+    public TableDataInfo<XfUsertotalVo> queryPageList(XfUsertotalBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<XfUsertotal> lqw = buildQueryWrapper(bo);
+        Page<XfUsertotalVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询符合条件的个人与消费与充值统计列表
+     *
+     * @param bo 查询条件
+     * @return 个人与消费与充值统计列表
+     */
+    @Override
+    public List<XfUsertotalVo> queryList(XfUsertotalBo bo) {
+        LambdaQueryWrapper<XfUsertotal> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<XfUsertotal> buildQueryWrapper(XfUsertotalBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<XfUsertotal> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getUserId() != null, XfUsertotal::getUserId, bo.getUserId());
+        lqw.eq(StringUtils.isNotBlank(bo.getUserNumb()), XfUsertotal::getUserNumb, bo.getUserNumb());
+        lqw.like(StringUtils.isNotBlank(bo.getRealName()), XfUsertotal::getRealName, bo.getRealName());
+        lqw.like(StringUtils.isNotBlank(bo.getDeptName()), XfUsertotal::getDeptName, bo.getDeptName());
+        lqw.eq(bo.getCardNo() != null, XfUsertotal::getCardNo, bo.getCardNo());
+        lqw.eq(StringUtils.isNotBlank(bo.getDateDay()), XfUsertotal::getDateDay, bo.getDateDay());
+        lqw.eq(bo.getUseYpe() != null, XfUsertotal::getUseYpe, bo.getUseYpe());
+        lqw.eq(bo.getCreditMoney() != null, XfUsertotal::getCreditMoney, bo.getCreditMoney());
+        lqw.eq(bo.getConsumeMoney() != null, XfUsertotal::getConsumeMoney, bo.getConsumeMoney());
+        return lqw;
+    }
+
+    /**
+     * 新增个人与消费与充值统计
+     *
+     * @param bo 个人与消费与充值统计
+     * @return 是否新增成功
+     */
+    @Override
+    public Boolean insertByBo(XfUsertotalBo bo) {
+        XfUsertotal add = MapstructUtils.convert(bo, XfUsertotal.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setTotalId(add.getTotalId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改个人与消费与充值统计
+     *
+     * @param bo 个人与消费与充值统计
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateByBo(XfUsertotalBo bo) {
+        XfUsertotal update = MapstructUtils.convert(bo, XfUsertotal.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(XfUsertotal entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 校验并批量删除个人与消费与充值统计信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}

+ 49 - 0
ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfConsumedetailMapper.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.backstage.consumption.mapper.XfConsumedetailMapper">
+
+    <resultMap type="org.dromara.backstage.consumption.domain.XfConsumedetail" id="XfConsumedetailResult">
+            <result property="consumeId"    column="consume_id"    />
+            <result property="tenantId"    column="tenant_id"    />
+            <result property="originalId"    column="original_id"    />
+            <result property="recordId"    column="record_id"    />
+            <result property="userId"    column="user_id"    />
+            <result property="userNumb"    column="user_numb"    />
+            <result property="realName"    column="real_name"    />
+            <result property="deptId"    column="dept_id"    />
+            <result property="deptName"    column="dept_name"    />
+            <result property="consumeDate"    column="consume_date"    />
+            <result property="consumeMoney"    column="consume_money"    />
+            <result property="cardNo"    column="card_no"    />
+            <result property="factoryId"    column="factory_id"    />
+            <result property="cardValue"    column="card_value"    />
+            <result property="cardCount"    column="card_count"    />
+            <result property="consumeBalance"    column="consume_balance"    />
+            <result property="termNo"    column="term_no"    />
+            <result property="termName"    column="term_name"    />
+            <result property="termRecordId"    column="term_record_id"    />
+            <result property="analysisFlag"    column="analysis_flag"    />
+            <result property="statusFlag"    column="status_flag"    />
+            <result property="operatorId"    column="operator_id"    />
+            <result property="operatorName"    column="operator_name"    />
+            <result property="accountId"    column="account_id"    />
+            <result property="accountName"    column="account_name"    />
+            <result property="roomId"    column="room_id"    />
+            <result property="roomName"    column="room_name"    />
+            <result property="bagType"    column="bag_type"    />
+            <result property="mealType"    column="meal_type"    />
+            <result property="mealName"    column="meal_name"    />
+            <result property="smsSend"    column="sms_send"    />
+            <result property="recordStatus"    column="record_status"    />
+            <result property="syncStatus"    column="sync_status"    />
+            <result property="remark"    column="remark"    />
+            <result property="delFlag"    column="del_flag"    />
+            <result property="createDept"    column="create_dept"    />
+            <result property="createBy"    column="create_by"    />
+            <result property="createTime"    column="create_time"    />
+            <result property="updateBy"    column="update_by"    />
+            <result property="updateTime"    column="update_time"    />
+    </resultMap>
+</mapper>

+ 43 - 0
ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfConsumedetailoriginalMapper.xml

@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.backstage.consumption.mapper.XfConsumedetailoriginalMapper">
+
+    <resultMap type="org.dromara.backstage.consumption.domain.XfConsumedetailoriginal" id="XfConsumedetailoriginalResult">
+            <result property="originalId"    column="original_id"    />
+            <result property="tenantId"    column="tenant_id"    />
+            <result property="recordId"    column="record_id"    />
+            <result property="userId"    column="user_id"    />
+            <result property="userNumb"    column="user_numb"    />
+            <result property="realName"    column="real_name"    />
+            <result property="deptId"    column="dept_id"    />
+            <result property="deptName"    column="dept_name"    />
+            <result property="consumeDate"    column="consume_date"    />
+            <result property="consumeMoney"    column="consume_money"    />
+            <result property="cardNo"    column="card_no"    />
+            <result property="factoryId"    column="factory_id"    />
+            <result property="cardValue"    column="card_value"    />
+            <result property="cardCount"    column="card_count"    />
+            <result property="consumeBalance"    column="consume_balance"    />
+            <result property="termNo"    column="term_no"    />
+            <result property="termName"    column="term_name"    />
+            <result property="termRecordId"    column="term_record_id"    />
+            <result property="anlysFlag"    column="anlys_flag"    />
+            <result property="dataFlag"    column="data_flag"    />
+            <result property="statusFlag"    column="status_flag"    />
+            <result property="digitalSign"    column="digital_sign"    />
+            <result property="waterValue"    column="water_value"    />
+            <result property="waterHistoryValue"    column="water_history_value"    />
+            <result property="waterDaySum"    column="water_day_sum"    />
+            <result property="waterErrValue"    column="water_err_value"    />
+            <result property="waterErrMoney"    column="water_err_money"    />
+            <result property="operatorId"    column="operator_id"    />
+            <result property="delFlag"    column="del_flag"    />
+            <result property="createDept"    column="create_dept"    />
+            <result property="createBy"    column="create_by"    />
+            <result property="createTime"    column="create_time"    />
+            <result property="updateBy"    column="update_by"    />
+            <result property="updateTime"    column="update_time"    />
+    </resultMap>
+</mapper>

+ 49 - 0
ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfCreditaccountMapper.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.backstage.consumption.mapper.XfCreditaccountMapper">
+
+    <resultMap type="org.dromara.backstage.consumption.domain.XfCreditaccount" id="XfCreditaccountResult">
+            <result property="creditId"    column="credit_id"    />
+            <result property="tenantId"    column="tenant_id"    />
+            <result property="recordId"    column="record_id"    />
+            <result property="userId"    column="user_id"    />
+            <result property="userNumb"    column="user_numb"    />
+            <result property="realName"    column="real_name"    />
+            <result property="deptId"    column="dept_id"    />
+            <result property="deptName"    column="dept_name"    />
+            <result property="termNo"    column="term_no"    />
+            <result property="termName"    column="term_name"    />
+            <result property="termRecordId"    column="term_record_id"    />
+            <result property="cardNo"    column="card_no"    />
+            <result property="cardValue"    column="card_value"    />
+            <result property="cardType"    column="card_type"    />
+            <result property="cardCount"    column="card_count"    />
+            <result property="cardTypeName"    column="card_type_name"    />
+            <result property="mainCard"    column="main_card"    />
+            <result property="bagType"    column="bag_type"    />
+            <result property="useYpe"    column="use_ype"    />
+            <result property="stationNumb"    column="station_numb"    />
+            <result property="stationName"    column="station_name"    />
+            <result property="operatorId"    column="operator_id"    />
+            <result property="operatorName"    column="operator_name"    />
+            <result property="creditTime"    column="credit_time"    />
+            <result property="creditType"    column="credit_type"    />
+            <result property="payStyle"    column="pay_style"    />
+            <result property="receiptMoney"    column="receipt_money"    />
+            <result property="auditStatus"    column="audit_status"    />
+            <result property="auditDate"    column="audit_date"    />
+            <result property="groupId"    column="group_id"    />
+            <result property="originalId"    column="original_id"    />
+            <result property="smsSend"    column="sms_send"    />
+            <result property="recordStatus"    column="record_status"    />
+            <result property="remark"    column="remark"    />
+            <result property="delFlag"    column="del_flag"    />
+            <result property="createDept"    column="create_dept"    />
+            <result property="createBy"    column="create_by"    />
+            <result property="createTime"    column="create_time"    />
+            <result property="updateBy"    column="update_by"    />
+            <result property="updateTime"    column="update_time"    />
+    </resultMap>
+</mapper>

+ 41 - 0
ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfCreditaccountbackMapper.xml

@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.backstage.consumption.mapper.XfCreditaccountbackMapper">
+
+    <resultMap type="org.dromara.backstage.consumption.domain.XfCreditaccountback" id="XfCreditaccountbackResult">
+            <result property="backId"    column="back_id"    />
+            <result property="tenantId"    column="tenant_id"    />
+            <result property="recordId"    column="record_id"    />
+            <result property="userId"    column="user_id"    />
+            <result property="termNo"    column="term_no"    />
+            <result property="termRecordId"    column="term_record_id"    />
+            <result property="cardNo"    column="card_no"    />
+            <result property="cardValue"    column="card_value"    />
+            <result property="mainCard"    column="main_card"    />
+            <result property="bagType"    column="bag_type"    />
+            <result property="useYpe"    column="use_ype"    />
+            <result property="stationId"    column="station_id"    />
+            <result property="operatorId"    column="operator_id"    />
+            <result property="creditTime"    column="credit_time"    />
+            <result property="creditType"    column="credit_type"    />
+            <result property="payStyle"    column="pay_style"    />
+            <result property="receiptMoney"    column="receipt_money"    />
+            <result property="creditStatus"    column="credit_status"    />
+            <result property="groupId"    column="group_id"    />
+            <result property="creditId"    column="credit_id"    />
+            <result property="originalId"    column="original_id"    />
+            <result property="smsSend"    column="sms_send"    />
+            <result property="recordStatus"    column="record_status"    />
+            <result property="anlysFlag"    column="anlys_flag"    />
+            <result property="digitalSign"    column="digital_sign"    />
+            <result property="remark"    column="remark"    />
+            <result property="delFlag"    column="del_flag"    />
+            <result property="createDept"    column="create_dept"    />
+            <result property="createBy"    column="create_by"    />
+            <result property="createTime"    column="create_time"    />
+            <result property="updateBy"    column="update_by"    />
+            <result property="updateTime"    column="update_time"    />
+    </resultMap>
+</mapper>

+ 30 - 0
ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfTermtotalMapper.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.backstage.consumption.mapper.XfTermtotalMapper">
+
+    <resultMap type="org.dromara.backstage.consumption.domain.XfTermtotal" id="XfTermtotalResult">
+            <result property="totalId"    column="total_id"    />
+            <result property="tenantId"    column="tenant_id"    />
+            <result property="termNo"    column="term_no"    />
+            <result property="termName"    column="term_name"    />
+            <result property="roomId"    column="room_id"    />
+            <result property="roomName"    column="room_name"    />
+            <result property="accountId"    column="account_id"    />
+            <result property="accountName"    column="account_name"    />
+            <result property="dateDay"    column="date_day"    />
+            <result property="mealType"    column="meal_type"    />
+            <result property="mealAmount"    column="meal_amount"    />
+            <result property="mealCount"    column="meal_count"    />
+            <result property="useYpe"    column="use_ype"    />
+            <result property="errFillCount"    column="err_fill_count"    />
+            <result property="errFillMoney"    column="err_fill_money"    />
+            <result property="delFlag"    column="del_flag"    />
+            <result property="createDept"    column="create_dept"    />
+            <result property="createBy"    column="create_by"    />
+            <result property="createTime"    column="create_time"    />
+            <result property="updateBy"    column="update_by"    />
+            <result property="updateTime"    column="update_time"    />
+    </resultMap>
+</mapper>

+ 26 - 0
ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfUsertotalMapper.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.backstage.consumption.mapper.XfUsertotalMapper">
+
+    <resultMap type="org.dromara.backstage.consumption.domain.XfUsertotal" id="XfUsertotalResult">
+            <result property="totalId"    column="total_id"    />
+            <result property="tenantId"    column="tenant_id"    />
+            <result property="userId"    column="user_id"    />
+            <result property="userNumb"    column="user_numb"    />
+            <result property="realName"    column="real_name"    />
+            <result property="deptName"    column="dept_name"    />
+            <result property="cardNo"    column="card_no"    />
+            <result property="dateDay"    column="date_day"    />
+            <result property="useYpe"    column="use_ype"    />
+            <result property="creditMoney"    column="credit_money"    />
+            <result property="consumeMoney"    column="consume_money"    />
+            <result property="delFlag"    column="del_flag"    />
+            <result property="createDept"    column="create_dept"    />
+            <result property="createBy"    column="create_by"    />
+            <result property="createTime"    column="create_time"    />
+            <result property="updateBy"    column="update_by"    />
+            <result property="updateTime"    column="update_time"    />
+    </resultMap>
+</mapper>