523096025 2 meses atrás
pai
commit
1cec633693
100 arquivos alterados com 5125 adições e 11 exclusões
  1. 5 1
      ruoyi-admin/pom.xml
  2. 0 10
      ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
  3. 91 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseAutoLevelController.java
  4. 90 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseBrandController.java
  5. 90 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseBreedController.java
  6. 88 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseCoatColorController.java
  7. 88 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseCustomerChannelController.java
  8. 93 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseDepartmentController.java
  9. 95 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseEmployeeController.java
  10. 91 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseFaristAccountController.java
  11. 89 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseLevelController.java
  12. 90 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseLineController.java
  13. 90 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseMarketController.java
  14. 93 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseMaterialController.java
  15. 90 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BasePriceTypeController.java
  16. 183 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseProductCategoryController.java
  17. 93 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseProductTypeController.java
  18. 90 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseSalesTerritoryController.java
  19. 92 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseSubAccountController.java
  20. 89 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseSupplySourceController.java
  21. 93 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseUnitController.java
  22. 90 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseVarietyController.java
  23. 91 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProcureApportionController.java
  24. 182 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProcureQuotationController.java
  25. 20 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProcureQuotationGoodsController.java
  26. 131 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProcureReceivingController.java
  27. 20 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProcureReceivingGoodsController.java
  28. 119 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProcureSettlementController.java
  29. 91 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProcureSettlementGoodsController.java
  30. 92 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProcureSupplierController.java
  31. 92 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/WarehouseBaseController.java
  32. 50 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseAutoLevel.java
  33. 39 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseBrand.java
  34. 35 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseBreed.java
  35. 42 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseCoatColor.java
  36. 38 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseCustomerChannel.java
  37. 40 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseDepartment.java
  38. 119 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseEmployee.java
  39. 34 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseFaristAccount.java
  40. 41 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseLevel.java
  41. 73 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseLine.java
  42. 62 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseMarket.java
  43. 91 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseMaterial.java
  44. 66 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BasePriceType.java
  45. 44 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseProductCategory.java
  46. 44 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseProductType.java
  47. 36 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseSalesTerritory.java
  48. 45 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseSubAccount.java
  49. 37 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseSupplySource.java
  50. 41 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseUnit.java
  51. 62 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseVariety.java
  52. 43 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProcureApportion.java
  53. 76 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProcureQuotation.java
  54. 64 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProcureQuotationGoods.java
  55. 94 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProcureReceiving.java
  56. 97 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProcureReceivingGoods.java
  57. 55 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProcureSettlement.java
  58. 143 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProcureSettlementGoods.java
  59. 59 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProcureSupplier.java
  60. 52 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/WarehouseBase.java
  61. 44 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/base/Base.java
  62. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseAutoLevelMapper.java
  63. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseBrandMapper.java
  64. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseBreedMapper.java
  65. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseCoatColorMapper.java
  66. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseCustomerChannelMapper.java
  67. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseDepartmentMapper.java
  68. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseEmployeeMapper.java
  69. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseFaristAccountMapper.java
  70. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseLevelMapper.java
  71. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseLineMapper.java
  72. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseMarketMapper.java
  73. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseMaterialMapper.java
  74. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BasePriceTypeMapper.java
  75. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseProductCategoryMapper.java
  76. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseProductTypeMapper.java
  77. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseSalesTerritoryMapper.java
  78. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseSubAccountMapper.java
  79. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseSupplySourceMapper.java
  80. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseUnitMapper.java
  81. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseVarietyMapper.java
  82. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProcureApportionMapper.java
  83. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProcureQuotationGoodsMapper.java
  84. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProcureQuotationMapper.java
  85. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProcureReceivingGoodsMapper.java
  86. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProcureReceivingMapper.java
  87. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProcureSettlementGoodsMapper.java
  88. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProcureSettlementMapper.java
  89. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProcureSupplierMapper.java
  90. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/WarehouseBaseMapper.java
  91. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseAutoLevelService.java
  92. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseBrandService.java
  93. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseBreedService.java
  94. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseCoatColorService.java
  95. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseCustomerChannelService.java
  96. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseDepartmentService.java
  97. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseEmployeeService.java
  98. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseFaristAccountService.java
  99. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseLevelService.java
  100. 0 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseLineService.java

+ 5 - 1
ruoyi-admin/pom.xml

@@ -16,7 +16,11 @@
     </description>
 
     <dependencies>
-
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
         <!-- spring-boot-devtools -->
         <dependency>
             <groupId>org.springframework.boot</groupId>

+ 0 - 10
ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java

@@ -16,15 +16,5 @@ public class RuoYiApplication
     {
         // System.setProperty("spring.devtools.restart.enabled", "false");
         SpringApplication.run(RuoYiApplication.class, args);
-        System.out.println("(♥◠‿◠)ノ゙  若依启动成功   ლ(´ڡ`ლ)゙  \n" +
-                " .-------.       ____     __        \n" +
-                " |  _ _   \\      \\   \\   /  /    \n" +
-                " | ( ' )  |       \\  _. /  '       \n" +
-                " |(_ o _) /        _( )_ .'         \n" +
-                " | (_,_).' __  ___(_ o _)'          \n" +
-                " |  |\\ \\  |  ||   |(_,_)'         \n" +
-                " |  | \\ `'   /|   `-'  /           \n" +
-                " |  |  \\    /  \\      /           \n" +
-                " ''-'   `'-'    `-..-'              ");
     }
 }

+ 91 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseAutoLevelController.java

@@ -0,0 +1,91 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseAutoLevel;
+import com.ruoyi.web.base.service.IBaseAutoLevelService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 自动转级别 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-04
+ */
+@RestController
+@RequestMapping("/base-auto-level")
+public class BaseAutoLevelController {
+    @Autowired
+    private IBaseAutoLevelService baseAutoLevelService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("自动转级别管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseAutoLevel baseAutoLevel, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseAutoLevelService.count(new QueryWrapper<BaseAutoLevel>().eq("org_id",loginOrgId).eq("level_no", baseAutoLevel.getLevelNo())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseAutoLevel.setOrgId(loginOrgId);
+        baseAutoLevel.setCreateBy(getUsername());
+
+        return success(baseAutoLevelService.save(baseAutoLevel));
+    }
+
+    @ApiOperation("自动转级别管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseAutoLevel baseAutoLevel, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseAutoLevelService.count(new QueryWrapper<BaseAutoLevel>().ne("id",baseAutoLevel.getId()).eq("org_id",loginOrgId).eq("level_no", baseAutoLevel.getLevelNo())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseAutoLevel.setUpdateBy(getUsername());
+        return success(baseAutoLevelService.updateById(baseAutoLevel));
+    }
+
+    @ApiOperation("自动转级别管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            baseAutoLevelService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("自动转级别管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+
+        return success(baseAutoLevelService.list(new QueryWrapper<BaseAutoLevel>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("自动转级别管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize
+            , HttpServletRequest request) {
+        return success(baseAutoLevelService.page(new Page<BaseAutoLevel>(pageNum,pageSize),new QueryWrapper<BaseAutoLevel>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("自动转级别管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(baseAutoLevelService.getById(id));
+    }
+
+}

+ 90 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseBrandController.java

@@ -0,0 +1,90 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseBrand;
+import com.ruoyi.web.base.service.IBaseBrandService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 品牌 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+@RestController
+@RequestMapping("/base-brand")
+public class BaseBrandController {
+    @Autowired
+    private IBaseBrandService baseBrandService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("品牌管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseBrand baseBrand, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseBrandService.count(new QueryWrapper<BaseBrand>().eq("org_id",loginOrgId).eq("brand_num", baseBrand.getBrandNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseBrand.setOrgId(loginOrgId);
+        baseBrand.setCreateBy(getUsername());
+
+        return success(baseBrandService.save(baseBrand));
+    }
+
+    @ApiOperation("品牌管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseBrand baseBrand, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseBrandService.count(new QueryWrapper<BaseBrand>().ne("id",baseBrand.getId()).eq("org_id",loginOrgId).eq("brand_num", baseBrand.getBrandNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseBrand.setUpdateBy(getUsername());
+        return success(baseBrandService.updateById(baseBrand));
+    }
+
+    @ApiOperation("品牌管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            baseBrandService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("品牌管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+
+        return success(baseBrandService.list(new QueryWrapper<BaseBrand>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("品牌管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize
+            , HttpServletRequest request) {
+        return success(baseBrandService.page(new Page<BaseBrand>(pageNum,pageSize),new QueryWrapper<BaseBrand>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("品牌管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(baseBrandService.getById(id));
+    }
+}

+ 90 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseBreedController.java

@@ -0,0 +1,90 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseBreed;
+import com.ruoyi.web.base.service.IBaseBreedService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+@RestController
+@RequestMapping("/base-breed")
+public class BaseBreedController {
+    @Autowired
+    private IBaseBreedService baseBreedService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("畜种管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseBreed baseBreed, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseBreedService.count(new QueryWrapper<BaseBreed>().eq("org_id",loginOrgId).eq("breed_num", baseBreed.getBreedName())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseBreed.setOrgId(tokenService.getLoginOrgId(request));
+        baseBreed.setCreateBy(getUsername());
+
+        return success(baseBreedService.save(baseBreed));
+    }
+
+    @ApiOperation("畜种管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseBreed baseBreed, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseBreedService.count(new QueryWrapper<BaseBreed>().ne("id",baseBreed.getId()).eq("org_id",loginOrgId).eq("breed_num", baseBreed.getBreedName())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseBreed.setUpdateBy(getUsername());
+        return success(baseBreedService.updateById(baseBreed));
+    }
+
+    @ApiOperation("畜种管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            baseBreedService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("畜种管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+        return success(baseBreedService.list(new QueryWrapper<BaseBreed>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("畜种管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize
+            , HttpServletRequest request) {
+        return success(baseBreedService.page(new Page<BaseBreed>(pageNum,pageSize),new QueryWrapper<BaseBreed>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("畜种管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(baseBreedService.getById(id));
+    }
+
+}

+ 88 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseCoatColorController.java

@@ -0,0 +1,88 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseCoatColor;
+import com.ruoyi.web.base.service.IBaseCoatColorService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 毛色 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+@RestController
+@RequestMapping("/base-coat-color")
+public class BaseCoatColorController {
+    @Autowired
+    private IBaseCoatColorService baseCoatColorService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("毛色管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseCoatColor baseCoatColor, HttpServletRequest request) throws Exception  {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseCoatColorService.count(new QueryWrapper<BaseCoatColor>().eq("org_id",loginOrgId).eq("coat_num", baseCoatColor.getCoatNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseCoatColor.setOrgId(loginOrgId);
+        baseCoatColor.setCreateBy(getUsername());
+        return success(baseCoatColorService.save(baseCoatColor));
+    }
+
+    @ApiOperation("毛色管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseCoatColor baseCoatColor, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseCoatColorService.count(new QueryWrapper<BaseCoatColor>().ne("id",baseCoatColor.getId()).eq("org_id",loginOrgId).eq("coat_num", baseCoatColor.getCoatNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseCoatColor.setUpdateBy(getUsername());
+        return success(baseCoatColorService.updateById(baseCoatColor));
+    }
+
+    @ApiOperation("毛色管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            baseCoatColorService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("毛色管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+        return success(baseCoatColorService.list(new QueryWrapper<BaseCoatColor>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("毛色管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize,HttpServletRequest request
+    ) {
+        return success(baseCoatColorService.page(new Page<BaseCoatColor>(pageNum,pageSize),new QueryWrapper<BaseCoatColor>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("毛色管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(baseCoatColorService.getById(id));
+    }
+}

+ 88 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseCustomerChannelController.java

@@ -0,0 +1,88 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseCustomerChannel;
+import com.ruoyi.web.base.service.IBaseCustomerChannelService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 客户渠道 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+@RestController
+@RequestMapping("/base-customer-channel")
+public class BaseCustomerChannelController {
+    @Autowired
+    private IBaseCustomerChannelService customerChannelService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("客户渠道管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseCustomerChannel baseCustomerChannel, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (customerChannelService.count(new QueryWrapper<BaseCustomerChannel>().eq("org_id",loginOrgId).eq("customer_num", baseCustomerChannel.getCustomerNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseCustomerChannel.setOrgId(loginOrgId);
+        baseCustomerChannel.setCreateBy(getUsername());
+        return success(customerChannelService.save(baseCustomerChannel));
+    }
+
+    @ApiOperation("客户渠道管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseCustomerChannel baseCustomerChannel, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (customerChannelService.count(new QueryWrapper<BaseCustomerChannel>().ne("id",baseCustomerChannel.getId()).eq("org_id",loginOrgId).eq("customerr_num", baseCustomerChannel.getCustomerNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseCustomerChannel.setUpdateBy(getUsername());
+        return success(customerChannelService.updateById(baseCustomerChannel));
+    }
+
+    @ApiOperation("客户渠道管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            customerChannelService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("客户渠道管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+        return success(customerChannelService.list(new QueryWrapper<BaseCustomerChannel>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("客户渠道管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize,HttpServletRequest request
+    ) {
+        return success(customerChannelService.page(new Page<BaseCustomerChannel>(pageNum,pageSize),new QueryWrapper<BaseCustomerChannel>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("客户渠道管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(customerChannelService.getById(id));
+    }
+}

+ 93 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseDepartmentController.java

@@ -0,0 +1,93 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseDepartment;
+import com.ruoyi.web.base.service.IBaseDepartmentService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+@RestController
+@RequestMapping("/base-department")
+@Api("部门管理")
+public class BaseDepartmentController {
+
+    @Autowired
+    private IBaseDepartmentService baseDepartmentService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("部门管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseDepartment baseDepartment, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseDepartmentService.count(new QueryWrapper<BaseDepartment>().eq("org_id",loginOrgId).eq("department_num", baseDepartment.getDepartmentNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseDepartment.setOrgId(loginOrgId);
+        baseDepartment.setCreateBy(getUsername());
+        return success(baseDepartmentService.save(baseDepartment));
+    }
+
+    @ApiOperation("部门管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseDepartment baseDepartment, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseDepartmentService.count(new QueryWrapper<BaseDepartment>().ne("id",baseDepartment.getId())
+                .eq("org_id",loginOrgId).eq("department_num", baseDepartment.getDepartmentNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseDepartment.setUpdateBy(getUsername());
+        return success(baseDepartmentService.updateById(baseDepartment));
+    }
+
+    @ApiOperation("部门管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            baseDepartmentService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("部门管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+        return success(baseDepartmentService.list(new QueryWrapper<BaseDepartment>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("部门管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize,HttpServletRequest request
+          ) {
+        return success(baseDepartmentService.page(new Page<BaseDepartment>(pageNum,pageSize),new QueryWrapper<BaseDepartment>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("部门管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(baseDepartmentService.getById(id));
+    }
+
+}

+ 95 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseEmployeeController.java

@@ -0,0 +1,95 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseEmployee;
+import com.ruoyi.web.base.service.IBaseEmployeeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+@RestController
+@RequestMapping("/base-employee")
+@Api("员工管理")
+public class BaseEmployeeController {
+    @Autowired
+    private IBaseEmployeeService employeeService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("员工管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseEmployee baseEmployee, HttpServletRequest request) throws Exception {
+
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (employeeService.count(new QueryWrapper<BaseEmployee>().eq("org_id",loginOrgId).eq("employee_num", baseEmployee.getEmployeeNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseEmployee.setOrgId(loginOrgId);
+        baseEmployee.setCreateBy(getUsername());
+
+        return success(employeeService.save(baseEmployee));
+    }
+
+    @ApiOperation("员工管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseEmployee baseEmployee,HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (employeeService.count(new QueryWrapper<BaseEmployee>().eq("org_id",loginOrgId).eq("employee_num", baseEmployee.getEmployeeNum()).ne("id",baseEmployee.getId())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+
+        baseEmployee.setUpdateBy(getUsername());
+        return success(employeeService.updateById(baseEmployee));
+    }
+
+    @ApiOperation("员工管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            employeeService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("员工管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+        return success(employeeService.list(new QueryWrapper<BaseEmployee>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("员工管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize,HttpServletRequest request
+    ) {
+        return success(employeeService.page(new Page<BaseEmployee>(pageNum,pageSize),new QueryWrapper<BaseEmployee>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("员工管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(employeeService.getById(id));
+    }
+
+
+}

+ 91 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseFaristAccountController.java

@@ -0,0 +1,91 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseFaristAccount;
+import com.ruoyi.web.base.service.IBaseFaristAccountService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 一级科目 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-04
+ */
+@RestController
+@RequestMapping("/base-farist-account")
+public class BaseFaristAccountController {
+    @Autowired
+    private IBaseFaristAccountService baseFaristAccountService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("一级科目管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseFaristAccount baseFaristAccount, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseFaristAccountService.count(new QueryWrapper<BaseFaristAccount>().eq("org_id",loginOrgId).eq("farist_num", baseFaristAccount.getFaristNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseFaristAccount.setOrgId(loginOrgId);
+        baseFaristAccount.setCreateBy(getUsername());
+
+        return success(baseFaristAccountService.save(baseFaristAccount));
+    }
+
+    @ApiOperation("一级科目管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseFaristAccount baseFaristAccount, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseFaristAccountService.count(new QueryWrapper<BaseFaristAccount>().ne("id",baseFaristAccount.getId()).eq("org_id",loginOrgId).eq("farist_num", baseFaristAccount.getFaristNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseFaristAccount.setUpdateBy(getUsername());
+        return success(baseFaristAccountService.updateById(baseFaristAccount));
+    }
+
+    @ApiOperation("一级科目管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            baseFaristAccountService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("一级科目管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+
+        return success(baseFaristAccountService.list(new QueryWrapper<BaseFaristAccount>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("一级科目管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize
+            , HttpServletRequest request) {
+        return success(baseFaristAccountService.page(new Page<BaseFaristAccount>(pageNum,pageSize),new QueryWrapper<BaseFaristAccount>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("一级科目管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(baseFaristAccountService.getById(id));
+    }
+
+}

+ 89 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseLevelController.java

@@ -0,0 +1,89 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseLevel;
+import com.ruoyi.web.base.service.IBaseLevelService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+@RestController
+@RequestMapping("/base-level")
+public class BaseLevelController {
+    @Autowired
+    private IBaseLevelService baseLevelService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("级别管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseLevel baseLevel, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseLevelService.count(new QueryWrapper<BaseLevel>().eq("org_id",loginOrgId).eq("level_no", baseLevel.getLevelName())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+
+        baseLevel.setOrgId(loginOrgId);
+        baseLevel.setCreateBy(getUsername());
+        return success(baseLevelService.save(baseLevel));
+    }
+
+    @ApiOperation("级别管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseLevel baseLevel, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseLevelService.count(new QueryWrapper<BaseLevel>().ne("id",baseLevel.getId()).eq("org_id",loginOrgId).eq("level_no", baseLevel.getLevelName())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseLevel.setUpdateBy(getUsername());
+        return success(baseLevelService.updateById(baseLevel));
+    }
+
+    @ApiOperation("级别管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            baseLevelService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("级别管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+        return success(baseLevelService.list(new QueryWrapper<BaseLevel>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("级别管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize,HttpServletRequest request
+    ) {
+        return success(baseLevelService.page(new Page<BaseLevel>(pageNum,pageSize),new QueryWrapper<BaseLevel>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("级别管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(baseLevelService.getById(id));
+    }
+}

+ 90 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseLineController.java

@@ -0,0 +1,90 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseLine;
+import com.ruoyi.web.base.service.IBaseLineService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 物流线 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+@RestController
+@RequestMapping("/base-line")
+public class BaseLineController {
+
+    @Autowired
+    private IBaseLineService baseLineService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("物流线管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseLine baseLine, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseLineService.count(new QueryWrapper<BaseLine>().eq("org_id",loginOrgId).eq("line_num", baseLine.getLineNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+
+        baseLine.setOrgId(loginOrgId);
+        baseLine.setCreateBy(getUsername());
+        return success(baseLineService.save(baseLine));
+    }
+
+    @ApiOperation("物流线管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseLine baseLine, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseLineService.count(new QueryWrapper<BaseLine>().ne("id",baseLine.getId()).eq("org_id",loginOrgId).eq("line_num", baseLine.getLineNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseLine.setUpdateBy(getUsername());
+        return success(baseLineService.updateById(baseLine));
+    }
+
+    @ApiOperation("物流线管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            baseLineService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("物流线管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+        return success(baseLineService.list(new QueryWrapper<BaseLine>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("物流线管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize,HttpServletRequest request
+    ) {
+        return success(baseLineService.page(new Page<BaseLine>(pageNum,pageSize),new QueryWrapper<BaseLine>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("物流线管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(baseLineService.getById(id));
+    }
+}

+ 90 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseMarketController.java

@@ -0,0 +1,90 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseMarket;
+import com.ruoyi.web.base.service.IBaseMarketService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 市场 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+@RestController
+@RequestMapping("/base-market")
+public class BaseMarketController {
+
+    @Autowired
+    private IBaseMarketService baseMarketService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("市场管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseMarket baseMarket, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseMarketService.count(new QueryWrapper<BaseMarket>().eq("org_id",loginOrgId).eq("marke_num", baseMarket.getMarketNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseMarket.setOrgId(loginOrgId);
+        baseMarket.setCreateBy(getUsername());
+        return success(baseMarketService.save(baseMarket));
+    }
+
+    @ApiOperation("市场管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseMarket baseMarket, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseMarketService.count(new QueryWrapper<BaseMarket>().ne("id",baseMarket.getId()).eq("org_id",loginOrgId).eq("marke_num", baseMarket.getMarketNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseMarket.setUpdateBy(getUsername());
+        return success(baseMarketService.updateById(baseMarket));
+    }
+
+    @ApiOperation("市场管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            baseMarketService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("市场管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+        return success(baseMarketService.list(new QueryWrapper<BaseMarket>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("市场管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize,HttpServletRequest request
+    ) {
+        return success(baseMarketService.page(new Page<BaseMarket>(pageNum,pageSize),new QueryWrapper<BaseMarket>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("市场管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(baseMarketService.getById(id));
+    }
+
+}

+ 93 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseMaterialController.java

@@ -0,0 +1,93 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseMaterial;
+import com.ruoyi.web.base.service.IBaseMaterialService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+@RestController
+@RequestMapping("/base-material")
+public class BaseMaterialController {
+    @Autowired
+    private IBaseMaterialService baseMaterialService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("物料管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseMaterial baseMaterial, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseMaterialService.count(new QueryWrapper<BaseMaterial>().eq("org_id",loginOrgId).eq("goods_num", baseMaterial.getGoodsNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+
+        baseMaterial.setOrgId(loginOrgId);
+        baseMaterial.setCreateBy(getUsername());
+        return success(baseMaterialService.save(baseMaterial));
+    }
+
+    @ApiOperation("物料管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseMaterial baseMaterial, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseMaterialService.count(new QueryWrapper<BaseMaterial>().ne("id",baseMaterial.getId()).eq("org_id",loginOrgId).eq("goods_num", baseMaterial.getGoodsNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseMaterial.setUpdateBy(getUsername());
+        return success(baseMaterialService.updateById(baseMaterial));
+    }
+
+    @ApiOperation("物料管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            baseMaterialService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("物料管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( @RequestBody Map<String, String> paramsMap,HttpServletRequest request){
+           return success(baseMaterialService.list(new QueryWrapper<BaseMaterial>().eq("org_id",tokenService.getLoginOrgId(request))));
+
+    }
+
+    @ApiOperation("物料管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize,HttpServletRequest request
+    ) {
+        return success(baseMaterialService.page(new Page<BaseMaterial>(pageNum,pageSize),new QueryWrapper<BaseMaterial>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("物料管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(baseMaterialService.getById(id));
+    }
+
+
+}

+ 90 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BasePriceTypeController.java

@@ -0,0 +1,90 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BasePriceType;
+import com.ruoyi.web.base.service.IBasePriceTypeService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 价格类型 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-04
+ */
+@RestController
+@RequestMapping("/base-price-type")
+public class BasePriceTypeController {
+    @Autowired
+    private IBasePriceTypeService basePriceTypeService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("价格类型管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BasePriceType basePriceType, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (basePriceTypeService.count(new QueryWrapper<BasePriceType>().eq("org_id",loginOrgId).eq("price_type_num", basePriceType.getPriceTypeNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        basePriceType.setOrgId(loginOrgId);
+        basePriceType.setCreateBy(getUsername());
+
+        return success(basePriceTypeService.save(basePriceType));
+    }
+
+    @ApiOperation("价格类型管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BasePriceType basePriceType, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (basePriceTypeService.count(new QueryWrapper<BasePriceType>().ne("id",basePriceType.getId()).eq("org_id",loginOrgId).eq("price_type_num", basePriceType.getPriceTypeNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        basePriceType.setUpdateBy(getUsername());
+        return success(basePriceTypeService.updateById(basePriceType));
+    }
+
+    @ApiOperation("价格类型管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            basePriceTypeService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("价格类型管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+
+        return success(basePriceTypeService.list(new QueryWrapper<BasePriceType>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("价格类型管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize
+            , HttpServletRequest request) {
+        return success(basePriceTypeService.page(new Page<BasePriceType>(pageNum,pageSize),new QueryWrapper<BasePriceType>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("价格类型管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(basePriceTypeService.getById(id));
+    }
+}

+ 183 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseProductCategoryController.java

@@ -0,0 +1,183 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseMaterial;
+import com.ruoyi.web.base.domain.BaseProductCategory;
+import com.ruoyi.web.base.service.IBaseMaterialService;
+import com.ruoyi.web.base.service.IBaseProductCategoryService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import static com.ruoyi.common.core.domain.AjaxResult.error;
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 货品类别 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-04
+ */
+@RestController
+@RequestMapping("/base-product-category")
+public class BaseProductCategoryController {
+    @Autowired
+    private IBaseProductCategoryService baseProductCategoryService;
+    @Autowired
+    private TokenService tokenService;
+    @Autowired
+    private IBaseMaterialService baseMaterialService;
+
+    @ApiOperation("货品类别管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseProductCategory baseProductCategory, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseProductCategoryService.count(new QueryWrapper<BaseProductCategory>().eq("org_id",loginOrgId).eq("num", baseProductCategory.getNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseProductCategory.setOrgId(loginOrgId);
+        baseProductCategory.setCreateBy(getUsername());
+
+        return success(baseProductCategoryService.save(baseProductCategory));
+    }
+
+    @ApiOperation("货品类别管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseProductCategory baseProductCategory, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseProductCategoryService.count(new QueryWrapper<BaseProductCategory>().ne("id",baseProductCategory.getId()).eq("org_id",loginOrgId).eq("num", baseProductCategory.getNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseProductCategory.setUpdateBy(getUsername());
+        return success(baseProductCategoryService.updateById(baseProductCategory));
+    }
+
+    @ApiOperation("货品类别管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            baseProductCategoryService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("货品类别管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+
+        return success(baseProductCategoryService.list(new QueryWrapper<BaseProductCategory>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("货品类别管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize
+            , HttpServletRequest request) {
+        return success(baseProductCategoryService.page(new Page<BaseProductCategory>(pageNum,pageSize),new QueryWrapper<BaseProductCategory>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("货品类别管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(baseProductCategoryService.getById(id));
+    }
+
+    @ApiOperation("货品类别结构")
+    @PostMapping("/productStructure")
+    @Transactional
+    public AjaxResult productStructure(@RequestBody Map<String, String> paramsMap){
+        String parentId = paramsMap.get("parentId");
+        String ids = paramsMap.get("ids");
+        if (StringUtils.isNotEmpty(parentId) && StringUtils.isNotEmpty(ids)){
+            String[] split = ids.split(",");
+            BaseProductCategory baseProductCategory = new BaseProductCategory();
+            baseProductCategory.setParentId(Integer.parseInt(parentId));
+            baseProductCategoryService.update(baseProductCategory ,new UpdateWrapper<BaseProductCategory>().in("id", split));
+
+            return success();
+        }
+        return error("请传入编号");
+    }
+
+    @ApiOperation("树状货品类别管理列表")
+    @PostMapping("/listTree")
+    public AjaxResult listTree( HttpServletRequest request){
+        List<BaseProductCategory> productCategories = baseProductCategoryService.list(new QueryWrapper<BaseProductCategory>().eq("org_id", tokenService.getLoginOrgId(request)));
+
+        return success(buildTree(productCategories,0));
+    }
+
+    @ApiOperation("根据类别获取全部物料")
+    @PostMapping("/listMaterialByGoodsType")
+    public AjaxResult listAll( @RequestBody Map<String, String> paramsMap,HttpServletRequest request){
+        String goodsType = paramsMap.get("goodsType");
+
+        if (StringUtils.isEmpty(goodsType)){
+            return success(baseMaterialService.list(new QueryWrapper<BaseMaterial>().eq("org_id", tokenService.getLoginOrgId(request))));
+        }else {
+            List<BaseProductCategory> productCategories = baseProductCategoryService.list(new QueryWrapper<BaseProductCategory>().eq("org_id", tokenService.getLoginOrgId(request)));
+            BaseProductCategory num = baseProductCategoryService.getOne(new QueryWrapper<BaseProductCategory>().eq("num", goodsType));
+            List<BaseProductCategory> productCategories1 = buildTree(productCategories, num.getId());
+            List<String> collect = productCategories1.stream().map(BaseProductCategory::getNum).collect(Collectors.toList());
+            collect.add(goodsType);
+
+            return success(baseMaterialService
+                    .list(new QueryWrapper<BaseMaterial>().eq("org_id", tokenService.getLoginOrgId(request))
+                            .in("goods_type",collect)));
+
+
+        }
+
+
+    }
+
+
+    public List<BaseProductCategory> buildTree(List<BaseProductCategory> nodes, Integer maxId ) {
+        // 1. 创建ID到节点的映射
+        Map<Integer, BaseProductCategory> nodeMap = new HashMap<>();
+        for (BaseProductCategory node : nodes) {
+            nodeMap.put(node.getId(), node);
+        }
+
+        List<BaseProductCategory> roots = new ArrayList<>();
+        // 2. 构建父子关系
+        for (BaseProductCategory node : nodes) {
+            Integer parentId = node.getParentId();
+            if (parentId.equals(maxId)) {
+                roots.add(node); // 顶级节点直接加入根列表
+            } else {
+                BaseProductCategory parent = nodeMap.get(parentId);
+                if (parent != null) {
+
+                    parent.getChild().add(node);
+
+                } else {
+                    // 处理无效parentId:可抛异常或作为根节点
+
+                    //roots.add(node);
+                }
+            }
+        }
+        return roots;
+    }
+
+}

+ 93 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseProductTypeController.java

@@ -0,0 +1,93 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseProductType;
+import com.ruoyi.web.base.service.IBaseProductTypeService;
+import com.ruoyi.web.base.service.IBaseProductTypeService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 产品类型 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-06
+ */
+@RestController
+@RequestMapping("/base-product-type")
+public class BaseProductTypeController {
+
+    @Autowired
+    private IBaseProductTypeService  baseProductTypeService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("产品类型管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseProductType baseProductType, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseProductTypeService.count(new QueryWrapper<BaseProductType>().eq("org_id",loginOrgId).eq("type_num", baseProductType.getTypeNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseProductType.setOrgId(loginOrgId);
+        baseProductType.setCreateBy(getUsername());
+
+        return success(baseProductTypeService.save(baseProductType));
+    }
+
+    @ApiOperation("仓库管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseProductType baseProductType, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseProductTypeService.count(new QueryWrapper<BaseProductType>().ne("id",baseProductType.getId()).eq("org_id",loginOrgId).eq("type_num", baseProductType.getTypeNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseProductType.setUpdateBy(getUsername());
+        return success(baseProductTypeService.updateById(baseProductType));
+    }
+
+    @ApiOperation("仓库管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            baseProductTypeService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("仓库管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+
+        return success(baseProductTypeService.list(new QueryWrapper<BaseProductType>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("仓库管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize
+            , HttpServletRequest request) {
+        return success(baseProductTypeService.page(new Page<BaseProductType>(pageNum,pageSize),new QueryWrapper<BaseProductType>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("仓库管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(baseProductTypeService.getById(id));
+    }
+
+}

+ 90 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseSalesTerritoryController.java

@@ -0,0 +1,90 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseSalesTerritory;
+import com.ruoyi.web.base.service.IBaseSalesTerritoryService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 销售区域 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+@RestController
+@RequestMapping("/base-sales-territory")
+public class BaseSalesTerritoryController {
+    @Autowired
+    private IBaseSalesTerritoryService baseSalesTerritoryService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("销售区域管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseSalesTerritory baseSalesTerritory, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseSalesTerritoryService.count(new QueryWrapper<BaseSalesTerritory>().eq("org_id",loginOrgId).eq("sales_territory_num", baseSalesTerritory.getSalesTerritoryNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+
+        baseSalesTerritory.setOrgId(loginOrgId);
+        baseSalesTerritory.setCreateBy(getUsername());
+        return success(baseSalesTerritoryService.save(baseSalesTerritory));
+    }
+
+    @ApiOperation("销售区域管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseSalesTerritory baseSalesTerritory, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseSalesTerritoryService.count(new QueryWrapper<BaseSalesTerritory>().ne("id",baseSalesTerritory.getId()).eq("org_id",loginOrgId).eq("sales_territory_num", baseSalesTerritory.getSalesTerritoryNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseSalesTerritory.setUpdateBy(getUsername());
+        return success(baseSalesTerritoryService.updateById(baseSalesTerritory));
+    }
+
+    @ApiOperation("销售区域管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            baseSalesTerritoryService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("销售区域管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+        return success(baseSalesTerritoryService.list(new QueryWrapper<BaseSalesTerritory>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("销售区域管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize,HttpServletRequest request
+    ) {
+        return success(baseSalesTerritoryService.page(new Page<BaseSalesTerritory>(pageNum,pageSize),new QueryWrapper<BaseSalesTerritory>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("销售区域管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(baseSalesTerritoryService.getById(id));
+    }
+
+}

+ 92 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseSubAccountController.java

@@ -0,0 +1,92 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseSubAccount;
+import com.ruoyi.web.base.service.IBaseSubAccountService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 二级科目 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-04
+ */
+@RestController
+@RequestMapping("/base-sub-account")
+public class BaseSubAccountController {
+    @Autowired
+    private IBaseSubAccountService baseSubAccountService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("二级科目管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseSubAccount baseSubAccount, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseSubAccountService.count(new QueryWrapper<BaseSubAccount>().eq("org_id",loginOrgId).eq("sub_num", baseSubAccount.getSubNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseSubAccount.setOrgId(loginOrgId);
+        baseSubAccount.setCreateBy(getUsername());
+
+        return success(baseSubAccountService.save(baseSubAccount));
+    }
+
+    @ApiOperation("二级科目管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseSubAccount baseSubAccount, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseSubAccountService.count(new QueryWrapper<BaseSubAccount>().ne("id",baseSubAccount.getId()).eq("org_id",loginOrgId).eq("sub_num", baseSubAccount.getSubNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseSubAccount.setUpdateBy(getUsername());
+        return success(baseSubAccountService.updateById(baseSubAccount));
+    }
+
+    @ApiOperation("二级科目管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            baseSubAccountService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("二级科目管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+
+        return success(baseSubAccountService.list(new QueryWrapper<BaseSubAccount>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("二级科目管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize
+            , HttpServletRequest request) {
+        return success(baseSubAccountService.page(new Page<BaseSubAccount>(pageNum,pageSize),new QueryWrapper<BaseSubAccount>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("二级科目管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(baseSubAccountService.getById(id));
+    }
+
+
+}

+ 89 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseSupplySourceController.java

@@ -0,0 +1,89 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseSupplySource;
+import com.ruoyi.web.base.service.IBaseSupplySourceService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 供应来源 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+@RestController
+@RequestMapping("/base-supply-source")
+public class BaseSupplySourceController {
+    @Autowired
+    private IBaseSupplySourceService baseSupplySourceService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("供应来源管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseSupplySource baseSupplySource, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseSupplySourceService.count(new QueryWrapper<BaseSupplySource>().eq("org_id",loginOrgId).eq("supply_source_num", baseSupplySource.getSupplySourceNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+
+        baseSupplySource.setOrgId(loginOrgId);
+        baseSupplySource.setCreateBy(getUsername());
+        return success(baseSupplySourceService.save(baseSupplySource));
+    }
+
+    @ApiOperation("供应来源管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseSupplySource baseSupplySource, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseSupplySourceService.count(new QueryWrapper<BaseSupplySource>().ne("id",baseSupplySource.getId()).eq("org_id",loginOrgId).eq("supply_source_num", baseSupplySource.getSupplySourceNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseSupplySource.setUpdateBy(getUsername());
+        return success(baseSupplySourceService.updateById(baseSupplySource));
+    }
+
+    @ApiOperation("供应来源管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            baseSupplySourceService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("供应来源管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+        return success(baseSupplySourceService.list(new QueryWrapper<BaseSupplySource>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("供应来源管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize,HttpServletRequest request
+    ) {
+        return success(baseSupplySourceService.page(new Page<BaseSupplySource>(pageNum,pageSize),new QueryWrapper<BaseSupplySource>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("供应来源管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(baseSupplySourceService.getById(id));
+    }
+}

+ 93 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseUnitController.java

@@ -0,0 +1,93 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseUnit;
+import com.ruoyi.web.base.service.IBaseUnitService;
+import com.ruoyi.web.base.service.IBaseUnitService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 单位 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-06
+ */
+@RestController
+@RequestMapping("/base-unit")
+public class BaseUnitController {
+    @Autowired
+    private IBaseUnitService baseUnitService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("单位管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseUnit baseUnit, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseUnitService.count(new QueryWrapper<BaseUnit>().eq("org_id",loginOrgId).eq("unit_name", baseUnit.getUnitName())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseUnit.setOrgId(loginOrgId);
+        baseUnit.setCreateBy(getUsername());
+
+        return success(baseUnitService.save(baseUnit));
+    }
+
+    @ApiOperation("仓库管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseUnit baseUnit, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseUnitService.count(new QueryWrapper<BaseUnit>().ne("id",baseUnit.getId()).eq("org_id",loginOrgId).eq("unit_name", baseUnit.getUnitName())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseUnit.setUpdateBy(getUsername());
+        return success(baseUnitService.updateById(baseUnit));
+    }
+
+    @ApiOperation("仓库管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            baseUnitService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("仓库管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+
+        return success(baseUnitService.list(new QueryWrapper<BaseUnit>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("仓库管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize
+            , HttpServletRequest request) {
+        return success(baseUnitService.page(new Page<BaseUnit>(pageNum,pageSize),new QueryWrapper<BaseUnit>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("仓库管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(baseUnitService.getById(id));
+    }
+
+
+}

+ 90 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseVarietyController.java

@@ -0,0 +1,90 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.BaseVariety;
+import com.ruoyi.web.base.service.IBaseVarietyService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+@RestController
+@RequestMapping("/base-variety")
+public class BaseVarietyController {
+    @Autowired
+    private IBaseVarietyService baseVarietyService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("品种管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody BaseVariety baseVariety, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseVarietyService.count(new QueryWrapper<BaseVariety>().eq("org_id",loginOrgId).eq("variet_yno", baseVariety.getVarietyNo())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+
+        baseVariety.setOrgId(loginOrgId);
+        baseVariety.setCreateBy(getUsername());
+        return success(baseVarietyService.save(baseVariety));
+    }
+
+    @ApiOperation("品种管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody BaseVariety baseVariety, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (baseVarietyService.count(new QueryWrapper<BaseVariety>().ne("id",baseVariety.getId()).eq("org_id",loginOrgId).eq("variet_yno", baseVariety.getVarietyNo())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        baseVariety.setUpdateBy(getUsername());
+        return success(baseVarietyService.updateById(baseVariety));
+    }
+
+    @ApiOperation("品种管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            baseVarietyService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("品种管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+        return success(baseVarietyService.list(new QueryWrapper<BaseVariety>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("品种管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize,HttpServletRequest request
+    ) {
+        return success(baseVarietyService.page(new Page<BaseVariety>(pageNum,pageSize),new QueryWrapper<BaseVariety>().eq("org_id",tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("品种管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(baseVarietyService.getById(id));
+    }
+
+}

+ 91 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProcureApportionController.java

@@ -0,0 +1,91 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.ProcureApportion;
+import com.ruoyi.web.base.service.IProcureApportionService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 分摊 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+@RestController
+@RequestMapping("/procure-apportion")
+public class ProcureApportionController {
+    @Autowired
+    private IProcureApportionService procureApportionService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("分摊管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody ProcureApportion procureApportion, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (procureApportionService.count(new QueryWrapper<ProcureApportion>().eq("org_id",loginOrgId).eq("goods_num", procureApportion.getGoodsNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        procureApportion.setOrgId(loginOrgId);
+        procureApportion.setCreateBy(getUsername());
+
+        return success(procureApportionService.save(procureApportion));
+    }
+
+    @ApiOperation("分摊管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody ProcureApportion procureApportion, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (procureApportionService.count(new QueryWrapper<ProcureApportion>().ne("id",procureApportion.getId()).eq("org_id",loginOrgId).eq("goods_num", procureApportion.getGoodsNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        procureApportion.setUpdateBy(getUsername());
+        return success(procureApportionService.updateById(procureApportion));
+    }
+
+    @ApiOperation("分摊管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            procureApportionService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("分摊管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+
+        return success(procureApportionService.list(new QueryWrapper<ProcureApportion>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("分摊管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize
+            , HttpServletRequest request) {
+        return success(procureApportionService.page(new Page<ProcureApportion>(pageNum,pageSize),new QueryWrapper<ProcureApportion>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("分摊管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(procureApportionService.getById(id));
+    }
+
+}

+ 182 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProcureQuotationController.java

@@ -0,0 +1,182 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.ProcureQuotation;
+import com.ruoyi.web.base.domain.ProcureQuotationGoods;
+import com.ruoyi.web.base.service.IProcureQuotationService;
+import com.ruoyi.web.base.service.IProcureQuotationGoodsService;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.models.auth.In;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+/**
+ * <p>
+ * 供应商报价单 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+@RestController
+@RequestMapping("/procure-quotation")
+public class ProcureQuotationController {
+    @Autowired
+    private IProcureQuotationService procureQuotationService;
+    @Autowired
+    private IProcureQuotationGoodsService goodsService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("供应商报价单添加")
+    @PostMapping("/add")
+    @Transactional
+    public AjaxResult add(@RequestBody ProcureQuotation procureQuotation, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (procureQuotationService.count(new QueryWrapper<ProcureQuotation>().eq("org_id",loginOrgId).eq("quotation_num", procureQuotation.getQuotationNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        String username = getUsername();
+        procureQuotation.setOrgId(loginOrgId);
+        procureQuotation.setCreateBy(username);
+        List<ProcureQuotationGoods> goods = procureQuotation.getGoods();
+        for (ProcureQuotationGoods good : goods) {
+            good.setOrgId(loginOrgId);
+            good.setCreateBy(username);
+            good.setQuotationNum(procureQuotation.getQuotationNum());
+            goodsService.save(good);
+        }
+
+        return success(procureQuotationService.save(procureQuotation));
+    }
+
+    @ApiOperation("供应商报价单修改")
+    @PostMapping("/edit")
+    @Transactional
+    public AjaxResult edit(@RequestBody ProcureQuotation procureQuotation, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (procureQuotationService.count(new QueryWrapper<ProcureQuotation>().ne("id",procureQuotation.getId()).eq("org_id",loginOrgId).eq("quotation_num", procureQuotation.getQuotationNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+
+        String username = getUsername();
+        procureQuotation.setOrgId(loginOrgId);
+        procureQuotation.setCreateBy(username);
+        List<ProcureQuotationGoods> goods = procureQuotation.getGoods();
+        goodsService.remove(new QueryWrapper<ProcureQuotationGoods>().eq("quotation_num",procureQuotation.getQuotationNum()));
+        for (ProcureQuotationGoods good : goods) {
+            good.setOrgId(loginOrgId);
+            good.setCreateBy(username);
+            good.setQuotationNum(procureQuotation.getQuotationNum());
+            goodsService.save(good);
+        }
+        procureQuotation.setUpdateBy(username);
+
+        return success(procureQuotationService.updateById(procureQuotation));
+    }
+
+    @ApiOperation("供应商报价单删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            procureQuotationService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("供应商报价单列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+        List<ProcureQuotation> org_id = procureQuotationService.list(new QueryWrapper<ProcureQuotation>().eq("org_id", tokenService.getLoginOrgId(request)));
+        for (ProcureQuotation procureQuotation : org_id) {
+            procureQuotation.setGoods(goodsService.list(new QueryWrapper<ProcureQuotationGoods>().eq("quotation_num",procureQuotation.getQuotationNum())));
+        }
+        return success(org_id);
+    }
+
+    @ApiOperation("供应商报价单分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize
+            , HttpServletRequest request) {
+        Page<ProcureQuotation> org_id = procureQuotationService.page(new Page<ProcureQuotation>(pageNum, pageSize), new QueryWrapper<ProcureQuotation>().eq("org_id", tokenService.getLoginOrgId(request)));
+        for (ProcureQuotation procureQuotation : org_id.getRecords()) {
+            procureQuotation.setGoods(goodsService.list(new QueryWrapper<ProcureQuotationGoods>().eq("quotation_num",procureQuotation.getQuotationNum())));
+        }
+        return success(org_id);
+    }
+
+    @ApiOperation("供应商报价单详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        ProcureQuotation byId = procureQuotationService.getById(id);
+        byId.setGoods(goodsService.list(new QueryWrapper<ProcureQuotationGoods>().eq("quotation_num",byId.getQuotationNum())));
+        return success(byId);
+    }
+
+    @ApiOperation("获取最新报价单编号")
+    @PostMapping("/getQuotaNum")
+    public AjaxResult getQuotaNum(HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+
+        ProcureQuotation one = procureQuotationService.getOne(new QueryWrapper<ProcureQuotation>().eq("org_id", loginOrgId).orderByDesc("id").last("limit 1"));
+        if (ObjectUtils.isEmpty(one)){
+
+            return success(generateString("bj",1));
+        }
+        String quotationNum = one.getQuotationNum();
+
+        return success(generateString("bj",substringToInt(quotationNum)));
+
+    }
+
+    public static int substringToInt(String input) {
+        // 空值检查
+        if (input == null) {
+            throw new IllegalArgumentException("输入字符串不能为null");
+        }
+
+        // 长度检查
+        if (input.length() < 3) {
+            throw new IllegalArgumentException("输入字符串长度必须至少为3位");
+        }
+
+        // 截取后三位
+        String lastThree = input.substring(input.length() - 3);
+
+        try {
+            // 转换为整数
+            return Integer.parseInt(lastThree)+1;
+        } catch (NumberFormatException e) {
+            throw new IllegalArgumentException("后三位'" + lastThree + "'不是有效的数字");
+        }
+    }
+
+        public static String generateString(String prefix, Integer numberStr) {
+            // 获取当前日期并格式化为yyyyMMdd
+            LocalDate currentDate = LocalDate.now();
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
+            String formattedDate = currentDate.format(formatter);
+
+            String format = String.format("%03d", numberStr);
+            // 拼接结果
+            return prefix + formattedDate + format;
+        }
+
+
+}

+ 20 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProcureQuotationGoodsController.java

@@ -0,0 +1,20 @@
+package com.ruoyi.web.base.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 供应商报价单,货品表 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+@RestController
+@RequestMapping("/procure-quotation-goods")
+public class ProcureQuotationGoodsController {
+
+}

+ 131 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProcureReceivingController.java

@@ -0,0 +1,131 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.ProcureQuotation;
+import com.ruoyi.web.base.domain.ProcureQuotationGoods;
+import com.ruoyi.web.base.domain.ProcureReceiving;
+import com.ruoyi.web.base.domain.ProcureReceivingGoods;
+import com.ruoyi.web.base.service.IProcureReceivingGoodsService;
+import com.ruoyi.web.base.service.IProcureReceivingService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 采购入库单 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+@RestController
+@RequestMapping("/procure-receiving")
+public class ProcureReceivingController {
+    @Autowired
+    private IProcureReceivingService procureReceivingService;
+    @Autowired
+    private IProcureReceivingGoodsService goodsService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("采购入库单添加")
+    @PostMapping("/add")
+    @Transactional
+    public AjaxResult add(@RequestBody ProcureReceiving procureReceiving, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (procureReceivingService.count(new QueryWrapper<ProcureReceiving>().eq("org_id",loginOrgId).eq("receiving_num", procureReceiving.getReceivingNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        String username = getUsername();
+        procureReceiving.setOrgId(loginOrgId);
+        procureReceiving.setCreateBy(username);
+        List<ProcureReceivingGoods> goods = procureReceiving.getGoods();
+        for (ProcureReceivingGoods good : goods) {
+            good.setOrgId(loginOrgId);
+            good.setCreateBy(username);
+            good.setReceivingNum(procureReceiving.getReceivingNum());
+            goodsService.save(good);
+        }
+
+        return success(procureReceivingService.save(procureReceiving));
+    }
+
+    @ApiOperation("采购入库单修改")
+    @PostMapping("/edit")
+    @Transactional
+    public AjaxResult edit(@RequestBody ProcureReceiving procureReceiving, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (procureReceivingService.count(new QueryWrapper<ProcureReceiving>().ne("id",procureReceiving.getId()).eq("org_id",loginOrgId).eq("receiving_num", procureReceiving.getReceivingNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+
+        String username = getUsername();
+        procureReceiving.setOrgId(loginOrgId);
+        procureReceiving.setCreateBy(username);
+        List<ProcureReceivingGoods> goods = procureReceiving.getGoods();
+        goodsService.remove(new QueryWrapper<ProcureReceivingGoods>().eq("receiving_num",procureReceiving.getReceivingNum()));
+        for (ProcureReceivingGoods good : goods) {
+            good.setOrgId(loginOrgId);
+            good.setCreateBy(username);
+            good.setReceivingNum(procureReceiving.getReceivingNum());
+            goodsService.save(good);
+        }
+        procureReceiving.setUpdateBy(username);
+
+        return success(procureReceivingService.updateById(procureReceiving));
+    }
+
+    @ApiOperation("采购入库单删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            procureReceivingService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("采购入库单列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+        List<ProcureReceiving> org_id = procureReceivingService.list(new QueryWrapper<ProcureReceiving>().eq("org_id", tokenService.getLoginOrgId(request)));
+        for (ProcureReceiving procureQuotation : org_id) {
+            procureQuotation.setGoods(goodsService.list(new QueryWrapper<ProcureReceivingGoods>().eq("receiving_num",procureQuotation.getReceivingNum())));
+        }
+        return success(org_id);
+    }
+
+    @ApiOperation("采购入库单分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize
+            , HttpServletRequest request) {
+        Page<ProcureReceiving> org_id = procureReceivingService.page(new Page<ProcureReceiving>(pageNum, pageSize), new QueryWrapper<ProcureReceiving>().eq("org_id", tokenService.getLoginOrgId(request)));
+        for (ProcureReceiving procureQuotation : org_id.getRecords()) {
+            procureQuotation.setGoods(goodsService.list(new QueryWrapper<ProcureReceivingGoods>().eq("receiving_num",procureQuotation.getReceivingNum())));
+        }
+        return success(org_id);
+    }
+
+    @ApiOperation("采购入库单详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        ProcureReceiving byId = procureReceivingService.getById(id);
+        byId.setGoods(goodsService.list(new QueryWrapper<ProcureReceivingGoods>().eq("receiving_num",byId.getReceivingNum())));
+        return success(byId);
+    }
+
+}

+ 20 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProcureReceivingGoodsController.java

@@ -0,0 +1,20 @@
+package com.ruoyi.web.base.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 供应商入库单,货品表 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+@RestController
+@RequestMapping("/procure-receiving-goods")
+public class ProcureReceivingGoodsController {
+
+}

+ 119 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProcureSettlementController.java

@@ -0,0 +1,119 @@
+//package com.ruoyi.web.baseandprocure.controller;
+//
+//
+//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+//import com.ruoyi.common.core.domain.AjaxResult;
+//import com.ruoyi.framework.web.service.TokenService;
+//import com.ruoyi.web.baseandprocure.domain.ProcureSettlement;
+//import com.ruoyi.web.baseandprocure.domain.ProcureSettlementGoods;
+//import com.ruoyi.web.baseandprocure.service.IProcureSettlementGoodsService;
+//import com.ruoyi.web.baseandprocure.service.IProcureSettlementService;
+//import com.ruoyi.web.baseandprocure.service.IProcureSettlementGoodsService;
+//import com.ruoyi.web.baseandprocure.service.IProcureSettlementService;
+//import io.swagger.annotations.ApiOperation;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.transaction.annotation.Transactional;
+//import org.springframework.web.bind.annotation.*;
+//
+//import javax.servlet.http.HttpServletRequest;
+//import java.util.List;
+//import java.util.Map;
+//
+//import static com.ruoyi.common.core.domain.AjaxResult.success;
+//import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+//
+///**
+// * <p>
+// * 采购结算单 前端控制器
+// * </p>
+// *
+// * @author author
+// * @since 2026-02-05
+// */
+//@RestController
+//@RequestMapping("/procure-settlement")
+//public class ProcureSettlementController {
+//    @Autowired
+//    private IProcureSettlementService settlementService;
+//    @Autowired
+//    private IProcureSettlementGoodsService goodsService;
+//    @Autowired
+//    private TokenService tokenService;
+//
+//    @ApiOperation("供应商报价单添加")
+//    @PostMapping("/add")
+//    @Transactional
+//    public AjaxResult add(@RequestBody ProcureSettlement procureSettlement, HttpServletRequest request) throws Exception {
+//        String loginOrgId = tokenService.getLoginOrgId(request);
+//
+//        String username = getUsername();
+//        procureSettlement.setOrgId(loginOrgId);
+//        procureSettlement.setCreateBy(username);
+//        List<ProcureSettlementGoods> goods = procureSettlement.getGoods();
+//        for (ProcureSettlementGoods good : goods) {
+//            good.setOrgId(loginOrgId);
+//            good.setCreateBy(username);
+//            good.setReceivingNum(procureSettlement.getReceivingNum());
+//            goodsService.save(good);
+//        }
+//
+//        return success(settlementService.save(procureSettlement));
+//    }
+//
+//    @ApiOperation("供应商报价单修改")
+//    @PostMapping("/edit")
+//    @Transactional
+//    public AjaxResult edit(@RequestBody ProcureSettlement procureSettlement, HttpServletRequest request) throws Exception {
+//        String loginOrgId = tokenService.getLoginOrgId(request);
+//        if (settlementService.count(new QueryWrapper<ProcureSettlement>().ne("id",procureSettlement.getId()).eq("org_id",loginOrgId).eq("receiving_num", procureSettlement.getReceivingNum())) >0 ){
+//            throw new Exception("该编号已存在");
+//        }
+//
+//        String username = getUsername();
+//        procureSettlement.setOrgId(loginOrgId);
+//        procureSettlement.setCreateBy(username);
+//        List<ProcureSettlementGoods> goods = procureSettlement.getGoods();
+//        goodsService.remove(new QueryWrapper<ProcureSettlementGoods>().eq("receiving_num",procureSettlement.getReceivingNum()));
+//        for (ProcureSettlementGoods good : goods) {
+//            good.setOrgId(loginOrgId);
+//            good.setCreateBy(username);
+//            good.setReceivingNum(procureSettlement.getReceivingNum());
+//            goodsService.save(good);
+//        }
+//        procureSettlement.setUpdateBy(username);
+//
+//        return success(settlementService.updateById(procureSettlement));
+//    }
+//
+//    @ApiOperation("供应商报价单删除")
+//    @PostMapping("/delete")
+//    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+//        String ids = paramsMap.get("ids");
+//        for (String s : ids.split(",")) {
+//            settlementService.removeById(s);
+//        }
+//        return success();
+//    }
+//
+//    @ApiOperation("供应商报价单列表")
+//    @PostMapping("/list")
+//    public AjaxResult listAll( HttpServletRequest request){
+//
+//        return success(settlementService.list(new QueryWrapper<ProcureSettlement>().eq("org_id", tokenService.getLoginOrgId(request))));
+//    }
+//
+//    @ApiOperation("供应商报价单分页")
+//    @GetMapping("/page")
+//    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize
+//            , HttpServletRequest request) {
+//        return success(settlementService.page(new Page<ProcureSettlement>(pageNum,pageSize),new QueryWrapper<ProcureSettlement>().eq("org_id", tokenService.getLoginOrgId(request))));
+//    }
+//
+//    @ApiOperation("供应商报价单详情")
+//    @PostMapping("/listById")
+//    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+//        String id = paramsMap.get("id");
+//        return success(settlementService.getById(id));
+//    }
+//}

+ 91 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProcureSettlementGoodsController.java

@@ -0,0 +1,91 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.ProcureSettlementGoods;
+import com.ruoyi.web.base.service.IProcureSettlementGoodsService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 采购结算单,物料单 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+@RestController
+@RequestMapping("/procure-settlement-goods")
+public class ProcureSettlementGoodsController {
+    @Autowired
+    private IProcureSettlementGoodsService procureSettlementGoodsService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("分摊管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody ProcureSettlementGoods procureSettlementGoods, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (procureSettlementGoodsService.count(new QueryWrapper<ProcureSettlementGoods>().eq("org_id",loginOrgId).eq("settlement_no", procureSettlementGoods.getSettlementNo())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        procureSettlementGoods.setOrgId(loginOrgId);
+        procureSettlementGoods.setCreateBy(getUsername());
+
+        return success(procureSettlementGoodsService.save(procureSettlementGoods));
+    }
+
+    @ApiOperation("分摊管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody ProcureSettlementGoods procureSettlementGoods, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (procureSettlementGoodsService.count(new QueryWrapper<ProcureSettlementGoods>().ne("id",procureSettlementGoods.getId()).eq("org_id",loginOrgId).eq("settlement_no", procureSettlementGoods.getSettlementNo())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        procureSettlementGoods.setUpdateBy(getUsername());
+        return success(procureSettlementGoodsService.updateById(procureSettlementGoods));
+    }
+
+    @ApiOperation("分摊管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            procureSettlementGoodsService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("分摊管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+
+        return success(procureSettlementGoodsService.list(new QueryWrapper<ProcureSettlementGoods>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("分摊管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize
+            , HttpServletRequest request) {
+        return success(procureSettlementGoodsService.page(new Page<ProcureSettlementGoods>(pageNum,pageSize),new QueryWrapper<ProcureSettlementGoods>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("分摊管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(procureSettlementGoodsService.getById(id));
+    }
+
+}

+ 92 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProcureSupplierController.java

@@ -0,0 +1,92 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.ProcureSupplier;
+import com.ruoyi.web.base.service.IProcureSupplierService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 供应商管理 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+@RestController
+@RequestMapping("/procure-supplier")
+public class ProcureSupplierController {
+    @Autowired
+    private IProcureSupplierService procureSupplierService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("自动转级别管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody ProcureSupplier procureSupplier, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (procureSupplierService.count(new QueryWrapper<ProcureSupplier>().eq("org_id",loginOrgId).eq("supplier_num", procureSupplier.getSupplierNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        procureSupplier.setOrgId(loginOrgId);
+        procureSupplier.setCreateBy(getUsername());
+
+        return success(procureSupplierService.save(procureSupplier));
+    }
+
+    @ApiOperation("自动转级别管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody ProcureSupplier procureSupplier, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (procureSupplierService.count(new QueryWrapper<ProcureSupplier>().ne("id",procureSupplier.getId()).eq("org_id",loginOrgId).eq("supplier_num", procureSupplier.getSupplierNum())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        procureSupplier.setUpdateBy(getUsername());
+        return success(procureSupplierService.updateById(procureSupplier));
+    }
+
+    @ApiOperation("自动转级别管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            procureSupplierService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("自动转级别管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+
+        return success(procureSupplierService.list(new QueryWrapper<ProcureSupplier>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("自动转级别管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize
+            , HttpServletRequest request) {
+        return success(procureSupplierService.page(new Page<ProcureSupplier>(pageNum,pageSize),new QueryWrapper<ProcureSupplier>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("自动转级别管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(procureSupplierService.getById(id));
+    }
+
+
+}

+ 92 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/WarehouseBaseController.java

@@ -0,0 +1,92 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.WarehouseBase;
+import com.ruoyi.web.base.service.IWarehouseBaseService;
+import com.ruoyi.web.base.service.IWarehouseBaseService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
+/**
+ * <p>
+ * 仓库 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-06
+ */
+@RestController
+@RequestMapping("/warehouse-base")
+public class WarehouseBaseController {
+    @Autowired
+    private IWarehouseBaseService warehouseBaseService;
+    @Autowired
+    private TokenService tokenService;
+
+    @ApiOperation("仓库管理添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody WarehouseBase warehouseBase, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (warehouseBaseService.count(new QueryWrapper<WarehouseBase>().eq("org_id",loginOrgId).eq("warehouse_no", warehouseBase.getWarehouseNo())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        warehouseBase.setOrgId(loginOrgId);
+        warehouseBase.setCreateBy(getUsername());
+
+        return success(warehouseBaseService.save(warehouseBase));
+    }
+
+    @ApiOperation("仓库管理修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody WarehouseBase warehouseBase, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        if (warehouseBaseService.count(new QueryWrapper<WarehouseBase>().ne("id",warehouseBase.getId()).eq("org_id",loginOrgId).eq("warehouse_no", warehouseBase.getWarehouseNo())) >0 ){
+            throw new Exception("该编号已存在");
+        }
+        warehouseBase.setUpdateBy(getUsername());
+        return success(warehouseBaseService.updateById(warehouseBase));
+    }
+
+    @ApiOperation("仓库管理删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            warehouseBaseService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("仓库管理列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request){
+
+        return success(warehouseBaseService.list(new QueryWrapper<WarehouseBase>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("仓库管理分页")
+    @GetMapping("/page")
+    public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize
+            , HttpServletRequest request) {
+        return success(warehouseBaseService.page(new Page<WarehouseBase>(pageNum,pageSize),new QueryWrapper<WarehouseBase>().eq("org_id", tokenService.getLoginOrgId(request))));
+    }
+
+    @ApiOperation("仓库管理详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        return success(warehouseBaseService.getById(id));
+    }
+
+}

+ 50 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseAutoLevel.java

@@ -0,0 +1,50 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 自动转级别
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_auto_level")
+@ApiModel(value="BaseAutoLevel对象", description="自动转级别")
+public class BaseAutoLevel extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "序号")
+    private String varietyNum;
+
+    @ApiModelProperty(value = "品牌名称")
+    private String varietyName;
+
+    private String weightStart;
+
+    private String weightEnd;
+
+    @ApiModelProperty(value = "级别序号")
+    private String levelNo;
+
+    @ApiModelProperty(value = "级别序号")
+    private String levelName;
+
+
+
+
+
+
+}

+ 39 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseBrand.java

@@ -0,0 +1,39 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 品牌
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_brand")
+@ApiModel(value="BaseBrand对象", description="品牌")
+public class BaseBrand extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "序号")
+    private String brandNum;
+
+    @ApiModelProperty(value = "品牌名称")
+    private String brandName;
+
+
+
+
+}

+ 35 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseBreed.java

@@ -0,0 +1,35 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_breed")
+@ApiModel(value="BaseBreed对象", description="")
+public class BaseBreed extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+
+
+    @ApiModelProperty(value = "畜种名称")
+    private String breedName;
+
+
+}

+ 42 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseCoatColor.java

@@ -0,0 +1,42 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 毛色
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_coat_color")
+@ApiModel(value="BaseCoatColor对象", description="毛色")
+public class BaseCoatColor extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+    private String coatNum;
+
+    @ApiModelProperty(value = "毛色名称")
+    private String coatName;
+
+    @ApiModelProperty(value = "毛色简称")
+    private String coatSortName;
+
+    @ApiModelProperty(value = "状态 0启用")
+    private Integer coatStatus;
+
+
+
+}

+ 38 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseCustomerChannel.java

@@ -0,0 +1,38 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 客户渠道
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_customer_channel")
+@ApiModel(value="BaseCustomerChannel对象", description="客户渠道")
+public class BaseCustomerChannel extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "序号")
+    private String customerNum;
+
+    @ApiModelProperty(value = "渠道名称")
+    private String customerName;
+
+
+
+
+}

+ 40 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseDepartment.java

@@ -0,0 +1,40 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_department")
+public class BaseDepartment extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+    private String departmentNum;
+
+    private String departmentName;
+
+    private String englishName;
+
+    private String departmentAddr;
+
+    private String departmentPhone;
+
+    private String departmentManager;
+
+
+
+}

+ 119 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseEmployee.java

@@ -0,0 +1,119 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_employee")
+@ApiModel(value="BaseEmployee对象", description="")
+public class BaseEmployee extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+
+
+    @ApiModelProperty(value = "员工编号")
+
+    private String employeeNum;
+
+    @ApiModelProperty(value = "员工姓名")
+    private String employeeName;
+
+    @ApiModelProperty(value = "员工类型  员工,采购员,销售员")
+    private String employeeType;
+
+    @ApiModelProperty(value = "部门编号")
+    private String departmentNum;
+
+    @ApiModelProperty(value = "部门名称")
+    private String departmentName;
+
+    @ApiModelProperty(value = "性别")
+    private String gender;
+
+    @ApiModelProperty(value = "血型")
+    private String bloodType;
+
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    @ApiModelProperty(value = "转帐科目")
+    private String transferAccount;
+
+    @ApiModelProperty(value = "婚姻")
+    private String marriage;
+
+    @ApiModelProperty(value = "职务")
+    private String position;
+
+    @ApiModelProperty(value = "银行帐号")
+    private String bankNum;
+
+    @ApiModelProperty(value = "出生日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date birthday;
+
+    @ApiModelProperty(value = "到职日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date employmentDate;
+
+    @ApiModelProperty(value = "离职日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date departureDate;
+
+    @ApiModelProperty(value = "籍贯")
+    private String placeOrigin;
+
+    @ApiModelProperty(value = "联络人")
+    private String contactPerson;
+
+    @ApiModelProperty(value = "联络电话")
+    private String contactPhone;
+
+    @ApiModelProperty(value = "联络地址")
+    private String contactAddr;
+
+    @ApiModelProperty(value = "户籍地址")
+    private String registerAddress;
+
+    @ApiModelProperty(value = "手机")
+    private String phone;
+
+    @ApiModelProperty(value = "E一Mail")
+    private String mail;
+
+    @ApiModelProperty(value = "经历")
+    private String experience;
+
+    @ApiModelProperty(value = "学历")
+    private String qualification;
+
+    @ApiModelProperty(value = "备注一")
+    private String remark1;
+
+    @ApiModelProperty(value = "备注二")
+    private String remark2;
+
+
+}

+ 34 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseFaristAccount.java

@@ -0,0 +1,34 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 一级科目
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_farist_account")
+@ApiModel(value="BaseFaristAccount对象", description="一级科目")
+public class BaseFaristAccount extends Base {
+
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "序号")
+    private String faristNum;
+
+    @ApiModelProperty(value = "名称")
+    private String faristName;
+
+}

+ 41 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseLevel.java

@@ -0,0 +1,41 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_level")
+@ApiModel(value="BaseLevel对象", description="")
+public class BaseLevel extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+    private String levelNo;
+
+    @ApiModelProperty(value = "畜种名称")
+    private String levelName;
+
+    @ApiModelProperty(value = "数字级别")
+    private String numLevel;
+
+    @ApiModelProperty(value = "打印级别")
+    private String printLevel;
+
+
+}

+ 73 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseLine.java

@@ -0,0 +1,73 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 物流线
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_line")
+@ApiModel(value="BaseLine对象", description="物流线")
+public class BaseLine extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+
+
+    @ApiModelProperty(value = "序号")
+    private String lineNum;
+
+    @ApiModelProperty(value = "物流线名称")
+    private String lineName;
+
+    @ApiModelProperty(value = "车牌号")
+    private String carNum;
+
+    @ApiModelProperty(value = "车型")
+    private String carModel;
+
+    @ApiModelProperty(value = "载重")
+    private String loadCapacity;
+
+    @ApiModelProperty(value = "司机姓名")
+    private String driverName;
+
+    @ApiModelProperty(value = "手机")
+    private String phone;
+
+    @ApiModelProperty(value = "身份证号")
+    private String idCrad;
+
+    @ApiModelProperty(value = "家庭住址")
+    private String address;
+
+    @ApiModelProperty(value = "起始站")
+    private String startStation;
+
+    @ApiModelProperty(value = "终点站")
+    private String endStation;
+
+    @ApiModelProperty(value = "总里程")
+    private String totalMileage;
+
+    @ApiModelProperty(value = "状态")
+    private Integer lineStatus;
+
+
+
+
+}

+ 62 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseMarket.java

@@ -0,0 +1,62 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 市场
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_market")
+@ApiModel(value="BaseMarket对象", description="市场")
+public class BaseMarket extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "序号")
+    private String marketNum;
+
+    @ApiModelProperty(value = "市场名称")
+    private String marketName;
+
+    @ApiModelProperty(value = "物流线")
+    private String lineNum;
+
+    @ApiModelProperty(value = "物流线")
+    private String lineName;
+
+    @ApiModelProperty(value = "区域")
+    private String region;
+
+    @ApiModelProperty(value = "价格类型")
+    private String priceType;
+
+    @ApiModelProperty(value = "市场容量")
+    private String marketSize;
+
+    @ApiModelProperty(value = "市场地址")
+    private String marketAddress;
+
+    @ApiModelProperty(value = "业务员")
+    private String salesperson;
+
+    @ApiModelProperty(value = "状态")
+    private Integer marketStatus;
+
+
+
+}

+ 91 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseMaterial.java

@@ -0,0 +1,91 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_material")
+@ApiModel(value="BaseMaterial对象", description="")
+public class BaseMaterial extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+
+
+    @ApiModelProperty(value = "货品编号")
+    private String goodsNum;
+
+    @ApiModelProperty(value = "货品名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "仓库编号")
+    private String warehouseNum;
+
+    @ApiModelProperty(value = "仓库名称")
+    private String warehouseName;
+
+    @ApiModelProperty(value = "货品类别")
+    private String goodsType;
+
+    @ApiModelProperty(value = "货品规格")
+    private String goodsSpec;
+
+    @ApiModelProperty(value = "货品条码")
+    private String goodsBarcode;
+
+    @ApiModelProperty(value = "计量单位")
+    private String unit;
+
+    @ApiModelProperty(value = "辅助计量单位")
+    private String assistantUnit;
+
+    @ApiModelProperty(value = "换算值")
+    private String conversionValue;
+
+    @ApiModelProperty(value = "品种")
+    private String variety;
+
+    @ApiModelProperty(value = "级别")
+    private String goodsLevel;
+
+    @ApiModelProperty(value = "状态")
+    private String goodsStatus;
+
+    @ApiModelProperty(value = "货品颜色")
+    private String goodsColor;
+
+    @ApiModelProperty(value = "货品尺寸")
+    private String goodsSize;
+
+    @ApiModelProperty(value = "产品类型")
+    private String productType;
+
+
+    private String remark1;
+
+    private String remark2;
+
+    private String remark3;
+
+    private String remark4;
+
+    private String remark5;
+
+
+}

+ 66 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BasePriceType.java

@@ -0,0 +1,66 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 价格类型
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_price_type")
+@ApiModel(value="BasePriceType对象", description="价格类型")
+public class BasePriceType implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "编号")
+    private String priceTypeNum;
+
+    @ApiModelProperty(value = "名称")
+    private String priceTypeName;
+
+    @ApiModelProperty(value = "简称")
+    private String sortName;
+
+    @ApiModelProperty(value = "0启用")
+    private Integer priceTypeStatus;
+
+    @ApiModelProperty(value = "删除标志(0代表存在 2代表删除)")
+    private String delFlag;
+
+    private String createBy;
+
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    private String updateBy;
+
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    private String remark;
+
+    private String orgId;
+
+
+}

+ 44 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseProductCategory.java

@@ -0,0 +1,44 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 货品类别
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_product_category")
+@ApiModel(value="BaseProductCategory对象", description="货品类别")
+public class BaseProductCategory extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "编号")
+    private String num;
+
+    @ApiModelProperty(value = "名称")
+    private String categoryName;
+
+    private Integer parentId;
+
+    @TableField(exist =  false)
+    private List<BaseProductCategory> child;
+
+
+}

+ 44 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseProductType.java

@@ -0,0 +1,44 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 产品类型
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_product_type")
+@ApiModel(value="BaseProductType对象", description="产品类型")
+public class BaseProductType  extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "序号")
+    private String typeNum;
+
+    @ApiModelProperty(value = "名称")
+    private String typeName;
+
+
+
+}

+ 36 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseSalesTerritory.java

@@ -0,0 +1,36 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 销售区域
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_sales_territory")
+@ApiModel(value="BaseSalesTerritory对象", description="销售区域")
+public class BaseSalesTerritory extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "序号")
+    private String salesTerritoryNum;
+
+    @ApiModelProperty(value = "销售区域名称")
+    private String salesTerritoryName;
+
+
+}

+ 45 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseSubAccount.java

@@ -0,0 +1,45 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 二级科目
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_sub_account")
+@ApiModel(value="BaseSubAccount对象", description="二级科目")
+public class BaseSubAccount extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+
+
+    @ApiModelProperty(value = "序号")
+    private String subNum;
+
+    @ApiModelProperty(value = "名称")
+    private String subName;
+
+    @ApiModelProperty(value = "一级科目序号")
+    private String faristNum;
+
+    @ApiModelProperty(value = "一级科目名称")
+    private String faristName;
+
+
+
+}

+ 37 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseSupplySource.java

@@ -0,0 +1,37 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 供应来源
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_supply_source")
+@ApiModel(value="BaseSupplySource对象", description="供应来源")
+public class BaseSupplySource extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "序号")
+    private String supplySourceNum;
+
+    @ApiModelProperty(value = "类型名称")
+    private String supplySourceName;
+
+
+}

+ 41 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseUnit.java

@@ -0,0 +1,41 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 单位
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_unit")
+@ApiModel(value="BaseUnit对象", description="单位")
+public class BaseUnit  extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "品牌名称")
+    private String unitName;
+
+
+
+}

+ 62 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseVariety.java

@@ -0,0 +1,62 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_variety")
+@ApiModel(value="BaseVariety对象", description="")
+public class BaseVariety extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "序号")
+    private String varietyNo;
+
+    @ApiModelProperty(value = "品种名称")
+    private String varietyName;
+
+    @ApiModelProperty(value = "大猪大于")
+    private String bigVarietyGe;
+
+    @ApiModelProperty(value = "大猪小于等于")
+    private String bigVarietyLe;
+
+    @ApiModelProperty(value = "标准猪大于")
+    private String midVarietyGe;
+
+    @ApiModelProperty(value = "标准猪小于等于")
+    private String midVarietyLe;
+
+    @ApiModelProperty(value = "小猪大于")
+    private String smallVarietyGe;
+
+    @ApiModelProperty(value = "小猪小于等于")
+    private String smallVarietyLe;
+
+    private String breedName;
+
+    private Integer breedId;
+
+
+
+
+
+}

+ 43 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProcureApportion.java

@@ -0,0 +1,43 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 采购入库单
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("procure_apportion")
+@ApiModel(value="ProcureApportion对象", description="分摊表")
+public class ProcureApportion extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+
+
+    @ApiModelProperty(value = "物料编号")
+    private String goodsNum;
+
+    @ApiModelProperty(value = "物料名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "品种编号")
+    private String brvarietyNo;
+
+    @ApiModelProperty(value = "品种名称")
+    private String varietyName;
+
+}

+ 76 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProcureQuotation.java

@@ -0,0 +1,76 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 供应商报价单
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("procure_quotation")
+@ApiModel(value="ProcureQuotation对象", description="供应商报价单")
+public class ProcureQuotation extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "单据编号")
+    private String quotationNum;
+
+    @ApiModelProperty(value = "报价单编名称")
+    private String quotationName;
+
+    @ApiModelProperty(value = "拷贝单号")
+    private String copyNum;
+
+    @ApiModelProperty(value = "单据日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date documentDate;
+
+    @ApiModelProperty(value = "报价日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date quotationDate;
+
+    @ApiModelProperty(value = "供应商编号")
+    private String supplierNum;
+
+    @ApiModelProperty(value = "供应商名称")
+    private String supplierName;
+
+    @ApiModelProperty(value = "供应商电话")
+    private String supplierPhone;
+
+    @ApiModelProperty(value = "业务员")
+    private String employeeNum;
+
+    @ApiModelProperty(value = "业务员")
+    private String employeeName;
+
+    @ApiModelProperty(value = "备注1")
+    private String remark1;
+
+    @ApiModelProperty(value = "总金额")
+    private String totalAmount;
+
+    @TableField(exist =  false)
+    private List<ProcureQuotationGoods> goods;
+
+
+}

+ 64 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProcureQuotationGoods.java

@@ -0,0 +1,64 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 供应商报价单,货品表
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("procure_quotation_goods")
+@ApiModel(value="ProcureQuotationGoods对象", description="供应商报价单,货品表")
+public class ProcureQuotationGoods extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "单据编号")
+    private String quotationNum;
+
+    @ApiModelProperty(value = "货品编号")
+    private String goodsNum;
+
+    @ApiModelProperty(value = "名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "规格")
+    private String goodsSpec;
+
+    @ApiModelProperty(value = "仓库")
+    private String warehouseName;
+
+    @ApiModelProperty(value = "基本计量数量")
+    private String baseNum;
+
+    @ApiModelProperty(value = "基本计量单位")
+    private String baseUnit;
+
+    @ApiModelProperty(value = "辅助计量数量")
+    private String assNum;
+
+    @ApiModelProperty(value = "辅助计量单位")
+    private String assUnit;
+
+    @ApiModelProperty(value = "单价")
+    private String unitPrice;
+
+    @ApiModelProperty(value = "金额")
+    private String amount;
+
+
+}

+ 94 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProcureReceiving.java

@@ -0,0 +1,94 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 采购入库单
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("procure_receiving")
+@ApiModel(value="ProcureReceiving对象", description="采购入库单")
+public class ProcureReceiving extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "单据编号")
+    private String receivingNum;
+
+    @ApiModelProperty(value = "单据日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date receivingDate;
+
+    @ApiModelProperty(value = "价格转入")
+    private String priceTransfer;
+
+    @ApiModelProperty(value = "订货日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date orderDate;
+
+    @ApiModelProperty(value = "采购类型")
+    private String orderType;
+
+    @ApiModelProperty(value = "到场时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date arriveDate;
+
+    @ApiModelProperty(value = "供应商编号")
+    private String supplierNum;
+
+    @ApiModelProperty(value = "供应商简称")
+    private String supplierName;
+
+    @ApiModelProperty(value = "业务员编号")
+    private String employeeNum;
+
+    @ApiModelProperty(value = "业务员名称")
+    private String employeeName;
+
+    @ApiModelProperty(value = "部门编号")
+    private String departmentNum;
+
+    @ApiModelProperty(value = "部门名称")
+    private String departmentName;
+
+    @ApiModelProperty(value = "畜主")
+    private String livestockOwner;
+
+    @ApiModelProperty(value = "畜主信息")
+    private String livestockOwnerInfo;
+
+    @ApiModelProperty(value = "检疫证")
+    private String animalCertNo;
+
+    @ApiModelProperty(value = "准宰证")
+    private String allowSlaughterNo;
+
+    @ApiModelProperty(value = "产地")
+    private String placeOfOrigin;
+
+    @ApiModelProperty(value = "合计金额")
+    private String totalAmount;
+    @TableField(exist =  false)
+    private List<ProcureReceivingGoods> goods;
+
+
+}

+ 97 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProcureReceivingGoods.java

@@ -0,0 +1,97 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 供应商入库单,货品表
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("procure_receiving_goods")
+@ApiModel(value="ProcureReceivingGoods对象", description="供应商入库单,货品表")
+public class ProcureReceivingGoods extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "单据编号")
+    private String receivingNum;
+
+    @ApiModelProperty(value = "货品编号")
+    private String goodsNum;
+
+    @ApiModelProperty(value = "名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "规格")
+    private String goodsSpec;
+
+    @ApiModelProperty(value = "仓库")
+    private String warehouseName;
+
+    @ApiModelProperty(value = "批次")
+    private String batch;
+
+    @ApiModelProperty(value = "到场方式")
+    private String arriveMethod;
+
+    @ApiModelProperty(value = "牧场重量")
+    private String ranchWeight;
+
+    @ApiModelProperty(value = "到场重量")
+    private String arriveWeight;
+
+    @ApiModelProperty(value = "基本计量数量")
+    private String baseNum;
+
+    @ApiModelProperty(value = "基本计量单位")
+    private String baseUnit;
+
+    @ApiModelProperty(value = "辅助计量数量")
+    private String assNum;
+
+    @ApiModelProperty(value = "辅助计量单位")
+    private String assUnit;
+
+    @ApiModelProperty(value = "单价")
+    private String unitPrice;
+
+    @ApiModelProperty(value = "金额")
+    private String amount;
+
+    @ApiModelProperty(value = "交货日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date deliveryDate;
+
+    @ApiModelProperty(value = "结算方式")
+    private String settlementMethod;
+
+    @ApiModelProperty(value = "经营类型")
+    private String businessType;
+
+    @ApiModelProperty(value = "预估级别")
+    private String estimateLevel;
+
+    @ApiModelProperty(value = "预估重量")
+    private String estimateWeight;
+
+    @ApiModelProperty(value = "是否黑猪扣款")
+    private String isDeduction;
+
+
+}

+ 55 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProcureSettlement.java

@@ -0,0 +1,55 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 采购结算单
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("procure_settlement")
+@ApiModel(value="ProcureSettlement对象", description="采购结算单")
+public class ProcureSettlement extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "结算日期")
+    private Date settlementDate;
+
+    @ApiModelProperty(value = "采购日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date procurementDate;
+
+    @ApiModelProperty(value = "供应商编号")
+    private String supplierNum;
+
+    @ApiModelProperty(value = "供应商名称")
+    private String supplierName;
+
+    @ApiModelProperty(value = "结算方式")
+    private String settlementMethod;
+
+    @ApiModelProperty(value = "结算批次")
+    private String settlementBatch;
+    @TableField(exist =  false)
+    private List<ProcureSettlementGoods> goods;
+
+}

+ 143 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProcureSettlementGoods.java

@@ -0,0 +1,143 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 采购结算单,物料单
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("procure_settlement_goods")
+@ApiModel(value="ProcureSettlementGoods对象", description="采购结算单,物料单")
+public class ProcureSettlementGoods extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "单据编号")
+    private String settlementNo;
+
+    @ApiModelProperty(value = "结算日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date settlementDate;
+
+    @ApiModelProperty(value = "采购日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date receivingDate;
+
+    @ApiModelProperty(value = "屠宰日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date slaughterDate;
+
+    @ApiModelProperty(value = "供应商编号")
+    private String supplierNum;
+
+    @ApiModelProperty(value = "供应商名称")
+    private String supplierName;
+
+    @ApiModelProperty(value = "结算方式")
+    private String settlementMethod;
+
+    @ApiModelProperty(value = "批次")
+    private String batch;
+
+    @ApiModelProperty(value = "结算数量")
+    private String settlementNum;
+
+    @ApiModelProperty(value = "结算重量")
+    private String settlementWeight;
+
+    @ApiModelProperty(value = "结算价格")
+    private String settlementPrice;
+
+    @ApiModelProperty(value = "采购加分")
+    private String procurementAdd;
+
+    @ApiModelProperty(value = "采购减分")
+    private String procurementDed;
+
+    @ApiModelProperty(value = "牧场出肉率")
+    private String ranchMeatYield;
+
+    @ApiModelProperty(value = "到场出肉率")
+    private String arriveMeatYield;
+
+    @ApiModelProperty(value = "预估平均级别")
+    private String estimateAverageLevel;
+
+    @ApiModelProperty(value = "白毛数")
+    private String whiteHairNum;
+
+    @ApiModelProperty(value = "黑毛数")
+    private String blackHairNum;
+
+    @ApiModelProperty(value = "平均重量")
+    private String averageWeight;
+
+    @ApiModelProperty(value = "预估重量")
+    private String estimateWeight;
+
+    @ApiModelProperty(value = "运费")
+    private String shippingFee;
+
+    @ApiModelProperty(value = "途亡数")
+    private Integer wayDieNum;
+
+    @ApiModelProperty(value = "未到数")
+    private Integer notYetArrived;
+
+    @ApiModelProperty(value = "不合格数")
+    private Integer unqualifiedNum;
+
+    @ApiModelProperty(value = "圈亡数")
+    private Integer circleDieNum;
+
+    @ApiModelProperty(value = "进场扣款")
+    private String entryDeduction;
+
+    @ApiModelProperty(value = "级别扣款")
+    private String levelDeduction;
+
+    @ApiModelProperty(value = "重量扣款")
+    private String weightDeduction;
+
+    @ApiModelProperty(value = "采购扣款")
+    private String procurementDeduction;
+
+    @ApiModelProperty(value = "其它扣款")
+    private String otherDeduction;
+
+    @ApiModelProperty(value = "圈亡补款")
+    private String circleDiePay;
+
+    @ApiModelProperty(value = "其它补款")
+    private String otherPay;
+
+    @ApiModelProperty(value = "未付金额")
+    private String unpaidAmount;
+
+    @ApiModelProperty(value = "已付金额")
+    private String payAmount;
+
+    @ApiModelProperty(value = "结算金额")
+    private String settlementAmount;
+
+    @ApiModelProperty(value = "单据状态")
+    private String settlementStatus;
+
+}

+ 59 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProcureSupplier.java

@@ -0,0 +1,59 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 供应商管理
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("procure_supplier")
+@ApiModel(value="ProcureSupplier对象", description="供应商管理")
+public class ProcureSupplier extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "序号")
+    private String supplierNum;
+
+    @ApiModelProperty(value = "供应商名称")
+    private String supplierName;
+
+    @ApiModelProperty(value = "供应类型")
+    private String supplierType;
+
+    @ApiModelProperty(value = "供应商等级")
+    private String supplierLevel;
+
+    @ApiModelProperty(value = "供应商地址")
+    private String supplierAddress;
+
+    @ApiModelProperty(value = "联络人")
+    private String contactPerson;
+
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    @ApiModelProperty(value = "开户银行")
+    private String bank;
+
+    @ApiModelProperty(value = "银行账号")
+    private String bankNum;
+
+
+
+}

+ 52 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/WarehouseBase.java

@@ -0,0 +1,52 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 仓库
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("warehouse_base")
+@ApiModel(value="WarehouseBase对象", description="仓库")
+public class WarehouseBase extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+
+
+    @ApiModelProperty(value = "序号")
+    private String warehouseNo;
+
+    @ApiModelProperty(value = "名称")
+    private String warehouseName;
+
+    private String engName;
+
+    private String warehouseAddress;
+
+    @ApiModelProperty(value = "0否 1 是")
+    private Integer isCentral;
+
+
+
+}

+ 44 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/base/Base.java

@@ -0,0 +1,44 @@
+package com.ruoyi.web.base.domain.base;
+
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class Base implements Serializable {
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
+    private String delFlag;
+
+    /** 创建者 */
+    private String createBy;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /** 更新者 */
+    private String updateBy;
+
+    /** 更新时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    /** 备注 */
+    private String remark;
+
+    @TableId(value = "id",type = IdType.AUTO)
+    @OrderBy
+    private Integer id;
+
+    private String orgId;
+
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseAutoLevelMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseAutoLevel;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 自动转级别 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-04
+ */
+public interface BaseAutoLevelMapper extends BaseMapper<BaseAutoLevel> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseBrandMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseBrand;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 品牌 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+public interface BaseBrandMapper extends BaseMapper<BaseBrand> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseBreedMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseBreed;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+public interface BaseBreedMapper extends BaseMapper<BaseBreed> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseCoatColorMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseCoatColor;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 毛色 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+public interface BaseCoatColorMapper extends BaseMapper<BaseCoatColor> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseCustomerChannelMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseCustomerChannel;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 客户渠道 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+public interface BaseCustomerChannelMapper extends BaseMapper<BaseCustomerChannel> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseDepartmentMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseDepartment;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+public interface BaseDepartmentMapper extends BaseMapper<BaseDepartment> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseEmployeeMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseEmployee;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+public interface BaseEmployeeMapper extends BaseMapper<BaseEmployee> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseFaristAccountMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseFaristAccount;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 一级科目 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-04
+ */
+public interface BaseFaristAccountMapper extends BaseMapper<BaseFaristAccount> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseLevelMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseLevel;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+public interface BaseLevelMapper extends BaseMapper<BaseLevel> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseLineMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseLine;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 物流线 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+public interface BaseLineMapper extends BaseMapper<BaseLine> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseMarketMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseMarket;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 市场 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+public interface BaseMarketMapper extends BaseMapper<BaseMarket> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseMaterialMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseMaterial;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+public interface BaseMaterialMapper extends BaseMapper<BaseMaterial> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BasePriceTypeMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BasePriceType;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 价格类型 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-04
+ */
+public interface BasePriceTypeMapper extends BaseMapper<BasePriceType> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseProductCategoryMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseProductCategory;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 货品类别 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-04
+ */
+public interface BaseProductCategoryMapper extends BaseMapper<BaseProductCategory> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseProductTypeMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseProductType;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 产品类型 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-06
+ */
+public interface BaseProductTypeMapper extends BaseMapper<BaseProductType> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseSalesTerritoryMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseSalesTerritory;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 销售区域 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+public interface BaseSalesTerritoryMapper extends BaseMapper<BaseSalesTerritory> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseSubAccountMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseSubAccount;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 二级科目 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-04
+ */
+public interface BaseSubAccountMapper extends BaseMapper<BaseSubAccount> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseSupplySourceMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseSupplySource;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 供应来源 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+public interface BaseSupplySourceMapper extends BaseMapper<BaseSupplySource> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseUnitMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseUnit;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 单位 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-06
+ */
+public interface BaseUnitMapper extends BaseMapper<BaseUnit> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/BaseVarietyMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.BaseVariety;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+public interface BaseVarietyMapper extends BaseMapper<BaseVariety> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProcureApportionMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.ProcureApportion;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 采购入库单 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+public interface ProcureApportionMapper extends BaseMapper<ProcureApportion> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProcureQuotationGoodsMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.ProcureQuotationGoods;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 供应商报价单,货品表 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+public interface ProcureQuotationGoodsMapper extends BaseMapper<ProcureQuotationGoods> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProcureQuotationMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.ProcureQuotation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 供应商报价单 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+public interface ProcureQuotationMapper extends BaseMapper<ProcureQuotation> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProcureReceivingGoodsMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.ProcureReceivingGoods;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 供应商入库单,货品表 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+public interface ProcureReceivingGoodsMapper extends BaseMapper<ProcureReceivingGoods> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProcureReceivingMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.ProcureReceiving;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 采购入库单 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+public interface ProcureReceivingMapper extends BaseMapper<ProcureReceiving> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProcureSettlementGoodsMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.ProcureSettlementGoods;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 采购结算单,物料单 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+public interface ProcureSettlementGoodsMapper extends BaseMapper<ProcureSettlementGoods> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProcureSettlementMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.ProcureSettlement;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 采购结算单 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+public interface ProcureSettlementMapper extends BaseMapper<ProcureSettlement> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProcureSupplierMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.ProcureSupplier;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 供应商管理 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-05
+ */
+public interface ProcureSupplierMapper extends BaseMapper<ProcureSupplier> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/WarehouseBaseMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.WarehouseBase;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 仓库 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-06
+ */
+public interface WarehouseBaseMapper extends BaseMapper<WarehouseBase> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseAutoLevelService.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.service;
+
+import com.ruoyi.web.base.domain.BaseAutoLevel;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 自动转级别 服务类
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-04
+ */
+public interface IBaseAutoLevelService extends IService<BaseAutoLevel> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseBrandService.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.service;
+
+import com.ruoyi.web.base.domain.BaseBrand;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 品牌 服务类
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+public interface IBaseBrandService extends IService<BaseBrand> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseBreedService.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.service;
+
+import com.ruoyi.web.base.domain.BaseBreed;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+public interface IBaseBreedService extends IService<BaseBreed> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseCoatColorService.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.service;
+
+import com.ruoyi.web.base.domain.BaseCoatColor;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 毛色 服务类
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+public interface IBaseCoatColorService extends IService<BaseCoatColor> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseCustomerChannelService.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.service;
+
+import com.ruoyi.web.base.domain.BaseCustomerChannel;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 客户渠道 服务类
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+public interface IBaseCustomerChannelService extends IService<BaseCustomerChannel> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseDepartmentService.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.service;
+
+import com.ruoyi.web.base.domain.BaseDepartment;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+public interface IBaseDepartmentService extends IService<BaseDepartment> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseEmployeeService.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.service;
+
+import com.ruoyi.web.base.domain.BaseEmployee;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-02
+ */
+public interface IBaseEmployeeService extends IService<BaseEmployee> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseFaristAccountService.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.service;
+
+import com.ruoyi.web.base.domain.BaseFaristAccount;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 一级科目 服务类
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-04
+ */
+public interface IBaseFaristAccountService extends IService<BaseFaristAccount> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseLevelService.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.service;
+
+import com.ruoyi.web.base.domain.BaseLevel;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2026-02-03
+ */
+public interface IBaseLevelService extends IService<BaseLevel> {
+
+}

+ 0 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IBaseLineService.java


Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff