jiangbiao 2 месяцев назад
Родитель
Сommit
62a5717037
100 измененных файлов с 10173 добавлено и 2 удалено
  1. 104 0
      canteen-admin/src/main/java/com/ruoyi/common/controller/TCommonFileController.java
  2. 104 0
      canteen-admin/src/main/java/com/ruoyi/goods/controller/TCanteenClassifyController.java
  3. 104 0
      canteen-admin/src/main/java/com/ruoyi/goods/controller/TCanteenInventoryController.java
  4. 104 0
      canteen-admin/src/main/java/com/ruoyi/goods/controller/TCanteenMenuController.java
  5. 104 0
      canteen-admin/src/main/java/com/ruoyi/goods/controller/TCanteenSubmenuController.java
  6. 104 0
      canteen-admin/src/main/java/com/ruoyi/order/controller/TCanteenOrderController.java
  7. 104 0
      canteen-admin/src/main/java/com/ruoyi/order/controller/TCanteenOrderDetailController.java
  8. 104 0
      canteen-admin/src/main/java/com/ruoyi/order/controller/TCanteenPaymentController.java
  9. 104 0
      canteen-admin/src/main/java/com/ruoyi/plant/controller/TCanteenCardController.java
  10. 104 0
      canteen-admin/src/main/java/com/ruoyi/plant/controller/TCanteenCardMonthController.java
  11. 104 0
      canteen-admin/src/main/java/com/ruoyi/supplier/controller/TCanteenDailyController.java
  12. 104 0
      canteen-admin/src/main/java/com/ruoyi/supplier/controller/TCanteenQualificationController.java
  13. 104 0
      canteen-admin/src/main/java/com/ruoyi/supplier/controller/TCanteenRatingController.java
  14. 104 0
      canteen-admin/src/main/java/com/ruoyi/supplier/controller/TCanteenSupplierController.java
  15. 1 1
      canteen-generator/src/main/resources/vm/vue/v3/index-tree.vue.vm
  16. 1 1
      canteen-generator/src/main/resources/vm/vue/v3/index.vue.vm
  17. 235 0
      canteen-system/src/main/java/com/ruoyi/common/domain/TCommonFile.java
  18. 61 0
      canteen-system/src/main/java/com/ruoyi/common/mapper/TCommonFileMapper.java
  19. 61 0
      canteen-system/src/main/java/com/ruoyi/common/service/ITCommonFileService.java
  20. 93 0
      canteen-system/src/main/java/com/ruoyi/common/service/impl/TCommonFileServiceImpl.java
  21. 104 0
      canteen-system/src/main/java/com/ruoyi/goods/controller/TCanteenClassifyController.java
  22. 104 0
      canteen-system/src/main/java/com/ruoyi/goods/controller/TCanteenInventoryController.java
  23. 104 0
      canteen-system/src/main/java/com/ruoyi/goods/controller/TCanteenMenuController.java
  24. 104 0
      canteen-system/src/main/java/com/ruoyi/goods/controller/TCanteenSubmenuController.java
  25. 220 0
      canteen-system/src/main/java/com/ruoyi/goods/domain/TCanteenClassify.java
  26. 206 0
      canteen-system/src/main/java/com/ruoyi/goods/domain/TCanteenInventory.java
  27. 295 0
      canteen-system/src/main/java/com/ruoyi/goods/domain/TCanteenMenu.java
  28. 250 0
      canteen-system/src/main/java/com/ruoyi/goods/domain/TCanteenSubmenu.java
  29. 61 0
      canteen-system/src/main/java/com/ruoyi/goods/mapper/TCanteenClassifyMapper.java
  30. 61 0
      canteen-system/src/main/java/com/ruoyi/goods/mapper/TCanteenInventoryMapper.java
  31. 61 0
      canteen-system/src/main/java/com/ruoyi/goods/mapper/TCanteenMenuMapper.java
  32. 61 0
      canteen-system/src/main/java/com/ruoyi/goods/mapper/TCanteenSubmenuMapper.java
  33. 61 0
      canteen-system/src/main/java/com/ruoyi/goods/service/ITCanteenClassifyService.java
  34. 61 0
      canteen-system/src/main/java/com/ruoyi/goods/service/ITCanteenInventoryService.java
  35. 61 0
      canteen-system/src/main/java/com/ruoyi/goods/service/ITCanteenMenuService.java
  36. 61 0
      canteen-system/src/main/java/com/ruoyi/goods/service/ITCanteenSubmenuService.java
  37. 93 0
      canteen-system/src/main/java/com/ruoyi/goods/service/impl/TCanteenClassifyServiceImpl.java
  38. 93 0
      canteen-system/src/main/java/com/ruoyi/goods/service/impl/TCanteenInventoryServiceImpl.java
  39. 93 0
      canteen-system/src/main/java/com/ruoyi/goods/service/impl/TCanteenMenuServiceImpl.java
  40. 93 0
      canteen-system/src/main/java/com/ruoyi/goods/service/impl/TCanteenSubmenuServiceImpl.java
  41. 252 0
      canteen-system/src/main/java/com/ruoyi/order/domain/TCanteenOrder.java
  42. 236 0
      canteen-system/src/main/java/com/ruoyi/order/domain/TCanteenOrderDetail.java
  43. 236 0
      canteen-system/src/main/java/com/ruoyi/order/domain/TCanteenPayment.java
  44. 61 0
      canteen-system/src/main/java/com/ruoyi/order/mapper/TCanteenOrderDetailMapper.java
  45. 61 0
      canteen-system/src/main/java/com/ruoyi/order/mapper/TCanteenOrderMapper.java
  46. 61 0
      canteen-system/src/main/java/com/ruoyi/order/mapper/TCanteenPaymentMapper.java
  47. 61 0
      canteen-system/src/main/java/com/ruoyi/order/service/ITCanteenOrderDetailService.java
  48. 61 0
      canteen-system/src/main/java/com/ruoyi/order/service/ITCanteenOrderService.java
  49. 61 0
      canteen-system/src/main/java/com/ruoyi/order/service/ITCanteenPaymentService.java
  50. 93 0
      canteen-system/src/main/java/com/ruoyi/order/service/impl/TCanteenOrderDetailServiceImpl.java
  51. 93 0
      canteen-system/src/main/java/com/ruoyi/order/service/impl/TCanteenOrderServiceImpl.java
  52. 93 0
      canteen-system/src/main/java/com/ruoyi/order/service/impl/TCanteenPaymentServiceImpl.java
  53. 205 0
      canteen-system/src/main/java/com/ruoyi/plant/domain/TCanteenCard.java
  54. 220 0
      canteen-system/src/main/java/com/ruoyi/plant/domain/TCanteenCardMonth.java
  55. 61 0
      canteen-system/src/main/java/com/ruoyi/plant/mapper/TCanteenCardMapper.java
  56. 61 0
      canteen-system/src/main/java/com/ruoyi/plant/mapper/TCanteenCardMonthMapper.java
  57. 61 0
      canteen-system/src/main/java/com/ruoyi/plant/service/ITCanteenCardMonthService.java
  58. 61 0
      canteen-system/src/main/java/com/ruoyi/plant/service/ITCanteenCardService.java
  59. 93 0
      canteen-system/src/main/java/com/ruoyi/plant/service/impl/TCanteenCardMonthServiceImpl.java
  60. 93 0
      canteen-system/src/main/java/com/ruoyi/plant/service/impl/TCanteenCardServiceImpl.java
  61. 191 0
      canteen-system/src/main/java/com/ruoyi/supplier/domain/TCanteenDaily.java
  62. 237 0
      canteen-system/src/main/java/com/ruoyi/supplier/domain/TCanteenQualification.java
  63. 236 0
      canteen-system/src/main/java/com/ruoyi/supplier/domain/TCanteenRating.java
  64. 235 0
      canteen-system/src/main/java/com/ruoyi/supplier/domain/TCanteenSupplier.java
  65. 61 0
      canteen-system/src/main/java/com/ruoyi/supplier/mapper/TCanteenDailyMapper.java
  66. 61 0
      canteen-system/src/main/java/com/ruoyi/supplier/mapper/TCanteenQualificationMapper.java
  67. 61 0
      canteen-system/src/main/java/com/ruoyi/supplier/mapper/TCanteenRatingMapper.java
  68. 61 0
      canteen-system/src/main/java/com/ruoyi/supplier/mapper/TCanteenSupplierMapper.java
  69. 61 0
      canteen-system/src/main/java/com/ruoyi/supplier/service/ITCanteenDailyService.java
  70. 61 0
      canteen-system/src/main/java/com/ruoyi/supplier/service/ITCanteenQualificationService.java
  71. 61 0
      canteen-system/src/main/java/com/ruoyi/supplier/service/ITCanteenRatingService.java
  72. 61 0
      canteen-system/src/main/java/com/ruoyi/supplier/service/ITCanteenSupplierService.java
  73. 93 0
      canteen-system/src/main/java/com/ruoyi/supplier/service/impl/TCanteenDailyServiceImpl.java
  74. 93 0
      canteen-system/src/main/java/com/ruoyi/supplier/service/impl/TCanteenQualificationServiceImpl.java
  75. 93 0
      canteen-system/src/main/java/com/ruoyi/supplier/service/impl/TCanteenRatingServiceImpl.java
  76. 93 0
      canteen-system/src/main/java/com/ruoyi/supplier/service/impl/TCanteenSupplierServiceImpl.java
  77. 115 0
      canteen-system/src/main/resources/mapper/common/TCommonFileMapper.xml
  78. 110 0
      canteen-system/src/main/resources/mapper/goods/TCanteenClassifyMapper.xml
  79. 105 0
      canteen-system/src/main/resources/mapper/goods/TCanteenInventoryMapper.xml
  80. 135 0
      canteen-system/src/main/resources/mapper/goods/TCanteenMenuMapper.xml
  81. 120 0
      canteen-system/src/main/resources/mapper/goods/TCanteenSubmenuMapper.xml
  82. 115 0
      canteen-system/src/main/resources/mapper/order/TCanteenOrderDetailMapper.xml
  83. 120 0
      canteen-system/src/main/resources/mapper/order/TCanteenOrderMapper.xml
  84. 115 0
      canteen-system/src/main/resources/mapper/order/TCanteenPaymentMapper.xml
  85. 105 0
      canteen-system/src/main/resources/mapper/plant/TCanteenCardMapper.xml
  86. 110 0
      canteen-system/src/main/resources/mapper/plant/TCanteenCardMonthMapper.xml
  87. 100 0
      canteen-system/src/main/resources/mapper/supplier/TCanteenDailyMapper.xml
  88. 115 0
      canteen-system/src/main/resources/mapper/supplier/TCanteenQualificationMapper.xml
  89. 115 0
      canteen-system/src/main/resources/mapper/supplier/TCanteenRatingMapper.xml
  90. 115 0
      canteen-system/src/main/resources/mapper/supplier/TCanteenSupplierMapper.xml
  91. 44 0
      canteen-ui/src/api/common/file.js
  92. 44 0
      canteen-ui/src/api/goods/classify.js
  93. 44 0
      canteen-ui/src/api/goods/inventory.js
  94. 44 0
      canteen-ui/src/api/goods/menu.js
  95. 44 0
      canteen-ui/src/api/goods/submenu.js
  96. 44 0
      canteen-ui/src/api/order/detail.js
  97. 44 0
      canteen-ui/src/api/order/order.js
  98. 44 0
      canteen-ui/src/api/order/payment.js
  99. 44 0
      canteen-ui/src/api/plant/card.js
  100. 44 0
      canteen-ui/src/api/plant/month.js

+ 104 - 0
canteen-admin/src/main/java/com/ruoyi/common/controller/TCommonFileController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.common.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.domain.TCommonFile;
+import com.ruoyi.common.service.ITCommonFileService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 附件Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/common/file")
+public class TCommonFileController extends BaseController
+{
+    @Autowired
+    private ITCommonFileService tCommonFileService;
+
+    /**
+     * 查询附件列表
+     */
+    @PreAuthorize("@ss.hasPermi('common:file:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCommonFile tCommonFile)
+    {
+        startPage();
+        List<TCommonFile> list = tCommonFileService.selectTCommonFileList(tCommonFile);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出附件列表
+     */
+    @PreAuthorize("@ss.hasPermi('common:file:export')")
+    @Log(title = "附件", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCommonFile tCommonFile)
+    {
+        List<TCommonFile> list = tCommonFileService.selectTCommonFileList(tCommonFile);
+        ExcelUtil<TCommonFile> util = new ExcelUtil<TCommonFile>(TCommonFile.class);
+        util.exportExcel(response, list, "附件数据");
+    }
+
+    /**
+     * 获取附件详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('common:file:query')")
+    @GetMapping(value = "/{fileId}")
+    public AjaxResult getInfo(@PathVariable("fileId") Long fileId)
+    {
+        return success(tCommonFileService.selectTCommonFileByFileId(fileId));
+    }
+
+    /**
+     * 新增附件
+     */
+    @PreAuthorize("@ss.hasPermi('common:file:add')")
+    @Log(title = "附件", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCommonFile tCommonFile)
+    {
+        return toAjax(tCommonFileService.insertTCommonFile(tCommonFile));
+    }
+
+    /**
+     * 修改附件
+     */
+    @PreAuthorize("@ss.hasPermi('common:file:edit')")
+    @Log(title = "附件", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCommonFile tCommonFile)
+    {
+        return toAjax(tCommonFileService.updateTCommonFile(tCommonFile));
+    }
+
+    /**
+     * 删除附件
+     */
+    @PreAuthorize("@ss.hasPermi('common:file:remove')")
+    @Log(title = "附件", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{fileIds}")
+    public AjaxResult remove(@PathVariable Long[] fileIds)
+    {
+        return toAjax(tCommonFileService.deleteTCommonFileByFileIds(fileIds));
+    }
+}

+ 104 - 0
canteen-admin/src/main/java/com/ruoyi/goods/controller/TCanteenClassifyController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.goods.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.goods.domain.TCanteenClassify;
+import com.ruoyi.goods.service.ITCanteenClassifyService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 菜单类型Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/goods/classify")
+public class TCanteenClassifyController extends BaseController
+{
+    @Autowired
+    private ITCanteenClassifyService tCanteenClassifyService;
+
+    /**
+     * 查询菜单类型列表
+     */
+    @PreAuthorize("@ss.hasPermi('goods:classify:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCanteenClassify tCanteenClassify)
+    {
+        startPage();
+        List<TCanteenClassify> list = tCanteenClassifyService.selectTCanteenClassifyList(tCanteenClassify);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出菜单类型列表
+     */
+    @PreAuthorize("@ss.hasPermi('goods:classify:export')")
+    @Log(title = "菜单类型", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCanteenClassify tCanteenClassify)
+    {
+        List<TCanteenClassify> list = tCanteenClassifyService.selectTCanteenClassifyList(tCanteenClassify);
+        ExcelUtil<TCanteenClassify> util = new ExcelUtil<TCanteenClassify>(TCanteenClassify.class);
+        util.exportExcel(response, list, "菜单类型数据");
+    }
+
+    /**
+     * 获取菜单类型详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('goods:classify:query')")
+    @GetMapping(value = "/{classifyId}")
+    public AjaxResult getInfo(@PathVariable("classifyId") Long classifyId)
+    {
+        return success(tCanteenClassifyService.selectTCanteenClassifyByClassifyId(classifyId));
+    }
+
+    /**
+     * 新增菜单类型
+     */
+    @PreAuthorize("@ss.hasPermi('goods:classify:add')")
+    @Log(title = "菜单类型", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCanteenClassify tCanteenClassify)
+    {
+        return toAjax(tCanteenClassifyService.insertTCanteenClassify(tCanteenClassify));
+    }
+
+    /**
+     * 修改菜单类型
+     */
+    @PreAuthorize("@ss.hasPermi('goods:classify:edit')")
+    @Log(title = "菜单类型", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCanteenClassify tCanteenClassify)
+    {
+        return toAjax(tCanteenClassifyService.updateTCanteenClassify(tCanteenClassify));
+    }
+
+    /**
+     * 删除菜单类型
+     */
+    @PreAuthorize("@ss.hasPermi('goods:classify:remove')")
+    @Log(title = "菜单类型", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{classifyIds}")
+    public AjaxResult remove(@PathVariable Long[] classifyIds)
+    {
+        return toAjax(tCanteenClassifyService.deleteTCanteenClassifyByClassifyIds(classifyIds));
+    }
+}

+ 104 - 0
canteen-admin/src/main/java/com/ruoyi/goods/controller/TCanteenInventoryController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.goods.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.goods.domain.TCanteenInventory;
+import com.ruoyi.goods.service.ITCanteenInventoryService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 库存Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/goods/inventory")
+public class TCanteenInventoryController extends BaseController
+{
+    @Autowired
+    private ITCanteenInventoryService tCanteenInventoryService;
+
+    /**
+     * 查询库存列表
+     */
+    @PreAuthorize("@ss.hasPermi('goods:inventory:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCanteenInventory tCanteenInventory)
+    {
+        startPage();
+        List<TCanteenInventory> list = tCanteenInventoryService.selectTCanteenInventoryList(tCanteenInventory);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出库存列表
+     */
+    @PreAuthorize("@ss.hasPermi('goods:inventory:export')")
+    @Log(title = "库存", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCanteenInventory tCanteenInventory)
+    {
+        List<TCanteenInventory> list = tCanteenInventoryService.selectTCanteenInventoryList(tCanteenInventory);
+        ExcelUtil<TCanteenInventory> util = new ExcelUtil<TCanteenInventory>(TCanteenInventory.class);
+        util.exportExcel(response, list, "库存数据");
+    }
+
+    /**
+     * 获取库存详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('goods:inventory:query')")
+    @GetMapping(value = "/{inventoryId}")
+    public AjaxResult getInfo(@PathVariable("inventoryId") Long inventoryId)
+    {
+        return success(tCanteenInventoryService.selectTCanteenInventoryByInventoryId(inventoryId));
+    }
+
+    /**
+     * 新增库存
+     */
+    @PreAuthorize("@ss.hasPermi('goods:inventory:add')")
+    @Log(title = "库存", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCanteenInventory tCanteenInventory)
+    {
+        return toAjax(tCanteenInventoryService.insertTCanteenInventory(tCanteenInventory));
+    }
+
+    /**
+     * 修改库存
+     */
+    @PreAuthorize("@ss.hasPermi('goods:inventory:edit')")
+    @Log(title = "库存", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCanteenInventory tCanteenInventory)
+    {
+        return toAjax(tCanteenInventoryService.updateTCanteenInventory(tCanteenInventory));
+    }
+
+    /**
+     * 删除库存
+     */
+    @PreAuthorize("@ss.hasPermi('goods:inventory:remove')")
+    @Log(title = "库存", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{inventoryIds}")
+    public AjaxResult remove(@PathVariable Long[] inventoryIds)
+    {
+        return toAjax(tCanteenInventoryService.deleteTCanteenInventoryByInventoryIds(inventoryIds));
+    }
+}

+ 104 - 0
canteen-admin/src/main/java/com/ruoyi/goods/controller/TCanteenMenuController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.goods.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.goods.domain.TCanteenMenu;
+import com.ruoyi.goods.service.ITCanteenMenuService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 菜单Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/goods/menu")
+public class TCanteenMenuController extends BaseController
+{
+    @Autowired
+    private ITCanteenMenuService tCanteenMenuService;
+
+    /**
+     * 查询菜单列表
+     */
+    @PreAuthorize("@ss.hasPermi('goods:menu:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCanteenMenu tCanteenMenu)
+    {
+        startPage();
+        List<TCanteenMenu> list = tCanteenMenuService.selectTCanteenMenuList(tCanteenMenu);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出菜单列表
+     */
+    @PreAuthorize("@ss.hasPermi('goods:menu:export')")
+    @Log(title = "菜单", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCanteenMenu tCanteenMenu)
+    {
+        List<TCanteenMenu> list = tCanteenMenuService.selectTCanteenMenuList(tCanteenMenu);
+        ExcelUtil<TCanteenMenu> util = new ExcelUtil<TCanteenMenu>(TCanteenMenu.class);
+        util.exportExcel(response, list, "菜单数据");
+    }
+
+    /**
+     * 获取菜单详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('goods:menu:query')")
+    @GetMapping(value = "/{menuId}")
+    public AjaxResult getInfo(@PathVariable("menuId") Long menuId)
+    {
+        return success(tCanteenMenuService.selectTCanteenMenuByMenuId(menuId));
+    }
+
+    /**
+     * 新增菜单
+     */
+    @PreAuthorize("@ss.hasPermi('goods:menu:add')")
+    @Log(title = "菜单", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCanteenMenu tCanteenMenu)
+    {
+        return toAjax(tCanteenMenuService.insertTCanteenMenu(tCanteenMenu));
+    }
+
+    /**
+     * 修改菜单
+     */
+    @PreAuthorize("@ss.hasPermi('goods:menu:edit')")
+    @Log(title = "菜单", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCanteenMenu tCanteenMenu)
+    {
+        return toAjax(tCanteenMenuService.updateTCanteenMenu(tCanteenMenu));
+    }
+
+    /**
+     * 删除菜单
+     */
+    @PreAuthorize("@ss.hasPermi('goods:menu:remove')")
+    @Log(title = "菜单", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{menuIds}")
+    public AjaxResult remove(@PathVariable Long[] menuIds)
+    {
+        return toAjax(tCanteenMenuService.deleteTCanteenMenuByMenuIds(menuIds));
+    }
+}

+ 104 - 0
canteen-admin/src/main/java/com/ruoyi/goods/controller/TCanteenSubmenuController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.goods.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.goods.domain.TCanteenSubmenu;
+import com.ruoyi.goods.service.ITCanteenSubmenuService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 子菜单Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/goods/submenu")
+public class TCanteenSubmenuController extends BaseController
+{
+    @Autowired
+    private ITCanteenSubmenuService tCanteenSubmenuService;
+
+    /**
+     * 查询子菜单列表
+     */
+    @PreAuthorize("@ss.hasPermi('goods:submenu:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCanteenSubmenu tCanteenSubmenu)
+    {
+        startPage();
+        List<TCanteenSubmenu> list = tCanteenSubmenuService.selectTCanteenSubmenuList(tCanteenSubmenu);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出子菜单列表
+     */
+    @PreAuthorize("@ss.hasPermi('goods:submenu:export')")
+    @Log(title = "子菜单", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCanteenSubmenu tCanteenSubmenu)
+    {
+        List<TCanteenSubmenu> list = tCanteenSubmenuService.selectTCanteenSubmenuList(tCanteenSubmenu);
+        ExcelUtil<TCanteenSubmenu> util = new ExcelUtil<TCanteenSubmenu>(TCanteenSubmenu.class);
+        util.exportExcel(response, list, "子菜单数据");
+    }
+
+    /**
+     * 获取子菜单详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('goods:submenu:query')")
+    @GetMapping(value = "/{submenuId}")
+    public AjaxResult getInfo(@PathVariable("submenuId") Long submenuId)
+    {
+        return success(tCanteenSubmenuService.selectTCanteenSubmenuBySubmenuId(submenuId));
+    }
+
+    /**
+     * 新增子菜单
+     */
+    @PreAuthorize("@ss.hasPermi('goods:submenu:add')")
+    @Log(title = "子菜单", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCanteenSubmenu tCanteenSubmenu)
+    {
+        return toAjax(tCanteenSubmenuService.insertTCanteenSubmenu(tCanteenSubmenu));
+    }
+
+    /**
+     * 修改子菜单
+     */
+    @PreAuthorize("@ss.hasPermi('goods:submenu:edit')")
+    @Log(title = "子菜单", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCanteenSubmenu tCanteenSubmenu)
+    {
+        return toAjax(tCanteenSubmenuService.updateTCanteenSubmenu(tCanteenSubmenu));
+    }
+
+    /**
+     * 删除子菜单
+     */
+    @PreAuthorize("@ss.hasPermi('goods:submenu:remove')")
+    @Log(title = "子菜单", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{submenuIds}")
+    public AjaxResult remove(@PathVariable Long[] submenuIds)
+    {
+        return toAjax(tCanteenSubmenuService.deleteTCanteenSubmenuBySubmenuIds(submenuIds));
+    }
+}

+ 104 - 0
canteen-admin/src/main/java/com/ruoyi/order/controller/TCanteenOrderController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.order.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.order.domain.TCanteenOrder;
+import com.ruoyi.order.service.ITCanteenOrderService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 订单Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/order/order")
+public class TCanteenOrderController extends BaseController
+{
+    @Autowired
+    private ITCanteenOrderService tCanteenOrderService;
+
+    /**
+     * 查询订单列表
+     */
+    @PreAuthorize("@ss.hasPermi('order:order:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCanteenOrder tCanteenOrder)
+    {
+        startPage();
+        List<TCanteenOrder> list = tCanteenOrderService.selectTCanteenOrderList(tCanteenOrder);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出订单列表
+     */
+    @PreAuthorize("@ss.hasPermi('order:order:export')")
+    @Log(title = "订单", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCanteenOrder tCanteenOrder)
+    {
+        List<TCanteenOrder> list = tCanteenOrderService.selectTCanteenOrderList(tCanteenOrder);
+        ExcelUtil<TCanteenOrder> util = new ExcelUtil<TCanteenOrder>(TCanteenOrder.class);
+        util.exportExcel(response, list, "订单数据");
+    }
+
+    /**
+     * 获取订单详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('order:order:query')")
+    @GetMapping(value = "/{orderId}")
+    public AjaxResult getInfo(@PathVariable("orderId") Long orderId)
+    {
+        return success(tCanteenOrderService.selectTCanteenOrderByOrderId(orderId));
+    }
+
+    /**
+     * 新增订单
+     */
+    @PreAuthorize("@ss.hasPermi('order:order:add')")
+    @Log(title = "订单", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCanteenOrder tCanteenOrder)
+    {
+        return toAjax(tCanteenOrderService.insertTCanteenOrder(tCanteenOrder));
+    }
+
+    /**
+     * 修改订单
+     */
+    @PreAuthorize("@ss.hasPermi('order:order:edit')")
+    @Log(title = "订单", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCanteenOrder tCanteenOrder)
+    {
+        return toAjax(tCanteenOrderService.updateTCanteenOrder(tCanteenOrder));
+    }
+
+    /**
+     * 删除订单
+     */
+    @PreAuthorize("@ss.hasPermi('order:order:remove')")
+    @Log(title = "订单", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{orderIds}")
+    public AjaxResult remove(@PathVariable Long[] orderIds)
+    {
+        return toAjax(tCanteenOrderService.deleteTCanteenOrderByOrderIds(orderIds));
+    }
+}

+ 104 - 0
canteen-admin/src/main/java/com/ruoyi/order/controller/TCanteenOrderDetailController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.order.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.order.domain.TCanteenOrderDetail;
+import com.ruoyi.order.service.ITCanteenOrderDetailService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 订单明细Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/order/detail")
+public class TCanteenOrderDetailController extends BaseController
+{
+    @Autowired
+    private ITCanteenOrderDetailService tCanteenOrderDetailService;
+
+    /**
+     * 查询订单明细列表
+     */
+    @PreAuthorize("@ss.hasPermi('order:detail:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCanteenOrderDetail tCanteenOrderDetail)
+    {
+        startPage();
+        List<TCanteenOrderDetail> list = tCanteenOrderDetailService.selectTCanteenOrderDetailList(tCanteenOrderDetail);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出订单明细列表
+     */
+    @PreAuthorize("@ss.hasPermi('order:detail:export')")
+    @Log(title = "订单明细", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCanteenOrderDetail tCanteenOrderDetail)
+    {
+        List<TCanteenOrderDetail> list = tCanteenOrderDetailService.selectTCanteenOrderDetailList(tCanteenOrderDetail);
+        ExcelUtil<TCanteenOrderDetail> util = new ExcelUtil<TCanteenOrderDetail>(TCanteenOrderDetail.class);
+        util.exportExcel(response, list, "订单明细数据");
+    }
+
+    /**
+     * 获取订单明细详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('order:detail:query')")
+    @GetMapping(value = "/{detailId}")
+    public AjaxResult getInfo(@PathVariable("detailId") Long detailId)
+    {
+        return success(tCanteenOrderDetailService.selectTCanteenOrderDetailByDetailId(detailId));
+    }
+
+    /**
+     * 新增订单明细
+     */
+    @PreAuthorize("@ss.hasPermi('order:detail:add')")
+    @Log(title = "订单明细", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCanteenOrderDetail tCanteenOrderDetail)
+    {
+        return toAjax(tCanteenOrderDetailService.insertTCanteenOrderDetail(tCanteenOrderDetail));
+    }
+
+    /**
+     * 修改订单明细
+     */
+    @PreAuthorize("@ss.hasPermi('order:detail:edit')")
+    @Log(title = "订单明细", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCanteenOrderDetail tCanteenOrderDetail)
+    {
+        return toAjax(tCanteenOrderDetailService.updateTCanteenOrderDetail(tCanteenOrderDetail));
+    }
+
+    /**
+     * 删除订单明细
+     */
+    @PreAuthorize("@ss.hasPermi('order:detail:remove')")
+    @Log(title = "订单明细", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{detailIds}")
+    public AjaxResult remove(@PathVariable Long[] detailIds)
+    {
+        return toAjax(tCanteenOrderDetailService.deleteTCanteenOrderDetailByDetailIds(detailIds));
+    }
+}

+ 104 - 0
canteen-admin/src/main/java/com/ruoyi/order/controller/TCanteenPaymentController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.order.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.order.domain.TCanteenPayment;
+import com.ruoyi.order.service.ITCanteenPaymentService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 支付记录Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/order/payment")
+public class TCanteenPaymentController extends BaseController
+{
+    @Autowired
+    private ITCanteenPaymentService tCanteenPaymentService;
+
+    /**
+     * 查询支付记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('order:payment:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCanteenPayment tCanteenPayment)
+    {
+        startPage();
+        List<TCanteenPayment> list = tCanteenPaymentService.selectTCanteenPaymentList(tCanteenPayment);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出支付记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('order:payment:export')")
+    @Log(title = "支付记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCanteenPayment tCanteenPayment)
+    {
+        List<TCanteenPayment> list = tCanteenPaymentService.selectTCanteenPaymentList(tCanteenPayment);
+        ExcelUtil<TCanteenPayment> util = new ExcelUtil<TCanteenPayment>(TCanteenPayment.class);
+        util.exportExcel(response, list, "支付记录数据");
+    }
+
+    /**
+     * 获取支付记录详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('order:payment:query')")
+    @GetMapping(value = "/{payId}")
+    public AjaxResult getInfo(@PathVariable("payId") Long payId)
+    {
+        return success(tCanteenPaymentService.selectTCanteenPaymentByPayId(payId));
+    }
+
+    /**
+     * 新增支付记录
+     */
+    @PreAuthorize("@ss.hasPermi('order:payment:add')")
+    @Log(title = "支付记录", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCanteenPayment tCanteenPayment)
+    {
+        return toAjax(tCanteenPaymentService.insertTCanteenPayment(tCanteenPayment));
+    }
+
+    /**
+     * 修改支付记录
+     */
+    @PreAuthorize("@ss.hasPermi('order:payment:edit')")
+    @Log(title = "支付记录", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCanteenPayment tCanteenPayment)
+    {
+        return toAjax(tCanteenPaymentService.updateTCanteenPayment(tCanteenPayment));
+    }
+
+    /**
+     * 删除支付记录
+     */
+    @PreAuthorize("@ss.hasPermi('order:payment:remove')")
+    @Log(title = "支付记录", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{payIds}")
+    public AjaxResult remove(@PathVariable Long[] payIds)
+    {
+        return toAjax(tCanteenPaymentService.deleteTCanteenPaymentByPayIds(payIds));
+    }
+}

+ 104 - 0
canteen-admin/src/main/java/com/ruoyi/plant/controller/TCanteenCardController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.plant.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.plant.domain.TCanteenCard;
+import com.ruoyi.plant.service.ITCanteenCardService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 员工卡管理Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/plant/card")
+public class TCanteenCardController extends BaseController
+{
+    @Autowired
+    private ITCanteenCardService tCanteenCardService;
+
+    /**
+     * 查询员工卡管理列表
+     */
+    @PreAuthorize("@ss.hasPermi('plant:card:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCanteenCard tCanteenCard)
+    {
+        startPage();
+        List<TCanteenCard> list = tCanteenCardService.selectTCanteenCardList(tCanteenCard);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出员工卡管理列表
+     */
+    @PreAuthorize("@ss.hasPermi('plant:card:export')")
+    @Log(title = "员工卡管理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCanteenCard tCanteenCard)
+    {
+        List<TCanteenCard> list = tCanteenCardService.selectTCanteenCardList(tCanteenCard);
+        ExcelUtil<TCanteenCard> util = new ExcelUtil<TCanteenCard>(TCanteenCard.class);
+        util.exportExcel(response, list, "员工卡管理数据");
+    }
+
+    /**
+     * 获取员工卡管理详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('plant:card:query')")
+    @GetMapping(value = "/{cardId}")
+    public AjaxResult getInfo(@PathVariable("cardId") Long cardId)
+    {
+        return success(tCanteenCardService.selectTCanteenCardByCardId(cardId));
+    }
+
+    /**
+     * 新增员工卡管理
+     */
+    @PreAuthorize("@ss.hasPermi('plant:card:add')")
+    @Log(title = "员工卡管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCanteenCard tCanteenCard)
+    {
+        return toAjax(tCanteenCardService.insertTCanteenCard(tCanteenCard));
+    }
+
+    /**
+     * 修改员工卡管理
+     */
+    @PreAuthorize("@ss.hasPermi('plant:card:edit')")
+    @Log(title = "员工卡管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCanteenCard tCanteenCard)
+    {
+        return toAjax(tCanteenCardService.updateTCanteenCard(tCanteenCard));
+    }
+
+    /**
+     * 删除员工卡管理
+     */
+    @PreAuthorize("@ss.hasPermi('plant:card:remove')")
+    @Log(title = "员工卡管理", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{cardIds}")
+    public AjaxResult remove(@PathVariable Long[] cardIds)
+    {
+        return toAjax(tCanteenCardService.deleteTCanteenCardByCardIds(cardIds));
+    }
+}

+ 104 - 0
canteen-admin/src/main/java/com/ruoyi/plant/controller/TCanteenCardMonthController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.plant.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.plant.domain.TCanteenCardMonth;
+import com.ruoyi.plant.service.ITCanteenCardMonthService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 员工月刷卡统计Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/plant/month")
+public class TCanteenCardMonthController extends BaseController
+{
+    @Autowired
+    private ITCanteenCardMonthService tCanteenCardMonthService;
+
+    /**
+     * 查询员工月刷卡统计列表
+     */
+    @PreAuthorize("@ss.hasPermi('plant:month:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCanteenCardMonth tCanteenCardMonth)
+    {
+        startPage();
+        List<TCanteenCardMonth> list = tCanteenCardMonthService.selectTCanteenCardMonthList(tCanteenCardMonth);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出员工月刷卡统计列表
+     */
+    @PreAuthorize("@ss.hasPermi('plant:month:export')")
+    @Log(title = "员工月刷卡统计", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCanteenCardMonth tCanteenCardMonth)
+    {
+        List<TCanteenCardMonth> list = tCanteenCardMonthService.selectTCanteenCardMonthList(tCanteenCardMonth);
+        ExcelUtil<TCanteenCardMonth> util = new ExcelUtil<TCanteenCardMonth>(TCanteenCardMonth.class);
+        util.exportExcel(response, list, "员工月刷卡统计数据");
+    }
+
+    /**
+     * 获取员工月刷卡统计详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('plant:month:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(tCanteenCardMonthService.selectTCanteenCardMonthById(id));
+    }
+
+    /**
+     * 新增员工月刷卡统计
+     */
+    @PreAuthorize("@ss.hasPermi('plant:month:add')")
+    @Log(title = "员工月刷卡统计", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCanteenCardMonth tCanteenCardMonth)
+    {
+        return toAjax(tCanteenCardMonthService.insertTCanteenCardMonth(tCanteenCardMonth));
+    }
+
+    /**
+     * 修改员工月刷卡统计
+     */
+    @PreAuthorize("@ss.hasPermi('plant:month:edit')")
+    @Log(title = "员工月刷卡统计", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCanteenCardMonth tCanteenCardMonth)
+    {
+        return toAjax(tCanteenCardMonthService.updateTCanteenCardMonth(tCanteenCardMonth));
+    }
+
+    /**
+     * 删除员工月刷卡统计
+     */
+    @PreAuthorize("@ss.hasPermi('plant:month:remove')")
+    @Log(title = "员工月刷卡统计", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(tCanteenCardMonthService.deleteTCanteenCardMonthByIds(ids));
+    }
+}

+ 104 - 0
canteen-admin/src/main/java/com/ruoyi/supplier/controller/TCanteenDailyController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.supplier.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.supplier.domain.TCanteenDaily;
+import com.ruoyi.supplier.service.ITCanteenDailyService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 供应商日常工作记录Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/supplier/daily")
+public class TCanteenDailyController extends BaseController
+{
+    @Autowired
+    private ITCanteenDailyService tCanteenDailyService;
+
+    /**
+     * 查询供应商日常工作记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:daily:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCanteenDaily tCanteenDaily)
+    {
+        startPage();
+        List<TCanteenDaily> list = tCanteenDailyService.selectTCanteenDailyList(tCanteenDaily);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出供应商日常工作记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:daily:export')")
+    @Log(title = "供应商日常工作记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCanteenDaily tCanteenDaily)
+    {
+        List<TCanteenDaily> list = tCanteenDailyService.selectTCanteenDailyList(tCanteenDaily);
+        ExcelUtil<TCanteenDaily> util = new ExcelUtil<TCanteenDaily>(TCanteenDaily.class);
+        util.exportExcel(response, list, "供应商日常工作记录数据");
+    }
+
+    /**
+     * 获取供应商日常工作记录详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:daily:query')")
+    @GetMapping(value = "/{dailyId}")
+    public AjaxResult getInfo(@PathVariable("dailyId") Long dailyId)
+    {
+        return success(tCanteenDailyService.selectTCanteenDailyByDailyId(dailyId));
+    }
+
+    /**
+     * 新增供应商日常工作记录
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:daily:add')")
+    @Log(title = "供应商日常工作记录", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCanteenDaily tCanteenDaily)
+    {
+        return toAjax(tCanteenDailyService.insertTCanteenDaily(tCanteenDaily));
+    }
+
+    /**
+     * 修改供应商日常工作记录
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:daily:edit')")
+    @Log(title = "供应商日常工作记录", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCanteenDaily tCanteenDaily)
+    {
+        return toAjax(tCanteenDailyService.updateTCanteenDaily(tCanteenDaily));
+    }
+
+    /**
+     * 删除供应商日常工作记录
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:daily:remove')")
+    @Log(title = "供应商日常工作记录", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{dailyIds}")
+    public AjaxResult remove(@PathVariable Long[] dailyIds)
+    {
+        return toAjax(tCanteenDailyService.deleteTCanteenDailyByDailyIds(dailyIds));
+    }
+}

+ 104 - 0
canteen-admin/src/main/java/com/ruoyi/supplier/controller/TCanteenQualificationController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.supplier.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.supplier.domain.TCanteenQualification;
+import com.ruoyi.supplier.service.ITCanteenQualificationService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 供应商资质Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/supplier/qualification")
+public class TCanteenQualificationController extends BaseController
+{
+    @Autowired
+    private ITCanteenQualificationService tCanteenQualificationService;
+
+    /**
+     * 查询供应商资质列表
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:qualification:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCanteenQualification tCanteenQualification)
+    {
+        startPage();
+        List<TCanteenQualification> list = tCanteenQualificationService.selectTCanteenQualificationList(tCanteenQualification);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出供应商资质列表
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:qualification:export')")
+    @Log(title = "供应商资质", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCanteenQualification tCanteenQualification)
+    {
+        List<TCanteenQualification> list = tCanteenQualificationService.selectTCanteenQualificationList(tCanteenQualification);
+        ExcelUtil<TCanteenQualification> util = new ExcelUtil<TCanteenQualification>(TCanteenQualification.class);
+        util.exportExcel(response, list, "供应商资质数据");
+    }
+
+    /**
+     * 获取供应商资质详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:qualification:query')")
+    @GetMapping(value = "/{qualificationId}")
+    public AjaxResult getInfo(@PathVariable("qualificationId") Long qualificationId)
+    {
+        return success(tCanteenQualificationService.selectTCanteenQualificationByQualificationId(qualificationId));
+    }
+
+    /**
+     * 新增供应商资质
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:qualification:add')")
+    @Log(title = "供应商资质", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCanteenQualification tCanteenQualification)
+    {
+        return toAjax(tCanteenQualificationService.insertTCanteenQualification(tCanteenQualification));
+    }
+
+    /**
+     * 修改供应商资质
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:qualification:edit')")
+    @Log(title = "供应商资质", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCanteenQualification tCanteenQualification)
+    {
+        return toAjax(tCanteenQualificationService.updateTCanteenQualification(tCanteenQualification));
+    }
+
+    /**
+     * 删除供应商资质
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:qualification:remove')")
+    @Log(title = "供应商资质", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{qualificationIds}")
+    public AjaxResult remove(@PathVariable Long[] qualificationIds)
+    {
+        return toAjax(tCanteenQualificationService.deleteTCanteenQualificationByQualificationIds(qualificationIds));
+    }
+}

+ 104 - 0
canteen-admin/src/main/java/com/ruoyi/supplier/controller/TCanteenRatingController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.supplier.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.supplier.domain.TCanteenRating;
+import com.ruoyi.supplier.service.ITCanteenRatingService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 评价Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/supplier/rating")
+public class TCanteenRatingController extends BaseController
+{
+    @Autowired
+    private ITCanteenRatingService tCanteenRatingService;
+
+    /**
+     * 查询评价列表
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:rating:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCanteenRating tCanteenRating)
+    {
+        startPage();
+        List<TCanteenRating> list = tCanteenRatingService.selectTCanteenRatingList(tCanteenRating);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出评价列表
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:rating:export')")
+    @Log(title = "评价", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCanteenRating tCanteenRating)
+    {
+        List<TCanteenRating> list = tCanteenRatingService.selectTCanteenRatingList(tCanteenRating);
+        ExcelUtil<TCanteenRating> util = new ExcelUtil<TCanteenRating>(TCanteenRating.class);
+        util.exportExcel(response, list, "评价数据");
+    }
+
+    /**
+     * 获取评价详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:rating:query')")
+    @GetMapping(value = "/{rateId}")
+    public AjaxResult getInfo(@PathVariable("rateId") Long rateId)
+    {
+        return success(tCanteenRatingService.selectTCanteenRatingByRateId(rateId));
+    }
+
+    /**
+     * 新增评价
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:rating:add')")
+    @Log(title = "评价", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCanteenRating tCanteenRating)
+    {
+        return toAjax(tCanteenRatingService.insertTCanteenRating(tCanteenRating));
+    }
+
+    /**
+     * 修改评价
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:rating:edit')")
+    @Log(title = "评价", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCanteenRating tCanteenRating)
+    {
+        return toAjax(tCanteenRatingService.updateTCanteenRating(tCanteenRating));
+    }
+
+    /**
+     * 删除评价
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:rating:remove')")
+    @Log(title = "评价", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{rateIds}")
+    public AjaxResult remove(@PathVariable Long[] rateIds)
+    {
+        return toAjax(tCanteenRatingService.deleteTCanteenRatingByRateIds(rateIds));
+    }
+}

+ 104 - 0
canteen-admin/src/main/java/com/ruoyi/supplier/controller/TCanteenSupplierController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.supplier.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.supplier.domain.TCanteenSupplier;
+import com.ruoyi.supplier.service.ITCanteenSupplierService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 供应商Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/supplier/supplier")
+public class TCanteenSupplierController extends BaseController
+{
+    @Autowired
+    private ITCanteenSupplierService tCanteenSupplierService;
+
+    /**
+     * 查询供应商列表
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:supplier:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCanteenSupplier tCanteenSupplier)
+    {
+        startPage();
+        List<TCanteenSupplier> list = tCanteenSupplierService.selectTCanteenSupplierList(tCanteenSupplier);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出供应商列表
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:supplier:export')")
+    @Log(title = "供应商", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCanteenSupplier tCanteenSupplier)
+    {
+        List<TCanteenSupplier> list = tCanteenSupplierService.selectTCanteenSupplierList(tCanteenSupplier);
+        ExcelUtil<TCanteenSupplier> util = new ExcelUtil<TCanteenSupplier>(TCanteenSupplier.class);
+        util.exportExcel(response, list, "供应商数据");
+    }
+
+    /**
+     * 获取供应商详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:supplier:query')")
+    @GetMapping(value = "/{supplierId}")
+    public AjaxResult getInfo(@PathVariable("supplierId") Long supplierId)
+    {
+        return success(tCanteenSupplierService.selectTCanteenSupplierBySupplierId(supplierId));
+    }
+
+    /**
+     * 新增供应商
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:supplier:add')")
+    @Log(title = "供应商", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCanteenSupplier tCanteenSupplier)
+    {
+        return toAjax(tCanteenSupplierService.insertTCanteenSupplier(tCanteenSupplier));
+    }
+
+    /**
+     * 修改供应商
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:supplier:edit')")
+    @Log(title = "供应商", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCanteenSupplier tCanteenSupplier)
+    {
+        return toAjax(tCanteenSupplierService.updateTCanteenSupplier(tCanteenSupplier));
+    }
+
+    /**
+     * 删除供应商
+     */
+    @PreAuthorize("@ss.hasPermi('supplier:supplier:remove')")
+    @Log(title = "供应商", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{supplierIds}")
+    public AjaxResult remove(@PathVariable Long[] supplierIds)
+    {
+        return toAjax(tCanteenSupplierService.deleteTCanteenSupplierBySupplierIds(supplierIds));
+    }
+}

+ 1 - 1
canteen-generator/src/main/resources/vm/vue/v3/index-tree.vue.vm

@@ -283,7 +283,7 @@ const ${businessName}List = ref([]);
 const ${businessName}Options = ref([]);
 const open = ref(false);
 const loading = ref(true);
-const showSearch = ref(true);
+const showSearch = ref(false);
 const title = ref("");
 const isExpandAll = ref(true);
 const refreshTable = ref(true);

+ 1 - 1
canteen-generator/src/main/resources/vm/vue/v3/index.vue.vm

@@ -357,7 +357,7 @@ const ${subclassName}List = ref([]);
 #end
 const open = ref(false);
 const loading = ref(true);
-const showSearch = ref(true);
+const showSearch = ref(false);
 const ids = ref([]);
 #if($table.sub)
 const checked${subClassName} = ref([]);

+ 235 - 0
canteen-system/src/main/java/com/ruoyi/common/domain/TCommonFile.java

@@ -0,0 +1,235 @@
+package com.ruoyi.common.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 附件对象 t_common_file
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public class TCommonFile extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 附件id */
+    private Long fileId;
+
+    /** 附件地址 */
+    @Excel(name = "附件地址")
+    private String fileUrl;
+
+    /** 附件名称 */
+    @Excel(name = "附件名称")
+    private String fileName;
+
+    /** 附件大小 */
+    @Excel(name = "附件大小")
+    private String fileSize;
+
+    /** 关联数据id */
+    @Excel(name = "关联数据id")
+    private Long linkId;
+
+    /** 关联表名称 */
+    @Excel(name = "关联表名称")
+    private String linkTable;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private Long status;
+
+    /** 状态 0 :正常 ;2:删除 */
+    private Integer delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private Long createrCode;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 修改人 */
+    @Excel(name = "修改人")
+    private Long updaterCode;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门编号 */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remarks;
+
+    public void setFileId(Long fileId) 
+    {
+        this.fileId = fileId;
+    }
+
+    public Long getFileId() 
+    {
+        return fileId;
+    }
+
+    public void setFileUrl(String fileUrl) 
+    {
+        this.fileUrl = fileUrl;
+    }
+
+    public String getFileUrl() 
+    {
+        return fileUrl;
+    }
+
+    public void setFileName(String fileName) 
+    {
+        this.fileName = fileName;
+    }
+
+    public String getFileName() 
+    {
+        return fileName;
+    }
+
+    public void setFileSize(String fileSize) 
+    {
+        this.fileSize = fileSize;
+    }
+
+    public String getFileSize() 
+    {
+        return fileSize;
+    }
+
+    public void setLinkId(Long linkId) 
+    {
+        this.linkId = linkId;
+    }
+
+    public Long getLinkId() 
+    {
+        return linkId;
+    }
+
+    public void setLinkTable(String linkTable) 
+    {
+        this.linkTable = linkTable;
+    }
+
+    public String getLinkTable() 
+    {
+        return linkTable;
+    }
+
+    public void setStatus(Long status) 
+    {
+        this.status = status;
+    }
+
+    public Long getStatus() 
+    {
+        return status;
+    }
+
+    public void setDelFlag(Integer delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    public void setCreaterCode(Long createrCode) 
+    {
+        this.createrCode = createrCode;
+    }
+
+    public Long getCreaterCode() 
+    {
+        return createrCode;
+    }
+
+    public void setCreatedate(Date createdate) 
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate() 
+    {
+        return createdate;
+    }
+
+    public void setUpdaterCode(Long updaterCode) 
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public Long getUpdaterCode() 
+    {
+        return updaterCode;
+    }
+
+    public void setUpdatedate(Date updatedate) 
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate() 
+    {
+        return updatedate;
+    }
+
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+
+    public void setRemarks(String remarks) 
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() 
+    {
+        return remarks;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("fileId", getFileId())
+            .append("fileUrl", getFileUrl())
+            .append("fileName", getFileName())
+            .append("fileSize", getFileSize())
+            .append("linkId", getLinkId())
+            .append("linkTable", getLinkTable())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .append("remarks", getRemarks())
+            .toString();
+    }
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/common/mapper/TCommonFileMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.common.mapper;
+
+import java.util.List;
+import com.ruoyi.common.domain.TCommonFile;
+
+/**
+ * 附件Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface TCommonFileMapper 
+{
+    /**
+     * 查询附件
+     * 
+     * @param fileId 附件主键
+     * @return 附件
+     */
+    public TCommonFile selectTCommonFileByFileId(Long fileId);
+
+    /**
+     * 查询附件列表
+     * 
+     * @param tCommonFile 附件
+     * @return 附件集合
+     */
+    public List<TCommonFile> selectTCommonFileList(TCommonFile tCommonFile);
+
+    /**
+     * 新增附件
+     * 
+     * @param tCommonFile 附件
+     * @return 结果
+     */
+    public int insertTCommonFile(TCommonFile tCommonFile);
+
+    /**
+     * 修改附件
+     * 
+     * @param tCommonFile 附件
+     * @return 结果
+     */
+    public int updateTCommonFile(TCommonFile tCommonFile);
+
+    /**
+     * 删除附件
+     * 
+     * @param fileId 附件主键
+     * @return 结果
+     */
+    public int deleteTCommonFileByFileId(Long fileId);
+
+    /**
+     * 批量删除附件
+     * 
+     * @param fileIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTCommonFileByFileIds(Long[] fileIds);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/common/service/ITCommonFileService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.common.service;
+
+import java.util.List;
+import com.ruoyi.common.domain.TCommonFile;
+
+/**
+ * 附件Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface ITCommonFileService 
+{
+    /**
+     * 查询附件
+     * 
+     * @param fileId 附件主键
+     * @return 附件
+     */
+    public TCommonFile selectTCommonFileByFileId(Long fileId);
+
+    /**
+     * 查询附件列表
+     * 
+     * @param tCommonFile 附件
+     * @return 附件集合
+     */
+    public List<TCommonFile> selectTCommonFileList(TCommonFile tCommonFile);
+
+    /**
+     * 新增附件
+     * 
+     * @param tCommonFile 附件
+     * @return 结果
+     */
+    public int insertTCommonFile(TCommonFile tCommonFile);
+
+    /**
+     * 修改附件
+     * 
+     * @param tCommonFile 附件
+     * @return 结果
+     */
+    public int updateTCommonFile(TCommonFile tCommonFile);
+
+    /**
+     * 批量删除附件
+     * 
+     * @param fileIds 需要删除的附件主键集合
+     * @return 结果
+     */
+    public int deleteTCommonFileByFileIds(Long[] fileIds);
+
+    /**
+     * 删除附件信息
+     * 
+     * @param fileId 附件主键
+     * @return 结果
+     */
+    public int deleteTCommonFileByFileId(Long fileId);
+}

+ 93 - 0
canteen-system/src/main/java/com/ruoyi/common/service/impl/TCommonFileServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.common.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.common.mapper.TCommonFileMapper;
+import com.ruoyi.common.domain.TCommonFile;
+import com.ruoyi.common.service.ITCommonFileService;
+
+/**
+ * 附件Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@Service
+public class TCommonFileServiceImpl implements ITCommonFileService 
+{
+    @Autowired
+    private TCommonFileMapper tCommonFileMapper;
+
+    /**
+     * 查询附件
+     * 
+     * @param fileId 附件主键
+     * @return 附件
+     */
+    @Override
+    public TCommonFile selectTCommonFileByFileId(Long fileId)
+    {
+        return tCommonFileMapper.selectTCommonFileByFileId(fileId);
+    }
+
+    /**
+     * 查询附件列表
+     * 
+     * @param tCommonFile 附件
+     * @return 附件
+     */
+    @Override
+    public List<TCommonFile> selectTCommonFileList(TCommonFile tCommonFile)
+    {
+        return tCommonFileMapper.selectTCommonFileList(tCommonFile);
+    }
+
+    /**
+     * 新增附件
+     * 
+     * @param tCommonFile 附件
+     * @return 结果
+     */
+    @Override
+    public int insertTCommonFile(TCommonFile tCommonFile)
+    {
+        return tCommonFileMapper.insertTCommonFile(tCommonFile);
+    }
+
+    /**
+     * 修改附件
+     * 
+     * @param tCommonFile 附件
+     * @return 结果
+     */
+    @Override
+    public int updateTCommonFile(TCommonFile tCommonFile)
+    {
+        return tCommonFileMapper.updateTCommonFile(tCommonFile);
+    }
+
+    /**
+     * 批量删除附件
+     * 
+     * @param fileIds 需要删除的附件主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCommonFileByFileIds(Long[] fileIds)
+    {
+        return tCommonFileMapper.deleteTCommonFileByFileIds(fileIds);
+    }
+
+    /**
+     * 删除附件信息
+     * 
+     * @param fileId 附件主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCommonFileByFileId(Long fileId)
+    {
+        return tCommonFileMapper.deleteTCommonFileByFileId(fileId);
+    }
+}

+ 104 - 0
canteen-system/src/main/java/com/ruoyi/goods/controller/TCanteenClassifyController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.goods.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.goods.domain.TCanteenClassify;
+import com.ruoyi.goods.service.ITCanteenClassifyService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 菜单类型Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/goods/classify")
+public class TCanteenClassifyController extends BaseController
+{
+    @Autowired
+    private ITCanteenClassifyService tCanteenClassifyService;
+
+    /**
+     * 查询菜单类型列表
+     */
+    @PreAuthorize("@ss.hasPermi('goods:classify:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCanteenClassify tCanteenClassify)
+    {
+        startPage();
+        List<TCanteenClassify> list = tCanteenClassifyService.selectTCanteenClassifyList(tCanteenClassify);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出菜单类型列表
+     */
+    @PreAuthorize("@ss.hasPermi('goods:classify:export')")
+    @Log(title = "菜单类型", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCanteenClassify tCanteenClassify)
+    {
+        List<TCanteenClassify> list = tCanteenClassifyService.selectTCanteenClassifyList(tCanteenClassify);
+        ExcelUtil<TCanteenClassify> util = new ExcelUtil<TCanteenClassify>(TCanteenClassify.class);
+        util.exportExcel(response, list, "菜单类型数据");
+    }
+
+    /**
+     * 获取菜单类型详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('goods:classify:query')")
+    @GetMapping(value = "/{classifyId}")
+    public AjaxResult getInfo(@PathVariable("classifyId") Long classifyId)
+    {
+        return success(tCanteenClassifyService.selectTCanteenClassifyByClassifyId(classifyId));
+    }
+
+    /**
+     * 新增菜单类型
+     */
+    @PreAuthorize("@ss.hasPermi('goods:classify:add')")
+    @Log(title = "菜单类型", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCanteenClassify tCanteenClassify)
+    {
+        return toAjax(tCanteenClassifyService.insertTCanteenClassify(tCanteenClassify));
+    }
+
+    /**
+     * 修改菜单类型
+     */
+    @PreAuthorize("@ss.hasPermi('goods:classify:edit')")
+    @Log(title = "菜单类型", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCanteenClassify tCanteenClassify)
+    {
+        return toAjax(tCanteenClassifyService.updateTCanteenClassify(tCanteenClassify));
+    }
+
+    /**
+     * 删除菜单类型
+     */
+    @PreAuthorize("@ss.hasPermi('goods:classify:remove')")
+    @Log(title = "菜单类型", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{classifyIds}")
+    public AjaxResult remove(@PathVariable Long[] classifyIds)
+    {
+        return toAjax(tCanteenClassifyService.deleteTCanteenClassifyByClassifyIds(classifyIds));
+    }
+}

+ 104 - 0
canteen-system/src/main/java/com/ruoyi/goods/controller/TCanteenInventoryController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.goods.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.goods.domain.TCanteenInventory;
+import com.ruoyi.goods.service.ITCanteenInventoryService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 库存Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/goods/inventory")
+public class TCanteenInventoryController extends BaseController
+{
+    @Autowired
+    private ITCanteenInventoryService tCanteenInventoryService;
+
+    /**
+     * 查询库存列表
+     */
+    @PreAuthorize("@ss.hasPermi('goods:inventory:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCanteenInventory tCanteenInventory)
+    {
+        startPage();
+        List<TCanteenInventory> list = tCanteenInventoryService.selectTCanteenInventoryList(tCanteenInventory);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出库存列表
+     */
+    @PreAuthorize("@ss.hasPermi('goods:inventory:export')")
+    @Log(title = "库存", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCanteenInventory tCanteenInventory)
+    {
+        List<TCanteenInventory> list = tCanteenInventoryService.selectTCanteenInventoryList(tCanteenInventory);
+        ExcelUtil<TCanteenInventory> util = new ExcelUtil<TCanteenInventory>(TCanteenInventory.class);
+        util.exportExcel(response, list, "库存数据");
+    }
+
+    /**
+     * 获取库存详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('goods:inventory:query')")
+    @GetMapping(value = "/{inventoryId}")
+    public AjaxResult getInfo(@PathVariable("inventoryId") Long inventoryId)
+    {
+        return success(tCanteenInventoryService.selectTCanteenInventoryByInventoryId(inventoryId));
+    }
+
+    /**
+     * 新增库存
+     */
+    @PreAuthorize("@ss.hasPermi('goods:inventory:add')")
+    @Log(title = "库存", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCanteenInventory tCanteenInventory)
+    {
+        return toAjax(tCanteenInventoryService.insertTCanteenInventory(tCanteenInventory));
+    }
+
+    /**
+     * 修改库存
+     */
+    @PreAuthorize("@ss.hasPermi('goods:inventory:edit')")
+    @Log(title = "库存", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCanteenInventory tCanteenInventory)
+    {
+        return toAjax(tCanteenInventoryService.updateTCanteenInventory(tCanteenInventory));
+    }
+
+    /**
+     * 删除库存
+     */
+    @PreAuthorize("@ss.hasPermi('goods:inventory:remove')")
+    @Log(title = "库存", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{inventoryIds}")
+    public AjaxResult remove(@PathVariable Long[] inventoryIds)
+    {
+        return toAjax(tCanteenInventoryService.deleteTCanteenInventoryByInventoryIds(inventoryIds));
+    }
+}

+ 104 - 0
canteen-system/src/main/java/com/ruoyi/goods/controller/TCanteenMenuController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.goods.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.goods.domain.TCanteenMenu;
+import com.ruoyi.goods.service.ITCanteenMenuService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 菜单Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/goods/menu")
+public class TCanteenMenuController extends BaseController
+{
+    @Autowired
+    private ITCanteenMenuService tCanteenMenuService;
+
+    /**
+     * 查询菜单列表
+     */
+    @PreAuthorize("@ss.hasPermi('goods:menu:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCanteenMenu tCanteenMenu)
+    {
+        startPage();
+        List<TCanteenMenu> list = tCanteenMenuService.selectTCanteenMenuList(tCanteenMenu);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出菜单列表
+     */
+    @PreAuthorize("@ss.hasPermi('goods:menu:export')")
+    @Log(title = "菜单", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCanteenMenu tCanteenMenu)
+    {
+        List<TCanteenMenu> list = tCanteenMenuService.selectTCanteenMenuList(tCanteenMenu);
+        ExcelUtil<TCanteenMenu> util = new ExcelUtil<TCanteenMenu>(TCanteenMenu.class);
+        util.exportExcel(response, list, "菜单数据");
+    }
+
+    /**
+     * 获取菜单详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('goods:menu:query')")
+    @GetMapping(value = "/{menuId}")
+    public AjaxResult getInfo(@PathVariable("menuId") Long menuId)
+    {
+        return success(tCanteenMenuService.selectTCanteenMenuByMenuId(menuId));
+    }
+
+    /**
+     * 新增菜单
+     */
+    @PreAuthorize("@ss.hasPermi('goods:menu:add')")
+    @Log(title = "菜单", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCanteenMenu tCanteenMenu)
+    {
+        return toAjax(tCanteenMenuService.insertTCanteenMenu(tCanteenMenu));
+    }
+
+    /**
+     * 修改菜单
+     */
+    @PreAuthorize("@ss.hasPermi('goods:menu:edit')")
+    @Log(title = "菜单", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCanteenMenu tCanteenMenu)
+    {
+        return toAjax(tCanteenMenuService.updateTCanteenMenu(tCanteenMenu));
+    }
+
+    /**
+     * 删除菜单
+     */
+    @PreAuthorize("@ss.hasPermi('goods:menu:remove')")
+    @Log(title = "菜单", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{menuIds}")
+    public AjaxResult remove(@PathVariable Long[] menuIds)
+    {
+        return toAjax(tCanteenMenuService.deleteTCanteenMenuByMenuIds(menuIds));
+    }
+}

+ 104 - 0
canteen-system/src/main/java/com/ruoyi/goods/controller/TCanteenSubmenuController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.goods.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.goods.domain.TCanteenSubmenu;
+import com.ruoyi.goods.service.ITCanteenSubmenuService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 子菜单Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/goods/submenu")
+public class TCanteenSubmenuController extends BaseController
+{
+    @Autowired
+    private ITCanteenSubmenuService tCanteenSubmenuService;
+
+    /**
+     * 查询子菜单列表
+     */
+    @PreAuthorize("@ss.hasPermi('goods:submenu:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TCanteenSubmenu tCanteenSubmenu)
+    {
+        startPage();
+        List<TCanteenSubmenu> list = tCanteenSubmenuService.selectTCanteenSubmenuList(tCanteenSubmenu);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出子菜单列表
+     */
+    @PreAuthorize("@ss.hasPermi('goods:submenu:export')")
+    @Log(title = "子菜单", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TCanteenSubmenu tCanteenSubmenu)
+    {
+        List<TCanteenSubmenu> list = tCanteenSubmenuService.selectTCanteenSubmenuList(tCanteenSubmenu);
+        ExcelUtil<TCanteenSubmenu> util = new ExcelUtil<TCanteenSubmenu>(TCanteenSubmenu.class);
+        util.exportExcel(response, list, "子菜单数据");
+    }
+
+    /**
+     * 获取子菜单详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('goods:submenu:query')")
+    @GetMapping(value = "/{submenuId}")
+    public AjaxResult getInfo(@PathVariable("submenuId") Long submenuId)
+    {
+        return success(tCanteenSubmenuService.selectTCanteenSubmenuBySubmenuId(submenuId));
+    }
+
+    /**
+     * 新增子菜单
+     */
+    @PreAuthorize("@ss.hasPermi('goods:submenu:add')")
+    @Log(title = "子菜单", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TCanteenSubmenu tCanteenSubmenu)
+    {
+        return toAjax(tCanteenSubmenuService.insertTCanteenSubmenu(tCanteenSubmenu));
+    }
+
+    /**
+     * 修改子菜单
+     */
+    @PreAuthorize("@ss.hasPermi('goods:submenu:edit')")
+    @Log(title = "子菜单", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TCanteenSubmenu tCanteenSubmenu)
+    {
+        return toAjax(tCanteenSubmenuService.updateTCanteenSubmenu(tCanteenSubmenu));
+    }
+
+    /**
+     * 删除子菜单
+     */
+    @PreAuthorize("@ss.hasPermi('goods:submenu:remove')")
+    @Log(title = "子菜单", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{submenuIds}")
+    public AjaxResult remove(@PathVariable Long[] submenuIds)
+    {
+        return toAjax(tCanteenSubmenuService.deleteTCanteenSubmenuBySubmenuIds(submenuIds));
+    }
+}

+ 220 - 0
canteen-system/src/main/java/com/ruoyi/goods/domain/TCanteenClassify.java

@@ -0,0 +1,220 @@
+package com.ruoyi.goods.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 菜单类型对象 t_canteen_classify
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public class TCanteenClassify extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 分类id */
+    private Long classifyId;
+
+    /** 供应商id */
+    @Excel(name = "供应商id")
+    private Long supplierId;
+
+    /** 分类图标 */
+    @Excel(name = "分类图标")
+    private String classifyLogo;
+
+    /** 商品类型(早餐、中餐、晚餐) */
+    @Excel(name = "商品类型", readConverterExp = "早=餐、中餐、晚餐")
+    private String goodsType;
+
+    /** 类型名称 */
+    @Excel(name = "类型名称")
+    private String classifyName;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private Long status;
+
+    /** 状态 0 :正常 ;2:删除 */
+    private Integer delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private Long createrCode;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 修改人 */
+    @Excel(name = "修改人")
+    private Long updaterCode;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门编号 */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remarks;
+
+    public void setClassifyId(Long classifyId) 
+    {
+        this.classifyId = classifyId;
+    }
+
+    public Long getClassifyId() 
+    {
+        return classifyId;
+    }
+
+    public void setSupplierId(Long supplierId) 
+    {
+        this.supplierId = supplierId;
+    }
+
+    public Long getSupplierId() 
+    {
+        return supplierId;
+    }
+
+    public void setClassifyLogo(String classifyLogo) 
+    {
+        this.classifyLogo = classifyLogo;
+    }
+
+    public String getClassifyLogo() 
+    {
+        return classifyLogo;
+    }
+
+    public void setGoodsType(String goodsType) 
+    {
+        this.goodsType = goodsType;
+    }
+
+    public String getGoodsType() 
+    {
+        return goodsType;
+    }
+
+    public void setClassifyName(String classifyName) 
+    {
+        this.classifyName = classifyName;
+    }
+
+    public String getClassifyName() 
+    {
+        return classifyName;
+    }
+
+    public void setStatus(Long status) 
+    {
+        this.status = status;
+    }
+
+    public Long getStatus() 
+    {
+        return status;
+    }
+
+    public void setDelFlag(Integer delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    public void setCreaterCode(Long createrCode) 
+    {
+        this.createrCode = createrCode;
+    }
+
+    public Long getCreaterCode() 
+    {
+        return createrCode;
+    }
+
+    public void setCreatedate(Date createdate) 
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate() 
+    {
+        return createdate;
+    }
+
+    public void setUpdaterCode(Long updaterCode) 
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public Long getUpdaterCode() 
+    {
+        return updaterCode;
+    }
+
+    public void setUpdatedate(Date updatedate) 
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate() 
+    {
+        return updatedate;
+    }
+
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+
+    public void setRemarks(String remarks) 
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() 
+    {
+        return remarks;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("classifyId", getClassifyId())
+            .append("supplierId", getSupplierId())
+            .append("classifyLogo", getClassifyLogo())
+            .append("goodsType", getGoodsType())
+            .append("classifyName", getClassifyName())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .append("remarks", getRemarks())
+            .toString();
+    }
+}

+ 206 - 0
canteen-system/src/main/java/com/ruoyi/goods/domain/TCanteenInventory.java

@@ -0,0 +1,206 @@
+package com.ruoyi.goods.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 库存对象 t_canteen_inventory
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public class TCanteenInventory extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 库存id */
+    private Long inventoryId;
+
+    /** 菜单id */
+    @Excel(name = "菜单id")
+    private Long menuId;
+
+    /** 库存数量 */
+    @Excel(name = "库存数量")
+    private Long inventoryNum;
+
+    /** 最后上架时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "最后上架时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date lastRestock;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private Long status;
+
+    /** 状态 0 :正常 ;2:删除 */
+    private Integer delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private Long createrCode;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 修改人 */
+    @Excel(name = "修改人")
+    private Long updaterCode;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门编号 */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remarks;
+
+    public void setInventoryId(Long inventoryId) 
+    {
+        this.inventoryId = inventoryId;
+    }
+
+    public Long getInventoryId() 
+    {
+        return inventoryId;
+    }
+
+    public void setMenuId(Long menuId) 
+    {
+        this.menuId = menuId;
+    }
+
+    public Long getMenuId() 
+    {
+        return menuId;
+    }
+
+    public void setInventoryNum(Long inventoryNum) 
+    {
+        this.inventoryNum = inventoryNum;
+    }
+
+    public Long getInventoryNum() 
+    {
+        return inventoryNum;
+    }
+
+    public void setLastRestock(Date lastRestock) 
+    {
+        this.lastRestock = lastRestock;
+    }
+
+    public Date getLastRestock() 
+    {
+        return lastRestock;
+    }
+
+    public void setStatus(Long status) 
+    {
+        this.status = status;
+    }
+
+    public Long getStatus() 
+    {
+        return status;
+    }
+
+    public void setDelFlag(Integer delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    public void setCreaterCode(Long createrCode) 
+    {
+        this.createrCode = createrCode;
+    }
+
+    public Long getCreaterCode() 
+    {
+        return createrCode;
+    }
+
+    public void setCreatedate(Date createdate) 
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate() 
+    {
+        return createdate;
+    }
+
+    public void setUpdaterCode(Long updaterCode) 
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public Long getUpdaterCode() 
+    {
+        return updaterCode;
+    }
+
+    public void setUpdatedate(Date updatedate) 
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate() 
+    {
+        return updatedate;
+    }
+
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+
+    public void setRemarks(String remarks) 
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() 
+    {
+        return remarks;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("inventoryId", getInventoryId())
+            .append("menuId", getMenuId())
+            .append("inventoryNum", getInventoryNum())
+            .append("lastRestock", getLastRestock())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .append("remarks", getRemarks())
+            .toString();
+    }
+}

+ 295 - 0
canteen-system/src/main/java/com/ruoyi/goods/domain/TCanteenMenu.java

@@ -0,0 +1,295 @@
+package com.ruoyi.goods.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 菜单对象 t_canteen_menu
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public class TCanteenMenu extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 子菜单id */
+    private Long menuId;
+
+    /** 供应商id */
+    @Excel(name = "供应商id")
+    private Long supplierId;
+
+    /** 分类id */
+    @Excel(name = "分类id")
+    private Long classifyId;
+
+    /** 商品名称 */
+    @Excel(name = "商品名称")
+    private String goodsName;
+
+    /** 商品数量 */
+    @Excel(name = "商品数量")
+    private Long goodsNum;
+
+    /** 商品单价 */
+    @Excel(name = "商品单价")
+    private String goodsPrice;
+
+    /** 商品描述 */
+    @Excel(name = "商品描述")
+    private String goodsDes;
+
+    /** 打折状态 */
+    @Excel(name = "打折状态")
+    private String discountStatus;
+
+    /** 打折后价格 */
+    @Excel(name = "打折后价格")
+    private String discountPrice;
+
+    /** 打折力度 */
+    @Excel(name = "打折力度")
+    private String discountIntensity;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private Long status;
+
+    /** 状态 0 :正常 ;2:删除 */
+    private Integer delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private Long createrCode;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 修改人 */
+    @Excel(name = "修改人")
+    private Long updaterCode;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门编号 */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remarks;
+
+    public void setMenuId(Long menuId) 
+    {
+        this.menuId = menuId;
+    }
+
+    public Long getMenuId() 
+    {
+        return menuId;
+    }
+
+    public void setSupplierId(Long supplierId) 
+    {
+        this.supplierId = supplierId;
+    }
+
+    public Long getSupplierId() 
+    {
+        return supplierId;
+    }
+
+    public void setClassifyId(Long classifyId) 
+    {
+        this.classifyId = classifyId;
+    }
+
+    public Long getClassifyId() 
+    {
+        return classifyId;
+    }
+
+    public void setGoodsName(String goodsName) 
+    {
+        this.goodsName = goodsName;
+    }
+
+    public String getGoodsName() 
+    {
+        return goodsName;
+    }
+
+    public void setGoodsNum(Long goodsNum) 
+    {
+        this.goodsNum = goodsNum;
+    }
+
+    public Long getGoodsNum() 
+    {
+        return goodsNum;
+    }
+
+    public void setGoodsPrice(String goodsPrice) 
+    {
+        this.goodsPrice = goodsPrice;
+    }
+
+    public String getGoodsPrice() 
+    {
+        return goodsPrice;
+    }
+
+    public void setGoodsDes(String goodsDes) 
+    {
+        this.goodsDes = goodsDes;
+    }
+
+    public String getGoodsDes() 
+    {
+        return goodsDes;
+    }
+
+    public void setDiscountStatus(String discountStatus) 
+    {
+        this.discountStatus = discountStatus;
+    }
+
+    public String getDiscountStatus() 
+    {
+        return discountStatus;
+    }
+
+    public void setDiscountPrice(String discountPrice) 
+    {
+        this.discountPrice = discountPrice;
+    }
+
+    public String getDiscountPrice() 
+    {
+        return discountPrice;
+    }
+
+    public void setDiscountIntensity(String discountIntensity) 
+    {
+        this.discountIntensity = discountIntensity;
+    }
+
+    public String getDiscountIntensity() 
+    {
+        return discountIntensity;
+    }
+
+    public void setStatus(Long status) 
+    {
+        this.status = status;
+    }
+
+    public Long getStatus() 
+    {
+        return status;
+    }
+
+    public void setDelFlag(Integer delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    public void setCreaterCode(Long createrCode) 
+    {
+        this.createrCode = createrCode;
+    }
+
+    public Long getCreaterCode() 
+    {
+        return createrCode;
+    }
+
+    public void setCreatedate(Date createdate) 
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate() 
+    {
+        return createdate;
+    }
+
+    public void setUpdaterCode(Long updaterCode) 
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public Long getUpdaterCode() 
+    {
+        return updaterCode;
+    }
+
+    public void setUpdatedate(Date updatedate) 
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate() 
+    {
+        return updatedate;
+    }
+
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+
+    public void setRemarks(String remarks) 
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() 
+    {
+        return remarks;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("menuId", getMenuId())
+            .append("supplierId", getSupplierId())
+            .append("classifyId", getClassifyId())
+            .append("goodsName", getGoodsName())
+            .append("goodsNum", getGoodsNum())
+            .append("goodsPrice", getGoodsPrice())
+            .append("goodsDes", getGoodsDes())
+            .append("discountStatus", getDiscountStatus())
+            .append("discountPrice", getDiscountPrice())
+            .append("discountIntensity", getDiscountIntensity())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .append("remarks", getRemarks())
+            .toString();
+    }
+}

+ 250 - 0
canteen-system/src/main/java/com/ruoyi/goods/domain/TCanteenSubmenu.java

@@ -0,0 +1,250 @@
+package com.ruoyi.goods.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 子菜单对象 t_canteen_submenu
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public class TCanteenSubmenu extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 子菜单id */
+    private Long submenuId;
+
+    /** 主菜单id */
+    @Excel(name = "主菜单id")
+    private Long menuId;
+
+    /** 供应商id */
+    @Excel(name = "供应商id")
+    private Long supplierId;
+
+    /** 菜单类型 */
+    @Excel(name = "菜单类型")
+    private String menuType;
+
+    /** 商品名称 */
+    @Excel(name = "商品名称")
+    private String goodsName;
+
+    /** 商品单价 */
+    @Excel(name = "商品单价")
+    private String goodsPrice;
+
+    /** 商品数量 */
+    @Excel(name = "商品数量")
+    private Long goodsNum;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private Long status;
+
+    /** 状态 0 :正常 ;2:删除 */
+    private Integer delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private Long createrCode;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 修改人 */
+    @Excel(name = "修改人")
+    private Long updaterCode;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门编号 */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remarks;
+
+    public void setSubmenuId(Long submenuId) 
+    {
+        this.submenuId = submenuId;
+    }
+
+    public Long getSubmenuId() 
+    {
+        return submenuId;
+    }
+
+    public void setMenuId(Long menuId) 
+    {
+        this.menuId = menuId;
+    }
+
+    public Long getMenuId() 
+    {
+        return menuId;
+    }
+
+    public void setSupplierId(Long supplierId) 
+    {
+        this.supplierId = supplierId;
+    }
+
+    public Long getSupplierId() 
+    {
+        return supplierId;
+    }
+
+    public void setMenuType(String menuType) 
+    {
+        this.menuType = menuType;
+    }
+
+    public String getMenuType() 
+    {
+        return menuType;
+    }
+
+    public void setGoodsName(String goodsName) 
+    {
+        this.goodsName = goodsName;
+    }
+
+    public String getGoodsName() 
+    {
+        return goodsName;
+    }
+
+    public void setGoodsPrice(String goodsPrice) 
+    {
+        this.goodsPrice = goodsPrice;
+    }
+
+    public String getGoodsPrice() 
+    {
+        return goodsPrice;
+    }
+
+    public void setGoodsNum(Long goodsNum) 
+    {
+        this.goodsNum = goodsNum;
+    }
+
+    public Long getGoodsNum() 
+    {
+        return goodsNum;
+    }
+
+    public void setStatus(Long status) 
+    {
+        this.status = status;
+    }
+
+    public Long getStatus() 
+    {
+        return status;
+    }
+
+    public void setDelFlag(Integer delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    public void setCreaterCode(Long createrCode) 
+    {
+        this.createrCode = createrCode;
+    }
+
+    public Long getCreaterCode() 
+    {
+        return createrCode;
+    }
+
+    public void setCreatedate(Date createdate) 
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate() 
+    {
+        return createdate;
+    }
+
+    public void setUpdaterCode(Long updaterCode) 
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public Long getUpdaterCode() 
+    {
+        return updaterCode;
+    }
+
+    public void setUpdatedate(Date updatedate) 
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate() 
+    {
+        return updatedate;
+    }
+
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+
+    public void setRemarks(String remarks) 
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() 
+    {
+        return remarks;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("submenuId", getSubmenuId())
+            .append("menuId", getMenuId())
+            .append("supplierId", getSupplierId())
+            .append("menuType", getMenuType())
+            .append("goodsName", getGoodsName())
+            .append("goodsPrice", getGoodsPrice())
+            .append("goodsNum", getGoodsNum())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .append("remarks", getRemarks())
+            .toString();
+    }
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/goods/mapper/TCanteenClassifyMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.goods.mapper;
+
+import java.util.List;
+import com.ruoyi.goods.domain.TCanteenClassify;
+
+/**
+ * 菜单类型Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface TCanteenClassifyMapper 
+{
+    /**
+     * 查询菜单类型
+     * 
+     * @param classifyId 菜单类型主键
+     * @return 菜单类型
+     */
+    public TCanteenClassify selectTCanteenClassifyByClassifyId(Long classifyId);
+
+    /**
+     * 查询菜单类型列表
+     * 
+     * @param tCanteenClassify 菜单类型
+     * @return 菜单类型集合
+     */
+    public List<TCanteenClassify> selectTCanteenClassifyList(TCanteenClassify tCanteenClassify);
+
+    /**
+     * 新增菜单类型
+     * 
+     * @param tCanteenClassify 菜单类型
+     * @return 结果
+     */
+    public int insertTCanteenClassify(TCanteenClassify tCanteenClassify);
+
+    /**
+     * 修改菜单类型
+     * 
+     * @param tCanteenClassify 菜单类型
+     * @return 结果
+     */
+    public int updateTCanteenClassify(TCanteenClassify tCanteenClassify);
+
+    /**
+     * 删除菜单类型
+     * 
+     * @param classifyId 菜单类型主键
+     * @return 结果
+     */
+    public int deleteTCanteenClassifyByClassifyId(Long classifyId);
+
+    /**
+     * 批量删除菜单类型
+     * 
+     * @param classifyIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenClassifyByClassifyIds(Long[] classifyIds);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/goods/mapper/TCanteenInventoryMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.goods.mapper;
+
+import java.util.List;
+import com.ruoyi.goods.domain.TCanteenInventory;
+
+/**
+ * 库存Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface TCanteenInventoryMapper 
+{
+    /**
+     * 查询库存
+     * 
+     * @param inventoryId 库存主键
+     * @return 库存
+     */
+    public TCanteenInventory selectTCanteenInventoryByInventoryId(Long inventoryId);
+
+    /**
+     * 查询库存列表
+     * 
+     * @param tCanteenInventory 库存
+     * @return 库存集合
+     */
+    public List<TCanteenInventory> selectTCanteenInventoryList(TCanteenInventory tCanteenInventory);
+
+    /**
+     * 新增库存
+     * 
+     * @param tCanteenInventory 库存
+     * @return 结果
+     */
+    public int insertTCanteenInventory(TCanteenInventory tCanteenInventory);
+
+    /**
+     * 修改库存
+     * 
+     * @param tCanteenInventory 库存
+     * @return 结果
+     */
+    public int updateTCanteenInventory(TCanteenInventory tCanteenInventory);
+
+    /**
+     * 删除库存
+     * 
+     * @param inventoryId 库存主键
+     * @return 结果
+     */
+    public int deleteTCanteenInventoryByInventoryId(Long inventoryId);
+
+    /**
+     * 批量删除库存
+     * 
+     * @param inventoryIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenInventoryByInventoryIds(Long[] inventoryIds);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/goods/mapper/TCanteenMenuMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.goods.mapper;
+
+import java.util.List;
+import com.ruoyi.goods.domain.TCanteenMenu;
+
+/**
+ * 菜单Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface TCanteenMenuMapper 
+{
+    /**
+     * 查询菜单
+     * 
+     * @param menuId 菜单主键
+     * @return 菜单
+     */
+    public TCanteenMenu selectTCanteenMenuByMenuId(Long menuId);
+
+    /**
+     * 查询菜单列表
+     * 
+     * @param tCanteenMenu 菜单
+     * @return 菜单集合
+     */
+    public List<TCanteenMenu> selectTCanteenMenuList(TCanteenMenu tCanteenMenu);
+
+    /**
+     * 新增菜单
+     * 
+     * @param tCanteenMenu 菜单
+     * @return 结果
+     */
+    public int insertTCanteenMenu(TCanteenMenu tCanteenMenu);
+
+    /**
+     * 修改菜单
+     * 
+     * @param tCanteenMenu 菜单
+     * @return 结果
+     */
+    public int updateTCanteenMenu(TCanteenMenu tCanteenMenu);
+
+    /**
+     * 删除菜单
+     * 
+     * @param menuId 菜单主键
+     * @return 结果
+     */
+    public int deleteTCanteenMenuByMenuId(Long menuId);
+
+    /**
+     * 批量删除菜单
+     * 
+     * @param menuIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenMenuByMenuIds(Long[] menuIds);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/goods/mapper/TCanteenSubmenuMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.goods.mapper;
+
+import java.util.List;
+import com.ruoyi.goods.domain.TCanteenSubmenu;
+
+/**
+ * 子菜单Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface TCanteenSubmenuMapper 
+{
+    /**
+     * 查询子菜单
+     * 
+     * @param submenuId 子菜单主键
+     * @return 子菜单
+     */
+    public TCanteenSubmenu selectTCanteenSubmenuBySubmenuId(Long submenuId);
+
+    /**
+     * 查询子菜单列表
+     * 
+     * @param tCanteenSubmenu 子菜单
+     * @return 子菜单集合
+     */
+    public List<TCanteenSubmenu> selectTCanteenSubmenuList(TCanteenSubmenu tCanteenSubmenu);
+
+    /**
+     * 新增子菜单
+     * 
+     * @param tCanteenSubmenu 子菜单
+     * @return 结果
+     */
+    public int insertTCanteenSubmenu(TCanteenSubmenu tCanteenSubmenu);
+
+    /**
+     * 修改子菜单
+     * 
+     * @param tCanteenSubmenu 子菜单
+     * @return 结果
+     */
+    public int updateTCanteenSubmenu(TCanteenSubmenu tCanteenSubmenu);
+
+    /**
+     * 删除子菜单
+     * 
+     * @param submenuId 子菜单主键
+     * @return 结果
+     */
+    public int deleteTCanteenSubmenuBySubmenuId(Long submenuId);
+
+    /**
+     * 批量删除子菜单
+     * 
+     * @param submenuIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenSubmenuBySubmenuIds(Long[] submenuIds);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/goods/service/ITCanteenClassifyService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.goods.service;
+
+import java.util.List;
+import com.ruoyi.goods.domain.TCanteenClassify;
+
+/**
+ * 菜单类型Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface ITCanteenClassifyService 
+{
+    /**
+     * 查询菜单类型
+     * 
+     * @param classifyId 菜单类型主键
+     * @return 菜单类型
+     */
+    public TCanteenClassify selectTCanteenClassifyByClassifyId(Long classifyId);
+
+    /**
+     * 查询菜单类型列表
+     * 
+     * @param tCanteenClassify 菜单类型
+     * @return 菜单类型集合
+     */
+    public List<TCanteenClassify> selectTCanteenClassifyList(TCanteenClassify tCanteenClassify);
+
+    /**
+     * 新增菜单类型
+     * 
+     * @param tCanteenClassify 菜单类型
+     * @return 结果
+     */
+    public int insertTCanteenClassify(TCanteenClassify tCanteenClassify);
+
+    /**
+     * 修改菜单类型
+     * 
+     * @param tCanteenClassify 菜单类型
+     * @return 结果
+     */
+    public int updateTCanteenClassify(TCanteenClassify tCanteenClassify);
+
+    /**
+     * 批量删除菜单类型
+     * 
+     * @param classifyIds 需要删除的菜单类型主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenClassifyByClassifyIds(Long[] classifyIds);
+
+    /**
+     * 删除菜单类型信息
+     * 
+     * @param classifyId 菜单类型主键
+     * @return 结果
+     */
+    public int deleteTCanteenClassifyByClassifyId(Long classifyId);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/goods/service/ITCanteenInventoryService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.goods.service;
+
+import java.util.List;
+import com.ruoyi.goods.domain.TCanteenInventory;
+
+/**
+ * 库存Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface ITCanteenInventoryService 
+{
+    /**
+     * 查询库存
+     * 
+     * @param inventoryId 库存主键
+     * @return 库存
+     */
+    public TCanteenInventory selectTCanteenInventoryByInventoryId(Long inventoryId);
+
+    /**
+     * 查询库存列表
+     * 
+     * @param tCanteenInventory 库存
+     * @return 库存集合
+     */
+    public List<TCanteenInventory> selectTCanteenInventoryList(TCanteenInventory tCanteenInventory);
+
+    /**
+     * 新增库存
+     * 
+     * @param tCanteenInventory 库存
+     * @return 结果
+     */
+    public int insertTCanteenInventory(TCanteenInventory tCanteenInventory);
+
+    /**
+     * 修改库存
+     * 
+     * @param tCanteenInventory 库存
+     * @return 结果
+     */
+    public int updateTCanteenInventory(TCanteenInventory tCanteenInventory);
+
+    /**
+     * 批量删除库存
+     * 
+     * @param inventoryIds 需要删除的库存主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenInventoryByInventoryIds(Long[] inventoryIds);
+
+    /**
+     * 删除库存信息
+     * 
+     * @param inventoryId 库存主键
+     * @return 结果
+     */
+    public int deleteTCanteenInventoryByInventoryId(Long inventoryId);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/goods/service/ITCanteenMenuService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.goods.service;
+
+import java.util.List;
+import com.ruoyi.goods.domain.TCanteenMenu;
+
+/**
+ * 菜单Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface ITCanteenMenuService 
+{
+    /**
+     * 查询菜单
+     * 
+     * @param menuId 菜单主键
+     * @return 菜单
+     */
+    public TCanteenMenu selectTCanteenMenuByMenuId(Long menuId);
+
+    /**
+     * 查询菜单列表
+     * 
+     * @param tCanteenMenu 菜单
+     * @return 菜单集合
+     */
+    public List<TCanteenMenu> selectTCanteenMenuList(TCanteenMenu tCanteenMenu);
+
+    /**
+     * 新增菜单
+     * 
+     * @param tCanteenMenu 菜单
+     * @return 结果
+     */
+    public int insertTCanteenMenu(TCanteenMenu tCanteenMenu);
+
+    /**
+     * 修改菜单
+     * 
+     * @param tCanteenMenu 菜单
+     * @return 结果
+     */
+    public int updateTCanteenMenu(TCanteenMenu tCanteenMenu);
+
+    /**
+     * 批量删除菜单
+     * 
+     * @param menuIds 需要删除的菜单主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenMenuByMenuIds(Long[] menuIds);
+
+    /**
+     * 删除菜单信息
+     * 
+     * @param menuId 菜单主键
+     * @return 结果
+     */
+    public int deleteTCanteenMenuByMenuId(Long menuId);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/goods/service/ITCanteenSubmenuService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.goods.service;
+
+import java.util.List;
+import com.ruoyi.goods.domain.TCanteenSubmenu;
+
+/**
+ * 子菜单Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface ITCanteenSubmenuService 
+{
+    /**
+     * 查询子菜单
+     * 
+     * @param submenuId 子菜单主键
+     * @return 子菜单
+     */
+    public TCanteenSubmenu selectTCanteenSubmenuBySubmenuId(Long submenuId);
+
+    /**
+     * 查询子菜单列表
+     * 
+     * @param tCanteenSubmenu 子菜单
+     * @return 子菜单集合
+     */
+    public List<TCanteenSubmenu> selectTCanteenSubmenuList(TCanteenSubmenu tCanteenSubmenu);
+
+    /**
+     * 新增子菜单
+     * 
+     * @param tCanteenSubmenu 子菜单
+     * @return 结果
+     */
+    public int insertTCanteenSubmenu(TCanteenSubmenu tCanteenSubmenu);
+
+    /**
+     * 修改子菜单
+     * 
+     * @param tCanteenSubmenu 子菜单
+     * @return 结果
+     */
+    public int updateTCanteenSubmenu(TCanteenSubmenu tCanteenSubmenu);
+
+    /**
+     * 批量删除子菜单
+     * 
+     * @param submenuIds 需要删除的子菜单主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenSubmenuBySubmenuIds(Long[] submenuIds);
+
+    /**
+     * 删除子菜单信息
+     * 
+     * @param submenuId 子菜单主键
+     * @return 结果
+     */
+    public int deleteTCanteenSubmenuBySubmenuId(Long submenuId);
+}

+ 93 - 0
canteen-system/src/main/java/com/ruoyi/goods/service/impl/TCanteenClassifyServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.goods.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.goods.mapper.TCanteenClassifyMapper;
+import com.ruoyi.goods.domain.TCanteenClassify;
+import com.ruoyi.goods.service.ITCanteenClassifyService;
+
+/**
+ * 菜单类型Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@Service
+public class TCanteenClassifyServiceImpl implements ITCanteenClassifyService 
+{
+    @Autowired
+    private TCanteenClassifyMapper tCanteenClassifyMapper;
+
+    /**
+     * 查询菜单类型
+     * 
+     * @param classifyId 菜单类型主键
+     * @return 菜单类型
+     */
+    @Override
+    public TCanteenClassify selectTCanteenClassifyByClassifyId(Long classifyId)
+    {
+        return tCanteenClassifyMapper.selectTCanteenClassifyByClassifyId(classifyId);
+    }
+
+    /**
+     * 查询菜单类型列表
+     * 
+     * @param tCanteenClassify 菜单类型
+     * @return 菜单类型
+     */
+    @Override
+    public List<TCanteenClassify> selectTCanteenClassifyList(TCanteenClassify tCanteenClassify)
+    {
+        return tCanteenClassifyMapper.selectTCanteenClassifyList(tCanteenClassify);
+    }
+
+    /**
+     * 新增菜单类型
+     * 
+     * @param tCanteenClassify 菜单类型
+     * @return 结果
+     */
+    @Override
+    public int insertTCanteenClassify(TCanteenClassify tCanteenClassify)
+    {
+        return tCanteenClassifyMapper.insertTCanteenClassify(tCanteenClassify);
+    }
+
+    /**
+     * 修改菜单类型
+     * 
+     * @param tCanteenClassify 菜单类型
+     * @return 结果
+     */
+    @Override
+    public int updateTCanteenClassify(TCanteenClassify tCanteenClassify)
+    {
+        return tCanteenClassifyMapper.updateTCanteenClassify(tCanteenClassify);
+    }
+
+    /**
+     * 批量删除菜单类型
+     * 
+     * @param classifyIds 需要删除的菜单类型主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenClassifyByClassifyIds(Long[] classifyIds)
+    {
+        return tCanteenClassifyMapper.deleteTCanteenClassifyByClassifyIds(classifyIds);
+    }
+
+    /**
+     * 删除菜单类型信息
+     * 
+     * @param classifyId 菜单类型主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenClassifyByClassifyId(Long classifyId)
+    {
+        return tCanteenClassifyMapper.deleteTCanteenClassifyByClassifyId(classifyId);
+    }
+}

+ 93 - 0
canteen-system/src/main/java/com/ruoyi/goods/service/impl/TCanteenInventoryServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.goods.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.goods.mapper.TCanteenInventoryMapper;
+import com.ruoyi.goods.domain.TCanteenInventory;
+import com.ruoyi.goods.service.ITCanteenInventoryService;
+
+/**
+ * 库存Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@Service
+public class TCanteenInventoryServiceImpl implements ITCanteenInventoryService 
+{
+    @Autowired
+    private TCanteenInventoryMapper tCanteenInventoryMapper;
+
+    /**
+     * 查询库存
+     * 
+     * @param inventoryId 库存主键
+     * @return 库存
+     */
+    @Override
+    public TCanteenInventory selectTCanteenInventoryByInventoryId(Long inventoryId)
+    {
+        return tCanteenInventoryMapper.selectTCanteenInventoryByInventoryId(inventoryId);
+    }
+
+    /**
+     * 查询库存列表
+     * 
+     * @param tCanteenInventory 库存
+     * @return 库存
+     */
+    @Override
+    public List<TCanteenInventory> selectTCanteenInventoryList(TCanteenInventory tCanteenInventory)
+    {
+        return tCanteenInventoryMapper.selectTCanteenInventoryList(tCanteenInventory);
+    }
+
+    /**
+     * 新增库存
+     * 
+     * @param tCanteenInventory 库存
+     * @return 结果
+     */
+    @Override
+    public int insertTCanteenInventory(TCanteenInventory tCanteenInventory)
+    {
+        return tCanteenInventoryMapper.insertTCanteenInventory(tCanteenInventory);
+    }
+
+    /**
+     * 修改库存
+     * 
+     * @param tCanteenInventory 库存
+     * @return 结果
+     */
+    @Override
+    public int updateTCanteenInventory(TCanteenInventory tCanteenInventory)
+    {
+        return tCanteenInventoryMapper.updateTCanteenInventory(tCanteenInventory);
+    }
+
+    /**
+     * 批量删除库存
+     * 
+     * @param inventoryIds 需要删除的库存主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenInventoryByInventoryIds(Long[] inventoryIds)
+    {
+        return tCanteenInventoryMapper.deleteTCanteenInventoryByInventoryIds(inventoryIds);
+    }
+
+    /**
+     * 删除库存信息
+     * 
+     * @param inventoryId 库存主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenInventoryByInventoryId(Long inventoryId)
+    {
+        return tCanteenInventoryMapper.deleteTCanteenInventoryByInventoryId(inventoryId);
+    }
+}

+ 93 - 0
canteen-system/src/main/java/com/ruoyi/goods/service/impl/TCanteenMenuServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.goods.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.goods.mapper.TCanteenMenuMapper;
+import com.ruoyi.goods.domain.TCanteenMenu;
+import com.ruoyi.goods.service.ITCanteenMenuService;
+
+/**
+ * 菜单Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@Service
+public class TCanteenMenuServiceImpl implements ITCanteenMenuService 
+{
+    @Autowired
+    private TCanteenMenuMapper tCanteenMenuMapper;
+
+    /**
+     * 查询菜单
+     * 
+     * @param menuId 菜单主键
+     * @return 菜单
+     */
+    @Override
+    public TCanteenMenu selectTCanteenMenuByMenuId(Long menuId)
+    {
+        return tCanteenMenuMapper.selectTCanteenMenuByMenuId(menuId);
+    }
+
+    /**
+     * 查询菜单列表
+     * 
+     * @param tCanteenMenu 菜单
+     * @return 菜单
+     */
+    @Override
+    public List<TCanteenMenu> selectTCanteenMenuList(TCanteenMenu tCanteenMenu)
+    {
+        return tCanteenMenuMapper.selectTCanteenMenuList(tCanteenMenu);
+    }
+
+    /**
+     * 新增菜单
+     * 
+     * @param tCanteenMenu 菜单
+     * @return 结果
+     */
+    @Override
+    public int insertTCanteenMenu(TCanteenMenu tCanteenMenu)
+    {
+        return tCanteenMenuMapper.insertTCanteenMenu(tCanteenMenu);
+    }
+
+    /**
+     * 修改菜单
+     * 
+     * @param tCanteenMenu 菜单
+     * @return 结果
+     */
+    @Override
+    public int updateTCanteenMenu(TCanteenMenu tCanteenMenu)
+    {
+        return tCanteenMenuMapper.updateTCanteenMenu(tCanteenMenu);
+    }
+
+    /**
+     * 批量删除菜单
+     * 
+     * @param menuIds 需要删除的菜单主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenMenuByMenuIds(Long[] menuIds)
+    {
+        return tCanteenMenuMapper.deleteTCanteenMenuByMenuIds(menuIds);
+    }
+
+    /**
+     * 删除菜单信息
+     * 
+     * @param menuId 菜单主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenMenuByMenuId(Long menuId)
+    {
+        return tCanteenMenuMapper.deleteTCanteenMenuByMenuId(menuId);
+    }
+}

+ 93 - 0
canteen-system/src/main/java/com/ruoyi/goods/service/impl/TCanteenSubmenuServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.goods.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.goods.mapper.TCanteenSubmenuMapper;
+import com.ruoyi.goods.domain.TCanteenSubmenu;
+import com.ruoyi.goods.service.ITCanteenSubmenuService;
+
+/**
+ * 子菜单Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@Service
+public class TCanteenSubmenuServiceImpl implements ITCanteenSubmenuService 
+{
+    @Autowired
+    private TCanteenSubmenuMapper tCanteenSubmenuMapper;
+
+    /**
+     * 查询子菜单
+     * 
+     * @param submenuId 子菜单主键
+     * @return 子菜单
+     */
+    @Override
+    public TCanteenSubmenu selectTCanteenSubmenuBySubmenuId(Long submenuId)
+    {
+        return tCanteenSubmenuMapper.selectTCanteenSubmenuBySubmenuId(submenuId);
+    }
+
+    /**
+     * 查询子菜单列表
+     * 
+     * @param tCanteenSubmenu 子菜单
+     * @return 子菜单
+     */
+    @Override
+    public List<TCanteenSubmenu> selectTCanteenSubmenuList(TCanteenSubmenu tCanteenSubmenu)
+    {
+        return tCanteenSubmenuMapper.selectTCanteenSubmenuList(tCanteenSubmenu);
+    }
+
+    /**
+     * 新增子菜单
+     * 
+     * @param tCanteenSubmenu 子菜单
+     * @return 结果
+     */
+    @Override
+    public int insertTCanteenSubmenu(TCanteenSubmenu tCanteenSubmenu)
+    {
+        return tCanteenSubmenuMapper.insertTCanteenSubmenu(tCanteenSubmenu);
+    }
+
+    /**
+     * 修改子菜单
+     * 
+     * @param tCanteenSubmenu 子菜单
+     * @return 结果
+     */
+    @Override
+    public int updateTCanteenSubmenu(TCanteenSubmenu tCanteenSubmenu)
+    {
+        return tCanteenSubmenuMapper.updateTCanteenSubmenu(tCanteenSubmenu);
+    }
+
+    /**
+     * 批量删除子菜单
+     * 
+     * @param submenuIds 需要删除的子菜单主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenSubmenuBySubmenuIds(Long[] submenuIds)
+    {
+        return tCanteenSubmenuMapper.deleteTCanteenSubmenuBySubmenuIds(submenuIds);
+    }
+
+    /**
+     * 删除子菜单信息
+     * 
+     * @param submenuId 子菜单主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenSubmenuBySubmenuId(Long submenuId)
+    {
+        return tCanteenSubmenuMapper.deleteTCanteenSubmenuBySubmenuId(submenuId);
+    }
+}

+ 252 - 0
canteen-system/src/main/java/com/ruoyi/order/domain/TCanteenOrder.java

@@ -0,0 +1,252 @@
+package com.ruoyi.order.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 订单对象 t_canteen_order
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public class TCanteenOrder extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 订单id */
+    private Long orderId;
+
+    /** 用户id */
+    @Excel(name = "用户id")
+    private Long userId;
+
+    /** 供应商id */
+    @Excel(name = "供应商id")
+    private Long supplierId;
+
+    /** 订单状态 */
+    @Excel(name = "订单状态")
+    private Long orderStatus;
+
+    /** 订单金额 */
+    @Excel(name = "订单金额")
+    private String totalAmount;
+
+    /** 预定时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "预定时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date scheduledTime;
+
+    /** 订单完成时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "订单完成时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date completeTime;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private Long status;
+
+    /** 状态 0 :正常 ;2:删除 */
+    private Integer delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private Long createrCode;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 修改人 */
+    @Excel(name = "修改人")
+    private Long updaterCode;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门编号 */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remarks;
+
+    public void setOrderId(Long orderId) 
+    {
+        this.orderId = orderId;
+    }
+
+    public Long getOrderId() 
+    {
+        return orderId;
+    }
+
+    public void setUserId(Long userId) 
+    {
+        this.userId = userId;
+    }
+
+    public Long getUserId() 
+    {
+        return userId;
+    }
+
+    public void setSupplierId(Long supplierId) 
+    {
+        this.supplierId = supplierId;
+    }
+
+    public Long getSupplierId() 
+    {
+        return supplierId;
+    }
+
+    public void setOrderStatus(Long orderStatus) 
+    {
+        this.orderStatus = orderStatus;
+    }
+
+    public Long getOrderStatus() 
+    {
+        return orderStatus;
+    }
+
+    public void setTotalAmount(String totalAmount) 
+    {
+        this.totalAmount = totalAmount;
+    }
+
+    public String getTotalAmount() 
+    {
+        return totalAmount;
+    }
+
+    public void setScheduledTime(Date scheduledTime) 
+    {
+        this.scheduledTime = scheduledTime;
+    }
+
+    public Date getScheduledTime() 
+    {
+        return scheduledTime;
+    }
+
+    public void setCompleteTime(Date completeTime) 
+    {
+        this.completeTime = completeTime;
+    }
+
+    public Date getCompleteTime() 
+    {
+        return completeTime;
+    }
+
+    public void setStatus(Long status) 
+    {
+        this.status = status;
+    }
+
+    public Long getStatus() 
+    {
+        return status;
+    }
+
+    public void setDelFlag(Integer delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    public void setCreaterCode(Long createrCode) 
+    {
+        this.createrCode = createrCode;
+    }
+
+    public Long getCreaterCode() 
+    {
+        return createrCode;
+    }
+
+    public void setCreatedate(Date createdate) 
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate() 
+    {
+        return createdate;
+    }
+
+    public void setUpdaterCode(Long updaterCode) 
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public Long getUpdaterCode() 
+    {
+        return updaterCode;
+    }
+
+    public void setUpdatedate(Date updatedate) 
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate() 
+    {
+        return updatedate;
+    }
+
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+
+    public void setRemarks(String remarks) 
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() 
+    {
+        return remarks;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("orderId", getOrderId())
+            .append("userId", getUserId())
+            .append("supplierId", getSupplierId())
+            .append("orderStatus", getOrderStatus())
+            .append("totalAmount", getTotalAmount())
+            .append("scheduledTime", getScheduledTime())
+            .append("completeTime", getCompleteTime())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .append("remarks", getRemarks())
+            .toString();
+    }
+}

+ 236 - 0
canteen-system/src/main/java/com/ruoyi/order/domain/TCanteenOrderDetail.java

@@ -0,0 +1,236 @@
+package com.ruoyi.order.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 订单明细对象 t_canteen_order_detail
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public class TCanteenOrderDetail extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 明细表id */
+    private Long detailId;
+
+    /** 订单id */
+    @Excel(name = "订单id")
+    private Long orderId;
+
+    /** 菜单id */
+    @Excel(name = "菜单id")
+    private Long menuId;
+
+    /** 数量 */
+    @Excel(name = "数量")
+    private String quantity;
+
+    /** 商品单价 */
+    @Excel(name = "商品单价")
+    private String unitPrice;
+
+    /** 成交时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "成交时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date transactionTime;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private Long status;
+
+    /** 状态 0 :正常 ;2:删除 */
+    private Integer delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private Long createrCode;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 修改人 */
+    @Excel(name = "修改人")
+    private Long updaterCode;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门编号 */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remarks;
+
+    public void setDetailId(Long detailId) 
+    {
+        this.detailId = detailId;
+    }
+
+    public Long getDetailId() 
+    {
+        return detailId;
+    }
+
+    public void setOrderId(Long orderId) 
+    {
+        this.orderId = orderId;
+    }
+
+    public Long getOrderId() 
+    {
+        return orderId;
+    }
+
+    public void setMenuId(Long menuId) 
+    {
+        this.menuId = menuId;
+    }
+
+    public Long getMenuId() 
+    {
+        return menuId;
+    }
+
+    public void setQuantity(String quantity) 
+    {
+        this.quantity = quantity;
+    }
+
+    public String getQuantity() 
+    {
+        return quantity;
+    }
+
+    public void setUnitPrice(String unitPrice) 
+    {
+        this.unitPrice = unitPrice;
+    }
+
+    public String getUnitPrice() 
+    {
+        return unitPrice;
+    }
+
+    public void setTransactionTime(Date transactionTime) 
+    {
+        this.transactionTime = transactionTime;
+    }
+
+    public Date getTransactionTime() 
+    {
+        return transactionTime;
+    }
+
+    public void setStatus(Long status) 
+    {
+        this.status = status;
+    }
+
+    public Long getStatus() 
+    {
+        return status;
+    }
+
+    public void setDelFlag(Integer delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    public void setCreaterCode(Long createrCode) 
+    {
+        this.createrCode = createrCode;
+    }
+
+    public Long getCreaterCode() 
+    {
+        return createrCode;
+    }
+
+    public void setCreatedate(Date createdate) 
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate() 
+    {
+        return createdate;
+    }
+
+    public void setUpdaterCode(Long updaterCode) 
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public Long getUpdaterCode() 
+    {
+        return updaterCode;
+    }
+
+    public void setUpdatedate(Date updatedate) 
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate() 
+    {
+        return updatedate;
+    }
+
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+
+    public void setRemarks(String remarks) 
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() 
+    {
+        return remarks;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("detailId", getDetailId())
+            .append("orderId", getOrderId())
+            .append("menuId", getMenuId())
+            .append("quantity", getQuantity())
+            .append("unitPrice", getUnitPrice())
+            .append("transactionTime", getTransactionTime())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .append("remarks", getRemarks())
+            .toString();
+    }
+}

+ 236 - 0
canteen-system/src/main/java/com/ruoyi/order/domain/TCanteenPayment.java

@@ -0,0 +1,236 @@
+package com.ruoyi.order.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 支付记录对象 t_canteen_payment
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public class TCanteenPayment extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 支付id */
+    private Long payId;
+
+    /** 订单id */
+    @Excel(name = "订单id")
+    private Long orderId;
+
+    /** 支付金额 */
+    @Excel(name = "支付金额")
+    private String amount;
+
+    /** 支付方式 */
+    @Excel(name = "支付方式")
+    private String payMethod;
+
+    /** 支付时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date payTime;
+
+    /** 支付状态 */
+    @Excel(name = "支付状态")
+    private String paymentStatus;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private Long status;
+
+    /** 状态 0 :正常 ;2:删除 */
+    private Integer delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private Long createrCode;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 修改人 */
+    @Excel(name = "修改人")
+    private Long updaterCode;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门编号 */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remarks;
+
+    public void setPayId(Long payId) 
+    {
+        this.payId = payId;
+    }
+
+    public Long getPayId() 
+    {
+        return payId;
+    }
+
+    public void setOrderId(Long orderId) 
+    {
+        this.orderId = orderId;
+    }
+
+    public Long getOrderId() 
+    {
+        return orderId;
+    }
+
+    public void setAmount(String amount) 
+    {
+        this.amount = amount;
+    }
+
+    public String getAmount() 
+    {
+        return amount;
+    }
+
+    public void setPayMethod(String payMethod) 
+    {
+        this.payMethod = payMethod;
+    }
+
+    public String getPayMethod() 
+    {
+        return payMethod;
+    }
+
+    public void setPayTime(Date payTime) 
+    {
+        this.payTime = payTime;
+    }
+
+    public Date getPayTime() 
+    {
+        return payTime;
+    }
+
+    public void setPaymentStatus(String paymentStatus) 
+    {
+        this.paymentStatus = paymentStatus;
+    }
+
+    public String getPaymentStatus() 
+    {
+        return paymentStatus;
+    }
+
+    public void setStatus(Long status) 
+    {
+        this.status = status;
+    }
+
+    public Long getStatus() 
+    {
+        return status;
+    }
+
+    public void setDelFlag(Integer delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    public void setCreaterCode(Long createrCode) 
+    {
+        this.createrCode = createrCode;
+    }
+
+    public Long getCreaterCode() 
+    {
+        return createrCode;
+    }
+
+    public void setCreatedate(Date createdate) 
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate() 
+    {
+        return createdate;
+    }
+
+    public void setUpdaterCode(Long updaterCode) 
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public Long getUpdaterCode() 
+    {
+        return updaterCode;
+    }
+
+    public void setUpdatedate(Date updatedate) 
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate() 
+    {
+        return updatedate;
+    }
+
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+
+    public void setRemarks(String remarks) 
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() 
+    {
+        return remarks;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("payId", getPayId())
+            .append("orderId", getOrderId())
+            .append("amount", getAmount())
+            .append("payMethod", getPayMethod())
+            .append("payTime", getPayTime())
+            .append("paymentStatus", getPaymentStatus())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .append("remarks", getRemarks())
+            .toString();
+    }
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/order/mapper/TCanteenOrderDetailMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.order.mapper;
+
+import java.util.List;
+import com.ruoyi.order.domain.TCanteenOrderDetail;
+
+/**
+ * 订单明细Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface TCanteenOrderDetailMapper 
+{
+    /**
+     * 查询订单明细
+     * 
+     * @param detailId 订单明细主键
+     * @return 订单明细
+     */
+    public TCanteenOrderDetail selectTCanteenOrderDetailByDetailId(Long detailId);
+
+    /**
+     * 查询订单明细列表
+     * 
+     * @param tCanteenOrderDetail 订单明细
+     * @return 订单明细集合
+     */
+    public List<TCanteenOrderDetail> selectTCanteenOrderDetailList(TCanteenOrderDetail tCanteenOrderDetail);
+
+    /**
+     * 新增订单明细
+     * 
+     * @param tCanteenOrderDetail 订单明细
+     * @return 结果
+     */
+    public int insertTCanteenOrderDetail(TCanteenOrderDetail tCanteenOrderDetail);
+
+    /**
+     * 修改订单明细
+     * 
+     * @param tCanteenOrderDetail 订单明细
+     * @return 结果
+     */
+    public int updateTCanteenOrderDetail(TCanteenOrderDetail tCanteenOrderDetail);
+
+    /**
+     * 删除订单明细
+     * 
+     * @param detailId 订单明细主键
+     * @return 结果
+     */
+    public int deleteTCanteenOrderDetailByDetailId(Long detailId);
+
+    /**
+     * 批量删除订单明细
+     * 
+     * @param detailIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenOrderDetailByDetailIds(Long[] detailIds);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/order/mapper/TCanteenOrderMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.order.mapper;
+
+import java.util.List;
+import com.ruoyi.order.domain.TCanteenOrder;
+
+/**
+ * 订单Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface TCanteenOrderMapper 
+{
+    /**
+     * 查询订单
+     * 
+     * @param orderId 订单主键
+     * @return 订单
+     */
+    public TCanteenOrder selectTCanteenOrderByOrderId(Long orderId);
+
+    /**
+     * 查询订单列表
+     * 
+     * @param tCanteenOrder 订单
+     * @return 订单集合
+     */
+    public List<TCanteenOrder> selectTCanteenOrderList(TCanteenOrder tCanteenOrder);
+
+    /**
+     * 新增订单
+     * 
+     * @param tCanteenOrder 订单
+     * @return 结果
+     */
+    public int insertTCanteenOrder(TCanteenOrder tCanteenOrder);
+
+    /**
+     * 修改订单
+     * 
+     * @param tCanteenOrder 订单
+     * @return 结果
+     */
+    public int updateTCanteenOrder(TCanteenOrder tCanteenOrder);
+
+    /**
+     * 删除订单
+     * 
+     * @param orderId 订单主键
+     * @return 结果
+     */
+    public int deleteTCanteenOrderByOrderId(Long orderId);
+
+    /**
+     * 批量删除订单
+     * 
+     * @param orderIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenOrderByOrderIds(Long[] orderIds);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/order/mapper/TCanteenPaymentMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.order.mapper;
+
+import java.util.List;
+import com.ruoyi.order.domain.TCanteenPayment;
+
+/**
+ * 支付记录Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface TCanteenPaymentMapper 
+{
+    /**
+     * 查询支付记录
+     * 
+     * @param payId 支付记录主键
+     * @return 支付记录
+     */
+    public TCanteenPayment selectTCanteenPaymentByPayId(Long payId);
+
+    /**
+     * 查询支付记录列表
+     * 
+     * @param tCanteenPayment 支付记录
+     * @return 支付记录集合
+     */
+    public List<TCanteenPayment> selectTCanteenPaymentList(TCanteenPayment tCanteenPayment);
+
+    /**
+     * 新增支付记录
+     * 
+     * @param tCanteenPayment 支付记录
+     * @return 结果
+     */
+    public int insertTCanteenPayment(TCanteenPayment tCanteenPayment);
+
+    /**
+     * 修改支付记录
+     * 
+     * @param tCanteenPayment 支付记录
+     * @return 结果
+     */
+    public int updateTCanteenPayment(TCanteenPayment tCanteenPayment);
+
+    /**
+     * 删除支付记录
+     * 
+     * @param payId 支付记录主键
+     * @return 结果
+     */
+    public int deleteTCanteenPaymentByPayId(Long payId);
+
+    /**
+     * 批量删除支付记录
+     * 
+     * @param payIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenPaymentByPayIds(Long[] payIds);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/order/service/ITCanteenOrderDetailService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.order.service;
+
+import java.util.List;
+import com.ruoyi.order.domain.TCanteenOrderDetail;
+
+/**
+ * 订单明细Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface ITCanteenOrderDetailService 
+{
+    /**
+     * 查询订单明细
+     * 
+     * @param detailId 订单明细主键
+     * @return 订单明细
+     */
+    public TCanteenOrderDetail selectTCanteenOrderDetailByDetailId(Long detailId);
+
+    /**
+     * 查询订单明细列表
+     * 
+     * @param tCanteenOrderDetail 订单明细
+     * @return 订单明细集合
+     */
+    public List<TCanteenOrderDetail> selectTCanteenOrderDetailList(TCanteenOrderDetail tCanteenOrderDetail);
+
+    /**
+     * 新增订单明细
+     * 
+     * @param tCanteenOrderDetail 订单明细
+     * @return 结果
+     */
+    public int insertTCanteenOrderDetail(TCanteenOrderDetail tCanteenOrderDetail);
+
+    /**
+     * 修改订单明细
+     * 
+     * @param tCanteenOrderDetail 订单明细
+     * @return 结果
+     */
+    public int updateTCanteenOrderDetail(TCanteenOrderDetail tCanteenOrderDetail);
+
+    /**
+     * 批量删除订单明细
+     * 
+     * @param detailIds 需要删除的订单明细主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenOrderDetailByDetailIds(Long[] detailIds);
+
+    /**
+     * 删除订单明细信息
+     * 
+     * @param detailId 订单明细主键
+     * @return 结果
+     */
+    public int deleteTCanteenOrderDetailByDetailId(Long detailId);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/order/service/ITCanteenOrderService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.order.service;
+
+import java.util.List;
+import com.ruoyi.order.domain.TCanteenOrder;
+
+/**
+ * 订单Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface ITCanteenOrderService 
+{
+    /**
+     * 查询订单
+     * 
+     * @param orderId 订单主键
+     * @return 订单
+     */
+    public TCanteenOrder selectTCanteenOrderByOrderId(Long orderId);
+
+    /**
+     * 查询订单列表
+     * 
+     * @param tCanteenOrder 订单
+     * @return 订单集合
+     */
+    public List<TCanteenOrder> selectTCanteenOrderList(TCanteenOrder tCanteenOrder);
+
+    /**
+     * 新增订单
+     * 
+     * @param tCanteenOrder 订单
+     * @return 结果
+     */
+    public int insertTCanteenOrder(TCanteenOrder tCanteenOrder);
+
+    /**
+     * 修改订单
+     * 
+     * @param tCanteenOrder 订单
+     * @return 结果
+     */
+    public int updateTCanteenOrder(TCanteenOrder tCanteenOrder);
+
+    /**
+     * 批量删除订单
+     * 
+     * @param orderIds 需要删除的订单主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenOrderByOrderIds(Long[] orderIds);
+
+    /**
+     * 删除订单信息
+     * 
+     * @param orderId 订单主键
+     * @return 结果
+     */
+    public int deleteTCanteenOrderByOrderId(Long orderId);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/order/service/ITCanteenPaymentService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.order.service;
+
+import java.util.List;
+import com.ruoyi.order.domain.TCanteenPayment;
+
+/**
+ * 支付记录Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface ITCanteenPaymentService 
+{
+    /**
+     * 查询支付记录
+     * 
+     * @param payId 支付记录主键
+     * @return 支付记录
+     */
+    public TCanteenPayment selectTCanteenPaymentByPayId(Long payId);
+
+    /**
+     * 查询支付记录列表
+     * 
+     * @param tCanteenPayment 支付记录
+     * @return 支付记录集合
+     */
+    public List<TCanteenPayment> selectTCanteenPaymentList(TCanteenPayment tCanteenPayment);
+
+    /**
+     * 新增支付记录
+     * 
+     * @param tCanteenPayment 支付记录
+     * @return 结果
+     */
+    public int insertTCanteenPayment(TCanteenPayment tCanteenPayment);
+
+    /**
+     * 修改支付记录
+     * 
+     * @param tCanteenPayment 支付记录
+     * @return 结果
+     */
+    public int updateTCanteenPayment(TCanteenPayment tCanteenPayment);
+
+    /**
+     * 批量删除支付记录
+     * 
+     * @param payIds 需要删除的支付记录主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenPaymentByPayIds(Long[] payIds);
+
+    /**
+     * 删除支付记录信息
+     * 
+     * @param payId 支付记录主键
+     * @return 结果
+     */
+    public int deleteTCanteenPaymentByPayId(Long payId);
+}

+ 93 - 0
canteen-system/src/main/java/com/ruoyi/order/service/impl/TCanteenOrderDetailServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.order.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.order.mapper.TCanteenOrderDetailMapper;
+import com.ruoyi.order.domain.TCanteenOrderDetail;
+import com.ruoyi.order.service.ITCanteenOrderDetailService;
+
+/**
+ * 订单明细Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@Service
+public class TCanteenOrderDetailServiceImpl implements ITCanteenOrderDetailService 
+{
+    @Autowired
+    private TCanteenOrderDetailMapper tCanteenOrderDetailMapper;
+
+    /**
+     * 查询订单明细
+     * 
+     * @param detailId 订单明细主键
+     * @return 订单明细
+     */
+    @Override
+    public TCanteenOrderDetail selectTCanteenOrderDetailByDetailId(Long detailId)
+    {
+        return tCanteenOrderDetailMapper.selectTCanteenOrderDetailByDetailId(detailId);
+    }
+
+    /**
+     * 查询订单明细列表
+     * 
+     * @param tCanteenOrderDetail 订单明细
+     * @return 订单明细
+     */
+    @Override
+    public List<TCanteenOrderDetail> selectTCanteenOrderDetailList(TCanteenOrderDetail tCanteenOrderDetail)
+    {
+        return tCanteenOrderDetailMapper.selectTCanteenOrderDetailList(tCanteenOrderDetail);
+    }
+
+    /**
+     * 新增订单明细
+     * 
+     * @param tCanteenOrderDetail 订单明细
+     * @return 结果
+     */
+    @Override
+    public int insertTCanteenOrderDetail(TCanteenOrderDetail tCanteenOrderDetail)
+    {
+        return tCanteenOrderDetailMapper.insertTCanteenOrderDetail(tCanteenOrderDetail);
+    }
+
+    /**
+     * 修改订单明细
+     * 
+     * @param tCanteenOrderDetail 订单明细
+     * @return 结果
+     */
+    @Override
+    public int updateTCanteenOrderDetail(TCanteenOrderDetail tCanteenOrderDetail)
+    {
+        return tCanteenOrderDetailMapper.updateTCanteenOrderDetail(tCanteenOrderDetail);
+    }
+
+    /**
+     * 批量删除订单明细
+     * 
+     * @param detailIds 需要删除的订单明细主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenOrderDetailByDetailIds(Long[] detailIds)
+    {
+        return tCanteenOrderDetailMapper.deleteTCanteenOrderDetailByDetailIds(detailIds);
+    }
+
+    /**
+     * 删除订单明细信息
+     * 
+     * @param detailId 订单明细主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenOrderDetailByDetailId(Long detailId)
+    {
+        return tCanteenOrderDetailMapper.deleteTCanteenOrderDetailByDetailId(detailId);
+    }
+}

+ 93 - 0
canteen-system/src/main/java/com/ruoyi/order/service/impl/TCanteenOrderServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.order.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.order.mapper.TCanteenOrderMapper;
+import com.ruoyi.order.domain.TCanteenOrder;
+import com.ruoyi.order.service.ITCanteenOrderService;
+
+/**
+ * 订单Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@Service
+public class TCanteenOrderServiceImpl implements ITCanteenOrderService 
+{
+    @Autowired
+    private TCanteenOrderMapper tCanteenOrderMapper;
+
+    /**
+     * 查询订单
+     * 
+     * @param orderId 订单主键
+     * @return 订单
+     */
+    @Override
+    public TCanteenOrder selectTCanteenOrderByOrderId(Long orderId)
+    {
+        return tCanteenOrderMapper.selectTCanteenOrderByOrderId(orderId);
+    }
+
+    /**
+     * 查询订单列表
+     * 
+     * @param tCanteenOrder 订单
+     * @return 订单
+     */
+    @Override
+    public List<TCanteenOrder> selectTCanteenOrderList(TCanteenOrder tCanteenOrder)
+    {
+        return tCanteenOrderMapper.selectTCanteenOrderList(tCanteenOrder);
+    }
+
+    /**
+     * 新增订单
+     * 
+     * @param tCanteenOrder 订单
+     * @return 结果
+     */
+    @Override
+    public int insertTCanteenOrder(TCanteenOrder tCanteenOrder)
+    {
+        return tCanteenOrderMapper.insertTCanteenOrder(tCanteenOrder);
+    }
+
+    /**
+     * 修改订单
+     * 
+     * @param tCanteenOrder 订单
+     * @return 结果
+     */
+    @Override
+    public int updateTCanteenOrder(TCanteenOrder tCanteenOrder)
+    {
+        return tCanteenOrderMapper.updateTCanteenOrder(tCanteenOrder);
+    }
+
+    /**
+     * 批量删除订单
+     * 
+     * @param orderIds 需要删除的订单主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenOrderByOrderIds(Long[] orderIds)
+    {
+        return tCanteenOrderMapper.deleteTCanteenOrderByOrderIds(orderIds);
+    }
+
+    /**
+     * 删除订单信息
+     * 
+     * @param orderId 订单主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenOrderByOrderId(Long orderId)
+    {
+        return tCanteenOrderMapper.deleteTCanteenOrderByOrderId(orderId);
+    }
+}

+ 93 - 0
canteen-system/src/main/java/com/ruoyi/order/service/impl/TCanteenPaymentServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.order.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.order.mapper.TCanteenPaymentMapper;
+import com.ruoyi.order.domain.TCanteenPayment;
+import com.ruoyi.order.service.ITCanteenPaymentService;
+
+/**
+ * 支付记录Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@Service
+public class TCanteenPaymentServiceImpl implements ITCanteenPaymentService 
+{
+    @Autowired
+    private TCanteenPaymentMapper tCanteenPaymentMapper;
+
+    /**
+     * 查询支付记录
+     * 
+     * @param payId 支付记录主键
+     * @return 支付记录
+     */
+    @Override
+    public TCanteenPayment selectTCanteenPaymentByPayId(Long payId)
+    {
+        return tCanteenPaymentMapper.selectTCanteenPaymentByPayId(payId);
+    }
+
+    /**
+     * 查询支付记录列表
+     * 
+     * @param tCanteenPayment 支付记录
+     * @return 支付记录
+     */
+    @Override
+    public List<TCanteenPayment> selectTCanteenPaymentList(TCanteenPayment tCanteenPayment)
+    {
+        return tCanteenPaymentMapper.selectTCanteenPaymentList(tCanteenPayment);
+    }
+
+    /**
+     * 新增支付记录
+     * 
+     * @param tCanteenPayment 支付记录
+     * @return 结果
+     */
+    @Override
+    public int insertTCanteenPayment(TCanteenPayment tCanteenPayment)
+    {
+        return tCanteenPaymentMapper.insertTCanteenPayment(tCanteenPayment);
+    }
+
+    /**
+     * 修改支付记录
+     * 
+     * @param tCanteenPayment 支付记录
+     * @return 结果
+     */
+    @Override
+    public int updateTCanteenPayment(TCanteenPayment tCanteenPayment)
+    {
+        return tCanteenPaymentMapper.updateTCanteenPayment(tCanteenPayment);
+    }
+
+    /**
+     * 批量删除支付记录
+     * 
+     * @param payIds 需要删除的支付记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenPaymentByPayIds(Long[] payIds)
+    {
+        return tCanteenPaymentMapper.deleteTCanteenPaymentByPayIds(payIds);
+    }
+
+    /**
+     * 删除支付记录信息
+     * 
+     * @param payId 支付记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenPaymentByPayId(Long payId)
+    {
+        return tCanteenPaymentMapper.deleteTCanteenPaymentByPayId(payId);
+    }
+}

+ 205 - 0
canteen-system/src/main/java/com/ruoyi/plant/domain/TCanteenCard.java

@@ -0,0 +1,205 @@
+package com.ruoyi.plant.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 员工卡管理对象 t_canteen_card
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public class TCanteenCard extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 卡id */
+    private Long cardId;
+
+    /** 用户id */
+    @Excel(name = "用户id")
+    private Long userId;
+
+    /** 卡号 */
+    @Excel(name = "卡号")
+    private String cardNo;
+
+    /** 卡状态 */
+    @Excel(name = "卡状态")
+    private String cardStatus;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private Long status;
+
+    /** 状态 0 :正常 ;2:删除 */
+    private Integer delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private Long createrCode;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 修改人 */
+    @Excel(name = "修改人")
+    private Long updaterCode;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门编号 */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remarks;
+
+    public void setCardId(Long cardId) 
+    {
+        this.cardId = cardId;
+    }
+
+    public Long getCardId() 
+    {
+        return cardId;
+    }
+
+    public void setUserId(Long userId) 
+    {
+        this.userId = userId;
+    }
+
+    public Long getUserId() 
+    {
+        return userId;
+    }
+
+    public void setCardNo(String cardNo) 
+    {
+        this.cardNo = cardNo;
+    }
+
+    public String getCardNo() 
+    {
+        return cardNo;
+    }
+
+    public void setCardStatus(String cardStatus) 
+    {
+        this.cardStatus = cardStatus;
+    }
+
+    public String getCardStatus() 
+    {
+        return cardStatus;
+    }
+
+    public void setStatus(Long status) 
+    {
+        this.status = status;
+    }
+
+    public Long getStatus() 
+    {
+        return status;
+    }
+
+    public void setDelFlag(Integer delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    public void setCreaterCode(Long createrCode) 
+    {
+        this.createrCode = createrCode;
+    }
+
+    public Long getCreaterCode() 
+    {
+        return createrCode;
+    }
+
+    public void setCreatedate(Date createdate) 
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate() 
+    {
+        return createdate;
+    }
+
+    public void setUpdaterCode(Long updaterCode) 
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public Long getUpdaterCode() 
+    {
+        return updaterCode;
+    }
+
+    public void setUpdatedate(Date updatedate) 
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate() 
+    {
+        return updatedate;
+    }
+
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+
+    public void setRemarks(String remarks) 
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() 
+    {
+        return remarks;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("cardId", getCardId())
+            .append("userId", getUserId())
+            .append("cardNo", getCardNo())
+            .append("cardStatus", getCardStatus())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .append("remarks", getRemarks())
+            .toString();
+    }
+}

+ 220 - 0
canteen-system/src/main/java/com/ruoyi/plant/domain/TCanteenCardMonth.java

@@ -0,0 +1,220 @@
+package com.ruoyi.plant.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 员工月刷卡统计对象 t_canteen_card_month
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public class TCanteenCardMonth extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Long id;
+
+    /** 卡id */
+    @Excel(name = "卡id")
+    private Long cardId;
+
+    /** 刷卡年份 */
+    @Excel(name = "刷卡年份")
+    private String swipYear;
+
+    /** 刷卡月份 */
+    @Excel(name = "刷卡月份")
+    private String swipMonth;
+
+    /** 刷卡次数 */
+    @Excel(name = "刷卡次数")
+    private Long swipNum;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private Long status;
+
+    /** 状态 0 :正常 ;2:删除 */
+    private Integer delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private Long createrCode;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 修改人 */
+    @Excel(name = "修改人")
+    private Long updaterCode;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门编号 */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remarks;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+
+    public void setCardId(Long cardId) 
+    {
+        this.cardId = cardId;
+    }
+
+    public Long getCardId() 
+    {
+        return cardId;
+    }
+
+    public void setSwipYear(String swipYear) 
+    {
+        this.swipYear = swipYear;
+    }
+
+    public String getSwipYear() 
+    {
+        return swipYear;
+    }
+
+    public void setSwipMonth(String swipMonth) 
+    {
+        this.swipMonth = swipMonth;
+    }
+
+    public String getSwipMonth() 
+    {
+        return swipMonth;
+    }
+
+    public void setSwipNum(Long swipNum) 
+    {
+        this.swipNum = swipNum;
+    }
+
+    public Long getSwipNum() 
+    {
+        return swipNum;
+    }
+
+    public void setStatus(Long status) 
+    {
+        this.status = status;
+    }
+
+    public Long getStatus() 
+    {
+        return status;
+    }
+
+    public void setDelFlag(Integer delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    public void setCreaterCode(Long createrCode) 
+    {
+        this.createrCode = createrCode;
+    }
+
+    public Long getCreaterCode() 
+    {
+        return createrCode;
+    }
+
+    public void setCreatedate(Date createdate) 
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate() 
+    {
+        return createdate;
+    }
+
+    public void setUpdaterCode(Long updaterCode) 
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public Long getUpdaterCode() 
+    {
+        return updaterCode;
+    }
+
+    public void setUpdatedate(Date updatedate) 
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate() 
+    {
+        return updatedate;
+    }
+
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+
+    public void setRemarks(String remarks) 
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() 
+    {
+        return remarks;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("cardId", getCardId())
+            .append("swipYear", getSwipYear())
+            .append("swipMonth", getSwipMonth())
+            .append("swipNum", getSwipNum())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .append("remarks", getRemarks())
+            .toString();
+    }
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/plant/mapper/TCanteenCardMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.plant.mapper;
+
+import java.util.List;
+import com.ruoyi.plant.domain.TCanteenCard;
+
+/**
+ * 员工卡管理Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface TCanteenCardMapper 
+{
+    /**
+     * 查询员工卡管理
+     * 
+     * @param cardId 员工卡管理主键
+     * @return 员工卡管理
+     */
+    public TCanteenCard selectTCanteenCardByCardId(Long cardId);
+
+    /**
+     * 查询员工卡管理列表
+     * 
+     * @param tCanteenCard 员工卡管理
+     * @return 员工卡管理集合
+     */
+    public List<TCanteenCard> selectTCanteenCardList(TCanteenCard tCanteenCard);
+
+    /**
+     * 新增员工卡管理
+     * 
+     * @param tCanteenCard 员工卡管理
+     * @return 结果
+     */
+    public int insertTCanteenCard(TCanteenCard tCanteenCard);
+
+    /**
+     * 修改员工卡管理
+     * 
+     * @param tCanteenCard 员工卡管理
+     * @return 结果
+     */
+    public int updateTCanteenCard(TCanteenCard tCanteenCard);
+
+    /**
+     * 删除员工卡管理
+     * 
+     * @param cardId 员工卡管理主键
+     * @return 结果
+     */
+    public int deleteTCanteenCardByCardId(Long cardId);
+
+    /**
+     * 批量删除员工卡管理
+     * 
+     * @param cardIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenCardByCardIds(Long[] cardIds);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/plant/mapper/TCanteenCardMonthMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.plant.mapper;
+
+import java.util.List;
+import com.ruoyi.plant.domain.TCanteenCardMonth;
+
+/**
+ * 员工月刷卡统计Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface TCanteenCardMonthMapper 
+{
+    /**
+     * 查询员工月刷卡统计
+     * 
+     * @param id 员工月刷卡统计主键
+     * @return 员工月刷卡统计
+     */
+    public TCanteenCardMonth selectTCanteenCardMonthById(Long id);
+
+    /**
+     * 查询员工月刷卡统计列表
+     * 
+     * @param tCanteenCardMonth 员工月刷卡统计
+     * @return 员工月刷卡统计集合
+     */
+    public List<TCanteenCardMonth> selectTCanteenCardMonthList(TCanteenCardMonth tCanteenCardMonth);
+
+    /**
+     * 新增员工月刷卡统计
+     * 
+     * @param tCanteenCardMonth 员工月刷卡统计
+     * @return 结果
+     */
+    public int insertTCanteenCardMonth(TCanteenCardMonth tCanteenCardMonth);
+
+    /**
+     * 修改员工月刷卡统计
+     * 
+     * @param tCanteenCardMonth 员工月刷卡统计
+     * @return 结果
+     */
+    public int updateTCanteenCardMonth(TCanteenCardMonth tCanteenCardMonth);
+
+    /**
+     * 删除员工月刷卡统计
+     * 
+     * @param id 员工月刷卡统计主键
+     * @return 结果
+     */
+    public int deleteTCanteenCardMonthById(Long id);
+
+    /**
+     * 批量删除员工月刷卡统计
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenCardMonthByIds(Long[] ids);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/plant/service/ITCanteenCardMonthService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.plant.service;
+
+import java.util.List;
+import com.ruoyi.plant.domain.TCanteenCardMonth;
+
+/**
+ * 员工月刷卡统计Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface ITCanteenCardMonthService 
+{
+    /**
+     * 查询员工月刷卡统计
+     * 
+     * @param id 员工月刷卡统计主键
+     * @return 员工月刷卡统计
+     */
+    public TCanteenCardMonth selectTCanteenCardMonthById(Long id);
+
+    /**
+     * 查询员工月刷卡统计列表
+     * 
+     * @param tCanteenCardMonth 员工月刷卡统计
+     * @return 员工月刷卡统计集合
+     */
+    public List<TCanteenCardMonth> selectTCanteenCardMonthList(TCanteenCardMonth tCanteenCardMonth);
+
+    /**
+     * 新增员工月刷卡统计
+     * 
+     * @param tCanteenCardMonth 员工月刷卡统计
+     * @return 结果
+     */
+    public int insertTCanteenCardMonth(TCanteenCardMonth tCanteenCardMonth);
+
+    /**
+     * 修改员工月刷卡统计
+     * 
+     * @param tCanteenCardMonth 员工月刷卡统计
+     * @return 结果
+     */
+    public int updateTCanteenCardMonth(TCanteenCardMonth tCanteenCardMonth);
+
+    /**
+     * 批量删除员工月刷卡统计
+     * 
+     * @param ids 需要删除的员工月刷卡统计主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenCardMonthByIds(Long[] ids);
+
+    /**
+     * 删除员工月刷卡统计信息
+     * 
+     * @param id 员工月刷卡统计主键
+     * @return 结果
+     */
+    public int deleteTCanteenCardMonthById(Long id);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/plant/service/ITCanteenCardService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.plant.service;
+
+import java.util.List;
+import com.ruoyi.plant.domain.TCanteenCard;
+
+/**
+ * 员工卡管理Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface ITCanteenCardService 
+{
+    /**
+     * 查询员工卡管理
+     * 
+     * @param cardId 员工卡管理主键
+     * @return 员工卡管理
+     */
+    public TCanteenCard selectTCanteenCardByCardId(Long cardId);
+
+    /**
+     * 查询员工卡管理列表
+     * 
+     * @param tCanteenCard 员工卡管理
+     * @return 员工卡管理集合
+     */
+    public List<TCanteenCard> selectTCanteenCardList(TCanteenCard tCanteenCard);
+
+    /**
+     * 新增员工卡管理
+     * 
+     * @param tCanteenCard 员工卡管理
+     * @return 结果
+     */
+    public int insertTCanteenCard(TCanteenCard tCanteenCard);
+
+    /**
+     * 修改员工卡管理
+     * 
+     * @param tCanteenCard 员工卡管理
+     * @return 结果
+     */
+    public int updateTCanteenCard(TCanteenCard tCanteenCard);
+
+    /**
+     * 批量删除员工卡管理
+     * 
+     * @param cardIds 需要删除的员工卡管理主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenCardByCardIds(Long[] cardIds);
+
+    /**
+     * 删除员工卡管理信息
+     * 
+     * @param cardId 员工卡管理主键
+     * @return 结果
+     */
+    public int deleteTCanteenCardByCardId(Long cardId);
+}

+ 93 - 0
canteen-system/src/main/java/com/ruoyi/plant/service/impl/TCanteenCardMonthServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.plant.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.plant.mapper.TCanteenCardMonthMapper;
+import com.ruoyi.plant.domain.TCanteenCardMonth;
+import com.ruoyi.plant.service.ITCanteenCardMonthService;
+
+/**
+ * 员工月刷卡统计Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@Service
+public class TCanteenCardMonthServiceImpl implements ITCanteenCardMonthService 
+{
+    @Autowired
+    private TCanteenCardMonthMapper tCanteenCardMonthMapper;
+
+    /**
+     * 查询员工月刷卡统计
+     * 
+     * @param id 员工月刷卡统计主键
+     * @return 员工月刷卡统计
+     */
+    @Override
+    public TCanteenCardMonth selectTCanteenCardMonthById(Long id)
+    {
+        return tCanteenCardMonthMapper.selectTCanteenCardMonthById(id);
+    }
+
+    /**
+     * 查询员工月刷卡统计列表
+     * 
+     * @param tCanteenCardMonth 员工月刷卡统计
+     * @return 员工月刷卡统计
+     */
+    @Override
+    public List<TCanteenCardMonth> selectTCanteenCardMonthList(TCanteenCardMonth tCanteenCardMonth)
+    {
+        return tCanteenCardMonthMapper.selectTCanteenCardMonthList(tCanteenCardMonth);
+    }
+
+    /**
+     * 新增员工月刷卡统计
+     * 
+     * @param tCanteenCardMonth 员工月刷卡统计
+     * @return 结果
+     */
+    @Override
+    public int insertTCanteenCardMonth(TCanteenCardMonth tCanteenCardMonth)
+    {
+        return tCanteenCardMonthMapper.insertTCanteenCardMonth(tCanteenCardMonth);
+    }
+
+    /**
+     * 修改员工月刷卡统计
+     * 
+     * @param tCanteenCardMonth 员工月刷卡统计
+     * @return 结果
+     */
+    @Override
+    public int updateTCanteenCardMonth(TCanteenCardMonth tCanteenCardMonth)
+    {
+        return tCanteenCardMonthMapper.updateTCanteenCardMonth(tCanteenCardMonth);
+    }
+
+    /**
+     * 批量删除员工月刷卡统计
+     * 
+     * @param ids 需要删除的员工月刷卡统计主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenCardMonthByIds(Long[] ids)
+    {
+        return tCanteenCardMonthMapper.deleteTCanteenCardMonthByIds(ids);
+    }
+
+    /**
+     * 删除员工月刷卡统计信息
+     * 
+     * @param id 员工月刷卡统计主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenCardMonthById(Long id)
+    {
+        return tCanteenCardMonthMapper.deleteTCanteenCardMonthById(id);
+    }
+}

+ 93 - 0
canteen-system/src/main/java/com/ruoyi/plant/service/impl/TCanteenCardServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.plant.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.plant.mapper.TCanteenCardMapper;
+import com.ruoyi.plant.domain.TCanteenCard;
+import com.ruoyi.plant.service.ITCanteenCardService;
+
+/**
+ * 员工卡管理Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@Service
+public class TCanteenCardServiceImpl implements ITCanteenCardService 
+{
+    @Autowired
+    private TCanteenCardMapper tCanteenCardMapper;
+
+    /**
+     * 查询员工卡管理
+     * 
+     * @param cardId 员工卡管理主键
+     * @return 员工卡管理
+     */
+    @Override
+    public TCanteenCard selectTCanteenCardByCardId(Long cardId)
+    {
+        return tCanteenCardMapper.selectTCanteenCardByCardId(cardId);
+    }
+
+    /**
+     * 查询员工卡管理列表
+     * 
+     * @param tCanteenCard 员工卡管理
+     * @return 员工卡管理
+     */
+    @Override
+    public List<TCanteenCard> selectTCanteenCardList(TCanteenCard tCanteenCard)
+    {
+        return tCanteenCardMapper.selectTCanteenCardList(tCanteenCard);
+    }
+
+    /**
+     * 新增员工卡管理
+     * 
+     * @param tCanteenCard 员工卡管理
+     * @return 结果
+     */
+    @Override
+    public int insertTCanteenCard(TCanteenCard tCanteenCard)
+    {
+        return tCanteenCardMapper.insertTCanteenCard(tCanteenCard);
+    }
+
+    /**
+     * 修改员工卡管理
+     * 
+     * @param tCanteenCard 员工卡管理
+     * @return 结果
+     */
+    @Override
+    public int updateTCanteenCard(TCanteenCard tCanteenCard)
+    {
+        return tCanteenCardMapper.updateTCanteenCard(tCanteenCard);
+    }
+
+    /**
+     * 批量删除员工卡管理
+     * 
+     * @param cardIds 需要删除的员工卡管理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenCardByCardIds(Long[] cardIds)
+    {
+        return tCanteenCardMapper.deleteTCanteenCardByCardIds(cardIds);
+    }
+
+    /**
+     * 删除员工卡管理信息
+     * 
+     * @param cardId 员工卡管理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenCardByCardId(Long cardId)
+    {
+        return tCanteenCardMapper.deleteTCanteenCardByCardId(cardId);
+    }
+}

+ 191 - 0
canteen-system/src/main/java/com/ruoyi/supplier/domain/TCanteenDaily.java

@@ -0,0 +1,191 @@
+package com.ruoyi.supplier.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 供应商日常工作记录对象 t_canteen_daily
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public class TCanteenDaily extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 卡id */
+    private Long dailyId;
+
+    /** 供应商id */
+    @Excel(name = "供应商id")
+    private Long supplierId;
+
+    /** 上传时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "上传时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadDate;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private Long status;
+
+    /** 状态 0 :正常 ;2:删除 */
+    private Integer delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private Long createrCode;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 修改人 */
+    @Excel(name = "修改人")
+    private Long updaterCode;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门编号 */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remarks;
+
+    public void setDailyId(Long dailyId) 
+    {
+        this.dailyId = dailyId;
+    }
+
+    public Long getDailyId() 
+    {
+        return dailyId;
+    }
+
+    public void setSupplierId(Long supplierId) 
+    {
+        this.supplierId = supplierId;
+    }
+
+    public Long getSupplierId() 
+    {
+        return supplierId;
+    }
+
+    public void setUploadDate(Date uploadDate) 
+    {
+        this.uploadDate = uploadDate;
+    }
+
+    public Date getUploadDate() 
+    {
+        return uploadDate;
+    }
+
+    public void setStatus(Long status) 
+    {
+        this.status = status;
+    }
+
+    public Long getStatus() 
+    {
+        return status;
+    }
+
+    public void setDelFlag(Integer delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    public void setCreaterCode(Long createrCode) 
+    {
+        this.createrCode = createrCode;
+    }
+
+    public Long getCreaterCode() 
+    {
+        return createrCode;
+    }
+
+    public void setCreatedate(Date createdate) 
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate() 
+    {
+        return createdate;
+    }
+
+    public void setUpdaterCode(Long updaterCode) 
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public Long getUpdaterCode() 
+    {
+        return updaterCode;
+    }
+
+    public void setUpdatedate(Date updatedate) 
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate() 
+    {
+        return updatedate;
+    }
+
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+
+    public void setRemarks(String remarks) 
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() 
+    {
+        return remarks;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("dailyId", getDailyId())
+            .append("supplierId", getSupplierId())
+            .append("uploadDate", getUploadDate())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .append("remarks", getRemarks())
+            .toString();
+    }
+}

+ 237 - 0
canteen-system/src/main/java/com/ruoyi/supplier/domain/TCanteenQualification.java

@@ -0,0 +1,237 @@
+package com.ruoyi.supplier.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 供应商资质对象 t_canteen_qualification
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public class TCanteenQualification extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 资质id */
+    private Long qualificationId;
+
+    /** 供应商id */
+    @Excel(name = "供应商id")
+    private Long supplierId;
+
+    /** 资质附件地址 */
+    @Excel(name = "资质附件地址")
+    private String qualificationUrl;
+
+    /** 注册日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "注册日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date startDate;
+
+    /** 截止日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "截止日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date endDate;
+
+    /** 证件类型 */
+    @Excel(name = "证件类型")
+    private String documentType;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private Long status;
+
+    /** 状态 0 :正常 ;2:删除 */
+    private Integer delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private Long createrCode;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 修改人 */
+    @Excel(name = "修改人")
+    private Long updaterCode;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门编号 */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remarks;
+
+    public void setQualificationId(Long qualificationId) 
+    {
+        this.qualificationId = qualificationId;
+    }
+
+    public Long getQualificationId() 
+    {
+        return qualificationId;
+    }
+
+    public void setSupplierId(Long supplierId) 
+    {
+        this.supplierId = supplierId;
+    }
+
+    public Long getSupplierId() 
+    {
+        return supplierId;
+    }
+
+    public void setQualificationUrl(String qualificationUrl) 
+    {
+        this.qualificationUrl = qualificationUrl;
+    }
+
+    public String getQualificationUrl() 
+    {
+        return qualificationUrl;
+    }
+
+    public void setStartDate(Date startDate) 
+    {
+        this.startDate = startDate;
+    }
+
+    public Date getStartDate() 
+    {
+        return startDate;
+    }
+
+    public void setEndDate(Date endDate) 
+    {
+        this.endDate = endDate;
+    }
+
+    public Date getEndDate() 
+    {
+        return endDate;
+    }
+
+    public void setDocumentType(String documentType) 
+    {
+        this.documentType = documentType;
+    }
+
+    public String getDocumentType() 
+    {
+        return documentType;
+    }
+
+    public void setStatus(Long status) 
+    {
+        this.status = status;
+    }
+
+    public Long getStatus() 
+    {
+        return status;
+    }
+
+    public void setDelFlag(Integer delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    public void setCreaterCode(Long createrCode) 
+    {
+        this.createrCode = createrCode;
+    }
+
+    public Long getCreaterCode() 
+    {
+        return createrCode;
+    }
+
+    public void setCreatedate(Date createdate) 
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate() 
+    {
+        return createdate;
+    }
+
+    public void setUpdaterCode(Long updaterCode) 
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public Long getUpdaterCode() 
+    {
+        return updaterCode;
+    }
+
+    public void setUpdatedate(Date updatedate) 
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate() 
+    {
+        return updatedate;
+    }
+
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+
+    public void setRemarks(String remarks) 
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() 
+    {
+        return remarks;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("qualificationId", getQualificationId())
+            .append("supplierId", getSupplierId())
+            .append("qualificationUrl", getQualificationUrl())
+            .append("startDate", getStartDate())
+            .append("endDate", getEndDate())
+            .append("documentType", getDocumentType())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .append("remarks", getRemarks())
+            .toString();
+    }
+}

+ 236 - 0
canteen-system/src/main/java/com/ruoyi/supplier/domain/TCanteenRating.java

@@ -0,0 +1,236 @@
+package com.ruoyi.supplier.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 评价对象 t_canteen_rating
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public class TCanteenRating extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Long rateId;
+
+    /** 订单id */
+    @Excel(name = "订单id")
+    private Long orderId;
+
+    /** 菜单id */
+    @Excel(name = "菜单id")
+    private Long menuId;
+
+    /** 评分 */
+    @Excel(name = "评分")
+    private String score;
+
+    /** 评价内容 */
+    @Excel(name = "评价内容")
+    private String comment;
+
+    /** 评价时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "评价时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date rateTime;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private Long status;
+
+    /** 状态 0 :正常 ;2:删除 */
+    private Integer delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private Long createrCode;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 修改人 */
+    @Excel(name = "修改人")
+    private Long updaterCode;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门编号 */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remarks;
+
+    public void setRateId(Long rateId) 
+    {
+        this.rateId = rateId;
+    }
+
+    public Long getRateId() 
+    {
+        return rateId;
+    }
+
+    public void setOrderId(Long orderId) 
+    {
+        this.orderId = orderId;
+    }
+
+    public Long getOrderId() 
+    {
+        return orderId;
+    }
+
+    public void setMenuId(Long menuId) 
+    {
+        this.menuId = menuId;
+    }
+
+    public Long getMenuId() 
+    {
+        return menuId;
+    }
+
+    public void setScore(String score) 
+    {
+        this.score = score;
+    }
+
+    public String getScore() 
+    {
+        return score;
+    }
+
+    public void setComment(String comment) 
+    {
+        this.comment = comment;
+    }
+
+    public String getComment() 
+    {
+        return comment;
+    }
+
+    public void setRateTime(Date rateTime) 
+    {
+        this.rateTime = rateTime;
+    }
+
+    public Date getRateTime() 
+    {
+        return rateTime;
+    }
+
+    public void setStatus(Long status) 
+    {
+        this.status = status;
+    }
+
+    public Long getStatus() 
+    {
+        return status;
+    }
+
+    public void setDelFlag(Integer delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    public void setCreaterCode(Long createrCode) 
+    {
+        this.createrCode = createrCode;
+    }
+
+    public Long getCreaterCode() 
+    {
+        return createrCode;
+    }
+
+    public void setCreatedate(Date createdate) 
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate() 
+    {
+        return createdate;
+    }
+
+    public void setUpdaterCode(Long updaterCode) 
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public Long getUpdaterCode() 
+    {
+        return updaterCode;
+    }
+
+    public void setUpdatedate(Date updatedate) 
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate() 
+    {
+        return updatedate;
+    }
+
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+
+    public void setRemarks(String remarks) 
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() 
+    {
+        return remarks;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("rateId", getRateId())
+            .append("orderId", getOrderId())
+            .append("menuId", getMenuId())
+            .append("score", getScore())
+            .append("comment", getComment())
+            .append("rateTime", getRateTime())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .append("remarks", getRemarks())
+            .toString();
+    }
+}

+ 235 - 0
canteen-system/src/main/java/com/ruoyi/supplier/domain/TCanteenSupplier.java

@@ -0,0 +1,235 @@
+package com.ruoyi.supplier.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 供应商对象 t_canteen_supplier
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public class TCanteenSupplier extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 供应商id */
+    private Long supplierId;
+
+    /** 用户id */
+    @Excel(name = "用户id")
+    private Long userId;
+
+    /** 供应类型 */
+    @Excel(name = "供应类型")
+    private String serviceType;
+
+    /** 平均评分 */
+    @Excel(name = "平均评分")
+    private String avgRating;
+
+    /** 供应商logo */
+    @Excel(name = "供应商logo")
+    private String logoUrl;
+
+    /** 供应商描述 */
+    @Excel(name = "供应商描述")
+    private String description;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private Long status;
+
+    /** 状态 0 :正常 ;2:删除 */
+    private Integer delFlag;
+
+    /** 创建人 */
+    @Excel(name = "创建人")
+    private Long createrCode;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdate;
+
+    /** 修改人 */
+    @Excel(name = "修改人")
+    private Long updaterCode;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedate;
+
+    /** 部门编号 */
+    @Excel(name = "部门编号")
+    private Long deptId;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remarks;
+
+    public void setSupplierId(Long supplierId) 
+    {
+        this.supplierId = supplierId;
+    }
+
+    public Long getSupplierId() 
+    {
+        return supplierId;
+    }
+
+    public void setUserId(Long userId) 
+    {
+        this.userId = userId;
+    }
+
+    public Long getUserId() 
+    {
+        return userId;
+    }
+
+    public void setServiceType(String serviceType) 
+    {
+        this.serviceType = serviceType;
+    }
+
+    public String getServiceType() 
+    {
+        return serviceType;
+    }
+
+    public void setAvgRating(String avgRating) 
+    {
+        this.avgRating = avgRating;
+    }
+
+    public String getAvgRating() 
+    {
+        return avgRating;
+    }
+
+    public void setLogoUrl(String logoUrl) 
+    {
+        this.logoUrl = logoUrl;
+    }
+
+    public String getLogoUrl() 
+    {
+        return logoUrl;
+    }
+
+    public void setDescription(String description) 
+    {
+        this.description = description;
+    }
+
+    public String getDescription() 
+    {
+        return description;
+    }
+
+    public void setStatus(Long status) 
+    {
+        this.status = status;
+    }
+
+    public Long getStatus() 
+    {
+        return status;
+    }
+
+    public void setDelFlag(Integer delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    public void setCreaterCode(Long createrCode) 
+    {
+        this.createrCode = createrCode;
+    }
+
+    public Long getCreaterCode() 
+    {
+        return createrCode;
+    }
+
+    public void setCreatedate(Date createdate) 
+    {
+        this.createdate = createdate;
+    }
+
+    public Date getCreatedate() 
+    {
+        return createdate;
+    }
+
+    public void setUpdaterCode(Long updaterCode) 
+    {
+        this.updaterCode = updaterCode;
+    }
+
+    public Long getUpdaterCode() 
+    {
+        return updaterCode;
+    }
+
+    public void setUpdatedate(Date updatedate) 
+    {
+        this.updatedate = updatedate;
+    }
+
+    public Date getUpdatedate() 
+    {
+        return updatedate;
+    }
+
+    public void setDeptId(Long deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() 
+    {
+        return deptId;
+    }
+
+    public void setRemarks(String remarks) 
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() 
+    {
+        return remarks;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("supplierId", getSupplierId())
+            .append("userId", getUserId())
+            .append("serviceType", getServiceType())
+            .append("avgRating", getAvgRating())
+            .append("logoUrl", getLogoUrl())
+            .append("description", getDescription())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("createrCode", getCreaterCode())
+            .append("createdate", getCreatedate())
+            .append("updaterCode", getUpdaterCode())
+            .append("updatedate", getUpdatedate())
+            .append("deptId", getDeptId())
+            .append("remarks", getRemarks())
+            .toString();
+    }
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/supplier/mapper/TCanteenDailyMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.supplier.mapper;
+
+import java.util.List;
+import com.ruoyi.supplier.domain.TCanteenDaily;
+
+/**
+ * 供应商日常工作记录Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface TCanteenDailyMapper 
+{
+    /**
+     * 查询供应商日常工作记录
+     * 
+     * @param dailyId 供应商日常工作记录主键
+     * @return 供应商日常工作记录
+     */
+    public TCanteenDaily selectTCanteenDailyByDailyId(Long dailyId);
+
+    /**
+     * 查询供应商日常工作记录列表
+     * 
+     * @param tCanteenDaily 供应商日常工作记录
+     * @return 供应商日常工作记录集合
+     */
+    public List<TCanteenDaily> selectTCanteenDailyList(TCanteenDaily tCanteenDaily);
+
+    /**
+     * 新增供应商日常工作记录
+     * 
+     * @param tCanteenDaily 供应商日常工作记录
+     * @return 结果
+     */
+    public int insertTCanteenDaily(TCanteenDaily tCanteenDaily);
+
+    /**
+     * 修改供应商日常工作记录
+     * 
+     * @param tCanteenDaily 供应商日常工作记录
+     * @return 结果
+     */
+    public int updateTCanteenDaily(TCanteenDaily tCanteenDaily);
+
+    /**
+     * 删除供应商日常工作记录
+     * 
+     * @param dailyId 供应商日常工作记录主键
+     * @return 结果
+     */
+    public int deleteTCanteenDailyByDailyId(Long dailyId);
+
+    /**
+     * 批量删除供应商日常工作记录
+     * 
+     * @param dailyIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenDailyByDailyIds(Long[] dailyIds);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/supplier/mapper/TCanteenQualificationMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.supplier.mapper;
+
+import java.util.List;
+import com.ruoyi.supplier.domain.TCanteenQualification;
+
+/**
+ * 供应商资质Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface TCanteenQualificationMapper 
+{
+    /**
+     * 查询供应商资质
+     * 
+     * @param qualificationId 供应商资质主键
+     * @return 供应商资质
+     */
+    public TCanteenQualification selectTCanteenQualificationByQualificationId(Long qualificationId);
+
+    /**
+     * 查询供应商资质列表
+     * 
+     * @param tCanteenQualification 供应商资质
+     * @return 供应商资质集合
+     */
+    public List<TCanteenQualification> selectTCanteenQualificationList(TCanteenQualification tCanteenQualification);
+
+    /**
+     * 新增供应商资质
+     * 
+     * @param tCanteenQualification 供应商资质
+     * @return 结果
+     */
+    public int insertTCanteenQualification(TCanteenQualification tCanteenQualification);
+
+    /**
+     * 修改供应商资质
+     * 
+     * @param tCanteenQualification 供应商资质
+     * @return 结果
+     */
+    public int updateTCanteenQualification(TCanteenQualification tCanteenQualification);
+
+    /**
+     * 删除供应商资质
+     * 
+     * @param qualificationId 供应商资质主键
+     * @return 结果
+     */
+    public int deleteTCanteenQualificationByQualificationId(Long qualificationId);
+
+    /**
+     * 批量删除供应商资质
+     * 
+     * @param qualificationIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenQualificationByQualificationIds(Long[] qualificationIds);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/supplier/mapper/TCanteenRatingMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.supplier.mapper;
+
+import java.util.List;
+import com.ruoyi.supplier.domain.TCanteenRating;
+
+/**
+ * 评价Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface TCanteenRatingMapper 
+{
+    /**
+     * 查询评价
+     * 
+     * @param rateId 评价主键
+     * @return 评价
+     */
+    public TCanteenRating selectTCanteenRatingByRateId(Long rateId);
+
+    /**
+     * 查询评价列表
+     * 
+     * @param tCanteenRating 评价
+     * @return 评价集合
+     */
+    public List<TCanteenRating> selectTCanteenRatingList(TCanteenRating tCanteenRating);
+
+    /**
+     * 新增评价
+     * 
+     * @param tCanteenRating 评价
+     * @return 结果
+     */
+    public int insertTCanteenRating(TCanteenRating tCanteenRating);
+
+    /**
+     * 修改评价
+     * 
+     * @param tCanteenRating 评价
+     * @return 结果
+     */
+    public int updateTCanteenRating(TCanteenRating tCanteenRating);
+
+    /**
+     * 删除评价
+     * 
+     * @param rateId 评价主键
+     * @return 结果
+     */
+    public int deleteTCanteenRatingByRateId(Long rateId);
+
+    /**
+     * 批量删除评价
+     * 
+     * @param rateIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenRatingByRateIds(Long[] rateIds);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/supplier/mapper/TCanteenSupplierMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.supplier.mapper;
+
+import java.util.List;
+import com.ruoyi.supplier.domain.TCanteenSupplier;
+
+/**
+ * 供应商Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface TCanteenSupplierMapper 
+{
+    /**
+     * 查询供应商
+     * 
+     * @param supplierId 供应商主键
+     * @return 供应商
+     */
+    public TCanteenSupplier selectTCanteenSupplierBySupplierId(Long supplierId);
+
+    /**
+     * 查询供应商列表
+     * 
+     * @param tCanteenSupplier 供应商
+     * @return 供应商集合
+     */
+    public List<TCanteenSupplier> selectTCanteenSupplierList(TCanteenSupplier tCanteenSupplier);
+
+    /**
+     * 新增供应商
+     * 
+     * @param tCanteenSupplier 供应商
+     * @return 结果
+     */
+    public int insertTCanteenSupplier(TCanteenSupplier tCanteenSupplier);
+
+    /**
+     * 修改供应商
+     * 
+     * @param tCanteenSupplier 供应商
+     * @return 结果
+     */
+    public int updateTCanteenSupplier(TCanteenSupplier tCanteenSupplier);
+
+    /**
+     * 删除供应商
+     * 
+     * @param supplierId 供应商主键
+     * @return 结果
+     */
+    public int deleteTCanteenSupplierBySupplierId(Long supplierId);
+
+    /**
+     * 批量删除供应商
+     * 
+     * @param supplierIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenSupplierBySupplierIds(Long[] supplierIds);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/supplier/service/ITCanteenDailyService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.supplier.service;
+
+import java.util.List;
+import com.ruoyi.supplier.domain.TCanteenDaily;
+
+/**
+ * 供应商日常工作记录Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface ITCanteenDailyService 
+{
+    /**
+     * 查询供应商日常工作记录
+     * 
+     * @param dailyId 供应商日常工作记录主键
+     * @return 供应商日常工作记录
+     */
+    public TCanteenDaily selectTCanteenDailyByDailyId(Long dailyId);
+
+    /**
+     * 查询供应商日常工作记录列表
+     * 
+     * @param tCanteenDaily 供应商日常工作记录
+     * @return 供应商日常工作记录集合
+     */
+    public List<TCanteenDaily> selectTCanteenDailyList(TCanteenDaily tCanteenDaily);
+
+    /**
+     * 新增供应商日常工作记录
+     * 
+     * @param tCanteenDaily 供应商日常工作记录
+     * @return 结果
+     */
+    public int insertTCanteenDaily(TCanteenDaily tCanteenDaily);
+
+    /**
+     * 修改供应商日常工作记录
+     * 
+     * @param tCanteenDaily 供应商日常工作记录
+     * @return 结果
+     */
+    public int updateTCanteenDaily(TCanteenDaily tCanteenDaily);
+
+    /**
+     * 批量删除供应商日常工作记录
+     * 
+     * @param dailyIds 需要删除的供应商日常工作记录主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenDailyByDailyIds(Long[] dailyIds);
+
+    /**
+     * 删除供应商日常工作记录信息
+     * 
+     * @param dailyId 供应商日常工作记录主键
+     * @return 结果
+     */
+    public int deleteTCanteenDailyByDailyId(Long dailyId);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/supplier/service/ITCanteenQualificationService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.supplier.service;
+
+import java.util.List;
+import com.ruoyi.supplier.domain.TCanteenQualification;
+
+/**
+ * 供应商资质Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface ITCanteenQualificationService 
+{
+    /**
+     * 查询供应商资质
+     * 
+     * @param qualificationId 供应商资质主键
+     * @return 供应商资质
+     */
+    public TCanteenQualification selectTCanteenQualificationByQualificationId(Long qualificationId);
+
+    /**
+     * 查询供应商资质列表
+     * 
+     * @param tCanteenQualification 供应商资质
+     * @return 供应商资质集合
+     */
+    public List<TCanteenQualification> selectTCanteenQualificationList(TCanteenQualification tCanteenQualification);
+
+    /**
+     * 新增供应商资质
+     * 
+     * @param tCanteenQualification 供应商资质
+     * @return 结果
+     */
+    public int insertTCanteenQualification(TCanteenQualification tCanteenQualification);
+
+    /**
+     * 修改供应商资质
+     * 
+     * @param tCanteenQualification 供应商资质
+     * @return 结果
+     */
+    public int updateTCanteenQualification(TCanteenQualification tCanteenQualification);
+
+    /**
+     * 批量删除供应商资质
+     * 
+     * @param qualificationIds 需要删除的供应商资质主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenQualificationByQualificationIds(Long[] qualificationIds);
+
+    /**
+     * 删除供应商资质信息
+     * 
+     * @param qualificationId 供应商资质主键
+     * @return 结果
+     */
+    public int deleteTCanteenQualificationByQualificationId(Long qualificationId);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/supplier/service/ITCanteenRatingService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.supplier.service;
+
+import java.util.List;
+import com.ruoyi.supplier.domain.TCanteenRating;
+
+/**
+ * 评价Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface ITCanteenRatingService 
+{
+    /**
+     * 查询评价
+     * 
+     * @param rateId 评价主键
+     * @return 评价
+     */
+    public TCanteenRating selectTCanteenRatingByRateId(Long rateId);
+
+    /**
+     * 查询评价列表
+     * 
+     * @param tCanteenRating 评价
+     * @return 评价集合
+     */
+    public List<TCanteenRating> selectTCanteenRatingList(TCanteenRating tCanteenRating);
+
+    /**
+     * 新增评价
+     * 
+     * @param tCanteenRating 评价
+     * @return 结果
+     */
+    public int insertTCanteenRating(TCanteenRating tCanteenRating);
+
+    /**
+     * 修改评价
+     * 
+     * @param tCanteenRating 评价
+     * @return 结果
+     */
+    public int updateTCanteenRating(TCanteenRating tCanteenRating);
+
+    /**
+     * 批量删除评价
+     * 
+     * @param rateIds 需要删除的评价主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenRatingByRateIds(Long[] rateIds);
+
+    /**
+     * 删除评价信息
+     * 
+     * @param rateId 评价主键
+     * @return 结果
+     */
+    public int deleteTCanteenRatingByRateId(Long rateId);
+}

+ 61 - 0
canteen-system/src/main/java/com/ruoyi/supplier/service/ITCanteenSupplierService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.supplier.service;
+
+import java.util.List;
+import com.ruoyi.supplier.domain.TCanteenSupplier;
+
+/**
+ * 供应商Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+public interface ITCanteenSupplierService 
+{
+    /**
+     * 查询供应商
+     * 
+     * @param supplierId 供应商主键
+     * @return 供应商
+     */
+    public TCanteenSupplier selectTCanteenSupplierBySupplierId(Long supplierId);
+
+    /**
+     * 查询供应商列表
+     * 
+     * @param tCanteenSupplier 供应商
+     * @return 供应商集合
+     */
+    public List<TCanteenSupplier> selectTCanteenSupplierList(TCanteenSupplier tCanteenSupplier);
+
+    /**
+     * 新增供应商
+     * 
+     * @param tCanteenSupplier 供应商
+     * @return 结果
+     */
+    public int insertTCanteenSupplier(TCanteenSupplier tCanteenSupplier);
+
+    /**
+     * 修改供应商
+     * 
+     * @param tCanteenSupplier 供应商
+     * @return 结果
+     */
+    public int updateTCanteenSupplier(TCanteenSupplier tCanteenSupplier);
+
+    /**
+     * 批量删除供应商
+     * 
+     * @param supplierIds 需要删除的供应商主键集合
+     * @return 结果
+     */
+    public int deleteTCanteenSupplierBySupplierIds(Long[] supplierIds);
+
+    /**
+     * 删除供应商信息
+     * 
+     * @param supplierId 供应商主键
+     * @return 结果
+     */
+    public int deleteTCanteenSupplierBySupplierId(Long supplierId);
+}

+ 93 - 0
canteen-system/src/main/java/com/ruoyi/supplier/service/impl/TCanteenDailyServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.supplier.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.supplier.mapper.TCanteenDailyMapper;
+import com.ruoyi.supplier.domain.TCanteenDaily;
+import com.ruoyi.supplier.service.ITCanteenDailyService;
+
+/**
+ * 供应商日常工作记录Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@Service
+public class TCanteenDailyServiceImpl implements ITCanteenDailyService 
+{
+    @Autowired
+    private TCanteenDailyMapper tCanteenDailyMapper;
+
+    /**
+     * 查询供应商日常工作记录
+     * 
+     * @param dailyId 供应商日常工作记录主键
+     * @return 供应商日常工作记录
+     */
+    @Override
+    public TCanteenDaily selectTCanteenDailyByDailyId(Long dailyId)
+    {
+        return tCanteenDailyMapper.selectTCanteenDailyByDailyId(dailyId);
+    }
+
+    /**
+     * 查询供应商日常工作记录列表
+     * 
+     * @param tCanteenDaily 供应商日常工作记录
+     * @return 供应商日常工作记录
+     */
+    @Override
+    public List<TCanteenDaily> selectTCanteenDailyList(TCanteenDaily tCanteenDaily)
+    {
+        return tCanteenDailyMapper.selectTCanteenDailyList(tCanteenDaily);
+    }
+
+    /**
+     * 新增供应商日常工作记录
+     * 
+     * @param tCanteenDaily 供应商日常工作记录
+     * @return 结果
+     */
+    @Override
+    public int insertTCanteenDaily(TCanteenDaily tCanteenDaily)
+    {
+        return tCanteenDailyMapper.insertTCanteenDaily(tCanteenDaily);
+    }
+
+    /**
+     * 修改供应商日常工作记录
+     * 
+     * @param tCanteenDaily 供应商日常工作记录
+     * @return 结果
+     */
+    @Override
+    public int updateTCanteenDaily(TCanteenDaily tCanteenDaily)
+    {
+        return tCanteenDailyMapper.updateTCanteenDaily(tCanteenDaily);
+    }
+
+    /**
+     * 批量删除供应商日常工作记录
+     * 
+     * @param dailyIds 需要删除的供应商日常工作记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenDailyByDailyIds(Long[] dailyIds)
+    {
+        return tCanteenDailyMapper.deleteTCanteenDailyByDailyIds(dailyIds);
+    }
+
+    /**
+     * 删除供应商日常工作记录信息
+     * 
+     * @param dailyId 供应商日常工作记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenDailyByDailyId(Long dailyId)
+    {
+        return tCanteenDailyMapper.deleteTCanteenDailyByDailyId(dailyId);
+    }
+}

+ 93 - 0
canteen-system/src/main/java/com/ruoyi/supplier/service/impl/TCanteenQualificationServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.supplier.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.supplier.mapper.TCanteenQualificationMapper;
+import com.ruoyi.supplier.domain.TCanteenQualification;
+import com.ruoyi.supplier.service.ITCanteenQualificationService;
+
+/**
+ * 供应商资质Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@Service
+public class TCanteenQualificationServiceImpl implements ITCanteenQualificationService 
+{
+    @Autowired
+    private TCanteenQualificationMapper tCanteenQualificationMapper;
+
+    /**
+     * 查询供应商资质
+     * 
+     * @param qualificationId 供应商资质主键
+     * @return 供应商资质
+     */
+    @Override
+    public TCanteenQualification selectTCanteenQualificationByQualificationId(Long qualificationId)
+    {
+        return tCanteenQualificationMapper.selectTCanteenQualificationByQualificationId(qualificationId);
+    }
+
+    /**
+     * 查询供应商资质列表
+     * 
+     * @param tCanteenQualification 供应商资质
+     * @return 供应商资质
+     */
+    @Override
+    public List<TCanteenQualification> selectTCanteenQualificationList(TCanteenQualification tCanteenQualification)
+    {
+        return tCanteenQualificationMapper.selectTCanteenQualificationList(tCanteenQualification);
+    }
+
+    /**
+     * 新增供应商资质
+     * 
+     * @param tCanteenQualification 供应商资质
+     * @return 结果
+     */
+    @Override
+    public int insertTCanteenQualification(TCanteenQualification tCanteenQualification)
+    {
+        return tCanteenQualificationMapper.insertTCanteenQualification(tCanteenQualification);
+    }
+
+    /**
+     * 修改供应商资质
+     * 
+     * @param tCanteenQualification 供应商资质
+     * @return 结果
+     */
+    @Override
+    public int updateTCanteenQualification(TCanteenQualification tCanteenQualification)
+    {
+        return tCanteenQualificationMapper.updateTCanteenQualification(tCanteenQualification);
+    }
+
+    /**
+     * 批量删除供应商资质
+     * 
+     * @param qualificationIds 需要删除的供应商资质主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenQualificationByQualificationIds(Long[] qualificationIds)
+    {
+        return tCanteenQualificationMapper.deleteTCanteenQualificationByQualificationIds(qualificationIds);
+    }
+
+    /**
+     * 删除供应商资质信息
+     * 
+     * @param qualificationId 供应商资质主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenQualificationByQualificationId(Long qualificationId)
+    {
+        return tCanteenQualificationMapper.deleteTCanteenQualificationByQualificationId(qualificationId);
+    }
+}

+ 93 - 0
canteen-system/src/main/java/com/ruoyi/supplier/service/impl/TCanteenRatingServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.supplier.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.supplier.mapper.TCanteenRatingMapper;
+import com.ruoyi.supplier.domain.TCanteenRating;
+import com.ruoyi.supplier.service.ITCanteenRatingService;
+
+/**
+ * 评价Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@Service
+public class TCanteenRatingServiceImpl implements ITCanteenRatingService 
+{
+    @Autowired
+    private TCanteenRatingMapper tCanteenRatingMapper;
+
+    /**
+     * 查询评价
+     * 
+     * @param rateId 评价主键
+     * @return 评价
+     */
+    @Override
+    public TCanteenRating selectTCanteenRatingByRateId(Long rateId)
+    {
+        return tCanteenRatingMapper.selectTCanteenRatingByRateId(rateId);
+    }
+
+    /**
+     * 查询评价列表
+     * 
+     * @param tCanteenRating 评价
+     * @return 评价
+     */
+    @Override
+    public List<TCanteenRating> selectTCanteenRatingList(TCanteenRating tCanteenRating)
+    {
+        return tCanteenRatingMapper.selectTCanteenRatingList(tCanteenRating);
+    }
+
+    /**
+     * 新增评价
+     * 
+     * @param tCanteenRating 评价
+     * @return 结果
+     */
+    @Override
+    public int insertTCanteenRating(TCanteenRating tCanteenRating)
+    {
+        return tCanteenRatingMapper.insertTCanteenRating(tCanteenRating);
+    }
+
+    /**
+     * 修改评价
+     * 
+     * @param tCanteenRating 评价
+     * @return 结果
+     */
+    @Override
+    public int updateTCanteenRating(TCanteenRating tCanteenRating)
+    {
+        return tCanteenRatingMapper.updateTCanteenRating(tCanteenRating);
+    }
+
+    /**
+     * 批量删除评价
+     * 
+     * @param rateIds 需要删除的评价主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenRatingByRateIds(Long[] rateIds)
+    {
+        return tCanteenRatingMapper.deleteTCanteenRatingByRateIds(rateIds);
+    }
+
+    /**
+     * 删除评价信息
+     * 
+     * @param rateId 评价主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenRatingByRateId(Long rateId)
+    {
+        return tCanteenRatingMapper.deleteTCanteenRatingByRateId(rateId);
+    }
+}

+ 93 - 0
canteen-system/src/main/java/com/ruoyi/supplier/service/impl/TCanteenSupplierServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.supplier.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.supplier.mapper.TCanteenSupplierMapper;
+import com.ruoyi.supplier.domain.TCanteenSupplier;
+import com.ruoyi.supplier.service.ITCanteenSupplierService;
+
+/**
+ * 供应商Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-04-22
+ */
+@Service
+public class TCanteenSupplierServiceImpl implements ITCanteenSupplierService 
+{
+    @Autowired
+    private TCanteenSupplierMapper tCanteenSupplierMapper;
+
+    /**
+     * 查询供应商
+     * 
+     * @param supplierId 供应商主键
+     * @return 供应商
+     */
+    @Override
+    public TCanteenSupplier selectTCanteenSupplierBySupplierId(Long supplierId)
+    {
+        return tCanteenSupplierMapper.selectTCanteenSupplierBySupplierId(supplierId);
+    }
+
+    /**
+     * 查询供应商列表
+     * 
+     * @param tCanteenSupplier 供应商
+     * @return 供应商
+     */
+    @Override
+    public List<TCanteenSupplier> selectTCanteenSupplierList(TCanteenSupplier tCanteenSupplier)
+    {
+        return tCanteenSupplierMapper.selectTCanteenSupplierList(tCanteenSupplier);
+    }
+
+    /**
+     * 新增供应商
+     * 
+     * @param tCanteenSupplier 供应商
+     * @return 结果
+     */
+    @Override
+    public int insertTCanteenSupplier(TCanteenSupplier tCanteenSupplier)
+    {
+        return tCanteenSupplierMapper.insertTCanteenSupplier(tCanteenSupplier);
+    }
+
+    /**
+     * 修改供应商
+     * 
+     * @param tCanteenSupplier 供应商
+     * @return 结果
+     */
+    @Override
+    public int updateTCanteenSupplier(TCanteenSupplier tCanteenSupplier)
+    {
+        return tCanteenSupplierMapper.updateTCanteenSupplier(tCanteenSupplier);
+    }
+
+    /**
+     * 批量删除供应商
+     * 
+     * @param supplierIds 需要删除的供应商主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenSupplierBySupplierIds(Long[] supplierIds)
+    {
+        return tCanteenSupplierMapper.deleteTCanteenSupplierBySupplierIds(supplierIds);
+    }
+
+    /**
+     * 删除供应商信息
+     * 
+     * @param supplierId 供应商主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTCanteenSupplierBySupplierId(Long supplierId)
+    {
+        return tCanteenSupplierMapper.deleteTCanteenSupplierBySupplierId(supplierId);
+    }
+}

+ 115 - 0
canteen-system/src/main/resources/mapper/common/TCommonFileMapper.xml

@@ -0,0 +1,115 @@
+<?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="com.ruoyi.common.mapper.TCommonFileMapper">
+    
+    <resultMap type="TCommonFile" id="TCommonFileResult">
+        <result property="fileId"    column="file_id"    />
+        <result property="fileUrl"    column="file_url"    />
+        <result property="fileName"    column="file_name"    />
+        <result property="fileSize"    column="file_size"    />
+        <result property="linkId"    column="link_id"    />
+        <result property="linkTable"    column="link_table"    />
+        <result property="status"    column="status"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="remarks"    column="remarks"    />
+    </resultMap>
+
+    <sql id="selectTCommonFileVo">
+        select file_id, file_url, file_name, file_size, link_id, link_table, status, del_flag, creater_code, createdate, updater_code, updatedate, dept_id, remarks from t_common_file
+    </sql>
+
+    <select id="selectTCommonFileList" parameterType="TCommonFile" resultMap="TCommonFileResult">
+        <include refid="selectTCommonFileVo"/>
+        <where>  
+            <if test="fileUrl != null  and fileUrl != ''"> and file_url = #{fileUrl}</if>
+            <if test="fileName != null  and fileName != ''"> and file_name like concat('%', #{fileName}, '%')</if>
+            <if test="fileSize != null  and fileSize != ''"> and file_size = #{fileSize}</if>
+            <if test="linkId != null "> and link_id = #{linkId}</if>
+            <if test="linkTable != null  and linkTable != ''"> and link_table = #{linkTable}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+        </where>
+    </select>
+    
+    <select id="selectTCommonFileByFileId" parameterType="Long" resultMap="TCommonFileResult">
+        <include refid="selectTCommonFileVo"/>
+        where file_id = #{fileId}
+    </select>
+
+    <insert id="insertTCommonFile" parameterType="TCommonFile" useGeneratedKeys="true" keyProperty="fileId">
+        insert into t_common_file
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="fileUrl != null and fileUrl != ''">file_url,</if>
+            <if test="fileName != null">file_name,</if>
+            <if test="fileSize != null">file_size,</if>
+            <if test="linkId != null">link_id,</if>
+            <if test="linkTable != null">link_table,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="remarks != null">remarks,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="fileUrl != null and fileUrl != ''">#{fileUrl},</if>
+            <if test="fileName != null">#{fileName},</if>
+            <if test="fileSize != null">#{fileSize},</if>
+            <if test="linkId != null">#{linkId},</if>
+            <if test="linkTable != null">#{linkTable},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="remarks != null">#{remarks},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTCommonFile" parameterType="TCommonFile">
+        update t_common_file
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="fileUrl != null and fileUrl != ''">file_url = #{fileUrl},</if>
+            <if test="fileName != null">file_name = #{fileName},</if>
+            <if test="fileSize != null">file_size = #{fileSize},</if>
+            <if test="linkId != null">link_id = #{linkId},</if>
+            <if test="linkTable != null">link_table = #{linkTable},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+        </trim>
+        where file_id = #{fileId}
+    </update>
+
+    <delete id="deleteTCommonFileByFileId" parameterType="Long">
+        delete from t_common_file where file_id = #{fileId}
+    </delete>
+
+    <delete id="deleteTCommonFileByFileIds" parameterType="String">
+        delete from t_common_file where file_id in 
+        <foreach item="fileId" collection="array" open="(" separator="," close=")">
+            #{fileId}
+        </foreach>
+    </delete>
+</mapper>

+ 110 - 0
canteen-system/src/main/resources/mapper/goods/TCanteenClassifyMapper.xml

@@ -0,0 +1,110 @@
+<?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="com.ruoyi.goods.mapper.TCanteenClassifyMapper">
+    
+    <resultMap type="TCanteenClassify" id="TCanteenClassifyResult">
+        <result property="classifyId"    column="classify_id"    />
+        <result property="supplierId"    column="supplier_id"    />
+        <result property="classifyLogo"    column="classify_logo"    />
+        <result property="goodsType"    column="goods_type"    />
+        <result property="classifyName"    column="classify_name"    />
+        <result property="status"    column="status"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="remarks"    column="remarks"    />
+    </resultMap>
+
+    <sql id="selectTCanteenClassifyVo">
+        select classify_id, supplier_id, classify_logo, goods_type, classify_name, status, del_flag, creater_code, createdate, updater_code, updatedate, dept_id, remarks from t_canteen_classify
+    </sql>
+
+    <select id="selectTCanteenClassifyList" parameterType="TCanteenClassify" resultMap="TCanteenClassifyResult">
+        <include refid="selectTCanteenClassifyVo"/>
+        <where>  
+            <if test="supplierId != null "> and supplier_id = #{supplierId}</if>
+            <if test="classifyLogo != null  and classifyLogo != ''"> and classify_logo = #{classifyLogo}</if>
+            <if test="goodsType != null  and goodsType != ''"> and goods_type = #{goodsType}</if>
+            <if test="classifyName != null  and classifyName != ''"> and classify_name like concat('%', #{classifyName}, '%')</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+        </where>
+    </select>
+    
+    <select id="selectTCanteenClassifyByClassifyId" parameterType="Long" resultMap="TCanteenClassifyResult">
+        <include refid="selectTCanteenClassifyVo"/>
+        where classify_id = #{classifyId}
+    </select>
+
+    <insert id="insertTCanteenClassify" parameterType="TCanteenClassify" useGeneratedKeys="true" keyProperty="classifyId">
+        insert into t_canteen_classify
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="supplierId != null">supplier_id,</if>
+            <if test="classifyLogo != null">classify_logo,</if>
+            <if test="goodsType != null">goods_type,</if>
+            <if test="classifyName != null">classify_name,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="remarks != null">remarks,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="supplierId != null">#{supplierId},</if>
+            <if test="classifyLogo != null">#{classifyLogo},</if>
+            <if test="goodsType != null">#{goodsType},</if>
+            <if test="classifyName != null">#{classifyName},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="remarks != null">#{remarks},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTCanteenClassify" parameterType="TCanteenClassify">
+        update t_canteen_classify
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="supplierId != null">supplier_id = #{supplierId},</if>
+            <if test="classifyLogo != null">classify_logo = #{classifyLogo},</if>
+            <if test="goodsType != null">goods_type = #{goodsType},</if>
+            <if test="classifyName != null">classify_name = #{classifyName},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+        </trim>
+        where classify_id = #{classifyId}
+    </update>
+
+    <delete id="deleteTCanteenClassifyByClassifyId" parameterType="Long">
+        delete from t_canteen_classify where classify_id = #{classifyId}
+    </delete>
+
+    <delete id="deleteTCanteenClassifyByClassifyIds" parameterType="String">
+        delete from t_canteen_classify where classify_id in 
+        <foreach item="classifyId" collection="array" open="(" separator="," close=")">
+            #{classifyId}
+        </foreach>
+    </delete>
+</mapper>

+ 105 - 0
canteen-system/src/main/resources/mapper/goods/TCanteenInventoryMapper.xml

@@ -0,0 +1,105 @@
+<?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="com.ruoyi.goods.mapper.TCanteenInventoryMapper">
+    
+    <resultMap type="TCanteenInventory" id="TCanteenInventoryResult">
+        <result property="inventoryId"    column="inventory_id"    />
+        <result property="menuId"    column="menu_id"    />
+        <result property="inventoryNum"    column="inventory_num"    />
+        <result property="lastRestock"    column="last_restock"    />
+        <result property="status"    column="status"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="remarks"    column="remarks"    />
+    </resultMap>
+
+    <sql id="selectTCanteenInventoryVo">
+        select inventory_id, menu_id, inventory_num, last_restock, status, del_flag, creater_code, createdate, updater_code, updatedate, dept_id, remarks from t_canteen_inventory
+    </sql>
+
+    <select id="selectTCanteenInventoryList" parameterType="TCanteenInventory" resultMap="TCanteenInventoryResult">
+        <include refid="selectTCanteenInventoryVo"/>
+        <where>  
+            <if test="menuId != null "> and menu_id = #{menuId}</if>
+            <if test="inventoryNum != null "> and inventory_num = #{inventoryNum}</if>
+            <if test="lastRestock != null "> and last_restock = #{lastRestock}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+        </where>
+    </select>
+    
+    <select id="selectTCanteenInventoryByInventoryId" parameterType="Long" resultMap="TCanteenInventoryResult">
+        <include refid="selectTCanteenInventoryVo"/>
+        where inventory_id = #{inventoryId}
+    </select>
+
+    <insert id="insertTCanteenInventory" parameterType="TCanteenInventory" useGeneratedKeys="true" keyProperty="inventoryId">
+        insert into t_canteen_inventory
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="menuId != null">menu_id,</if>
+            <if test="inventoryNum != null">inventory_num,</if>
+            <if test="lastRestock != null">last_restock,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="remarks != null">remarks,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="menuId != null">#{menuId},</if>
+            <if test="inventoryNum != null">#{inventoryNum},</if>
+            <if test="lastRestock != null">#{lastRestock},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="remarks != null">#{remarks},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTCanteenInventory" parameterType="TCanteenInventory">
+        update t_canteen_inventory
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="menuId != null">menu_id = #{menuId},</if>
+            <if test="inventoryNum != null">inventory_num = #{inventoryNum},</if>
+            <if test="lastRestock != null">last_restock = #{lastRestock},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+        </trim>
+        where inventory_id = #{inventoryId}
+    </update>
+
+    <delete id="deleteTCanteenInventoryByInventoryId" parameterType="Long">
+        delete from t_canteen_inventory where inventory_id = #{inventoryId}
+    </delete>
+
+    <delete id="deleteTCanteenInventoryByInventoryIds" parameterType="String">
+        delete from t_canteen_inventory where inventory_id in 
+        <foreach item="inventoryId" collection="array" open="(" separator="," close=")">
+            #{inventoryId}
+        </foreach>
+    </delete>
+</mapper>

+ 135 - 0
canteen-system/src/main/resources/mapper/goods/TCanteenMenuMapper.xml

@@ -0,0 +1,135 @@
+<?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="com.ruoyi.goods.mapper.TCanteenMenuMapper">
+    
+    <resultMap type="TCanteenMenu" id="TCanteenMenuResult">
+        <result property="menuId"    column="menu_id"    />
+        <result property="supplierId"    column="supplier_id"    />
+        <result property="classifyId"    column="classify_id"    />
+        <result property="goodsName"    column="goods_name"    />
+        <result property="goodsNum"    column="goods_num"    />
+        <result property="goodsPrice"    column="goods_price"    />
+        <result property="goodsDes"    column="goods_des"    />
+        <result property="discountStatus"    column="discount_status"    />
+        <result property="discountPrice"    column="discount_price"    />
+        <result property="discountIntensity"    column="discount_intensity"    />
+        <result property="status"    column="status"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="remarks"    column="remarks"    />
+    </resultMap>
+
+    <sql id="selectTCanteenMenuVo">
+        select menu_id, supplier_id, classify_id, goods_name, goods_num, goods_price, goods_des, discount_status, discount_price, discount_intensity, status, del_flag, creater_code, createdate, updater_code, updatedate, dept_id, remarks from t_canteen_menu
+    </sql>
+
+    <select id="selectTCanteenMenuList" parameterType="TCanteenMenu" resultMap="TCanteenMenuResult">
+        <include refid="selectTCanteenMenuVo"/>
+        <where>  
+            <if test="supplierId != null "> and supplier_id = #{supplierId}</if>
+            <if test="classifyId != null "> and classify_id = #{classifyId}</if>
+            <if test="goodsName != null  and goodsName != ''"> and goods_name like concat('%', #{goodsName}, '%')</if>
+            <if test="goodsNum != null "> and goods_num = #{goodsNum}</if>
+            <if test="goodsPrice != null  and goodsPrice != ''"> and goods_price = #{goodsPrice}</if>
+            <if test="goodsDes != null  and goodsDes != ''"> and goods_des = #{goodsDes}</if>
+            <if test="discountStatus != null  and discountStatus != ''"> and discount_status = #{discountStatus}</if>
+            <if test="discountPrice != null  and discountPrice != ''"> and discount_price = #{discountPrice}</if>
+            <if test="discountIntensity != null  and discountIntensity != ''"> and discount_intensity = #{discountIntensity}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+        </where>
+    </select>
+    
+    <select id="selectTCanteenMenuByMenuId" parameterType="Long" resultMap="TCanteenMenuResult">
+        <include refid="selectTCanteenMenuVo"/>
+        where menu_id = #{menuId}
+    </select>
+
+    <insert id="insertTCanteenMenu" parameterType="TCanteenMenu" useGeneratedKeys="true" keyProperty="menuId">
+        insert into t_canteen_menu
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="supplierId != null">supplier_id,</if>
+            <if test="classifyId != null">classify_id,</if>
+            <if test="goodsName != null">goods_name,</if>
+            <if test="goodsNum != null">goods_num,</if>
+            <if test="goodsPrice != null">goods_price,</if>
+            <if test="goodsDes != null">goods_des,</if>
+            <if test="discountStatus != null">discount_status,</if>
+            <if test="discountPrice != null">discount_price,</if>
+            <if test="discountIntensity != null">discount_intensity,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="remarks != null">remarks,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="supplierId != null">#{supplierId},</if>
+            <if test="classifyId != null">#{classifyId},</if>
+            <if test="goodsName != null">#{goodsName},</if>
+            <if test="goodsNum != null">#{goodsNum},</if>
+            <if test="goodsPrice != null">#{goodsPrice},</if>
+            <if test="goodsDes != null">#{goodsDes},</if>
+            <if test="discountStatus != null">#{discountStatus},</if>
+            <if test="discountPrice != null">#{discountPrice},</if>
+            <if test="discountIntensity != null">#{discountIntensity},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="remarks != null">#{remarks},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTCanteenMenu" parameterType="TCanteenMenu">
+        update t_canteen_menu
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="supplierId != null">supplier_id = #{supplierId},</if>
+            <if test="classifyId != null">classify_id = #{classifyId},</if>
+            <if test="goodsName != null">goods_name = #{goodsName},</if>
+            <if test="goodsNum != null">goods_num = #{goodsNum},</if>
+            <if test="goodsPrice != null">goods_price = #{goodsPrice},</if>
+            <if test="goodsDes != null">goods_des = #{goodsDes},</if>
+            <if test="discountStatus != null">discount_status = #{discountStatus},</if>
+            <if test="discountPrice != null">discount_price = #{discountPrice},</if>
+            <if test="discountIntensity != null">discount_intensity = #{discountIntensity},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+        </trim>
+        where menu_id = #{menuId}
+    </update>
+
+    <delete id="deleteTCanteenMenuByMenuId" parameterType="Long">
+        delete from t_canteen_menu where menu_id = #{menuId}
+    </delete>
+
+    <delete id="deleteTCanteenMenuByMenuIds" parameterType="String">
+        delete from t_canteen_menu where menu_id in 
+        <foreach item="menuId" collection="array" open="(" separator="," close=")">
+            #{menuId}
+        </foreach>
+    </delete>
+</mapper>

+ 120 - 0
canteen-system/src/main/resources/mapper/goods/TCanteenSubmenuMapper.xml

@@ -0,0 +1,120 @@
+<?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="com.ruoyi.goods.mapper.TCanteenSubmenuMapper">
+    
+    <resultMap type="TCanteenSubmenu" id="TCanteenSubmenuResult">
+        <result property="submenuId"    column="submenu_id"    />
+        <result property="menuId"    column="menu_id"    />
+        <result property="supplierId"    column="supplier_id"    />
+        <result property="menuType"    column="menu_type"    />
+        <result property="goodsName"    column="goods_name"    />
+        <result property="goodsPrice"    column="goods_price"    />
+        <result property="goodsNum"    column="goods_num"    />
+        <result property="status"    column="status"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="remarks"    column="remarks"    />
+    </resultMap>
+
+    <sql id="selectTCanteenSubmenuVo">
+        select submenu_id, menu_id, supplier_id, menu_type, goods_name, goods_price, goods_num, status, del_flag, creater_code, createdate, updater_code, updatedate, dept_id, remarks from t_canteen_submenu
+    </sql>
+
+    <select id="selectTCanteenSubmenuList" parameterType="TCanteenSubmenu" resultMap="TCanteenSubmenuResult">
+        <include refid="selectTCanteenSubmenuVo"/>
+        <where>  
+            <if test="menuId != null "> and menu_id = #{menuId}</if>
+            <if test="supplierId != null "> and supplier_id = #{supplierId}</if>
+            <if test="menuType != null  and menuType != ''"> and menu_type = #{menuType}</if>
+            <if test="goodsName != null  and goodsName != ''"> and goods_name like concat('%', #{goodsName}, '%')</if>
+            <if test="goodsPrice != null  and goodsPrice != ''"> and goods_price = #{goodsPrice}</if>
+            <if test="goodsNum != null "> and goods_num = #{goodsNum}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+        </where>
+    </select>
+    
+    <select id="selectTCanteenSubmenuBySubmenuId" parameterType="Long" resultMap="TCanteenSubmenuResult">
+        <include refid="selectTCanteenSubmenuVo"/>
+        where submenu_id = #{submenuId}
+    </select>
+
+    <insert id="insertTCanteenSubmenu" parameterType="TCanteenSubmenu" useGeneratedKeys="true" keyProperty="submenuId">
+        insert into t_canteen_submenu
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="menuId != null">menu_id,</if>
+            <if test="supplierId != null">supplier_id,</if>
+            <if test="menuType != null">menu_type,</if>
+            <if test="goodsName != null">goods_name,</if>
+            <if test="goodsPrice != null">goods_price,</if>
+            <if test="goodsNum != null">goods_num,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="remarks != null">remarks,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="menuId != null">#{menuId},</if>
+            <if test="supplierId != null">#{supplierId},</if>
+            <if test="menuType != null">#{menuType},</if>
+            <if test="goodsName != null">#{goodsName},</if>
+            <if test="goodsPrice != null">#{goodsPrice},</if>
+            <if test="goodsNum != null">#{goodsNum},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="remarks != null">#{remarks},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTCanteenSubmenu" parameterType="TCanteenSubmenu">
+        update t_canteen_submenu
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="menuId != null">menu_id = #{menuId},</if>
+            <if test="supplierId != null">supplier_id = #{supplierId},</if>
+            <if test="menuType != null">menu_type = #{menuType},</if>
+            <if test="goodsName != null">goods_name = #{goodsName},</if>
+            <if test="goodsPrice != null">goods_price = #{goodsPrice},</if>
+            <if test="goodsNum != null">goods_num = #{goodsNum},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+        </trim>
+        where submenu_id = #{submenuId}
+    </update>
+
+    <delete id="deleteTCanteenSubmenuBySubmenuId" parameterType="Long">
+        delete from t_canteen_submenu where submenu_id = #{submenuId}
+    </delete>
+
+    <delete id="deleteTCanteenSubmenuBySubmenuIds" parameterType="String">
+        delete from t_canteen_submenu where submenu_id in 
+        <foreach item="submenuId" collection="array" open="(" separator="," close=")">
+            #{submenuId}
+        </foreach>
+    </delete>
+</mapper>

+ 115 - 0
canteen-system/src/main/resources/mapper/order/TCanteenOrderDetailMapper.xml

@@ -0,0 +1,115 @@
+<?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="com.ruoyi.order.mapper.TCanteenOrderDetailMapper">
+    
+    <resultMap type="TCanteenOrderDetail" id="TCanteenOrderDetailResult">
+        <result property="detailId"    column="detail_id"    />
+        <result property="orderId"    column="order_id"    />
+        <result property="menuId"    column="menu_id"    />
+        <result property="quantity"    column="quantity"    />
+        <result property="unitPrice"    column="unit_price"    />
+        <result property="transactionTime"    column="transaction_time"    />
+        <result property="status"    column="status"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="remarks"    column="remarks"    />
+    </resultMap>
+
+    <sql id="selectTCanteenOrderDetailVo">
+        select detail_id, order_id, menu_id, quantity, unit_price, transaction_time, status, del_flag, creater_code, createdate, updater_code, updatedate, dept_id, remarks from t_canteen_order_detail
+    </sql>
+
+    <select id="selectTCanteenOrderDetailList" parameterType="TCanteenOrderDetail" resultMap="TCanteenOrderDetailResult">
+        <include refid="selectTCanteenOrderDetailVo"/>
+        <where>  
+            <if test="orderId != null "> and order_id = #{orderId}</if>
+            <if test="menuId != null "> and menu_id = #{menuId}</if>
+            <if test="quantity != null  and quantity != ''"> and quantity = #{quantity}</if>
+            <if test="unitPrice != null  and unitPrice != ''"> and unit_price = #{unitPrice}</if>
+            <if test="transactionTime != null "> and transaction_time = #{transactionTime}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+        </where>
+    </select>
+    
+    <select id="selectTCanteenOrderDetailByDetailId" parameterType="Long" resultMap="TCanteenOrderDetailResult">
+        <include refid="selectTCanteenOrderDetailVo"/>
+        where detail_id = #{detailId}
+    </select>
+
+    <insert id="insertTCanteenOrderDetail" parameterType="TCanteenOrderDetail" useGeneratedKeys="true" keyProperty="detailId">
+        insert into t_canteen_order_detail
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="orderId != null">order_id,</if>
+            <if test="menuId != null">menu_id,</if>
+            <if test="quantity != null">quantity,</if>
+            <if test="unitPrice != null">unit_price,</if>
+            <if test="transactionTime != null">transaction_time,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="remarks != null">remarks,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="orderId != null">#{orderId},</if>
+            <if test="menuId != null">#{menuId},</if>
+            <if test="quantity != null">#{quantity},</if>
+            <if test="unitPrice != null">#{unitPrice},</if>
+            <if test="transactionTime != null">#{transactionTime},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="remarks != null">#{remarks},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTCanteenOrderDetail" parameterType="TCanteenOrderDetail">
+        update t_canteen_order_detail
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="orderId != null">order_id = #{orderId},</if>
+            <if test="menuId != null">menu_id = #{menuId},</if>
+            <if test="quantity != null">quantity = #{quantity},</if>
+            <if test="unitPrice != null">unit_price = #{unitPrice},</if>
+            <if test="transactionTime != null">transaction_time = #{transactionTime},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+        </trim>
+        where detail_id = #{detailId}
+    </update>
+
+    <delete id="deleteTCanteenOrderDetailByDetailId" parameterType="Long">
+        delete from t_canteen_order_detail where detail_id = #{detailId}
+    </delete>
+
+    <delete id="deleteTCanteenOrderDetailByDetailIds" parameterType="String">
+        delete from t_canteen_order_detail where detail_id in 
+        <foreach item="detailId" collection="array" open="(" separator="," close=")">
+            #{detailId}
+        </foreach>
+    </delete>
+</mapper>

+ 120 - 0
canteen-system/src/main/resources/mapper/order/TCanteenOrderMapper.xml

@@ -0,0 +1,120 @@
+<?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="com.ruoyi.order.mapper.TCanteenOrderMapper">
+    
+    <resultMap type="TCanteenOrder" id="TCanteenOrderResult">
+        <result property="orderId"    column="order_id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="supplierId"    column="supplier_id"    />
+        <result property="orderStatus"    column="order_status"    />
+        <result property="totalAmount"    column="total_amount"    />
+        <result property="scheduledTime"    column="scheduled_time"    />
+        <result property="completeTime"    column="complete_time"    />
+        <result property="status"    column="status"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="remarks"    column="remarks"    />
+    </resultMap>
+
+    <sql id="selectTCanteenOrderVo">
+        select order_id, user_id, supplier_id, order_status, total_amount, scheduled_time, complete_time, status, del_flag, creater_code, createdate, updater_code, updatedate, dept_id, remarks from t_canteen_order
+    </sql>
+
+    <select id="selectTCanteenOrderList" parameterType="TCanteenOrder" resultMap="TCanteenOrderResult">
+        <include refid="selectTCanteenOrderVo"/>
+        <where>  
+            <if test="userId != null "> and user_id = #{userId}</if>
+            <if test="supplierId != null "> and supplier_id = #{supplierId}</if>
+            <if test="orderStatus != null "> and order_status = #{orderStatus}</if>
+            <if test="totalAmount != null  and totalAmount != ''"> and total_amount = #{totalAmount}</if>
+            <if test="scheduledTime != null "> and scheduled_time = #{scheduledTime}</if>
+            <if test="completeTime != null "> and complete_time = #{completeTime}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+        </where>
+    </select>
+    
+    <select id="selectTCanteenOrderByOrderId" parameterType="Long" resultMap="TCanteenOrderResult">
+        <include refid="selectTCanteenOrderVo"/>
+        where order_id = #{orderId}
+    </select>
+
+    <insert id="insertTCanteenOrder" parameterType="TCanteenOrder" useGeneratedKeys="true" keyProperty="orderId">
+        insert into t_canteen_order
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="userId != null">user_id,</if>
+            <if test="supplierId != null">supplier_id,</if>
+            <if test="orderStatus != null">order_status,</if>
+            <if test="totalAmount != null">total_amount,</if>
+            <if test="scheduledTime != null">scheduled_time,</if>
+            <if test="completeTime != null">complete_time,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="remarks != null">remarks,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="userId != null">#{userId},</if>
+            <if test="supplierId != null">#{supplierId},</if>
+            <if test="orderStatus != null">#{orderStatus},</if>
+            <if test="totalAmount != null">#{totalAmount},</if>
+            <if test="scheduledTime != null">#{scheduledTime},</if>
+            <if test="completeTime != null">#{completeTime},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="remarks != null">#{remarks},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTCanteenOrder" parameterType="TCanteenOrder">
+        update t_canteen_order
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="userId != null">user_id = #{userId},</if>
+            <if test="supplierId != null">supplier_id = #{supplierId},</if>
+            <if test="orderStatus != null">order_status = #{orderStatus},</if>
+            <if test="totalAmount != null">total_amount = #{totalAmount},</if>
+            <if test="scheduledTime != null">scheduled_time = #{scheduledTime},</if>
+            <if test="completeTime != null">complete_time = #{completeTime},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+        </trim>
+        where order_id = #{orderId}
+    </update>
+
+    <delete id="deleteTCanteenOrderByOrderId" parameterType="Long">
+        delete from t_canteen_order where order_id = #{orderId}
+    </delete>
+
+    <delete id="deleteTCanteenOrderByOrderIds" parameterType="String">
+        delete from t_canteen_order where order_id in 
+        <foreach item="orderId" collection="array" open="(" separator="," close=")">
+            #{orderId}
+        </foreach>
+    </delete>
+</mapper>

+ 115 - 0
canteen-system/src/main/resources/mapper/order/TCanteenPaymentMapper.xml

@@ -0,0 +1,115 @@
+<?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="com.ruoyi.order.mapper.TCanteenPaymentMapper">
+    
+    <resultMap type="TCanteenPayment" id="TCanteenPaymentResult">
+        <result property="payId"    column="pay_id"    />
+        <result property="orderId"    column="order_id"    />
+        <result property="amount"    column="amount"    />
+        <result property="payMethod"    column="pay_method"    />
+        <result property="payTime"    column="pay_time"    />
+        <result property="paymentStatus"    column="payment_status"    />
+        <result property="status"    column="status"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="remarks"    column="remarks"    />
+    </resultMap>
+
+    <sql id="selectTCanteenPaymentVo">
+        select pay_id, order_id, amount, pay_method, pay_time, payment_status, status, del_flag, creater_code, createdate, updater_code, updatedate, dept_id, remarks from t_canteen_payment
+    </sql>
+
+    <select id="selectTCanteenPaymentList" parameterType="TCanteenPayment" resultMap="TCanteenPaymentResult">
+        <include refid="selectTCanteenPaymentVo"/>
+        <where>  
+            <if test="orderId != null "> and order_id = #{orderId}</if>
+            <if test="amount != null  and amount != ''"> and amount = #{amount}</if>
+            <if test="payMethod != null  and payMethod != ''"> and pay_method = #{payMethod}</if>
+            <if test="payTime != null "> and pay_time = #{payTime}</if>
+            <if test="paymentStatus != null  and paymentStatus != ''"> and payment_status = #{paymentStatus}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+        </where>
+    </select>
+    
+    <select id="selectTCanteenPaymentByPayId" parameterType="Long" resultMap="TCanteenPaymentResult">
+        <include refid="selectTCanteenPaymentVo"/>
+        where pay_id = #{payId}
+    </select>
+
+    <insert id="insertTCanteenPayment" parameterType="TCanteenPayment" useGeneratedKeys="true" keyProperty="payId">
+        insert into t_canteen_payment
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="orderId != null">order_id,</if>
+            <if test="amount != null">amount,</if>
+            <if test="payMethod != null">pay_method,</if>
+            <if test="payTime != null">pay_time,</if>
+            <if test="paymentStatus != null">payment_status,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="remarks != null">remarks,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="orderId != null">#{orderId},</if>
+            <if test="amount != null">#{amount},</if>
+            <if test="payMethod != null">#{payMethod},</if>
+            <if test="payTime != null">#{payTime},</if>
+            <if test="paymentStatus != null">#{paymentStatus},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="remarks != null">#{remarks},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTCanteenPayment" parameterType="TCanteenPayment">
+        update t_canteen_payment
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="orderId != null">order_id = #{orderId},</if>
+            <if test="amount != null">amount = #{amount},</if>
+            <if test="payMethod != null">pay_method = #{payMethod},</if>
+            <if test="payTime != null">pay_time = #{payTime},</if>
+            <if test="paymentStatus != null">payment_status = #{paymentStatus},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+        </trim>
+        where pay_id = #{payId}
+    </update>
+
+    <delete id="deleteTCanteenPaymentByPayId" parameterType="Long">
+        delete from t_canteen_payment where pay_id = #{payId}
+    </delete>
+
+    <delete id="deleteTCanteenPaymentByPayIds" parameterType="String">
+        delete from t_canteen_payment where pay_id in 
+        <foreach item="payId" collection="array" open="(" separator="," close=")">
+            #{payId}
+        </foreach>
+    </delete>
+</mapper>

+ 105 - 0
canteen-system/src/main/resources/mapper/plant/TCanteenCardMapper.xml

@@ -0,0 +1,105 @@
+<?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="com.ruoyi.plant.mapper.TCanteenCardMapper">
+    
+    <resultMap type="TCanteenCard" id="TCanteenCardResult">
+        <result property="cardId"    column="card_id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="cardNo"    column="card_no"    />
+        <result property="cardStatus"    column="card_status"    />
+        <result property="status"    column="status"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="remarks"    column="remarks"    />
+    </resultMap>
+
+    <sql id="selectTCanteenCardVo">
+        select card_id, user_id, card_no, card_status, status, del_flag, creater_code, createdate, updater_code, updatedate, dept_id, remarks from t_canteen_card
+    </sql>
+
+    <select id="selectTCanteenCardList" parameterType="TCanteenCard" resultMap="TCanteenCardResult">
+        <include refid="selectTCanteenCardVo"/>
+        <where>  
+            <if test="userId != null "> and user_id = #{userId}</if>
+            <if test="cardNo != null  and cardNo != ''"> and card_no = #{cardNo}</if>
+            <if test="cardStatus != null  and cardStatus != ''"> and card_status = #{cardStatus}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+        </where>
+    </select>
+    
+    <select id="selectTCanteenCardByCardId" parameterType="Long" resultMap="TCanteenCardResult">
+        <include refid="selectTCanteenCardVo"/>
+        where card_id = #{cardId}
+    </select>
+
+    <insert id="insertTCanteenCard" parameterType="TCanteenCard" useGeneratedKeys="true" keyProperty="cardId">
+        insert into t_canteen_card
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="userId != null">user_id,</if>
+            <if test="cardNo != null">card_no,</if>
+            <if test="cardStatus != null">card_status,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="remarks != null">remarks,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="userId != null">#{userId},</if>
+            <if test="cardNo != null">#{cardNo},</if>
+            <if test="cardStatus != null">#{cardStatus},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="remarks != null">#{remarks},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTCanteenCard" parameterType="TCanteenCard">
+        update t_canteen_card
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="userId != null">user_id = #{userId},</if>
+            <if test="cardNo != null">card_no = #{cardNo},</if>
+            <if test="cardStatus != null">card_status = #{cardStatus},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+        </trim>
+        where card_id = #{cardId}
+    </update>
+
+    <delete id="deleteTCanteenCardByCardId" parameterType="Long">
+        delete from t_canteen_card where card_id = #{cardId}
+    </delete>
+
+    <delete id="deleteTCanteenCardByCardIds" parameterType="String">
+        delete from t_canteen_card where card_id in 
+        <foreach item="cardId" collection="array" open="(" separator="," close=")">
+            #{cardId}
+        </foreach>
+    </delete>
+</mapper>

+ 110 - 0
canteen-system/src/main/resources/mapper/plant/TCanteenCardMonthMapper.xml

@@ -0,0 +1,110 @@
+<?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="com.ruoyi.plant.mapper.TCanteenCardMonthMapper">
+    
+    <resultMap type="TCanteenCardMonth" id="TCanteenCardMonthResult">
+        <result property="id"    column="id"    />
+        <result property="cardId"    column="card_id"    />
+        <result property="swipYear"    column="swip_year"    />
+        <result property="swipMonth"    column="swip_month"    />
+        <result property="swipNum"    column="swip_num"    />
+        <result property="status"    column="status"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="remarks"    column="remarks"    />
+    </resultMap>
+
+    <sql id="selectTCanteenCardMonthVo">
+        select id, card_id, swip_year, swip_month, swip_num, status, del_flag, creater_code, createdate, updater_code, updatedate, dept_id, remarks from t_canteen_card_month
+    </sql>
+
+    <select id="selectTCanteenCardMonthList" parameterType="TCanteenCardMonth" resultMap="TCanteenCardMonthResult">
+        <include refid="selectTCanteenCardMonthVo"/>
+        <where>  
+            <if test="cardId != null "> and card_id = #{cardId}</if>
+            <if test="swipYear != null  and swipYear != ''"> and swip_year = #{swipYear}</if>
+            <if test="swipMonth != null  and swipMonth != ''"> and swip_month = #{swipMonth}</if>
+            <if test="swipNum != null "> and swip_num = #{swipNum}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+        </where>
+    </select>
+    
+    <select id="selectTCanteenCardMonthById" parameterType="Long" resultMap="TCanteenCardMonthResult">
+        <include refid="selectTCanteenCardMonthVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertTCanteenCardMonth" parameterType="TCanteenCardMonth" useGeneratedKeys="true" keyProperty="id">
+        insert into t_canteen_card_month
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="cardId != null">card_id,</if>
+            <if test="swipYear != null">swip_year,</if>
+            <if test="swipMonth != null">swip_month,</if>
+            <if test="swipNum != null">swip_num,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="remarks != null">remarks,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="cardId != null">#{cardId},</if>
+            <if test="swipYear != null">#{swipYear},</if>
+            <if test="swipMonth != null">#{swipMonth},</if>
+            <if test="swipNum != null">#{swipNum},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="remarks != null">#{remarks},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTCanteenCardMonth" parameterType="TCanteenCardMonth">
+        update t_canteen_card_month
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="cardId != null">card_id = #{cardId},</if>
+            <if test="swipYear != null">swip_year = #{swipYear},</if>
+            <if test="swipMonth != null">swip_month = #{swipMonth},</if>
+            <if test="swipNum != null">swip_num = #{swipNum},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTCanteenCardMonthById" parameterType="Long">
+        delete from t_canteen_card_month where id = #{id}
+    </delete>
+
+    <delete id="deleteTCanteenCardMonthByIds" parameterType="String">
+        delete from t_canteen_card_month where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 100 - 0
canteen-system/src/main/resources/mapper/supplier/TCanteenDailyMapper.xml

@@ -0,0 +1,100 @@
+<?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="com.ruoyi.supplier.mapper.TCanteenDailyMapper">
+    
+    <resultMap type="TCanteenDaily" id="TCanteenDailyResult">
+        <result property="dailyId"    column="daily_id"    />
+        <result property="supplierId"    column="supplier_id"    />
+        <result property="uploadDate"    column="upload_date"    />
+        <result property="status"    column="status"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="remarks"    column="remarks"    />
+    </resultMap>
+
+    <sql id="selectTCanteenDailyVo">
+        select daily_id, supplier_id, upload_date, status, del_flag, creater_code, createdate, updater_code, updatedate, dept_id, remarks from t_canteen_daily
+    </sql>
+
+    <select id="selectTCanteenDailyList" parameterType="TCanteenDaily" resultMap="TCanteenDailyResult">
+        <include refid="selectTCanteenDailyVo"/>
+        <where>  
+            <if test="supplierId != null "> and supplier_id = #{supplierId}</if>
+            <if test="uploadDate != null "> and upload_date = #{uploadDate}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+        </where>
+    </select>
+    
+    <select id="selectTCanteenDailyByDailyId" parameterType="Long" resultMap="TCanteenDailyResult">
+        <include refid="selectTCanteenDailyVo"/>
+        where daily_id = #{dailyId}
+    </select>
+
+    <insert id="insertTCanteenDaily" parameterType="TCanteenDaily" useGeneratedKeys="true" keyProperty="dailyId">
+        insert into t_canteen_daily
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="supplierId != null">supplier_id,</if>
+            <if test="uploadDate != null">upload_date,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="remarks != null">remarks,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="supplierId != null">#{supplierId},</if>
+            <if test="uploadDate != null">#{uploadDate},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="remarks != null">#{remarks},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTCanteenDaily" parameterType="TCanteenDaily">
+        update t_canteen_daily
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="supplierId != null">supplier_id = #{supplierId},</if>
+            <if test="uploadDate != null">upload_date = #{uploadDate},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+        </trim>
+        where daily_id = #{dailyId}
+    </update>
+
+    <delete id="deleteTCanteenDailyByDailyId" parameterType="Long">
+        delete from t_canteen_daily where daily_id = #{dailyId}
+    </delete>
+
+    <delete id="deleteTCanteenDailyByDailyIds" parameterType="String">
+        delete from t_canteen_daily where daily_id in 
+        <foreach item="dailyId" collection="array" open="(" separator="," close=")">
+            #{dailyId}
+        </foreach>
+    </delete>
+</mapper>

+ 115 - 0
canteen-system/src/main/resources/mapper/supplier/TCanteenQualificationMapper.xml

@@ -0,0 +1,115 @@
+<?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="com.ruoyi.supplier.mapper.TCanteenQualificationMapper">
+    
+    <resultMap type="TCanteenQualification" id="TCanteenQualificationResult">
+        <result property="qualificationId"    column="qualification_id"    />
+        <result property="supplierId"    column="supplier_id"    />
+        <result property="qualificationUrl"    column="qualification_url"    />
+        <result property="startDate"    column="start_date"    />
+        <result property="endDate"    column="end_date"    />
+        <result property="documentType"    column="document_type"    />
+        <result property="status"    column="status"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="remarks"    column="remarks"    />
+    </resultMap>
+
+    <sql id="selectTCanteenQualificationVo">
+        select qualification_id, supplier_id, qualification_url, start_date, end_date, document_type, status, del_flag, creater_code, createdate, updater_code, updatedate, dept_id, remarks from t_canteen_qualification
+    </sql>
+
+    <select id="selectTCanteenQualificationList" parameterType="TCanteenQualification" resultMap="TCanteenQualificationResult">
+        <include refid="selectTCanteenQualificationVo"/>
+        <where>  
+            <if test="supplierId != null "> and supplier_id = #{supplierId}</if>
+            <if test="qualificationUrl != null  and qualificationUrl != ''"> and qualification_url = #{qualificationUrl}</if>
+            <if test="startDate != null "> and start_date = #{startDate}</if>
+            <if test="endDate != null "> and end_date = #{endDate}</if>
+            <if test="documentType != null  and documentType != ''"> and document_type = #{documentType}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+        </where>
+    </select>
+    
+    <select id="selectTCanteenQualificationByQualificationId" parameterType="Long" resultMap="TCanteenQualificationResult">
+        <include refid="selectTCanteenQualificationVo"/>
+        where qualification_id = #{qualificationId}
+    </select>
+
+    <insert id="insertTCanteenQualification" parameterType="TCanteenQualification" useGeneratedKeys="true" keyProperty="qualificationId">
+        insert into t_canteen_qualification
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="supplierId != null">supplier_id,</if>
+            <if test="qualificationUrl != null">qualification_url,</if>
+            <if test="startDate != null">start_date,</if>
+            <if test="endDate != null">end_date,</if>
+            <if test="documentType != null">document_type,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="remarks != null">remarks,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="supplierId != null">#{supplierId},</if>
+            <if test="qualificationUrl != null">#{qualificationUrl},</if>
+            <if test="startDate != null">#{startDate},</if>
+            <if test="endDate != null">#{endDate},</if>
+            <if test="documentType != null">#{documentType},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="remarks != null">#{remarks},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTCanteenQualification" parameterType="TCanteenQualification">
+        update t_canteen_qualification
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="supplierId != null">supplier_id = #{supplierId},</if>
+            <if test="qualificationUrl != null">qualification_url = #{qualificationUrl},</if>
+            <if test="startDate != null">start_date = #{startDate},</if>
+            <if test="endDate != null">end_date = #{endDate},</if>
+            <if test="documentType != null">document_type = #{documentType},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+        </trim>
+        where qualification_id = #{qualificationId}
+    </update>
+
+    <delete id="deleteTCanteenQualificationByQualificationId" parameterType="Long">
+        delete from t_canteen_qualification where qualification_id = #{qualificationId}
+    </delete>
+
+    <delete id="deleteTCanteenQualificationByQualificationIds" parameterType="String">
+        delete from t_canteen_qualification where qualification_id in 
+        <foreach item="qualificationId" collection="array" open="(" separator="," close=")">
+            #{qualificationId}
+        </foreach>
+    </delete>
+</mapper>

+ 115 - 0
canteen-system/src/main/resources/mapper/supplier/TCanteenRatingMapper.xml

@@ -0,0 +1,115 @@
+<?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="com.ruoyi.supplier.mapper.TCanteenRatingMapper">
+    
+    <resultMap type="TCanteenRating" id="TCanteenRatingResult">
+        <result property="rateId"    column="rate_id"    />
+        <result property="orderId"    column="order_id"    />
+        <result property="menuId"    column="menu_id"    />
+        <result property="score"    column="score"    />
+        <result property="comment"    column="comment"    />
+        <result property="rateTime"    column="rate_time"    />
+        <result property="status"    column="status"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="remarks"    column="remarks"    />
+    </resultMap>
+
+    <sql id="selectTCanteenRatingVo">
+        select rate_id, order_id, menu_id, score, comment, rate_time, status, del_flag, creater_code, createdate, updater_code, updatedate, dept_id, remarks from t_canteen_rating
+    </sql>
+
+    <select id="selectTCanteenRatingList" parameterType="TCanteenRating" resultMap="TCanteenRatingResult">
+        <include refid="selectTCanteenRatingVo"/>
+        <where>  
+            <if test="orderId != null "> and order_id = #{orderId}</if>
+            <if test="menuId != null "> and menu_id = #{menuId}</if>
+            <if test="score != null  and score != ''"> and score = #{score}</if>
+            <if test="comment != null  and comment != ''"> and comment = #{comment}</if>
+            <if test="rateTime != null "> and rate_time = #{rateTime}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+        </where>
+    </select>
+    
+    <select id="selectTCanteenRatingByRateId" parameterType="Long" resultMap="TCanteenRatingResult">
+        <include refid="selectTCanteenRatingVo"/>
+        where rate_id = #{rateId}
+    </select>
+
+    <insert id="insertTCanteenRating" parameterType="TCanteenRating" useGeneratedKeys="true" keyProperty="rateId">
+        insert into t_canteen_rating
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="orderId != null">order_id,</if>
+            <if test="menuId != null">menu_id,</if>
+            <if test="score != null and score != ''">score,</if>
+            <if test="comment != null and comment != ''">comment,</if>
+            <if test="rateTime != null">rate_time,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="remarks != null">remarks,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="orderId != null">#{orderId},</if>
+            <if test="menuId != null">#{menuId},</if>
+            <if test="score != null and score != ''">#{score},</if>
+            <if test="comment != null and comment != ''">#{comment},</if>
+            <if test="rateTime != null">#{rateTime},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="remarks != null">#{remarks},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTCanteenRating" parameterType="TCanteenRating">
+        update t_canteen_rating
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="orderId != null">order_id = #{orderId},</if>
+            <if test="menuId != null">menu_id = #{menuId},</if>
+            <if test="score != null and score != ''">score = #{score},</if>
+            <if test="comment != null and comment != ''">comment = #{comment},</if>
+            <if test="rateTime != null">rate_time = #{rateTime},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+        </trim>
+        where rate_id = #{rateId}
+    </update>
+
+    <delete id="deleteTCanteenRatingByRateId" parameterType="Long">
+        delete from t_canteen_rating where rate_id = #{rateId}
+    </delete>
+
+    <delete id="deleteTCanteenRatingByRateIds" parameterType="String">
+        delete from t_canteen_rating where rate_id in 
+        <foreach item="rateId" collection="array" open="(" separator="," close=")">
+            #{rateId}
+        </foreach>
+    </delete>
+</mapper>

+ 115 - 0
canteen-system/src/main/resources/mapper/supplier/TCanteenSupplierMapper.xml

@@ -0,0 +1,115 @@
+<?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="com.ruoyi.supplier.mapper.TCanteenSupplierMapper">
+    
+    <resultMap type="TCanteenSupplier" id="TCanteenSupplierResult">
+        <result property="supplierId"    column="supplier_id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="serviceType"    column="service_type"    />
+        <result property="avgRating"    column="avg_rating"    />
+        <result property="logoUrl"    column="logo_url"    />
+        <result property="description"    column="description"    />
+        <result property="status"    column="status"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="createdate"    column="createdate"    />
+        <result property="updaterCode"    column="updater_code"    />
+        <result property="updatedate"    column="updatedate"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="remarks"    column="remarks"    />
+    </resultMap>
+
+    <sql id="selectTCanteenSupplierVo">
+        select supplier_id, user_id, service_type, avg_rating, logo_url, description, status, del_flag, creater_code, createdate, updater_code, updatedate, dept_id, remarks from t_canteen_supplier
+    </sql>
+
+    <select id="selectTCanteenSupplierList" parameterType="TCanteenSupplier" resultMap="TCanteenSupplierResult">
+        <include refid="selectTCanteenSupplierVo"/>
+        <where>  
+            <if test="userId != null "> and user_id = #{userId}</if>
+            <if test="serviceType != null  and serviceType != ''"> and service_type = #{serviceType}</if>
+            <if test="avgRating != null  and avgRating != ''"> and avg_rating = #{avgRating}</if>
+            <if test="logoUrl != null  and logoUrl != ''"> and logo_url = #{logoUrl}</if>
+            <if test="description != null  and description != ''"> and description = #{description}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
+            <if test="createdate != null "> and createdate = #{createdate}</if>
+            <if test="updaterCode != null "> and updater_code = #{updaterCode}</if>
+            <if test="updatedate != null "> and updatedate = #{updatedate}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+        </where>
+    </select>
+    
+    <select id="selectTCanteenSupplierBySupplierId" parameterType="Long" resultMap="TCanteenSupplierResult">
+        <include refid="selectTCanteenSupplierVo"/>
+        where supplier_id = #{supplierId}
+    </select>
+
+    <insert id="insertTCanteenSupplier" parameterType="TCanteenSupplier" useGeneratedKeys="true" keyProperty="supplierId">
+        insert into t_canteen_supplier
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="userId != null">user_id,</if>
+            <if test="serviceType != null and serviceType != ''">service_type,</if>
+            <if test="avgRating != null">avg_rating,</if>
+            <if test="logoUrl != null">logo_url,</if>
+            <if test="description != null">description,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="createdate != null">createdate,</if>
+            <if test="updaterCode != null">updater_code,</if>
+            <if test="updatedate != null">updatedate,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="remarks != null">remarks,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="userId != null">#{userId},</if>
+            <if test="serviceType != null and serviceType != ''">#{serviceType},</if>
+            <if test="avgRating != null">#{avgRating},</if>
+            <if test="logoUrl != null">#{logoUrl},</if>
+            <if test="description != null">#{description},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="createdate != null">#{createdate},</if>
+            <if test="updaterCode != null">#{updaterCode},</if>
+            <if test="updatedate != null">#{updatedate},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="remarks != null">#{remarks},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTCanteenSupplier" parameterType="TCanteenSupplier">
+        update t_canteen_supplier
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="userId != null">user_id = #{userId},</if>
+            <if test="serviceType != null and serviceType != ''">service_type = #{serviceType},</if>
+            <if test="avgRating != null">avg_rating = #{avgRating},</if>
+            <if test="logoUrl != null">logo_url = #{logoUrl},</if>
+            <if test="description != null">description = #{description},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="createdate != null">createdate = #{createdate},</if>
+            <if test="updaterCode != null">updater_code = #{updaterCode},</if>
+            <if test="updatedate != null">updatedate = #{updatedate},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+        </trim>
+        where supplier_id = #{supplierId}
+    </update>
+
+    <delete id="deleteTCanteenSupplierBySupplierId" parameterType="Long">
+        delete from t_canteen_supplier where supplier_id = #{supplierId}
+    </delete>
+
+    <delete id="deleteTCanteenSupplierBySupplierIds" parameterType="String">
+        delete from t_canteen_supplier where supplier_id in 
+        <foreach item="supplierId" collection="array" open="(" separator="," close=")">
+            #{supplierId}
+        </foreach>
+    </delete>
+</mapper>

+ 44 - 0
canteen-ui/src/api/common/file.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询附件列表
+export function listFile(query) {
+  return request({
+    url: '/common/file/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询附件详细
+export function getFile(fileId) {
+  return request({
+    url: '/common/file/' + fileId,
+    method: 'get'
+  })
+}
+
+// 新增附件
+export function addFile(data) {
+  return request({
+    url: '/common/file',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改附件
+export function updateFile(data) {
+  return request({
+    url: '/common/file',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除附件
+export function delFile(fileId) {
+  return request({
+    url: '/common/file/' + fileId,
+    method: 'delete'
+  })
+}

+ 44 - 0
canteen-ui/src/api/goods/classify.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询菜单类型列表
+export function listClassify(query) {
+  return request({
+    url: '/goods/classify/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询菜单类型详细
+export function getClassify(classifyId) {
+  return request({
+    url: '/goods/classify/' + classifyId,
+    method: 'get'
+  })
+}
+
+// 新增菜单类型
+export function addClassify(data) {
+  return request({
+    url: '/goods/classify',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改菜单类型
+export function updateClassify(data) {
+  return request({
+    url: '/goods/classify',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除菜单类型
+export function delClassify(classifyId) {
+  return request({
+    url: '/goods/classify/' + classifyId,
+    method: 'delete'
+  })
+}

+ 44 - 0
canteen-ui/src/api/goods/inventory.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询库存列表
+export function listInventory(query) {
+  return request({
+    url: '/goods/inventory/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询库存详细
+export function getInventory(inventoryId) {
+  return request({
+    url: '/goods/inventory/' + inventoryId,
+    method: 'get'
+  })
+}
+
+// 新增库存
+export function addInventory(data) {
+  return request({
+    url: '/goods/inventory',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改库存
+export function updateInventory(data) {
+  return request({
+    url: '/goods/inventory',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除库存
+export function delInventory(inventoryId) {
+  return request({
+    url: '/goods/inventory/' + inventoryId,
+    method: 'delete'
+  })
+}

+ 44 - 0
canteen-ui/src/api/goods/menu.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询菜单列表
+export function listMenu(query) {
+  return request({
+    url: '/goods/menu/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询菜单详细
+export function getMenu(menuId) {
+  return request({
+    url: '/goods/menu/' + menuId,
+    method: 'get'
+  })
+}
+
+// 新增菜单
+export function addMenu(data) {
+  return request({
+    url: '/goods/menu',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改菜单
+export function updateMenu(data) {
+  return request({
+    url: '/goods/menu',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除菜单
+export function delMenu(menuId) {
+  return request({
+    url: '/goods/menu/' + menuId,
+    method: 'delete'
+  })
+}

+ 44 - 0
canteen-ui/src/api/goods/submenu.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询子菜单列表
+export function listSubmenu(query) {
+  return request({
+    url: '/goods/submenu/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询子菜单详细
+export function getSubmenu(submenuId) {
+  return request({
+    url: '/goods/submenu/' + submenuId,
+    method: 'get'
+  })
+}
+
+// 新增子菜单
+export function addSubmenu(data) {
+  return request({
+    url: '/goods/submenu',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改子菜单
+export function updateSubmenu(data) {
+  return request({
+    url: '/goods/submenu',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除子菜单
+export function delSubmenu(submenuId) {
+  return request({
+    url: '/goods/submenu/' + submenuId,
+    method: 'delete'
+  })
+}

+ 44 - 0
canteen-ui/src/api/order/detail.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询订单明细列表
+export function listDetail(query) {
+  return request({
+    url: '/order/detail/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询订单明细详细
+export function getDetail(detailId) {
+  return request({
+    url: '/order/detail/' + detailId,
+    method: 'get'
+  })
+}
+
+// 新增订单明细
+export function addDetail(data) {
+  return request({
+    url: '/order/detail',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改订单明细
+export function updateDetail(data) {
+  return request({
+    url: '/order/detail',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除订单明细
+export function delDetail(detailId) {
+  return request({
+    url: '/order/detail/' + detailId,
+    method: 'delete'
+  })
+}

+ 44 - 0
canteen-ui/src/api/order/order.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询订单列表
+export function listOrder(query) {
+  return request({
+    url: '/order/order/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询订单详细
+export function getOrder(orderId) {
+  return request({
+    url: '/order/order/' + orderId,
+    method: 'get'
+  })
+}
+
+// 新增订单
+export function addOrder(data) {
+  return request({
+    url: '/order/order',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改订单
+export function updateOrder(data) {
+  return request({
+    url: '/order/order',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除订单
+export function delOrder(orderId) {
+  return request({
+    url: '/order/order/' + orderId,
+    method: 'delete'
+  })
+}

+ 44 - 0
canteen-ui/src/api/order/payment.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询支付记录列表
+export function listPayment(query) {
+  return request({
+    url: '/order/payment/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询支付记录详细
+export function getPayment(payId) {
+  return request({
+    url: '/order/payment/' + payId,
+    method: 'get'
+  })
+}
+
+// 新增支付记录
+export function addPayment(data) {
+  return request({
+    url: '/order/payment',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改支付记录
+export function updatePayment(data) {
+  return request({
+    url: '/order/payment',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除支付记录
+export function delPayment(payId) {
+  return request({
+    url: '/order/payment/' + payId,
+    method: 'delete'
+  })
+}

+ 44 - 0
canteen-ui/src/api/plant/card.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询员工卡管理列表
+export function listCard(query) {
+  return request({
+    url: '/plant/card/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询员工卡管理详细
+export function getCard(cardId) {
+  return request({
+    url: '/plant/card/' + cardId,
+    method: 'get'
+  })
+}
+
+// 新增员工卡管理
+export function addCard(data) {
+  return request({
+    url: '/plant/card',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改员工卡管理
+export function updateCard(data) {
+  return request({
+    url: '/plant/card',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除员工卡管理
+export function delCard(cardId) {
+  return request({
+    url: '/plant/card/' + cardId,
+    method: 'delete'
+  })
+}

+ 44 - 0
canteen-ui/src/api/plant/month.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询员工月刷卡统计列表
+export function listMonth(query) {
+  return request({
+    url: '/plant/month/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询员工月刷卡统计详细
+export function getMonth(id) {
+  return request({
+    url: '/plant/month/' + id,
+    method: 'get'
+  })
+}
+
+// 新增员工月刷卡统计
+export function addMonth(data) {
+  return request({
+    url: '/plant/month',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改员工月刷卡统计
+export function updateMonth(data) {
+  return request({
+    url: '/plant/month',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除员工月刷卡统计
+export function delMonth(id) {
+  return request({
+    url: '/plant/month/' + id,
+    method: 'delete'
+  })
+}

Некоторые файлы не были показаны из-за большого количества измененных файлов