Ver código fonte

项目提成业务代码

wucl 2 anos atrás
pai
commit
f1f923f1d9
58 arquivos alterados com 2434 adições e 3 exclusões
  1. 84 0
      biz-base/src/main/java/com/dayou/controller/BrokerageMarketerRatioController.java
  2. 83 0
      biz-base/src/main/java/com/dayou/controller/ItemBrokerageDetailController.java
  3. 83 0
      biz-base/src/main/java/com/dayou/controller/ItemBrokerageGeneralController.java
  4. 83 0
      biz-base/src/main/java/com/dayou/controller/ItemBrokerageSequenceController.java
  5. 83 0
      biz-base/src/main/java/com/dayou/controller/ItemBrokerageSequenceDetailController.java
  6. 1 0
      biz-base/src/main/java/com/dayou/controller/ItemController.java
  7. 83 0
      biz-base/src/main/java/com/dayou/controller/ItemEvaluateController.java
  8. 83 0
      biz-base/src/main/java/com/dayou/controller/ItemStageUserController.java
  9. 16 0
      dao/src/main/java/com/dayou/mapper/BrokerageMarketerRatioMapper.java
  10. 8 2
      dao/src/main/java/com/dayou/mapper/GlobalConfigMapper.java
  11. 16 0
      dao/src/main/java/com/dayou/mapper/ItemBrokerageDetailMapper.java
  12. 16 0
      dao/src/main/java/com/dayou/mapper/ItemBrokerageGeneralMapper.java
  13. 16 0
      dao/src/main/java/com/dayou/mapper/ItemBrokerageSequenceDetailMapper.java
  14. 16 0
      dao/src/main/java/com/dayou/mapper/ItemBrokerageSequenceMapper.java
  15. 16 0
      dao/src/main/java/com/dayou/mapper/ItemEvaluateMapper.java
  16. 16 0
      dao/src/main/java/com/dayou/mapper/ItemStageUserMapper.java
  17. 26 0
      dao/src/main/resources/mapper/BrokerageMarketerRatioMapper.xml
  18. 29 0
      dao/src/main/resources/mapper/GlobalConfigMapper.xml
  19. 29 0
      dao/src/main/resources/mapper/ItemBrokerageDetailMapper.xml
  20. 33 0
      dao/src/main/resources/mapper/ItemBrokerageGeneralMapper.xml
  21. 26 0
      dao/src/main/resources/mapper/ItemBrokerageSequenceDetailMapper.xml
  22. 26 0
      dao/src/main/resources/mapper/ItemBrokerageSequenceMapper.xml
  23. 25 0
      dao/src/main/resources/mapper/ItemEvaluateMapper.xml
  24. 6 0
      dao/src/main/resources/mapper/ItemStageMapper.xml
  25. 20 0
      dao/src/main/resources/mapper/ItemStageUserMapper.xml
  26. 48 0
      domain/src/main/java/com/dayou/entity/BrokerageMarketerRatio.java
  27. 70 0
      domain/src/main/java/com/dayou/entity/ItemBrokerageDetail.java
  28. 100 0
      domain/src/main/java/com/dayou/entity/ItemBrokerageGeneral.java
  29. 51 0
      domain/src/main/java/com/dayou/entity/ItemBrokerageSequence.java
  30. 49 0
      domain/src/main/java/com/dayou/entity/ItemBrokerageSequenceDetail.java
  31. 43 0
      domain/src/main/java/com/dayou/entity/ItemEvaluate.java
  32. 13 0
      domain/src/main/java/com/dayou/entity/ItemStage.java
  33. 46 0
      domain/src/main/java/com/dayou/entity/ItemStageUser.java
  34. 80 0
      domain/src/main/java/com/dayou/enums/GlobalConfigEnum.java
  35. 13 0
      service/src/main/java/com/dayou/brokerage/BrokerageCalculateSupport.java
  36. 36 0
      service/src/main/java/com/dayou/brokerage/BrokerageCalculator.java
  37. 29 0
      service/src/main/java/com/dayou/brokerage/config/BrokerageConfig.java
  38. 32 0
      service/src/main/java/com/dayou/brokerage/constants/BrokerageMode.java
  39. 33 0
      service/src/main/java/com/dayou/brokerage/constants/BrokerageRule.java
  40. 34 0
      service/src/main/java/com/dayou/brokerage/constants/BrokerageState.java
  41. 32 0
      service/src/main/java/com/dayou/brokerage/constants/BrokerageType.java
  42. 24 0
      service/src/main/java/com/dayou/brokerage/validator/BrokerageValidator.java
  43. 28 0
      service/src/main/java/com/dayou/service/IBrokerageMarketerRatioService.java
  44. 28 0
      service/src/main/java/com/dayou/service/IItemBrokerageDetailService.java
  45. 28 0
      service/src/main/java/com/dayou/service/IItemBrokerageGeneralService.java
  46. 28 0
      service/src/main/java/com/dayou/service/IItemBrokerageSequenceDetailService.java
  47. 28 0
      service/src/main/java/com/dayou/service/IItemBrokerageSequenceService.java
  48. 28 0
      service/src/main/java/com/dayou/service/IItemEvaluateService.java
  49. 28 0
      service/src/main/java/com/dayou/service/IItemStageUserService.java
  50. 66 0
      service/src/main/java/com/dayou/service/impl/BrokerageMarketerRatioServiceImpl.java
  51. 27 1
      service/src/main/java/com/dayou/service/impl/GlobalConfigServiceImpl.java
  52. 66 0
      service/src/main/java/com/dayou/service/impl/ItemBrokerageDetailServiceImpl.java
  53. 66 0
      service/src/main/java/com/dayou/service/impl/ItemBrokerageGeneralServiceImpl.java
  54. 66 0
      service/src/main/java/com/dayou/service/impl/ItemBrokerageSequenceDetailServiceImpl.java
  55. 66 0
      service/src/main/java/com/dayou/service/impl/ItemBrokerageSequenceServiceImpl.java
  56. 66 0
      service/src/main/java/com/dayou/service/impl/ItemEvaluateServiceImpl.java
  57. 66 0
      service/src/main/java/com/dayou/service/impl/ItemStageUserServiceImpl.java
  58. 93 0
      sql/brokerage_about.sql

+ 84 - 0
biz-base/src/main/java/com/dayou/controller/BrokerageMarketerRatioController.java

@@ -0,0 +1,84 @@
+package com.dayou.controller;
+
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.web.bind.annotation.RestController;
+import com.dayou.controller.BaseController;
+import com.dayou.service.IBrokerageMarketerRatioService;
+import com.dayou.entity.BrokerageMarketerRatio;
+import com.dayou.common.RestResponse;
+import org.springframework.web.bind.annotation.*;
+import com.dayou.utils.ConvertUtil;
+import com.dayou.utils.HttpKit;
+import com.dayou.exception.ErrorCode;
+import java.util.Date;
+import java.util.List;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springframework.http.MediaType;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * 项目提成比例(市场人员)
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@RestController
+@RequestMapping("brokerageMarketerRatio")
+@Slf4j
+public class BrokerageMarketerRatioController extends BaseController {
+    @Autowired
+    private IBrokerageMarketerRatioService brokerageMarketerRatioService;
+
+    /**
+    * 项目提成比例(市场人员)列表
+     * //todo 需转换为vo对象
+    */
+    @GetMapping("")
+    public RestResponse<Page<BrokerageMarketerRatio>> page(BrokerageMarketerRatio brokerageMarketerRatio, Page page){
+        Page<BrokerageMarketerRatio> pages=brokerageMarketerRatioService.selectPage(page,brokerageMarketerRatio);
+        return RestResponse.data(pages);
+    }
+
+    /**
+     * 项目提成比例(市场人员)详情
+     */
+    @GetMapping("/{id}")
+    public RestResponse<BrokerageMarketerRatio> detail(@PathVariable Long id){
+        BrokerageMarketerRatio xBrokerageMarketerRatio =brokerageMarketerRatioService.detail(id);
+        return RestResponse.data(xBrokerageMarketerRatio);
+     }
+
+    /**
+     * 项目提成比例(市场人员)新增
+     */
+    @PostMapping("")
+    public RestResponse<Boolean> save(@RequestBody BrokerageMarketerRatio brokerageMarketerRatio) {
+        Boolean ret = brokerageMarketerRatioService.add(brokerageMarketerRatio);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 项目提成比例(市场人员)更新
+     */
+    @PutMapping("")
+    public RestResponse<Boolean> update(@RequestBody BrokerageMarketerRatio brokerageMarketerRatio) {
+        Boolean ret = brokerageMarketerRatioService.update(brokerageMarketerRatio);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 项目提成比例(市场人员)删除
+     */
+    @DeleteMapping("/{id}")
+    public RestResponse<Boolean> delete(@PathVariable Long id) {
+        Boolean ret = brokerageMarketerRatioService.delete(id);
+        return RestResponse.data(ret);
+    }
+
+
+}
+

+ 83 - 0
biz-base/src/main/java/com/dayou/controller/ItemBrokerageDetailController.java

@@ -0,0 +1,83 @@
+package com.dayou.controller;
+
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.web.bind.annotation.RestController;
+import com.dayou.controller.BaseController;
+import com.dayou.service.IItemBrokerageDetailService;
+import com.dayou.entity.ItemBrokerageDetail;
+import com.dayou.common.RestResponse;
+import org.springframework.web.bind.annotation.*;
+import com.dayou.utils.ConvertUtil;
+import com.dayou.utils.HttpKit;
+import com.dayou.exception.ErrorCode;
+import java.util.Date;
+import java.util.List;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springframework.http.MediaType;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * 项目提成明细
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@RestController
+@RequestMapping("itemBrokerageDetail")
+@Slf4j
+public class ItemBrokerageDetailController extends BaseController {
+    @Autowired
+    private IItemBrokerageDetailService itemBrokerageDetailService;
+
+    /**
+    * 项目提成明细列表
+    */
+    @GetMapping("")
+    public RestResponse<Page<ItemBrokerageDetail>> page(ItemBrokerageDetail itemBrokerageDetail, Page page){
+        Page<ItemBrokerageDetail> pages=itemBrokerageDetailService.selectPage(page,itemBrokerageDetail);
+        return RestResponse.data(pages);
+    }
+
+    /**
+     * 项目提成明细详情
+     */
+    @GetMapping("/{id}")
+    public RestResponse<ItemBrokerageDetail> detail(@PathVariable Long id){
+        ItemBrokerageDetail xItemBrokerageDetail =itemBrokerageDetailService.detail(id);
+        return RestResponse.data(xItemBrokerageDetail);
+     }
+
+    /**
+     * 项目提成明细新增
+     */
+    @PostMapping("")
+    public RestResponse<Boolean> save(@RequestBody ItemBrokerageDetail itemBrokerageDetail) {
+        Boolean ret = itemBrokerageDetailService.add(itemBrokerageDetail);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 项目提成明细更新
+     */
+    @PutMapping("")
+    public RestResponse<Boolean> update(@RequestBody ItemBrokerageDetail itemBrokerageDetail) {
+        Boolean ret = itemBrokerageDetailService.update(itemBrokerageDetail);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 项目提成明细删除
+     */
+    @DeleteMapping("/{id}")
+    public RestResponse<Boolean> delete(@PathVariable Long id) {
+        Boolean ret = itemBrokerageDetailService.delete(id);
+        return RestResponse.data(ret);
+    }
+
+
+}
+

+ 83 - 0
biz-base/src/main/java/com/dayou/controller/ItemBrokerageGeneralController.java

@@ -0,0 +1,83 @@
+package com.dayou.controller;
+
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.web.bind.annotation.RestController;
+import com.dayou.controller.BaseController;
+import com.dayou.service.IItemBrokerageGeneralService;
+import com.dayou.entity.ItemBrokerageGeneral;
+import com.dayou.common.RestResponse;
+import org.springframework.web.bind.annotation.*;
+import com.dayou.utils.ConvertUtil;
+import com.dayou.utils.HttpKit;
+import com.dayou.exception.ErrorCode;
+import java.util.Date;
+import java.util.List;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springframework.http.MediaType;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * 项目提成总表
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@RestController
+@RequestMapping("itemBrokerageGeneral")
+@Slf4j
+public class ItemBrokerageGeneralController extends BaseController {
+    @Autowired
+    private IItemBrokerageGeneralService itemBrokerageGeneralService;
+
+    /**
+    * 项目提成总表列表
+    */
+    @GetMapping("")
+    public RestResponse<Page<ItemBrokerageGeneral>> page(ItemBrokerageGeneral itemBrokerageGeneral, Page page){
+        Page<ItemBrokerageGeneral> pages=itemBrokerageGeneralService.selectPage(page,itemBrokerageGeneral);
+        return RestResponse.data(pages);
+    }
+
+    /**
+     * 项目提成总表详情
+     */
+    @GetMapping("/{id}")
+    public RestResponse<ItemBrokerageGeneral> detail(@PathVariable Long id){
+        ItemBrokerageGeneral xItemBrokerageGeneral =itemBrokerageGeneralService.detail(id);
+        return RestResponse.data(xItemBrokerageGeneral);
+     }
+
+    /**
+     * 项目提成总表新增
+     */
+    @PostMapping("")
+    public RestResponse<Boolean> save(@RequestBody ItemBrokerageGeneral itemBrokerageGeneral) {
+        Boolean ret = itemBrokerageGeneralService.add(itemBrokerageGeneral);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 项目提成总表更新
+     */
+    @PutMapping("")
+    public RestResponse<Boolean> update(@RequestBody ItemBrokerageGeneral itemBrokerageGeneral) {
+        Boolean ret = itemBrokerageGeneralService.update(itemBrokerageGeneral);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 项目提成总表删除
+     */
+    @DeleteMapping("/{id}")
+    public RestResponse<Boolean> delete(@PathVariable Long id) {
+        Boolean ret = itemBrokerageGeneralService.delete(id);
+        return RestResponse.data(ret);
+    }
+
+
+}
+

+ 83 - 0
biz-base/src/main/java/com/dayou/controller/ItemBrokerageSequenceController.java

@@ -0,0 +1,83 @@
+package com.dayou.controller;
+
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.web.bind.annotation.RestController;
+import com.dayou.controller.BaseController;
+import com.dayou.service.IItemBrokerageSequenceService;
+import com.dayou.entity.ItemBrokerageSequence;
+import com.dayou.common.RestResponse;
+import org.springframework.web.bind.annotation.*;
+import com.dayou.utils.ConvertUtil;
+import com.dayou.utils.HttpKit;
+import com.dayou.exception.ErrorCode;
+import java.util.Date;
+import java.util.List;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springframework.http.MediaType;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * 项目提成流水
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@RestController
+@RequestMapping("itemBrokerageSequence")
+@Slf4j
+public class ItemBrokerageSequenceController extends BaseController {
+    @Autowired
+    private IItemBrokerageSequenceService itemBrokerageSequenceService;
+
+    /**
+    * 项目提成流水列表
+    */
+    @GetMapping("")
+    public RestResponse<Page<ItemBrokerageSequence>> page(ItemBrokerageSequence itemBrokerageSequence, Page page){
+        Page<ItemBrokerageSequence> pages=itemBrokerageSequenceService.selectPage(page,itemBrokerageSequence);
+        return RestResponse.data(pages);
+    }
+
+    /**
+     * 项目提成流水详情
+     */
+    @GetMapping("/{id}")
+    public RestResponse<ItemBrokerageSequence> detail(@PathVariable Long id){
+        ItemBrokerageSequence xItemBrokerageSequence =itemBrokerageSequenceService.detail(id);
+        return RestResponse.data(xItemBrokerageSequence);
+     }
+
+    /**
+     * 项目提成流水新增
+     */
+    @PostMapping("")
+    public RestResponse<Boolean> save(@RequestBody ItemBrokerageSequence itemBrokerageSequence) {
+        Boolean ret = itemBrokerageSequenceService.add(itemBrokerageSequence);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 项目提成流水更新
+     */
+    @PutMapping("")
+    public RestResponse<Boolean> update(@RequestBody ItemBrokerageSequence itemBrokerageSequence) {
+        Boolean ret = itemBrokerageSequenceService.update(itemBrokerageSequence);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 项目提成流水删除
+     */
+    @DeleteMapping("/{id}")
+    public RestResponse<Boolean> delete(@PathVariable Long id) {
+        Boolean ret = itemBrokerageSequenceService.delete(id);
+        return RestResponse.data(ret);
+    }
+
+
+}
+

+ 83 - 0
biz-base/src/main/java/com/dayou/controller/ItemBrokerageSequenceDetailController.java

@@ -0,0 +1,83 @@
+package com.dayou.controller;
+
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.web.bind.annotation.RestController;
+import com.dayou.controller.BaseController;
+import com.dayou.service.IItemBrokerageSequenceDetailService;
+import com.dayou.entity.ItemBrokerageSequenceDetail;
+import com.dayou.common.RestResponse;
+import org.springframework.web.bind.annotation.*;
+import com.dayou.utils.ConvertUtil;
+import com.dayou.utils.HttpKit;
+import com.dayou.exception.ErrorCode;
+import java.util.Date;
+import java.util.List;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springframework.http.MediaType;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * 提成流水明细表
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@RestController
+@RequestMapping("itemBrokerageSequenceDetail")
+@Slf4j
+public class ItemBrokerageSequenceDetailController extends BaseController {
+    @Autowired
+    private IItemBrokerageSequenceDetailService itemBrokerageSequenceDetailService;
+
+    /**
+    * 提成流水明细表列表
+    */
+    @GetMapping("")
+    public RestResponse<Page<ItemBrokerageSequenceDetail>> page(ItemBrokerageSequenceDetail itemBrokerageSequenceDetail, Page page){
+        Page<ItemBrokerageSequenceDetail> pages=itemBrokerageSequenceDetailService.selectPage(page,itemBrokerageSequenceDetail);
+        return RestResponse.data(pages);
+    }
+
+    /**
+     * 提成流水明细表详情
+     */
+    @GetMapping("/{id}")
+    public RestResponse<ItemBrokerageSequenceDetail> detail(@PathVariable Long id){
+        ItemBrokerageSequenceDetail xItemBrokerageSequenceDetail =itemBrokerageSequenceDetailService.detail(id);
+        return RestResponse.data(xItemBrokerageSequenceDetail);
+     }
+
+    /**
+     * 提成流水明细表新增
+     */
+    @PostMapping("")
+    public RestResponse<Boolean> save(@RequestBody ItemBrokerageSequenceDetail itemBrokerageSequenceDetail) {
+        Boolean ret = itemBrokerageSequenceDetailService.add(itemBrokerageSequenceDetail);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 提成流水明细表更新
+     */
+    @PutMapping("")
+    public RestResponse<Boolean> update(@RequestBody ItemBrokerageSequenceDetail itemBrokerageSequenceDetail) {
+        Boolean ret = itemBrokerageSequenceDetailService.update(itemBrokerageSequenceDetail);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 提成流水明细表删除
+     */
+    @DeleteMapping("/{id}")
+    public RestResponse<Boolean> delete(@PathVariable Long id) {
+        Boolean ret = itemBrokerageSequenceDetailService.delete(id);
+        return RestResponse.data(ret);
+    }
+
+
+}
+

+ 1 - 0
biz-base/src/main/java/com/dayou/controller/ItemController.java

@@ -44,6 +44,7 @@ public class ItemController extends BaseController {
 
     /**
     * 项目信息表列表(项目所属部门是自己的部门的项目)
+     * //todo 项目类型和业务来源需处理
     */
     @DataPermission(department = true,postChild = false)
     @GetMapping("")

+ 83 - 0
biz-base/src/main/java/com/dayou/controller/ItemEvaluateController.java

@@ -0,0 +1,83 @@
+package com.dayou.controller;
+
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.web.bind.annotation.RestController;
+import com.dayou.controller.BaseController;
+import com.dayou.service.IItemEvaluateService;
+import com.dayou.entity.ItemEvaluate;
+import com.dayou.common.RestResponse;
+import org.springframework.web.bind.annotation.*;
+import com.dayou.utils.ConvertUtil;
+import com.dayou.utils.HttpKit;
+import com.dayou.exception.ErrorCode;
+import java.util.Date;
+import java.util.List;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springframework.http.MediaType;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * 项目完结评价表
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@RestController
+@RequestMapping("itemEvaluate")
+@Slf4j
+public class ItemEvaluateController extends BaseController {
+    @Autowired
+    private IItemEvaluateService itemEvaluateService;
+
+    /**
+    * 项目完结评价表列表
+    */
+    @GetMapping("")
+    public RestResponse<Page<ItemEvaluate>> page(ItemEvaluate itemEvaluate, Page page){
+        Page<ItemEvaluate> pages=itemEvaluateService.selectPage(page,itemEvaluate);
+        return RestResponse.data(pages);
+    }
+
+    /**
+     * 项目完结评价表详情
+     */
+    @GetMapping("/{id}")
+    public RestResponse<ItemEvaluate> detail(@PathVariable Long id){
+        ItemEvaluate xItemEvaluate =itemEvaluateService.detail(id);
+        return RestResponse.data(xItemEvaluate);
+     }
+
+    /**
+     * 项目完结评价表新增
+     */
+    @PostMapping("")
+    public RestResponse<Boolean> save(@RequestBody ItemEvaluate itemEvaluate) {
+        Boolean ret = itemEvaluateService.add(itemEvaluate);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 项目完结评价表更新
+     */
+    @PutMapping("")
+    public RestResponse<Boolean> update(@RequestBody ItemEvaluate itemEvaluate) {
+        Boolean ret = itemEvaluateService.update(itemEvaluate);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 项目完结评价表删除
+     */
+    @DeleteMapping("/{id}")
+    public RestResponse<Boolean> delete(@PathVariable Long id) {
+        Boolean ret = itemEvaluateService.delete(id);
+        return RestResponse.data(ret);
+    }
+
+
+}
+

+ 83 - 0
biz-base/src/main/java/com/dayou/controller/ItemStageUserController.java

@@ -0,0 +1,83 @@
+package com.dayou.controller;
+
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.web.bind.annotation.RestController;
+import com.dayou.controller.BaseController;
+import com.dayou.service.IItemStageUserService;
+import com.dayou.entity.ItemStageUser;
+import com.dayou.common.RestResponse;
+import org.springframework.web.bind.annotation.*;
+import com.dayou.utils.ConvertUtil;
+import com.dayou.utils.HttpKit;
+import com.dayou.exception.ErrorCode;
+import java.util.Date;
+import java.util.List;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springframework.http.MediaType;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * 项目人员阶段参与表
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@RestController
+@RequestMapping("itemStageUser")
+@Slf4j
+public class ItemStageUserController extends BaseController {
+    @Autowired
+    private IItemStageUserService itemStageUserService;
+
+    /**
+    * 项目人员阶段参与表列表
+    */
+    @GetMapping("")
+    public RestResponse<Page<ItemStageUser>> page(ItemStageUser itemStageUser, Page page){
+        Page<ItemStageUser> pages=itemStageUserService.selectPage(page,itemStageUser);
+        return RestResponse.data(pages);
+    }
+
+    /**
+     * 项目人员阶段参与表详情
+     */
+    @GetMapping("/{id}")
+    public RestResponse<ItemStageUser> detail(@PathVariable Long id){
+        ItemStageUser xItemStageUser =itemStageUserService.detail(id);
+        return RestResponse.data(xItemStageUser);
+     }
+
+    /**
+     * 项目人员阶段参与表新增
+     */
+    @PostMapping("")
+    public RestResponse<Boolean> save(@RequestBody ItemStageUser itemStageUser) {
+        Boolean ret = itemStageUserService.add(itemStageUser);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 项目人员阶段参与表更新
+     */
+    @PutMapping("")
+    public RestResponse<Boolean> update(@RequestBody ItemStageUser itemStageUser) {
+        Boolean ret = itemStageUserService.update(itemStageUser);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 项目人员阶段参与表删除
+     */
+    @DeleteMapping("/{id}")
+    public RestResponse<Boolean> delete(@PathVariable Long id) {
+        Boolean ret = itemStageUserService.delete(id);
+        return RestResponse.data(ret);
+    }
+
+
+}
+

+ 16 - 0
dao/src/main/java/com/dayou/mapper/BrokerageMarketerRatioMapper.java

@@ -0,0 +1,16 @@
+package com.dayou.mapper;
+
+import com.dayou.entity.BrokerageMarketerRatio;
+import com.dayou.dao.CustomBaseMapper;
+
+/**
+ * <p>
+ * 项目提成比例(市场人员) Mapper 接口
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+public interface BrokerageMarketerRatioMapper extends CustomBaseMapper<BrokerageMarketerRatio> {
+
+}

+ 8 - 2
dao/src/main/java/com/dayou/mapper/GlobalConfigMapper.java

@@ -1,7 +1,10 @@
 package com.dayou.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dayou.entity.GlobalConfig;
-import com.dayou.dao.CustomBaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -11,6 +14,9 @@ import com.dayou.dao.CustomBaseMapper;
  * @author wucl
  * @since 2022-12-07
  */
-public interface GlobalConfigMapper extends CustomBaseMapper<GlobalConfig> {
+public interface GlobalConfigMapper extends BaseMapper<GlobalConfig> {
+
+    void insertOrUpdateBatch(@Param("list") List<GlobalConfig> list);
 
+    Boolean updateBatchByKey(@Param("list") List<GlobalConfig> globalConfigs);
 }

+ 16 - 0
dao/src/main/java/com/dayou/mapper/ItemBrokerageDetailMapper.java

@@ -0,0 +1,16 @@
+package com.dayou.mapper;
+
+import com.dayou.entity.ItemBrokerageDetail;
+import com.dayou.dao.CustomBaseMapper;
+
+/**
+ * <p>
+ * 项目提成明细 Mapper 接口
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+public interface ItemBrokerageDetailMapper extends CustomBaseMapper<ItemBrokerageDetail> {
+
+}

+ 16 - 0
dao/src/main/java/com/dayou/mapper/ItemBrokerageGeneralMapper.java

@@ -0,0 +1,16 @@
+package com.dayou.mapper;
+
+import com.dayou.entity.ItemBrokerageGeneral;
+import com.dayou.dao.CustomBaseMapper;
+
+/**
+ * <p>
+ * 项目提成总表 Mapper 接口
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+public interface ItemBrokerageGeneralMapper extends CustomBaseMapper<ItemBrokerageGeneral> {
+
+}

+ 16 - 0
dao/src/main/java/com/dayou/mapper/ItemBrokerageSequenceDetailMapper.java

@@ -0,0 +1,16 @@
+package com.dayou.mapper;
+
+import com.dayou.entity.ItemBrokerageSequenceDetail;
+import com.dayou.dao.CustomBaseMapper;
+
+/**
+ * <p>
+ * 提成流水明细表 Mapper 接口
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+public interface ItemBrokerageSequenceDetailMapper extends CustomBaseMapper<ItemBrokerageSequenceDetail> {
+
+}

+ 16 - 0
dao/src/main/java/com/dayou/mapper/ItemBrokerageSequenceMapper.java

@@ -0,0 +1,16 @@
+package com.dayou.mapper;
+
+import com.dayou.entity.ItemBrokerageSequence;
+import com.dayou.dao.CustomBaseMapper;
+
+/**
+ * <p>
+ * 项目提成流水 Mapper 接口
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+public interface ItemBrokerageSequenceMapper extends CustomBaseMapper<ItemBrokerageSequence> {
+
+}

+ 16 - 0
dao/src/main/java/com/dayou/mapper/ItemEvaluateMapper.java

@@ -0,0 +1,16 @@
+package com.dayou.mapper;
+
+import com.dayou.entity.ItemEvaluate;
+import com.dayou.dao.CustomBaseMapper;
+
+/**
+ * <p>
+ * 项目完结评价表 Mapper 接口
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+public interface ItemEvaluateMapper extends CustomBaseMapper<ItemEvaluate> {
+
+}

+ 16 - 0
dao/src/main/java/com/dayou/mapper/ItemStageUserMapper.java

@@ -0,0 +1,16 @@
+package com.dayou.mapper;
+
+import com.dayou.entity.ItemStageUser;
+import com.dayou.dao.CustomBaseMapper;
+
+/**
+ * <p>
+ * 项目人员阶段参与表 Mapper 接口
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+public interface ItemStageUserMapper extends CustomBaseMapper<ItemStageUser> {
+
+}

+ 26 - 0
dao/src/main/resources/mapper/BrokerageMarketerRatioMapper.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dayou.mapper.BrokerageMarketerRatioMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.BrokerageMarketerRatio">
+        <result column="id" property="id" />
+        <result column="deleted" property="deleted" />
+        <result column="created" property="created" />
+        <result column="modified" property="modified" />
+        <result column="item_cate" property="itemCate" />
+        <result column="item_source" property="itemSource" />
+        <result column="ratio" property="ratio" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        deleted,
+        created,
+        modified,
+        item_cate, item_source, ratio, remark
+    </sql>
+
+</mapper>

+ 29 - 0
dao/src/main/resources/mapper/GlobalConfigMapper.xml

@@ -23,4 +23,33 @@
         name, field, value, description
     </sql>
 
+    <insert id="insertOrUpdateBatch">
+        insert into global_config(`key`, `value`,field,description) values
+        <foreach collection="list" item="o" separator="," >
+            (#{o.name},#{o.value},#{o.field},#{o.description})
+        </foreach>
+        on duplicate key update
+        <![CDATA[`value` = case when values(`value`) <> '' then values(`value`) else `value` end,
+        description = values(description)
+        ]]>
+    </insert>
+
+    <update id="updateBatchByKey">
+        update global_config
+        set `value` = case
+        <foreach collection="list" item="g" separator=" ">
+            when `key`=#{g.name} and field = #{g.field} then #{g.value}
+        </foreach>
+        end
+        where
+        `key` in
+        <foreach collection="list" item="g" separator="," open="(" close=")">
+            #{g.name}
+        </foreach>
+        and field in
+        <foreach collection="list" item="g" separator="," open="(" close=")">
+            #{g.field}
+        </foreach>
+    </update>
+
 </mapper>

+ 29 - 0
dao/src/main/resources/mapper/ItemBrokerageDetailMapper.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dayou.mapper.ItemBrokerageDetailMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.ItemBrokerageDetail">
+        <result column="id" property="id" />
+        <result column="deleted" property="deleted" />
+        <result column="created" property="created" />
+        <result column="modified" property="modified" />
+        <result column="general_id" property="generalId" />
+        <result column="user_id" property="userId" />
+        <result column="predict_amount" property="predictAmount" />
+        <result column="atcual_amount" property="atcualAmount" />
+        <result column="advance_amount" property="advanceAmount" />
+        <result column="brokerage_rule" property="brokerageRule" />
+        <result column="brokerage_mode" property="brokerageMode" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        deleted,
+        created,
+        modified,
+        general_id, user_id, predict_amount, atcual_amount, advance_amount, brokerage_rule, brokerage_mode
+    </sql>
+
+</mapper>

+ 33 - 0
dao/src/main/resources/mapper/ItemBrokerageGeneralMapper.xml

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dayou.mapper.ItemBrokerageGeneralMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.ItemBrokerageGeneral">
+        <result column="id" property="id" />
+        <result column="deleted" property="deleted" />
+        <result column="created" property="created" />
+        <result column="modified" property="modified" />
+        <result column="item_id" property="itemId" />
+        <result column="marketer_brokerage_amount" property="marketerBrokerageAmount" />
+        <result column="marketer_advance_brokerage_able" property="marketerAdvanceBrokerageAble" />
+        <result column="marketer_advance_brokerage_done" property="marketerAdvanceBrokerageDone" />
+        <result column="participant_predict_brokerage_amount" property="participantPredictBrokerageAmount" />
+        <result column="participant_actual_brokerage_amount" property="participantActualBrokerageAmount" />
+        <result column="participant_advance_status" property="participantAdvanceStatus" />
+        <result column="brokerage_predict_amount" property="brokeragePredictAmount" />
+        <result column="brokerage_actual_amount" property="brokerageActualAmount" />
+        <result column="brokerage_rate" property="brokerageRate" />
+        <result column="status" property="status" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        deleted,
+        created,
+        modified,
+        item_id, marketer_brokerage_amount, marketer_advance_brokerage_able, marketer_advance_brokerage_done, participant_predict_brokerage_amount, participant_actual_brokerage_amount, participant_advance_status, brokerage_predict_amount, brokerage_actual_amount, brokerage_rate, status
+    </sql>
+
+</mapper>

+ 26 - 0
dao/src/main/resources/mapper/ItemBrokerageSequenceDetailMapper.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dayou.mapper.ItemBrokerageSequenceDetailMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.ItemBrokerageSequenceDetail">
+        <result column="id" property="id" />
+        <result column="deleted" property="deleted" />
+        <result column="created" property="created" />
+        <result column="modified" property="modified" />
+        <result column="brokerage_detail_id" property="brokerageDetailId" />
+        <result column="sequence_id" property="sequenceId" />
+        <result column="brokerage_amount" property="brokerageAmount" />
+        <result column="brokerage_cate" property="brokerageCate" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        deleted,
+        created,
+        modified,
+        brokerage_detail_id, sequence_id, brokerage_amount, brokerage_cate
+    </sql>
+
+</mapper>

+ 26 - 0
dao/src/main/resources/mapper/ItemBrokerageSequenceMapper.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dayou.mapper.ItemBrokerageSequenceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.ItemBrokerageSequence">
+        <result column="id" property="id" />
+        <result column="deleted" property="deleted" />
+        <result column="created" property="created" />
+        <result column="modified" property="modified" />
+        <result column="user_id" property="userId" />
+        <result column="brokerage_amount" property="brokerageAmount" />
+        <result column="embody" property="embody" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        deleted,
+        created,
+        modified,
+        user_id, brokerage_amount, embody, remark
+    </sql>
+
+</mapper>

+ 25 - 0
dao/src/main/resources/mapper/ItemEvaluateMapper.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dayou.mapper.ItemEvaluateMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.ItemEvaluate">
+        <result column="id" property="id" />
+        <result column="deleted" property="deleted" />
+        <result column="created" property="created" />
+        <result column="modified" property="modified" />
+        <result column="item_id" property="itemId" />
+        <result column="weight" property="weight" />
+        <result column="comments" property="comments" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        deleted,
+        created,
+        modified,
+        item_id, weight, comments
+    </sql>
+
+</mapper>

+ 6 - 0
dao/src/main/resources/mapper/ItemStageMapper.xml

@@ -15,6 +15,9 @@
         <result column="end_date" property="endDate" />
         <result column="dutyer_id" property="dutyerId" />
         <result column="remark" property="remark" />
+        <result column="weight" property="weight" />
+        <result column="coefficient" property="coefficient" />
+        <result column="overdue" property="overdue" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
@@ -30,6 +33,9 @@
 	s.end_date,
 	s.dutyer_id,
 	s.remark,
+    s.weight,
+    s.coefficient,
+    s.overdue,
     </sql>
 
     <select id="listByItemId" parameterType="java.lang.Long" resultType="com.dayou.vo.ItemStageVO">

+ 20 - 0
dao/src/main/resources/mapper/ItemStageUserMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dayou.mapper.ItemStageUserMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.ItemStageUser">
+        <result column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="item_id" property="itemId" />
+        <result column="stage_id" property="stageId" />
+        <result column="weight" property="weight" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        user_id, item_id, stage_id, weight
+    </sql>
+
+</mapper>

+ 48 - 0
domain/src/main/java/com/dayou/entity/BrokerageMarketerRatio.java

@@ -0,0 +1,48 @@
+package com.dayou.entity;
+import com.dayou.common.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.dayou.annotation.ExcelSheet;
+import com.dayou.annotation.ExportCell;
+import com.dayou.annotation.ImportCell;
+/**
+ * <p>
+ * 项目提成比例(市场人员)
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ExcelSheet(sheetName = "项目提成比例(市场人员)")
+public class BrokerageMarketerRatio extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 项目类型字典id
+     */
+    private Long itemCate;
+
+    /**
+     * 项目来源字典id
+     */
+    private Long itemSource;
+
+    /**
+     * 提成比例
+     */
+    @ImportCell
+    @ExportCell(columnName = "提成比例")
+    private Double ratio;
+
+    /**
+     * 备注
+     */
+    @ImportCell
+    @ExportCell(columnName = "备注")
+    private String remark;
+
+
+}

+ 70 - 0
domain/src/main/java/com/dayou/entity/ItemBrokerageDetail.java

@@ -0,0 +1,70 @@
+package com.dayou.entity;
+import java.math.BigDecimal;
+import com.dayou.common.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.dayou.annotation.ExcelSheet;
+import com.dayou.annotation.ExportCell;
+import com.dayou.annotation.ImportCell;
+/**
+ * <p>
+ * 项目提成明细
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ExcelSheet(sheetName = "项目提成明细")
+public class ItemBrokerageDetail extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 项目提成总表id
+     */
+    private Long generalId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 预计提成金额
+     */
+    @ImportCell
+    @ExportCell(columnName = "预计提成金额")
+    private BigDecimal predictAmount;
+
+    /**
+     * 实际提成金额
+     */
+    @ImportCell
+    @ExportCell(columnName = "实际提成金额")
+    private BigDecimal atcualAmount;
+
+    /**
+     * 已预提金额
+     */
+    @ImportCell
+    @ExportCell(columnName = "已预提金额")
+    private BigDecimal advanceAmount;
+
+    /**
+     * 提成规则
+     */
+    @ImportCell
+    @ExportCell(columnName = "提成规则")
+    private String brokerageRule;
+
+    /**
+     * 提成方式
+     */
+    @ImportCell
+    @ExportCell(columnName = "提成方式")
+    private String brokerageMode;
+
+
+}

+ 100 - 0
domain/src/main/java/com/dayou/entity/ItemBrokerageGeneral.java

@@ -0,0 +1,100 @@
+package com.dayou.entity;
+import java.math.BigDecimal;
+import com.dayou.common.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.dayou.annotation.ExcelSheet;
+import com.dayou.annotation.ExportCell;
+import com.dayou.annotation.ImportCell;
+/**
+ * <p>
+ * 项目提成总表
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ExcelSheet(sheetName = "项目提成总表")
+public class ItemBrokerageGeneral extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 项目id
+     */
+    private Long itemId;
+
+    /**
+     * 客户经理提成金额
+     */
+    @ImportCell
+    @ExportCell(columnName = "客户经理提成金额")
+    private BigDecimal marketerBrokerageAmount;
+
+    /**
+     * 客户经理预提
+     */
+    @ImportCell
+    @ExportCell(columnName = "客户经理预提")
+    private Boolean marketerAdvanceBrokerageAble;
+
+    /**
+     * 客户经理已预提
+     */
+    @ImportCell
+    @ExportCell(columnName = "客户经理已预提")
+    private Boolean marketerAdvanceBrokerageDone;
+
+    /**
+     * 参与人预计提成总金额
+     */
+    @ImportCell
+    @ExportCell(columnName = "参与人预计提成总金额")
+    private BigDecimal participantPredictBrokerageAmount;
+
+    /**
+     * 参与人实际提成总金额
+     */
+    @ImportCell
+    @ExportCell(columnName = "参与人实际提成总金额")
+    private BigDecimal participantActualBrokerageAmount;
+
+    /**
+     * 参与人预提中
+     */
+    @ImportCell
+    @ExportCell(columnName = "参与人预提中")
+    private Boolean participantAdvanceStatus;
+
+    /**
+     * 预计提成总金额
+     */
+    @ImportCell
+    @ExportCell(columnName = "预计提成总金额")
+    private BigDecimal brokeragePredictAmount;
+
+    /**
+     * 已提成总金额
+     */
+    @ImportCell
+    @ExportCell(columnName = "已提成总金额")
+    private BigDecimal brokerageActualAmount;
+
+    /**
+     * 提成率
+     */
+    @ImportCell
+    @ExportCell(columnName = "提成率")
+    private BigDecimal brokerageRate;
+
+    /**
+     * 状态
+     */
+    @ImportCell
+    @ExportCell(columnName = "状态")
+    private String status;
+
+
+}

+ 51 - 0
domain/src/main/java/com/dayou/entity/ItemBrokerageSequence.java

@@ -0,0 +1,51 @@
+package com.dayou.entity;
+import java.math.BigDecimal;
+import com.dayou.common.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.dayou.annotation.ExcelSheet;
+import com.dayou.annotation.ExportCell;
+import com.dayou.annotation.ImportCell;
+/**
+ * <p>
+ * 项目提成流水
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ExcelSheet(sheetName = "项目提成流水")
+public class ItemBrokerageSequence extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 提成总金额
+     */
+    @ImportCell
+    @ExportCell(columnName = "提成总金额")
+    private BigDecimal brokerageAmount;
+
+    /**
+     * 提成体现
+     */
+    @ImportCell
+    @ExportCell(columnName = "提成体现")
+    private String embody;
+
+    /**
+     * 备注
+     */
+    @ImportCell
+    @ExportCell(columnName = "备注")
+    private String remark;
+
+
+}

+ 49 - 0
domain/src/main/java/com/dayou/entity/ItemBrokerageSequenceDetail.java

@@ -0,0 +1,49 @@
+package com.dayou.entity;
+import java.math.BigDecimal;
+import com.dayou.common.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.dayou.annotation.ExcelSheet;
+import com.dayou.annotation.ExportCell;
+import com.dayou.annotation.ImportCell;
+/**
+ * <p>
+ * 提成流水明细表
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ExcelSheet(sheetName = "提成流水明细表")
+public class ItemBrokerageSequenceDetail extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 项目提成明细表id
+     */
+    private Long brokerageDetailId;
+
+    /**
+     * 项目提成流水表id
+     */
+    private Long sequenceId;
+
+    /**
+     * 提成金额
+     */
+    @ImportCell
+    @ExportCell(columnName = "提成金额")
+    private BigDecimal brokerageAmount;
+
+    /**
+     * 提成类型(预提,结算)
+     */
+    @ImportCell
+    @ExportCell(columnName = "提成类型(预提,结算)")
+    private String brokerageCate;
+
+
+}

+ 43 - 0
domain/src/main/java/com/dayou/entity/ItemEvaluate.java

@@ -0,0 +1,43 @@
+package com.dayou.entity;
+import com.dayou.common.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.dayou.annotation.ExcelSheet;
+import com.dayou.annotation.ExportCell;
+import com.dayou.annotation.ImportCell;
+/**
+ * <p>
+ * 项目完结评价表
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ExcelSheet(sheetName = "项目完结评价表")
+public class ItemEvaluate extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 项目id
+     */
+    private Long itemId;
+
+    /**
+     * 项目整体提成权重
+     */
+    @ImportCell
+    @ExportCell(columnName = "项目整体提成权重")
+    private Double weight;
+
+    /**
+     * 项目评价
+     */
+    @ImportCell
+    @ExportCell(columnName = "项目评价")
+    private String comments;
+
+
+}

+ 13 - 0
domain/src/main/java/com/dayou/entity/ItemStage.java

@@ -92,4 +92,17 @@ public class ItemStage{
      */
     private Date created;
 
+    /**
+     *提成权重
+     */
+    private Double weight;
+    /**
+     *逾期提成系数
+     */
+    private Double coefficient;
+    /**
+     *是否逾期
+     */
+    private Boolean overdue;
+
 }

+ 46 - 0
domain/src/main/java/com/dayou/entity/ItemStageUser.java

@@ -0,0 +1,46 @@
+package com.dayou.entity;
+import com.dayou.common.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.dayou.annotation.ExcelSheet;
+import com.dayou.annotation.ExportCell;
+import com.dayou.annotation.ImportCell;
+/**
+ * <p>
+ * 项目人员阶段参与表
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ExcelSheet(sheetName = "项目人员阶段参与表")
+public class ItemStageUser extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 项目id
+     */
+    private Long itemId;
+
+    /**
+     * 项目阶段id
+     */
+    private Long stageId;
+
+    /**
+     * 提成比例
+     */
+    @ImportCell
+    @ExportCell(columnName = "提成比例")
+    private Double weight;
+
+
+}

+ 80 - 0
domain/src/main/java/com/dayou/enums/GlobalConfigEnum.java

@@ -0,0 +1,80 @@
+package com.dayou.enums;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2023/3/3
+ * created with IntelliJ IDEA.
+ */
+public enum GlobalConfigEnum implements CodeMsgEnumInterface<String,CodeMsgEnumInterface<?,?>[]>{
+
+    FINANCE("FINANCE",Finance.values(),"财务配置")
+    ;
+
+    private String key;
+
+    private CodeMsgEnumInterface[] filedValues;
+
+    private String desc;
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+
+    @Override
+    public String getCode() {
+        return key;
+    }
+
+    @Override
+    public CodeMsgEnumInterface[] getMsg() {
+        return filedValues;
+    }
+
+    GlobalConfigEnum(String key, CodeMsgEnumInterface[] filedValues, String desc) {
+        this.key = key;
+        this.filedValues = filedValues;
+        this.desc = desc;
+    }
+
+    public enum Finance implements CodeMsgEnumInterface<String,String>{
+
+        NON_MARKETER_MONTH_BROKERAGE("NON_MARKETER_MONTH_BROKERAGE",null,"土规部非市场人员每月固定预提金额")
+        ;
+
+        private String filed;
+
+        private String value;
+
+        private String desc;
+
+        Finance(String filed, String value, String desc) {
+            this.filed = filed;
+            this.value = value;
+            this.desc = desc;
+        }
+
+        public String getDesc() {
+            return desc;
+        }
+
+        public void setDesc(String desc) {
+            this.desc = desc;
+        }
+
+        @Override
+        public String getCode() {
+            return filed;
+        }
+
+        @Override
+        public String getMsg() {
+            return desc;
+        }
+    }
+}

+ 13 - 0
service/src/main/java/com/dayou/brokerage/BrokerageCalculateSupport.java

@@ -0,0 +1,13 @@
+package com.dayou.brokerage;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2023/3/3
+ * created with IntelliJ IDEA.
+ */
+public abstract class BrokerageCalculateSupport implements BrokerageCalculator {
+
+
+}

+ 36 - 0
service/src/main/java/com/dayou/brokerage/BrokerageCalculator.java

@@ -0,0 +1,36 @@
+package com.dayou.brokerage;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2023/3/3
+ * created with IntelliJ IDEA.
+ */
+public interface BrokerageCalculator {
+
+    /**
+     * 预估提成金额
+     */
+    void predictAmount();
+
+    /**
+     * 实际提成金额
+     */
+    void actualAmount();
+
+    /**
+     * 预提金额
+     */
+    void advanceAmount();
+
+    /**
+     * 预提金额总和
+     */
+    void advanceTotalAmount();
+
+    /**
+     * 剩余未提金额
+     */
+    void residueAmount();
+}

+ 29 - 0
service/src/main/java/com/dayou/brokerage/config/BrokerageConfig.java

@@ -0,0 +1,29 @@
+package com.dayou.brokerage.config;
+
+import com.dayou.brokerage.validator.BrokerageValidator;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2023/3/3
+ * created with IntelliJ IDEA.
+ */
+@Configuration
+public class BrokerageConfig {
+
+    private BrokerageValidator brokerageValidator;
+
+    @Bean
+    public BrokerageConfig getBrokerageConfig(BrokerageValidator brokerageValidator) {
+        BrokerageConfig brokerageConfig = new BrokerageConfig();
+        brokerageConfig.setBrokerageValidator(brokerageValidator);
+        return brokerageConfig;
+    }
+
+    public void setBrokerageValidator(BrokerageValidator brokerageValidator) {
+        this.brokerageValidator = brokerageValidator;
+    }
+}

+ 32 - 0
service/src/main/java/com/dayou/brokerage/constants/BrokerageMode.java

@@ -0,0 +1,32 @@
+package com.dayou.brokerage.constants;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2023/3/3
+ * created with IntelliJ IDEA.
+ */
+public enum BrokerageMode {
+
+    TEAM_SHARE("团队抽成","TEAM_SHARE"),
+    PERSONAL("个人提成","PERSONAL")
+    ;
+
+    private String name;
+
+    private String code;
+
+    BrokerageMode(String name, String code) {
+        this.name = name;
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+}

+ 33 - 0
service/src/main/java/com/dayou/brokerage/constants/BrokerageRule.java

@@ -0,0 +1,33 @@
+package com.dayou.brokerage.constants;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2023/3/3
+ * created with IntelliJ IDEA.
+ */
+public enum BrokerageRule {
+
+    LAND_MARKETER_RULE("土地规划部市场人员规则","LAND_MARKETER_RULE"),
+    LAND_OTHER_RULE("土地规划部参与人员规则","LAND_OTHER_RULE")
+
+    ;
+
+    private String name;
+
+    private String code;
+
+    BrokerageRule(String name, String code) {
+        this.name = name;
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+}

+ 34 - 0
service/src/main/java/com/dayou/brokerage/constants/BrokerageState.java

@@ -0,0 +1,34 @@
+package com.dayou.brokerage.constants;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2023/3/3
+ * created with IntelliJ IDEA.
+ */
+public enum BrokerageState {
+
+    NOT_START("未开始","NOT_START"),
+    PREDICTING("预提中","PREDICTING"),
+    FREEZE("冻结","FREEZE"),
+    CLOSED("已结算","CLOSED")
+    ;
+
+    private String name;
+
+    private String code;
+
+    BrokerageState(String name, String code) {
+        this.name = name;
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+}

+ 32 - 0
service/src/main/java/com/dayou/brokerage/constants/BrokerageType.java

@@ -0,0 +1,32 @@
+package com.dayou.brokerage.constants;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2023/3/3
+ * created with IntelliJ IDEA.
+ */
+public enum BrokerageType {
+
+    PREDICT("预提","PREDICT"),
+    CLOSE("结算","CLOSE")
+    ;
+
+    private String name;
+
+    private String code;
+
+    BrokerageType(String name, String code) {
+        this.name = name;
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+}

+ 24 - 0
service/src/main/java/com/dayou/brokerage/validator/BrokerageValidator.java

@@ -0,0 +1,24 @@
+package com.dayou.brokerage.validator;
+
+import org.springframework.stereotype.Component;
+
+/**
+ * 类说明:提成校验器
+ *
+ * @author: wucl
+ * @since: 2023/3/3
+ * created with IntelliJ IDEA.
+ */
+@Component
+public class BrokerageValidator {
+
+
+    //todo m1 校验客户经理对此单是否可以预提
+
+
+    //todo m2 校验项目提成状态是否被冻结
+
+    //todo m3 校验参与者是否可继续预提
+
+
+}

+ 28 - 0
service/src/main/java/com/dayou/service/IBrokerageMarketerRatioService.java

@@ -0,0 +1,28 @@
+package com.dayou.service;
+import com.dayou.entity.BrokerageMarketerRatio;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * <p>
+ * 项目提成比例(市场人员) 服务类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+public interface IBrokerageMarketerRatioService extends IService<BrokerageMarketerRatio> {
+
+        Page<BrokerageMarketerRatio> selectPage(Page page,BrokerageMarketerRatio brokerageMarketerRatio);
+
+        BrokerageMarketerRatio detail(Long id);
+
+        Boolean add(BrokerageMarketerRatio brokerageMarketerRatio);
+
+        Boolean update(BrokerageMarketerRatio brokerageMarketerRatio);
+
+        Boolean delete(Long id);
+
+}

+ 28 - 0
service/src/main/java/com/dayou/service/IItemBrokerageDetailService.java

@@ -0,0 +1,28 @@
+package com.dayou.service;
+import com.dayou.entity.ItemBrokerageDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * <p>
+ * 项目提成明细 服务类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+public interface IItemBrokerageDetailService extends IService<ItemBrokerageDetail> {
+
+        Page<ItemBrokerageDetail> selectPage(Page page,ItemBrokerageDetail itemBrokerageDetail);
+
+        ItemBrokerageDetail detail(Long id);
+
+        Boolean add(ItemBrokerageDetail itemBrokerageDetail);
+
+        Boolean update(ItemBrokerageDetail itemBrokerageDetail);
+
+        Boolean delete(Long id);
+
+}

+ 28 - 0
service/src/main/java/com/dayou/service/IItemBrokerageGeneralService.java

@@ -0,0 +1,28 @@
+package com.dayou.service;
+import com.dayou.entity.ItemBrokerageGeneral;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * <p>
+ * 项目提成总表 服务类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+public interface IItemBrokerageGeneralService extends IService<ItemBrokerageGeneral> {
+
+        Page<ItemBrokerageGeneral> selectPage(Page page,ItemBrokerageGeneral itemBrokerageGeneral);
+
+        ItemBrokerageGeneral detail(Long id);
+
+        Boolean add(ItemBrokerageGeneral itemBrokerageGeneral);
+
+        Boolean update(ItemBrokerageGeneral itemBrokerageGeneral);
+
+        Boolean delete(Long id);
+
+}

+ 28 - 0
service/src/main/java/com/dayou/service/IItemBrokerageSequenceDetailService.java

@@ -0,0 +1,28 @@
+package com.dayou.service;
+import com.dayou.entity.ItemBrokerageSequenceDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * <p>
+ * 提成流水明细表 服务类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+public interface IItemBrokerageSequenceDetailService extends IService<ItemBrokerageSequenceDetail> {
+
+        Page<ItemBrokerageSequenceDetail> selectPage(Page page,ItemBrokerageSequenceDetail itemBrokerageSequenceDetail);
+
+        ItemBrokerageSequenceDetail detail(Long id);
+
+        Boolean add(ItemBrokerageSequenceDetail itemBrokerageSequenceDetail);
+
+        Boolean update(ItemBrokerageSequenceDetail itemBrokerageSequenceDetail);
+
+        Boolean delete(Long id);
+
+}

+ 28 - 0
service/src/main/java/com/dayou/service/IItemBrokerageSequenceService.java

@@ -0,0 +1,28 @@
+package com.dayou.service;
+import com.dayou.entity.ItemBrokerageSequence;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * <p>
+ * 项目提成流水 服务类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+public interface IItemBrokerageSequenceService extends IService<ItemBrokerageSequence> {
+
+        Page<ItemBrokerageSequence> selectPage(Page page,ItemBrokerageSequence itemBrokerageSequence);
+
+        ItemBrokerageSequence detail(Long id);
+
+        Boolean add(ItemBrokerageSequence itemBrokerageSequence);
+
+        Boolean update(ItemBrokerageSequence itemBrokerageSequence);
+
+        Boolean delete(Long id);
+
+}

+ 28 - 0
service/src/main/java/com/dayou/service/IItemEvaluateService.java

@@ -0,0 +1,28 @@
+package com.dayou.service;
+import com.dayou.entity.ItemEvaluate;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * <p>
+ * 项目完结评价表 服务类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+public interface IItemEvaluateService extends IService<ItemEvaluate> {
+
+        Page<ItemEvaluate> selectPage(Page page,ItemEvaluate itemEvaluate);
+
+        ItemEvaluate detail(Long id);
+
+        Boolean add(ItemEvaluate itemEvaluate);
+
+        Boolean update(ItemEvaluate itemEvaluate);
+
+        Boolean delete(Long id);
+
+}

+ 28 - 0
service/src/main/java/com/dayou/service/IItemStageUserService.java

@@ -0,0 +1,28 @@
+package com.dayou.service;
+import com.dayou.entity.ItemStageUser;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * <p>
+ * 项目人员阶段参与表 服务类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+public interface IItemStageUserService extends IService<ItemStageUser> {
+
+        Page<ItemStageUser> selectPage(Page page,ItemStageUser itemStageUser);
+
+        ItemStageUser detail(Long id);
+
+        Boolean add(ItemStageUser itemStageUser);
+
+        Boolean update(ItemStageUser itemStageUser);
+
+        Boolean delete(Long id);
+
+}

+ 66 - 0
service/src/main/java/com/dayou/service/impl/BrokerageMarketerRatioServiceImpl.java

@@ -0,0 +1,66 @@
+package com.dayou.service.impl;
+
+import com.dayou.entity.BrokerageMarketerRatio;
+import com.dayou.mapper.BrokerageMarketerRatioMapper;
+import com.dayou.service.IBrokerageMarketerRatioService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.dayou.utils.ExcelUtil;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.transaction.annotation.Transactional;
+import com.dayou.enums.BatchTaskTypeEnum;
+
+/**
+ * <p>
+ * 项目提成比例(市场人员) 服务实现类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@Service
+public class BrokerageMarketerRatioServiceImpl extends ServiceImpl<BrokerageMarketerRatioMapper, BrokerageMarketerRatio> implements IBrokerageMarketerRatioService {
+
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public Page<BrokerageMarketerRatio> selectPage(Page page,BrokerageMarketerRatio brokerageMarketerRatio){
+        return this.page(page, new QueryWrapper<BrokerageMarketerRatio>(brokerageMarketerRatio));
+    }
+
+
+    @Override
+    public BrokerageMarketerRatio detail(Long id){
+        return this.getById(id);
+    }
+
+    @Override
+    public Boolean add(BrokerageMarketerRatio brokerageMarketerRatio){
+        return  this.save(brokerageMarketerRatio);
+    }
+
+    @Override
+    public Boolean update(BrokerageMarketerRatio brokerageMarketerRatio){
+        return  this.updateById(brokerageMarketerRatio);
+    }
+
+    @Override
+    public Boolean delete(Long id){
+        //逻辑删除
+        return this.removeById(id);
+    }
+}

+ 27 - 1
service/src/main/java/com/dayou/service/impl/GlobalConfigServiceImpl.java

@@ -2,9 +2,13 @@ package com.dayou.service.impl;
 
 import com.dayou.common.BaseEntity;
 import com.dayou.entity.GlobalConfig;
+import com.dayou.enums.CodeMsgEnumInterface;
+import com.dayou.enums.GlobalConfigEnum;
 import com.dayou.mapper.GlobalConfigMapper;
 import com.dayou.service.IGlobalConfigService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.InitializingBean;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -34,7 +38,7 @@ import com.dayou.enums.BatchTaskTypeEnum;
  * @since 2022-12-07
  */
 @Service
-public class GlobalConfigServiceImpl extends ServiceImpl<GlobalConfigMapper, GlobalConfig> implements IGlobalConfigService {
+public class GlobalConfigServiceImpl extends ServiceImpl<GlobalConfigMapper, GlobalConfig> implements IGlobalConfigService , InitializingBean {
 
     private static final List<String> globalConfigExcelTitles= new ArrayList();
 
@@ -83,4 +87,26 @@ public class GlobalConfigServiceImpl extends ServiceImpl<GlobalConfigMapper, Glo
         return this.removeById(id);
     }
 
+    @Override
+    public void afterPropertiesSet() throws Exception {
+
+        List<GlobalConfig> list = Lists.newLinkedList();
+        GlobalConfigEnum[] globalConfigEnums = GlobalConfigEnum.values();
+        for(GlobalConfigEnum globalConfigEnum:globalConfigEnums){
+            List<GlobalConfig> fieldList = Lists.newLinkedList();
+            String key = globalConfigEnum.getCode();
+            CodeMsgEnumInterface<String,String>[] fields = globalConfigEnum.getMsg();
+            for(CodeMsgEnumInterface<String,String> c:fields){
+                String field = c.getCode();
+                String description = c.getMsg();
+                GlobalConfig g = new GlobalConfig();
+                g.setName(key);
+                g.setField(field);
+                g.setDescription(description);
+                fieldList.add(g);
+            }
+            list.addAll(fieldList);
+        }
+        baseMapper.insertOrUpdateBatch(list);
+    }
 }

+ 66 - 0
service/src/main/java/com/dayou/service/impl/ItemBrokerageDetailServiceImpl.java

@@ -0,0 +1,66 @@
+package com.dayou.service.impl;
+
+import com.dayou.entity.ItemBrokerageDetail;
+import com.dayou.mapper.ItemBrokerageDetailMapper;
+import com.dayou.service.IItemBrokerageDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.dayou.utils.ExcelUtil;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.transaction.annotation.Transactional;
+import com.dayou.enums.BatchTaskTypeEnum;
+
+/**
+ * <p>
+ * 项目提成明细 服务实现类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@Service
+public class ItemBrokerageDetailServiceImpl extends ServiceImpl<ItemBrokerageDetailMapper, ItemBrokerageDetail> implements IItemBrokerageDetailService {
+
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public Page<ItemBrokerageDetail> selectPage(Page page,ItemBrokerageDetail itemBrokerageDetail){
+        return this.page(page, new QueryWrapper<ItemBrokerageDetail>(itemBrokerageDetail));
+    }
+
+
+    @Override
+    public ItemBrokerageDetail detail(Long id){
+        return this.getById(id);
+    }
+
+    @Override
+    public Boolean add(ItemBrokerageDetail itemBrokerageDetail){
+        return  this.save(itemBrokerageDetail);
+    }
+
+    @Override
+    public Boolean update(ItemBrokerageDetail itemBrokerageDetail){
+        return  this.updateById(itemBrokerageDetail);
+    }
+
+    @Override
+    public Boolean delete(Long id){
+        //逻辑删除
+        return this.removeById(id);
+    }
+}

+ 66 - 0
service/src/main/java/com/dayou/service/impl/ItemBrokerageGeneralServiceImpl.java

@@ -0,0 +1,66 @@
+package com.dayou.service.impl;
+
+import com.dayou.entity.ItemBrokerageGeneral;
+import com.dayou.mapper.ItemBrokerageGeneralMapper;
+import com.dayou.service.IItemBrokerageGeneralService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.dayou.utils.ExcelUtil;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.transaction.annotation.Transactional;
+import com.dayou.enums.BatchTaskTypeEnum;
+
+/**
+ * <p>
+ * 项目提成总表 服务实现类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@Service
+public class ItemBrokerageGeneralServiceImpl extends ServiceImpl<ItemBrokerageGeneralMapper, ItemBrokerageGeneral> implements IItemBrokerageGeneralService {
+
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public Page<ItemBrokerageGeneral> selectPage(Page page,ItemBrokerageGeneral itemBrokerageGeneral){
+        return this.page(page, new QueryWrapper<ItemBrokerageGeneral>(itemBrokerageGeneral));
+    }
+
+
+    @Override
+    public ItemBrokerageGeneral detail(Long id){
+        return this.getById(id);
+    }
+
+    @Override
+    public Boolean add(ItemBrokerageGeneral itemBrokerageGeneral){
+        return  this.save(itemBrokerageGeneral);
+    }
+
+    @Override
+    public Boolean update(ItemBrokerageGeneral itemBrokerageGeneral){
+        return  this.updateById(itemBrokerageGeneral);
+    }
+
+    @Override
+    public Boolean delete(Long id){
+        //逻辑删除
+        return this.removeById(id);
+    }
+}

+ 66 - 0
service/src/main/java/com/dayou/service/impl/ItemBrokerageSequenceDetailServiceImpl.java

@@ -0,0 +1,66 @@
+package com.dayou.service.impl;
+
+import com.dayou.entity.ItemBrokerageSequenceDetail;
+import com.dayou.mapper.ItemBrokerageSequenceDetailMapper;
+import com.dayou.service.IItemBrokerageSequenceDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.dayou.utils.ExcelUtil;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.transaction.annotation.Transactional;
+import com.dayou.enums.BatchTaskTypeEnum;
+
+/**
+ * <p>
+ * 提成流水明细表 服务实现类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@Service
+public class ItemBrokerageSequenceDetailServiceImpl extends ServiceImpl<ItemBrokerageSequenceDetailMapper, ItemBrokerageSequenceDetail> implements IItemBrokerageSequenceDetailService {
+
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public Page<ItemBrokerageSequenceDetail> selectPage(Page page,ItemBrokerageSequenceDetail itemBrokerageSequenceDetail){
+        return this.page(page, new QueryWrapper<ItemBrokerageSequenceDetail>(itemBrokerageSequenceDetail));
+    }
+
+
+    @Override
+    public ItemBrokerageSequenceDetail detail(Long id){
+        return this.getById(id);
+    }
+
+    @Override
+    public Boolean add(ItemBrokerageSequenceDetail itemBrokerageSequenceDetail){
+        return  this.save(itemBrokerageSequenceDetail);
+    }
+
+    @Override
+    public Boolean update(ItemBrokerageSequenceDetail itemBrokerageSequenceDetail){
+        return  this.updateById(itemBrokerageSequenceDetail);
+    }
+
+    @Override
+    public Boolean delete(Long id){
+        //逻辑删除
+        return this.removeById(id);
+    }
+}

+ 66 - 0
service/src/main/java/com/dayou/service/impl/ItemBrokerageSequenceServiceImpl.java

@@ -0,0 +1,66 @@
+package com.dayou.service.impl;
+
+import com.dayou.entity.ItemBrokerageSequence;
+import com.dayou.mapper.ItemBrokerageSequenceMapper;
+import com.dayou.service.IItemBrokerageSequenceService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.dayou.utils.ExcelUtil;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.transaction.annotation.Transactional;
+import com.dayou.enums.BatchTaskTypeEnum;
+
+/**
+ * <p>
+ * 项目提成流水 服务实现类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@Service
+public class ItemBrokerageSequenceServiceImpl extends ServiceImpl<ItemBrokerageSequenceMapper, ItemBrokerageSequence> implements IItemBrokerageSequenceService {
+
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public Page<ItemBrokerageSequence> selectPage(Page page,ItemBrokerageSequence itemBrokerageSequence){
+        return this.page(page, new QueryWrapper<ItemBrokerageSequence>(itemBrokerageSequence));
+    }
+
+
+    @Override
+    public ItemBrokerageSequence detail(Long id){
+        return this.getById(id);
+    }
+
+    @Override
+    public Boolean add(ItemBrokerageSequence itemBrokerageSequence){
+        return  this.save(itemBrokerageSequence);
+    }
+
+    @Override
+    public Boolean update(ItemBrokerageSequence itemBrokerageSequence){
+        return  this.updateById(itemBrokerageSequence);
+    }
+
+    @Override
+    public Boolean delete(Long id){
+        //逻辑删除
+        return this.removeById(id);
+    }
+}

+ 66 - 0
service/src/main/java/com/dayou/service/impl/ItemEvaluateServiceImpl.java

@@ -0,0 +1,66 @@
+package com.dayou.service.impl;
+
+import com.dayou.entity.ItemEvaluate;
+import com.dayou.mapper.ItemEvaluateMapper;
+import com.dayou.service.IItemEvaluateService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.dayou.utils.ExcelUtil;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.transaction.annotation.Transactional;
+import com.dayou.enums.BatchTaskTypeEnum;
+
+/**
+ * <p>
+ * 项目完结评价表 服务实现类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@Service
+public class ItemEvaluateServiceImpl extends ServiceImpl<ItemEvaluateMapper, ItemEvaluate> implements IItemEvaluateService {
+
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public Page<ItemEvaluate> selectPage(Page page,ItemEvaluate itemEvaluate){
+        return this.page(page, new QueryWrapper<ItemEvaluate>(itemEvaluate));
+    }
+
+
+    @Override
+    public ItemEvaluate detail(Long id){
+        return this.getById(id);
+    }
+
+    @Override
+    public Boolean add(ItemEvaluate itemEvaluate){
+        return  this.save(itemEvaluate);
+    }
+
+    @Override
+    public Boolean update(ItemEvaluate itemEvaluate){
+        return  this.updateById(itemEvaluate);
+    }
+
+    @Override
+    public Boolean delete(Long id){
+        //逻辑删除
+        return this.removeById(id);
+    }
+}

+ 66 - 0
service/src/main/java/com/dayou/service/impl/ItemStageUserServiceImpl.java

@@ -0,0 +1,66 @@
+package com.dayou.service.impl;
+
+import com.dayou.entity.ItemStageUser;
+import com.dayou.mapper.ItemStageUserMapper;
+import com.dayou.service.IItemStageUserService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.dayou.utils.ExcelUtil;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.transaction.annotation.Transactional;
+import com.dayou.enums.BatchTaskTypeEnum;
+
+/**
+ * <p>
+ * 项目人员阶段参与表 服务实现类
+ * </p>
+ *
+ * @author wucl
+ * @since 2023-03-03
+ */
+@Service
+public class ItemStageUserServiceImpl extends ServiceImpl<ItemStageUserMapper, ItemStageUser> implements IItemStageUserService {
+
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public Page<ItemStageUser> selectPage(Page page,ItemStageUser itemStageUser){
+        return this.page(page, new QueryWrapper<ItemStageUser>(itemStageUser));
+    }
+
+
+    @Override
+    public ItemStageUser detail(Long id){
+        return this.getById(id);
+    }
+
+    @Override
+    public Boolean add(ItemStageUser itemStageUser){
+        return  this.save(itemStageUser);
+    }
+
+    @Override
+    public Boolean update(ItemStageUser itemStageUser){
+        return  this.updateById(itemStageUser);
+    }
+
+    @Override
+    public Boolean delete(Long id){
+        //逻辑删除
+        return this.removeById(id);
+    }
+}

+ 93 - 0
sql/brokerage_about.sql

@@ -0,0 +1,93 @@
+alter table item_stage add COLUMN weight double(16,2) DEFAULT NULL comment '提成权重';
+alter table item_stage add COLUMN coefficient double(16,2) DEFAULT NULL comment '逾期提成系数';
+alter table item_stage add COLUMN overdue bit(1) DEFAULT 0 comment '是否逾期';
+
+CREATE TABLE `brokerage_marketer_ratio` (
+`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+`item_cate` bigint(20) NOT NULL COMMENT '项目类型字典id',
+`item_source` bigint(20) NOT NULL COMMENT '项目来源字典id',
+`ratio` double(16,4) DEFAULT NULL COMMENT '提成比例',
+`remark` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '备注',
+`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除标识:1:删除 0:未删除',
+`created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+`modified` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '修改时间',
+PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='项目提成比例(市场人员)';
+
+CREATE TABLE `item_brokerage_sequence_detail` (
+`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+`brokerage_detail_id` bigint(20) NOT NULL COMMENT '项目提成明细表id',
+`sequence_id` bigint(20) NOT NULL COMMENT '项目提成流水表id',
+`brokerage_amount` decimal(16,2) DEFAULT NULL COMMENT '提成金额',
+`brokerage_cate` varchar(32) COLLATE utf8_unicode_ci NOT NULL COMMENT '提成类型(预提,结算)',
+`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除标识:1:删除 0:未删除',
+`created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+`modified` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '修改时间',
+PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='提成流水明细表';
+
+CREATE TABLE `item_brokerage_detail` (
+`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+`general_id` bigint(20) NOT NULL COMMENT '项目提成总表id',
+`user_id` bigint(20) NOT NULL COMMENT '用户id',
+`predict_amount` decimal(16,2) DEFAULT NULL COMMENT '预计提成金额',
+`atcual_amount` decimal(16,2) DEFAULT NULL COMMENT '实际提成金额',
+`advance_amount` decimal(16,2) DEFAULT NULL COMMENT '已预提金额',
+`brokerage_rule` varchar(32) COLLATE utf8_unicode_ci NOT NULL COMMENT '提成规则',
+`brokerage_mode` varchar(32) COLLATE utf8_unicode_ci NOT NULL COMMENT '提成方式',
+`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除标识:1:删除 0:未删除',
+`created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+`modified` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '修改时间',
+PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='项目提成明细';
+
+CREATE TABLE `item_brokerage_general` (
+`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+`item_id` bigint(20) NOT NULL COMMENT '项目id',
+`marketer_brokerage_amount` decimal(16,2) DEFAULT NULL COMMENT '客户经理提成金额',
+`marketer_advance_brokerage_able` bit(1) NOT NULL DEFAULT b'0' COMMENT '客户经理预提',
+`marketer_advance_brokerage_done` bit(1) NOT NULL DEFAULT b'0' COMMENT '客户经理已预提',
+`participant_predict_brokerage_amount` decimal(16,2) DEFAULT NULL COMMENT '参与人预计提成总金额',
+`participant_actual_brokerage_amount` decimal(16,2) DEFAULT NULL COMMENT '参与人实际提成总金额',
+`participant_advance_status` bit(1) NOT NULL DEFAULT b'1' COMMENT '参与人预提中',
+`brokerage_predict_amount` decimal(16,2) DEFAULT NULL COMMENT '预计提成总金额',
+`brokerage_actual_amount` decimal(16,2) DEFAULT NULL COMMENT '已提成总金额',
+`brokerage_rate` decimal(3,2) DEFAULT NULL COMMENT '提成率',
+`status` enum('未开始','预提中','冻结','已结算') COLLATE utf8_unicode_ci NOT NULL DEFAULT '未开始' COMMENT '状态',
+`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除标识:1:删除 0:未删除',
+`created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+`modified` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '修改时间',
+PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='项目提成总表';
+
+CREATE TABLE `item_brokerage_sequence` (
+`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+`user_id` bigint(20) NOT NULL COMMENT '用户id',
+`brokerage_amount` decimal(16,2) DEFAULT NULL COMMENT '提成总金额',
+`embody` varchar(32) COLLATE utf8_unicode_ci NOT NULL COMMENT '提成体现',
+`remark` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '备注',
+`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除标识:1:删除 0:未删除',
+`created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间(业务)',
+`modified` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '修改时间',
+PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='项目提成流水';
+
+CREATE TABLE `item_stage_user` (
+`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+`user_id` bigint(20) NOT NULL COMMENT '用户id',
+`item_id` bigint(20) NOT NULL COMMENT '项目id',
+`stage_id` bigint(20) NOT NULL COMMENT '项目阶段id',
+`weight` double(16,2) DEFAULT NULL COMMENT '提成比例',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='项目人员阶段参与表';
+
+CREATE TABLE `item_evaluate` (
+`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+`item_id` bigint(20) NOT NULL COMMENT '项目id',
+`weight` double(16,2) DEFAULT NULL COMMENT '项目整体提成权重',
+  `comments` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '项目评价',
+  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除标识:1:删除 0:未删除',
+  `created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `modified` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '修改时间',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='项目完结评价表';