瀏覽代碼

Merge branch 'refs/heads/test' into test-test

# Conflicts:
#	sql/Online.sql
wks 1 年之前
父節點
當前提交
614427f712
共有 100 個文件被更改,包括 4555 次插入273 次删除
  1. 69 1
      sql/Online.sql
  2. 1 0
      src/main/java/com/ydtech/components/queue/ZmQuoteConsumer.java
  3. 0 8
      src/main/java/com/ydtech/config/MvcConfig.java
  4. 6 1
      src/main/java/com/ydtech/constants/enums/dict/InsOrderStatusAllEnum.java
  5. 7 0
      src/main/java/com/ydtech/constants/enums/dict/InsOrderStatusEnum.java
  6. 27 0
      src/main/java/com/ydtech/modules/admin/constants/IndustrySectorEnum.java
  7. 6 1
      src/main/java/com/ydtech/modules/admin/constants/SwitchConfig.java
  8. 4 0
      src/main/java/com/ydtech/modules/admin/constants/UserConstants.java
  9. 110 14
      src/main/java/com/ydtech/modules/admin/controller/APPPartnerController.java
  10. 30 6
      src/main/java/com/ydtech/modules/admin/controller/SysAgencyLeaderController.java
  11. 86 0
      src/main/java/com/ydtech/modules/admin/controller/SysBarcodeConfigController.java
  12. 94 0
      src/main/java/com/ydtech/modules/admin/controller/SysPartnerConfigController.java
  13. 18 3
      src/main/java/com/ydtech/modules/admin/controller/SysPartnerController.java
  14. 10 5
      src/main/java/com/ydtech/modules/admin/controller/SysQyWeChatController.java
  15. 17 0
      src/main/java/com/ydtech/modules/admin/controller/profitAnalysis/ProfitAnalysisController.java
  16. 1 1
      src/main/java/com/ydtech/modules/admin/controller/websocket/PCSocketServer.java
  17. 1 1
      src/main/java/com/ydtech/modules/admin/controller/websocket/WebSocketServer.java
  18. 18 0
      src/main/java/com/ydtech/modules/admin/dao/SysBarcodeConfigMapper.java
  19. 10 0
      src/main/java/com/ydtech/modules/admin/dao/SysPartnerAccountMapper.java
  20. 19 0
      src/main/java/com/ydtech/modules/admin/dao/SysPartnerConfigMapper.java
  21. 2 0
      src/main/java/com/ydtech/modules/admin/dao/SysPartnerMapper.java
  22. 17 0
      src/main/java/com/ydtech/modules/admin/dao/SysPartnerTimeMapper.java
  23. 18 0
      src/main/java/com/ydtech/modules/admin/dao/SysPremiumDetailsMapper.java
  24. 1 0
      src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java
  25. 61 0
      src/main/java/com/ydtech/modules/admin/model/PartnerInfoVo.java
  26. 55 0
      src/main/java/com/ydtech/modules/admin/model/SysPartnerAccount.java
  27. 41 0
      src/main/java/com/ydtech/modules/admin/model/SysPartnerConfig.java
  28. 52 0
      src/main/java/com/ydtech/modules/admin/model/SysPartnerTime.java
  29. 112 0
      src/main/java/com/ydtech/modules/admin/model/SysPremiumDetails.java
  30. 24 0
      src/main/java/com/ydtech/modules/admin/model/dto/CommissionInfoDto.java
  31. 26 0
      src/main/java/com/ydtech/modules/admin/model/dto/FilterPartnerInfoDto.java
  32. 43 0
      src/main/java/com/ydtech/modules/admin/model/dto/PartnerGradeInfo.java
  33. 18 0
      src/main/java/com/ydtech/modules/admin/model/dto/PartnerInfoDto.java
  34. 14 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysPartnerConfigDto.java
  35. 4 0
      src/main/java/com/ydtech/modules/admin/model/dto/TaskStatisticsDto.java
  36. 23 0
      src/main/java/com/ydtech/modules/admin/model/dto/TeamUserInfosDto.java
  37. 72 0
      src/main/java/com/ydtech/modules/admin/model/po/SysBarcodeConfig.java
  38. 4 0
      src/main/java/com/ydtech/modules/admin/model/po/SysPcAddress.java
  39. 3 0
      src/main/java/com/ydtech/modules/admin/model/po/SysQyWeChat.java
  40. 1 1
      src/main/java/com/ydtech/modules/admin/model/report/company/CompanyQutationCountDataDto.java
  41. 18 0
      src/main/java/com/ydtech/modules/admin/model/report/profitAnalysis/ProfitAnalysisDto.java
  42. 7 0
      src/main/java/com/ydtech/modules/admin/model/report/profitAnalysis/ProfitAnalysisQueryDto.java
  43. 18 4
      src/main/java/com/ydtech/modules/admin/model/vo/APPPartnerInfo.java
  44. 37 0
      src/main/java/com/ydtech/modules/admin/model/vo/APPPartnerInfoFreeVo.java
  45. 44 0
      src/main/java/com/ydtech/modules/admin/model/vo/AddSysBarcodeConfigVo.java
  46. 66 0
      src/main/java/com/ydtech/modules/admin/model/vo/AppPartnerNumVo.java
  47. 52 0
      src/main/java/com/ydtech/modules/admin/model/vo/AppSysPartnerVo.java
  48. 56 0
      src/main/java/com/ydtech/modules/admin/model/vo/AppUserInfoVo.java
  49. 35 0
      src/main/java/com/ydtech/modules/admin/model/vo/FilterPartnerInfoVo.java
  50. 34 0
      src/main/java/com/ydtech/modules/admin/model/vo/PartnerInfoFreeVo.java
  51. 39 0
      src/main/java/com/ydtech/modules/admin/model/vo/PartnerLeaderInfoVo.java
  52. 16 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysBarcodeConfigPageVo.java
  53. 35 0
      src/main/java/com/ydtech/modules/admin/model/vo/TeamUserInfosFreeVo.java
  54. 38 0
      src/main/java/com/ydtech/modules/admin/model/vo/TeamUserInfosVo.java
  55. 8 0
      src/main/java/com/ydtech/modules/admin/service/ProfitAnalysisService.java
  56. 2 0
      src/main/java/com/ydtech/modules/admin/service/SysAgencyLeaderService.java
  57. 31 0
      src/main/java/com/ydtech/modules/admin/service/SysBarcodeConfigService.java
  58. 8 0
      src/main/java/com/ydtech/modules/admin/service/SysPartnerAccountService.java
  59. 20 0
      src/main/java/com/ydtech/modules/admin/service/SysPartnerConfigService.java
  60. 23 10
      src/main/java/com/ydtech/modules/admin/service/SysPartnerService.java
  61. 17 0
      src/main/java/com/ydtech/modules/admin/service/SysPartnerTimeService.java
  62. 7 0
      src/main/java/com/ydtech/modules/admin/service/SysPremiumDetailsService.java
  63. 12 4
      src/main/java/com/ydtech/modules/admin/service/SysSwitchConfigService.java
  64. 19 19
      src/main/java/com/ydtech/modules/admin/service/impl/CompanyDataReportServiceImpl.java
  65. 68 4
      src/main/java/com/ydtech/modules/admin/service/impl/ProfitAnalysisServiceImpl.java
  66. 34 10
      src/main/java/com/ydtech/modules/admin/service/impl/SysAgencyFeeApprovalServiceImpl.java
  67. 109 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysAgencyLeaderServiceImpl.java
  68. 56 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysBarcodeConfigServiceImpl.java
  69. 11 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerAccountServiceImpl.java
  70. 40 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerConfigServiceImpl.java
  71. 1045 110
      src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerServiceImpl.java
  72. 24 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerTimeServiceImpl.java
  73. 99 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysPcAddressHistoryServiceImpl.java
  74. 18 2
      src/main/java/com/ydtech/modules/admin/service/impl/SysPcAddressServiceImpl.java
  75. 12 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysPremiumDetailsServiceImpl.java
  76. 14 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysSwitchConfigServiceImpl.java
  77. 22 1
      src/main/java/com/ydtech/modules/admin/service/impl/TaskStatisticsServiceImpl.java
  78. 39 0
      src/main/java/com/ydtech/modules/console/controller/WithdrawalTaskController.java
  79. 19 0
      src/main/java/com/ydtech/modules/console/dao/ProfitAnalysisMapper.java
  80. 15 0
      src/main/java/com/ydtech/modules/console/dao/WithdrawalTaskMapper.java
  81. 57 0
      src/main/java/com/ydtech/modules/console/dto/WithdrawalTaskDto.java
  82. 11 0
      src/main/java/com/ydtech/modules/console/service/WithdrawalTaskService.java
  83. 59 0
      src/main/java/com/ydtech/modules/console/service/impl/WithdrawalTaskServiceImpl.java
  84. 32 0
      src/main/java/com/ydtech/modules/console/vo/WithdrawalTaskVo.java
  85. 3 1
      src/main/java/com/ydtech/modules/esm/controller/EsmUserController.java
  86. 3 3
      src/main/java/com/ydtech/modules/fee/dao/InsFeeTelemarketingMapper.java
  87. 73 23
      src/main/java/com/ydtech/modules/fee/entity/po/InsFeeTelemarketing.java
  88. 12 2
      src/main/java/com/ydtech/modules/fee/service/InsFeeTelemarketingService.java
  89. 2 2
      src/main/java/com/ydtech/modules/fee/service/impl/InsFeeTelemarketingServiceImpl.java
  90. 35 3
      src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java
  91. 3 0
      src/main/java/com/ydtech/modules/order/aop/aspect/QuoteVerificationAspect.java
  92. 3 1
      src/main/java/com/ydtech/modules/order/components/zijin/ZijinDuplicateInsuranceComponents.java
  93. 116 0
      src/main/java/com/ydtech/modules/order/controller/InsOrderReadPdfController.java
  94. 90 27
      src/main/java/com/ydtech/modules/order/controller/QrCodeController.java
  95. 23 0
      src/main/java/com/ydtech/modules/order/dao/InsOrderReadPdfMapper.java
  96. 10 0
      src/main/java/com/ydtech/modules/order/entity/InsAreaCompany.java
  97. 435 5
      src/main/java/com/ydtech/modules/order/entity/api/pingan/utils/PDFUtil.java
  98. 35 0
      src/main/java/com/ydtech/modules/order/entity/dto/InsOrderReadPdfContentDto.java
  99. 134 0
      src/main/java/com/ydtech/modules/order/entity/po/InsOrderReadPdf.java
  100. 27 0
      src/main/java/com/ydtech/modules/order/entity/vo/InsOrderReadPdfContentVo.java

+ 69 - 1
sql/Online.sql

@@ -2,4 +2,72 @@
 alter table ins_area_company
     add leader_id varchar(64) null comment '维护人工号';
 alter table ins_area_company
-    add leader_name varchar(64) null comment '维护人';
+    add leader_name varchar(64) null comment '维护人';
+--  2024-10-15 BY dongxin statr
+ALTER TABLE `agent`.`ins_fee_telemarketing`
+ADD COLUMN `jq_total_proportion` decimal(10, 2) NULL DEFAULT NULL COMMENT '交强优惠比例' AFTER `create_time`,
+ADD COLUMN `sy_total_proportion` decimal(10, 2) NULL DEFAULT NULL COMMENT '商业优惠比例' AFTER `jq_total_proportion`,
+ADD COLUMN `no_total_proportion` decimal(10, 2) NULL DEFAULT NULL COMMENT '非车优惠比例' AFTER `sy_total_proportion`,
+ADD COLUMN `first_jq_total_proportion` decimal(10, 2) NULL DEFAULT NULL COMMENT '初始交强优惠比例' AFTER `no_total_proportion`,
+ADD COLUMN `first_sy_total_proportion` decimal(10, 2) NULL DEFAULT NULL COMMENT '初始商业优惠比例' AFTER `first_jq_total_proportion`,
+ADD COLUMN `first_no_total_proportion` decimal(10, 2) NULL DEFAULT NULL COMMENT '初始非车优惠比例' AFTER `first_sy_total_proportion`;
+--  2024-10-15 BY dongxin end
+
+
+--  2024-10-16 BY helixiao
+CREATE TABLE `sys_premium_details` (
+    `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
+    `orderno` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '订单号',
+    `company_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '子订单id',
+    `user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '用户id',
+    `user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '用户名称',
+    `issuer_id` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '代理人 id',
+    `issuer_name` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '代理人name',
+    `jqpremium` decimal(10,5) unsigned DEFAULT NULL COMMENT '交强险费用',
+    `sypremium` decimal(10,5) unsigned DEFAULT NULL COMMENT '商业险费用',
+    `jypremium` decimal(10,5) unsigned DEFAULT NULL COMMENT '驾意险费用',
+    `sumpremium` decimal(10,5) unsigned DEFAULT NULL COMMENT '总保费',
+    `proportional` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '抽成比例(总保费抽成)',
+    `extract_fee` decimal(10,5) unsigned DEFAULT NULL COMMENT '抽成费用',
+    `status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0:未审核 1:审核通过)',
+    `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+    `type` tinyint DEFAULT NULL COMMENT '类型:1前线人员 2后线人员',
+    `industry_sector` tinyint DEFAULT NULL COMMENT '行业领域 1:汽车-车险',
+    PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='合伙人、工作室管理员保费抽成明细表';
+
+
+CREATE TABLE `sys_partner_account` (
+    `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
+    `user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '用户id',
+    `sum_Premium` decimal(10,5) unsigned DEFAULT NULL COMMENT '总保费',
+    `extract_fee` decimal(10,5) unsigned DEFAULT NULL COMMENT '抽成费用',
+    `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+    `history_fee` decimal(10,5) DEFAULT NULL COMMENT '已提现费用',
+    `cash_fee` decimal(10,5) DEFAULT NULL COMMENT '可提现抽成费用',
+    PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='合伙人、工作室管理人员抽层账户表';
+
+
+CREATE TABLE `sys_partner_config` (
+    `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
+    `logo` mediumblob COMMENT '图标',
+    `image` mediumblob COMMENT '背景',
+    `level` tinyint DEFAULT NULL COMMENT '等级',
+    `del_flag` tinyint NOT NULL DEFAULT '1' COMMENT '状态( 0:删除 1:正常)',
+    PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='合伙人APP等级背景配置表';
+
+CREATE TABLE `sys_partner_time` (
+    `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
+    `user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '用户id',
+    `user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '用户name',
+    `old_proportional` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '旧比例',
+    `new_proportional` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '新比例',
+    `create_time` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '月份',
+    `type` tinyint DEFAULT NULL COMMENT '类型1合伙人 2工作室管理员',
+    PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='抽成比例修改表';
+
+
+

+ 1 - 0
src/main/java/com/ydtech/components/queue/ZmQuoteConsumer.java

@@ -34,6 +34,7 @@ public class ZmQuoteConsumer {
 
     private final InsTaskHistoryComponents insTaskHistoryComponents;
 
+
     public ZmQuoteConsumer(ZhongmeiRequestComponents zhongmeiRequestComponents, StringRedisTemplate redisTemplate, InsOrderService insOrderService, InsTaskHistoryComponents insTaskHistoryComponents) {
         this.zhongmeiRequestComponents = zhongmeiRequestComponents;
         this.redisTemplate = redisTemplate;

+ 0 - 8
src/main/java/com/ydtech/config/MvcConfig.java

@@ -1,14 +1,6 @@
 package com.ydtech.config;
 
-import cn.dev33.satoken.SaManager;
-import cn.dev33.satoken.context.SaHolder;
-import cn.dev33.satoken.filter.SaServletFilter;
-import cn.dev33.satoken.router.SaHttpMethod;
-import cn.dev33.satoken.router.SaRouter;
-import cn.dev33.satoken.stp.StpUtil;
-import cn.dev33.satoken.util.SaResult;
 import com.baomidou.mybatisplus.annotation.DbType;
-import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.handler.TableNameHandler;
 import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
 import com.ydtech.aop.DynamicNameAspect;

+ 6 - 1
src/main/java/com/ydtech/constants/enums/dict/InsOrderStatusAllEnum.java

@@ -30,7 +30,12 @@ public enum InsOrderStatusAllEnum implements IBaseEnum {
     UPDATE_BACK("状态更新", "状态更新", 7, 0),
 
     WAIT_RG("人工核保", "人工核保", 8, 0),
-    WAIT_ZD("自动核保", "自动核保", 9, 0)
+    WAIT_ZD("自动核保", "自动核保", 9, 0),
+
+    QUOTE_FAILED("10","报价失败",10,0),
+
+    //重复投保
+    REPEAT_INSURE("11","重复投保",11,0)
 
     //撤回二维码
 //    BACK_QR_CODE("5", "撤销二维码", 7, 0),

+ 7 - 0
src/main/java/com/ydtech/constants/enums/dict/InsOrderStatusEnum.java

@@ -26,6 +26,13 @@ public enum InsOrderStatusEnum implements IBaseEnum {
 
     //人工核保退回状态,直至再次提交核保,状态修改为待核保
     TO_BACK("4", "核保退回", 6, 0),
+
+    //报价失败
+    QUOTE_FAILED("10","报价失败",8,0),
+
+    //重复投保
+    REPEAT_INSURE("11","重复投保",9,0)
+
     //撤回二维码
 //    BACK_QR_CODE("5", "撤销二维码", 7, 0),
     ;

+ 27 - 0
src/main/java/com/ydtech/modules/admin/constants/IndustrySectorEnum.java

@@ -0,0 +1,27 @@
+package com.ydtech.modules.admin.constants;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+public enum IndustrySectorEnum {
+
+    IS_01(1, "汽车-车险");
+//    IS_02(2, "保险-财险"),
+//    IS_03(3, "汽车-车险"),
+//    IS_04(4, "汽车-车险");
+
+    private final Integer code;
+
+    private final String desc;
+
+    public static String getDescByCode(Integer code){
+        for (UserWorkStatus value : UserWorkStatus.values()) {
+            if(value.getCode().equals(code)){
+                return value.getDesc();
+            }
+        }
+        return null;
+    }
+}

+ 6 - 1
src/main/java/com/ydtech/modules/admin/constants/SwitchConfig.java

@@ -24,7 +24,12 @@ public enum SwitchConfig {
 
     // 是否显示费用
     FDA_01("feeDisplayAgent", "费用显示(代理人启动)"),
-    FDA_02("feeDisplayChannel", "费用显示(渠道启动)");
+    FDA_02("feeDisplayChannel", "费用显示(渠道启动)"),
+
+    // 是否显示
+    WCQCA_01("weComQRCodeAgent", "企业微信二维码显示(代理人)"),
+    WCQCA_02("weComQRCodeChannel", "企业微信二维码显示(渠道)"),
+    WCQCA_03("weComQRCodeOther", "企业微信二维码显示(其他)");
 
     private final String code;
 

+ 4 - 0
src/main/java/com/ydtech/modules/admin/constants/UserConstants.java

@@ -20,6 +20,10 @@ public class UserConstants
     public final static Integer OPT_TYPE_0 = 0; // 新增加投
     public final static Integer OPT_TYPE_1 = 1; // 修改加投
 
+    /** 二维码配置类型 */
+    public final static Integer CONFIG_TYPE_0 = 0; // url
+    public final static Integer CONFIG_TYPE_1 = 1; // base
+    public final static Integer CONFIG_TYPE_2 = 2; // h5
     /**
      * 分页长度限制
      */

+ 110 - 14
src/main/java/com/ydtech/modules/admin/controller/APPPartnerController.java

@@ -1,53 +1,149 @@
 package com.ydtech.modules.admin.controller;
 
+import cn.hutool.core.collection.CollectionUtil;
+import com.ydtech.aop.exception.DescribeException;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.exception.SystemException;
+import com.ydtech.modules.admin.model.PartnerInfoVo;
 import com.ydtech.modules.admin.model.SysPartner;
-import com.ydtech.modules.admin.model.vo.APPPartnerInfo;
+import com.ydtech.modules.admin.model.SysPartnerAccount;
+import com.ydtech.modules.admin.model.SysPremiumDetails;
+import com.ydtech.modules.admin.model.dto.*;
+import com.ydtech.modules.admin.model.vo.*;
 import com.ydtech.modules.admin.service.SysPartnerService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.entity.BasePageResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.Map;
 
 @Api(tags = "合伙人app")
 @RestController
 @RequestMapping("/APPPartner")
-public class APPPartnerController {
+public class APPPartnerController extends BaseController {
 
     @Resource
     private SysPartnerService sysPartnerService;
 
+    /**
+     * 首页信息
+     */
+    @GetMapping("/getHomePage")
+    @ApiOperation(value = "APP首页信息")
+    public HttpResult<AppPartnerNumVo> getHomePage(@RequestParam("type") Integer type) {
+
+        return HttpResult.ok(this.sysPartnerService.getHomePage(type));
+    }
+
 
     /**
-     * 合伙人推荐下的合伙人
+     * 个人信息
+     *
+     * @return
      */
-    @GetMapping("/info")
-    @ApiOperation(value = "APP合伙人推荐下的合伙人")
-    public HttpResult<List<SysPartner>> partnerInfo(@RequestParam("beginTime") String beginTime,
-                                                    @RequestParam("endTime") String endTime) {
+    @GetMapping("/getUserInfo")
+    @ApiOperation(value = "APP个人信息")
+    public HttpResult<AppUserInfoVo> getUserInfo(@RequestParam("type") Integer type) {
 
-        return HttpResult.ok(this.sysPartnerService.partnerInfo(beginTime,endTime));
+        return HttpResult.ok(this.sysPartnerService.getUserInfo(type));
     }
 
     /**
-     * 合伙人信息包含下面所有工作室信息
+     * APP账户金额
+     *
+     * @return
      */
-    @GetMapping("/getLeaderInfo")
-    @ApiOperation(value = "查询合伙人有关的工作室管理员")
-    public HttpResult<APPPartnerInfo> getLeaderInfo(@RequestParam("userId") String userId) {
+    @GetMapping("/getFee")
+    @ApiOperation(value = "APP账户金额")
+    public HttpResult<SysPartnerAccount> getFee() {
 
-        return HttpResult.ok(this.sysPartnerService.getLeaderInfo(userId));
+        return HttpResult.ok(this.sysPartnerService.getFee());
     }
 
 
+
+
+    /**
+     * 登陆人下的每个等级合伙人统计信息
+     */
+    @PostMapping("/info")
+    @ApiOperation(value = "APP登陆人下的每个等级合伙人统计信息")
+    public HttpResult<List<AppSysPartnerVo>> partnerInfo(@RequestBody PartnerInfoDto partnerInfoDto) {
+
+        return HttpResult.ok(this.sysPartnerService.partnerInfo(partnerInfoDto));
+    }
+
     /**
-     * 根据id查询工作室信息包含西面所有成员
+     * 合伙人工作室详情 统计总费用
      */
+    @PostMapping("/partnerLeaderInfo")
+    @ApiOperation(value = "合伙人工作室详情")
+    public HttpResult<PartnerLeaderInfoVo> partnerLeaderInfo(@RequestBody PartnerGradeInfo partnerGradeInfo) {
+
+        return HttpResult.ok(this.sysPartnerService.partnerLeaderInfo(partnerGradeInfo));
+    }
 
 
+    /**
+     * 筛选合伙人详情
+     * @return
+     */
+    @PostMapping("/queryFilterPartnerInfo")
+    @ApiOperation(value = "筛选合伙人详情")
+    public HttpResult<FilterPartnerInfoVo> queryFilterPartnerInfo(@RequestBody FilterPartnerInfoDto filterPartnerInfoDto) {
+
+        return HttpResult.ok(this.sysPartnerService.queryFilterPartnerInfo(filterPartnerInfoDto));
+    }
 
+    /**
+     * 等级合伙人详情
+     * @param partnerGradeInfo
+     * @return
+     */
+    @PostMapping("/queryPartnerInfo")
+    @ApiOperation(value = "等级合伙人详情")
+    public HttpResult<PartnerInfoFreeVo> queryPartnerInfo(@RequestBody PartnerGradeInfo partnerGradeInfo) {
+
+        return HttpResult.ok(this.sysPartnerService.queryPartnerInfo(partnerGradeInfo));
+    }
+
+
+    /**
+     * 查看团队
+     */
+    @PostMapping("/getTeamInfo")
+    @ApiOperation(value = "查看机构下团队信息")
+    public HttpResult<APPPartnerInfoFreeVo> getTeamInfo(@RequestBody PartnerGradeInfo partnerGradeInfo) {
+
+        return HttpResult.ok(this.sysPartnerService.getTeamInfo(partnerGradeInfo));
+    }
+
+    @PostMapping("/getTeamUserInfo")
+    @ApiOperation(value = "查看团队下人员信息")
+    public HttpResult<TeamUserInfosFreeVo> getTeamUserInfo(@RequestBody TeamUserInfosDto teamUserInfosDto) {
+
+        return HttpResult.ok(this.sysPartnerService.getTeamUserInfo(teamUserInfosDto));
+    }
+
+    /**
+     * 总佣金组成明细
+     */
+    @PostMapping("/getCommissionInfo")
+    @ApiOperation(value = "总佣金组成明细")
+    public HttpResult<BasePageResult<SysPremiumDetails>> getCommissionInfo(@RequestBody CommissionInfoDto commissionInfoDto) {
+        if (commissionInfoDto.getPageNum() == 0) {
+            commissionInfoDto.setPageNum(1);
+        }
+        if (commissionInfoDto.getPageSize() == 0) {
+            commissionInfoDto.setPageSize(10);
+        }
+
+        return HttpResult.ok(this.sysPartnerService.getCommissionInfo(commissionInfoDto));
+    }
 
 
 }

+ 30 - 6
src/main/java/com/ydtech/modules/admin/controller/SysAgencyLeaderController.java

@@ -144,16 +144,28 @@ public class SysAgencyLeaderController extends BaseController {
      * 查询所有机构负责人的保费抽成明细
      */
 
+//    @PostMapping("/queryExtractFeeAll")
+//    @ApiOperation(value = "优化查询所有机构负责人的保费抽成明细")
+//    public HttpResult<BasePageResult<AgencyExtractFeeVo>> queryExtractFeeList(@RequestBody SysAgencyLeaderPageDto sysAgencyLeaderPageDto) {
+//        if (sysAgencyLeaderPageDto.getPageNum() == 0) {
+//            sysAgencyLeaderPageDto.setPageNum(1);
+//        }
+//        if (sysAgencyLeaderPageDto.getPageSize() == 0) {
+//            sysAgencyLeaderPageDto.setPageSize(10);
+//        }
+//        return HttpResult.ok("success", this.sysAgencyLeaderService.queryExtractFeeList(sysAgencyLeaderPageDto));
+//    }
+
     @PostMapping("/queryExtractFeeAll")
-    @ApiOperation(value = "优化查询所有机构负责人的保费抽成明细")
-    public HttpResult<BasePageResult<AgencyExtractFeeVo>> queryExtractFeeList(@RequestBody SysAgencyLeaderPageDto sysAgencyLeaderPageDto) {
+    @ApiOperation(value = "最新查询所有机构负责人的保费抽成明细")
+    public HttpResult<BasePageResult<AgencyExtractFeeVo>> queryExtractFeeAlls(@RequestBody SysAgencyLeaderPageDto sysAgencyLeaderPageDto) {
         if (sysAgencyLeaderPageDto.getPageNum() == 0) {
             sysAgencyLeaderPageDto.setPageNum(1);
         }
         if (sysAgencyLeaderPageDto.getPageSize() == 0) {
             sysAgencyLeaderPageDto.setPageSize(10);
         }
-        return HttpResult.ok("success", this.sysAgencyLeaderService.queryExtractFeeList(sysAgencyLeaderPageDto));
+        return HttpResult.ok("success", this.sysAgencyLeaderService.queryExtractFeeAlls(sysAgencyLeaderPageDto));
     }
 
 
@@ -212,16 +224,28 @@ public class SysAgencyLeaderController extends BaseController {
         return HttpResult.ok("success", this.sysAgencyLeaderService.queryAgencyUser(deptId));
     }
 
-    @PostMapping("/queryAgencyUserInsAreaPage")
+//    @PostMapping("/queryAgencyUserInsAreaPage")
+//    @ApiOperation(value = "查询机构下的单个员工的子订单费用")
+//    public HttpResult<IPage<AgencyUserInsAreaVo>> queryAgencyUserInsAreaPage(@RequestBody AgencyUserInsAreaDto agencyUserInsAreaDto){
+//        if (agencyUserInsAreaDto.getPageNum() == 0) {
+//            agencyUserInsAreaDto.setPageNum(1);
+//        }
+//        if (agencyUserInsAreaDto.getPageSize() == 0) {
+//            agencyUserInsAreaDto.setPageSize(10);
+//        }
+//        return HttpResult.ok("success", this.sysAgencyLeaderService.queryAgencyUserInsAreaPage(agencyUserInsAreaDto));
+//    }
+
+    @PostMapping("/queryInsAreaPageById")
     @ApiOperation(value = "查询机构下的单个员工的子订单费用")
-    public HttpResult<IPage<AgencyUserInsAreaVo>> queryAgencyUserInsAreaPage(@RequestBody AgencyUserInsAreaDto agencyUserInsAreaDto){
+    public HttpResult<IPage<AgencyUserInsAreaVo>> queryInsAreaPageById(@RequestBody AgencyUserInsAreaDto agencyUserInsAreaDto){
         if (agencyUserInsAreaDto.getPageNum() == 0) {
             agencyUserInsAreaDto.setPageNum(1);
         }
         if (agencyUserInsAreaDto.getPageSize() == 0) {
             agencyUserInsAreaDto.setPageSize(10);
         }
-        return HttpResult.ok("success", this.sysAgencyLeaderService.queryAgencyUserInsAreaPage(agencyUserInsAreaDto));
+        return HttpResult.ok("success", this.sysAgencyLeaderService.queryInsAreaPageById(agencyUserInsAreaDto));
     }
 
     @PostMapping("/queryUserInsAreaExcel")

+ 86 - 0
src/main/java/com/ydtech/modules/admin/controller/SysBarcodeConfigController.java

@@ -0,0 +1,86 @@
+package com.ydtech.modules.admin.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageResult;
+import com.ydtech.modules.admin.constants.UserConstants;
+import com.ydtech.modules.admin.model.po.SysBarcodeConfig;
+import com.ydtech.modules.admin.model.vo.AddSysBarcodeConfigVo;
+import com.ydtech.modules.admin.model.vo.SysBarcodeConfigPageVo;
+import com.ydtech.modules.admin.service.SysBarcodeConfigService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.utils.JudgeUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.time.LocalDateTime;
+
+@Api(tags = "二维码配置管理")
+@RestController
+@RequestMapping("/sysBarcodeConfig")
+public class SysBarcodeConfigController extends BaseController {
+
+    @Autowired
+    private SysBarcodeConfigService sysBarcodeConfigService;
+
+    @PostMapping("/queryPage")
+    @ApiOperation(value = "二维码配置分页列表")
+    public HttpResult<PageResult<SysBarcodeConfig>> queryPage(@RequestBody SysBarcodeConfigPageVo sysBarcodeConfigPageVo) {
+        Page page = buildPageRequest(sysBarcodeConfigPageVo.getPageDto());
+        Page<SysBarcodeConfig> pageResult = sysBarcodeConfigService.queryPage(page,sysBarcodeConfigPageVo);
+        return HttpResult.ok(buildPageResponse(pageResult));
+    }
+
+    @GetMapping(value = "/query/{id}")
+    @ApiOperation(value = "二维码配置{id}查询")
+    public HttpResult query(@PathVariable Long id) {
+        return HttpResult.ok(sysBarcodeConfigService.getById(id));
+    }
+
+    @PostMapping("/add")
+    @ApiOperation("添加二维码配置")
+    public HttpResult save(@RequestBody @Valid AddSysBarcodeConfigVo addSysBarcodeConfigVo) {
+        // 获取当前登录信息
+        String userName = getUserName();
+        SysBarcodeConfig sysBarcodeConfig = new SysBarcodeConfig();
+        BeanUtils.copyProperties(addSysBarcodeConfigVo, sysBarcodeConfig);
+        sysBarcodeConfig.setCreateTime(LocalDateTime.now());
+        sysBarcodeConfig.setCreateBy(userName);
+        if (UserConstants.NOT_UNIQUE.equals(sysBarcodeConfigService.checkCompanyUnique(sysBarcodeConfig))) {
+            return HttpResult.error("新增'" + sysBarcodeConfig.getCompanyName() + "'配置失败,该保险公司已经配置");
+        }
+//        LambdaQueryWrapper<SysBarcodeConfig> wrapper = new LambdaQueryWrapper<>();
+//        wrapper.eq(SysBarcodeConfig::getCompanyId, sysBarcodeConfig.getCompanyId());
+//        wrapper.eq(SysBarcodeConfig::getApiType, sysBarcodeConfig.getApiType());
+//        if (sysBarcodeConfigService.count(wrapper) > 0){
+//            HttpResult.error("不允许重复配置!");
+//        }
+        boolean save = sysBarcodeConfigService.save(sysBarcodeConfig);
+        return JudgeUtils.add(save);
+    }
+
+    @PutMapping("/edit/{id}")
+    @ApiOperation("修改二维码配置")
+    public HttpResult edit(@PathVariable Long id, @RequestBody @Valid AddSysBarcodeConfigVo addSysBarcodeConfigVo) {
+        SysBarcodeConfig sysBarcodeConfig = new SysBarcodeConfig();
+        BeanUtils.copyProperties(addSysBarcodeConfigVo, sysBarcodeConfig);
+        sysBarcodeConfig.setId(id);
+        if (UserConstants.NOT_UNIQUE.equals(sysBarcodeConfigService.checkCompanyUnique(sysBarcodeConfig))) {
+            return HttpResult.error("修改'" + sysBarcodeConfig.getCompanyName() + "'配置失败,该保险公司已经配置");
+        }
+        boolean modify = sysBarcodeConfigService.saveOrUpdate(sysBarcodeConfig);
+        return JudgeUtils.modify(modify);
+    }
+
+    @DeleteMapping("/del/{id}")
+    @ApiOperation("删除二维码配置")
+    public HttpResult delete(@PathVariable Long id) {
+        boolean delete = sysBarcodeConfigService.removeById(id);
+        return JudgeUtils.delete(delete);
+    }
+}

+ 94 - 0
src/main/java/com/ydtech/modules/admin/controller/SysPartnerConfigController.java

@@ -0,0 +1,94 @@
+package com.ydtech.modules.admin.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.SysPartnerConfig;
+import com.ydtech.modules.admin.model.dto.SysPartnerConfigDto;
+import com.ydtech.modules.admin.service.SysPartnerConfigService;
+import com.ydtech.modules.order.entity.BasePageResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 合伙人APP等级背景配置表(SysPartnerConfig)表控制层
+ *
+ * @author makejava
+ * @since 2024-10-16 09:48:19
+ */
+@RestController
+@RequestMapping("sysPartnerConfig")
+@Api(tags = "合伙人APP等级背景配置表")
+public class SysPartnerConfigController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private SysPartnerConfigService sysPartnerConfigService;
+
+    @PostMapping("/queryByPage")
+    @ApiOperation(value = "合伙人分页查询")
+    public HttpResult<BasePageResult<SysPartnerConfig>> queryByPage(@RequestBody SysPartnerConfigDto sysPartnerConfigDto) {
+        if (sysPartnerConfigDto.getPageNum() == 0) {
+            sysPartnerConfigDto.setPageNum(1);
+        }
+        if (sysPartnerConfigDto.getPageSize() == 0) {
+            sysPartnerConfigDto.setPageSize(10);
+        }
+        return HttpResult.ok(this.sysPartnerConfigService.queryByPage(sysPartnerConfigDto));
+    }
+
+
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/queryById/{id}")
+    @ApiOperation(value = "通过主键查询单条数据")
+    public HttpResult<SysPartnerConfig> queryById(@PathVariable("id") Long id) {
+        return HttpResult.ok(this.sysPartnerConfigService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param sysPartnerConfig 实体
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    @ApiOperation(value = "新增数据")
+    public HttpResult add(@RequestBody SysPartnerConfig sysPartnerConfig) {
+        return HttpResult.ok(this.sysPartnerConfigService.save(sysPartnerConfig));
+    }
+
+    /**
+     * 编辑数据
+     *
+     * @param sysPartnerConfig 实体
+     * @return 编辑结果
+     */
+    @PostMapping("/edit")
+    @ApiOperation(value = "编辑数据")
+    public HttpResult edit(@RequestBody SysPartnerConfig sysPartnerConfig) {
+        return HttpResult.ok(this.sysPartnerConfigService.updateById(sysPartnerConfig));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键
+     * @return 删除是否成功
+     */
+    @DeleteMapping("/deleteById/{id}")
+    @ApiOperation(value = "删除数据")
+    public HttpResult deleteById(@PathVariable("id") Long id) {
+        return HttpResult.ok(this.sysPartnerConfigService.deleteById(id));
+    }
+
+}
+

+ 18 - 3
src/main/java/com/ydtech/modules/admin/controller/SysPartnerController.java

@@ -115,19 +115,34 @@ public class SysPartnerController extends BaseController {
         return HttpResult.ok("success", this.sysPartnerService.deleteById(id));
     }
 
+//    /**
+//     * 所有合伙人的抽层费用
+//     */
+//    @PostMapping("/queryPartnerByPages")
+//    @ApiOperation(value = "优化所有合伙人的抽层费用信息")
+//    public HttpResult<BasePageResult<AgencyExtractFeeVo>> queryPartnerByPages(@RequestBody SysPartnerPageDto sysPartnerPageDto) {
+//        if (sysPartnerPageDto.getPageNum() == 0) {
+//            sysPartnerPageDto.setPageNum(1);
+//        }
+//        if (sysPartnerPageDto.getPageSize() == 0) {
+//            sysPartnerPageDto.setPageSize(10);
+//        }
+//        return HttpResult.ok(this.sysPartnerService.queryPartnerByPages(sysPartnerPageDto));
+//    }
+
     /**
      * 所有合伙人的抽层费用
      */
     @PostMapping("/queryPartnerByPage")
-    @ApiOperation(value = "优化所有合伙人的抽层费用信息")
-    public HttpResult<BasePageResult<AgencyExtractFeeVo>> queryPartnerByPages(@RequestBody SysPartnerPageDto sysPartnerPageDto) {
+    @ApiOperation(value = "所有合伙人的抽层费用信息")
+    public HttpResult<BasePageResult<AgencyExtractFeeVo>> queryPartnerByPage(@RequestBody SysPartnerPageDto sysPartnerPageDto) {
         if (sysPartnerPageDto.getPageNum() == 0) {
             sysPartnerPageDto.setPageNum(1);
         }
         if (sysPartnerPageDto.getPageSize() == 0) {
             sysPartnerPageDto.setPageSize(10);
         }
-        return HttpResult.ok(this.sysPartnerService.queryPartnerByPages(sysPartnerPageDto));
+        return HttpResult.ok(this.sysPartnerService.queryPartnerByPage(sysPartnerPageDto));
     }
 
     /**

+ 10 - 5
src/main/java/com/ydtech/modules/admin/controller/SysQyWeChatController.java

@@ -7,6 +7,7 @@ import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.po.SysQyWeChat;
 import com.ydtech.modules.admin.service.SysQyWeChatService;
+import com.ydtech.modules.admin.service.SysSwitchConfigService;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
@@ -25,11 +26,11 @@ import java.util.List;
 @Api(tags = "企业微信宣传图管理")
 public class SysQyWeChatController {
 
-    @Autowired
-    private SysQyWeChatService sysQyWeChatService;
+    private final SysQyWeChatService sysQyWeChatService;
 
-    @Autowired
-    private SysUserService sysUserService;
+    private final SysUserService sysUserService;
+
+    private final SysSwitchConfigService sysSwitchConfigService;
 
     @ApiOperation(value = "配置宣传图")
     @PostMapping(value = "/save/picture")
@@ -51,10 +52,13 @@ public class SysQyWeChatController {
         String userId = BaseController.getUser().getId();
         SysUser user = sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getId, userId));
         SysQyWeChat sysQyWeChat = sysQyWeChatService.getOne(new LambdaQueryWrapper<SysQyWeChat>().eq(SysQyWeChat::getUserId, user.getLeaderId()));
+        // 是否显示
+        boolean b = sysSwitchConfigService.weComQRCodeDisplay();
         if (sysQyWeChat == null) {
             List<SysQyWeChat> list = sysQyWeChatService.list();
-            return HttpResult.ok(list.get(0));
+            sysQyWeChat = list.get(0);
         }
+        sysQyWeChat.setDisplay(b);
         return HttpResult.ok(sysQyWeChat);
     }
 
@@ -64,4 +68,5 @@ public class SysQyWeChatController {
         SysQyWeChat sysQyWeChat = sysQyWeChatService.getOne(new LambdaQueryWrapper<SysQyWeChat>().eq(SysQyWeChat::getUserId, userId));
         return HttpResult.ok(sysQyWeChat);
     }
+
 }

+ 17 - 0
src/main/java/com/ydtech/modules/admin/controller/profitAnalysis/ProfitAnalysisController.java

@@ -62,5 +62,22 @@ public class ProfitAnalysisController {
         }
     }
 
+    /**
+     *  @version
+     *  @author: whp
+     *  @Date: 2024/10/16 15:35
+     *  @Description:  查询利润分析统计明细
+     */
+    @PostMapping("getProfitAnalysisQueryDetailsList")
+    @ApiOperation(value = "查询利润分析数据")
+    public HttpResult<List<ProfitAnalysisDto>> getProfitAnalysisQueryDetailsList(@RequestBody ProfitAnalysisQueryDto profitAnalysisQueryDto) {
+        try{
+            List<ProfitAnalysisDto> result = profitAnalysisService.getProfitAnalysisQueryDetailsList(profitAnalysisQueryDto);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+
 
 }

+ 1 - 1
src/main/java/com/ydtech/modules/admin/controller/websocket/PCSocketServer.java

@@ -61,7 +61,7 @@ public class PCSocketServer {
             onlineCount.incrementAndGet();
         }
         editStatus(userId);
-        log.info("PC用户连接:" + userId + ",当前在线人数为:" + onlineCount);
+        log.info("PC用户连接成功:" + userId + ",当前在线人数为:" + onlineCount);
         sendMessage("连接成功");
     }
 

+ 1 - 1
src/main/java/com/ydtech/modules/admin/controller/websocket/WebSocketServer.java

@@ -59,7 +59,7 @@ public class WebSocketServer {
             onlineCount.incrementAndGet();
         }
         editStatus(userId);
-        log.info("APP用户连接:" + userId + ",当前在线人数为:" + onlineCount);
+        log.info("APP用户连接成功:" + userId + ",当前在线人数为:" + onlineCount);
         sendMessage("APP用户连接成功");
     }
 

+ 18 - 0
src/main/java/com/ydtech/modules/admin/dao/SysBarcodeConfigMapper.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.po.SysBarcodeConfig;
+
+/**
+* @author dongxin
+* @description 针对表【sys_barcode_config(二维码配置表)】的数据库操作Mapper
+* @createDate 2024-09-27 15:12:05
+* @Entity generator.domain.SysBarcodeConfig
+*/
+public interface SysBarcodeConfigMapper extends BaseMapper<SysBarcodeConfig> {
+
+}
+
+
+
+

+ 10 - 0
src/main/java/com/ydtech/modules/admin/dao/SysPartnerAccountMapper.java

@@ -0,0 +1,10 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.SysPartnerAccount;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SysPartnerAccountMapper extends BaseMapper<SysPartnerAccount> {
+
+}

+ 19 - 0
src/main/java/com/ydtech/modules/admin/dao/SysPartnerConfigMapper.java

@@ -0,0 +1,19 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.SysPartnerConfig;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 合伙人APP等级背景配置表(SysPartnerConfig)表数据库访问层
+ *
+ * @author makejava
+ * @since 2024-10-16 09:48:19
+ */
+@Mapper
+public interface SysPartnerConfigMapper extends BaseMapper<SysPartnerConfig> {
+
+
+
+}
+

+ 2 - 0
src/main/java/com/ydtech/modules/admin/dao/SysPartnerMapper.java

@@ -34,5 +34,7 @@ public interface SysPartnerMapper extends BaseMapper<SysPartner> {
      *  @Description:  机构树形
      */
     List<SysPartnerConsoleDto> getTreeDeptUser(PartnerBalanceVo partnerBalanceVo);
+
+    List<SysPartner> queryByLoginId(@Param("userId") String userId);
 }
 

+ 17 - 0
src/main/java/com/ydtech/modules/admin/dao/SysPartnerTimeMapper.java

@@ -0,0 +1,17 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.SysPartnerTime;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 抽成比例修改表(SysPartnerTime)表数据库访问层
+ *
+ * @author makejava
+ * @since 2024-10-10 09:07:51
+ */
+@Mapper
+public interface SysPartnerTimeMapper extends BaseMapper<SysPartnerTime> {
+
+}
+

+ 18 - 0
src/main/java/com/ydtech/modules/admin/dao/SysPremiumDetailsMapper.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.SysPremiumDetails;
+import com.ydtech.modules.admin.model.dto.AgencyUserInsAreaDto;
+import com.ydtech.modules.admin.model.vo.AgencyUserInsAreaVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface SysPremiumDetailsMapper extends BaseMapper<SysPremiumDetails> {
+
+    void updateStatus(String id);
+
+    IPage<AgencyUserInsAreaVo> queryInsAreaPageById(Page page,@Param("dto") AgencyUserInsAreaDto agencyUserInsAreaDto);
+}

+ 1 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java

@@ -519,6 +519,7 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
     List<SysUser> findHxUserListNew();
 
 
+    AppUserInfoVo queryByUserId(@Param("userId")String userId);
 }
 
 

+ 61 - 0
src/main/java/com/ydtech/modules/admin/model/PartnerInfoVo.java

@@ -0,0 +1,61 @@
+package com.ydtech.modules.admin.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class PartnerInfoVo {
+
+    @ApiModelProperty(value = "合伙人id")
+    private String userId;
+    @ApiModelProperty(value = "合伙人Name")
+    private String userName;
+    @ApiModelProperty(value = "推荐人Name")
+    private String suggestName;
+
+    /**
+     * 总保费
+     */
+    @ApiModelProperty(value = "总保费")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal sumPremium;
+
+    /**
+     * 总佣金
+     */
+    @ApiModelProperty(value = "总佣金")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal extractFee;
+
+    /**
+     * 团队总人数
+     */
+    @ApiModelProperty(value = "团队总人数")
+    private Integer teamManNum;
+
+    @ApiModelProperty(value = "团队总数")
+    private Integer deptNum;
+
+    @ApiModelProperty(value = "工作室数量")
+    private Integer workNumber;
+
+    @ApiModelProperty(value = "数量")
+    private Integer partnerNumber;
+
+    @ApiModelProperty(value = "合伙人ids")
+    private List<String> partnerIds;
+
+    @ApiModelProperty(value = "管理员ids")
+    private List<String> leaderIds;
+
+    @ApiModelProperty(value = "工作室下团队ids")
+    private List<String> deptIds;
+
+    @ApiModelProperty(value = "级别")
+    private Integer level;
+
+}

+ 55 - 0
src/main/java/com/ydtech/modules/admin/model/SysPartnerAccount.java

@@ -0,0 +1,55 @@
+package com.ydtech.modules.admin.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class SysPartnerAccount {
+
+    /**
+     * 自增id
+     */
+    @TableId(value = "id", type= IdType.AUTO)
+    private Integer id;
+    /**
+     * 用户id
+     */
+    private String userId;
+    /**
+     * 总保费
+     */
+    @ApiModelProperty(value = "总保费")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal sumPremium;
+
+    /**
+     * 抽成费用
+     */
+    @ApiModelProperty(value = "抽成费用")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal extractFee;
+
+    /**
+     * 已提现抽成费用
+     */
+    @ApiModelProperty(value = "已提现抽成费用")
+    private BigDecimal historyFee;
+    /**
+     * 可提现抽成费用
+     */
+    @ApiModelProperty(value = "可提现抽成费用")
+    private BigDecimal cashFee;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+
+}

+ 41 - 0
src/main/java/com/ydtech/modules/admin/model/SysPartnerConfig.java

@@ -0,0 +1,41 @@
+package com.ydtech.modules.admin.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 合伙人APP等级背景配置表(SysPartnerConfig)实体类
+ *
+ * @author makejava
+ * @since 2024-10-16 09:48:19
+ */
+@Data
+public class SysPartnerConfig implements Serializable {
+    private static final long serialVersionUID = 211257280715008838L;
+    /**
+     * 自增id
+     */
+    @TableId(value = "id", type= IdType.AUTO)
+    private Long id;
+    /**
+     * 图标
+     */
+    private String logo;
+    /**
+     * 背景
+     */
+    private String image;
+    /**
+     * 等级
+     */
+    private Integer level;
+    /**
+     * 状态( 0:删除 1:正常)
+     */
+    private Integer delFlag;
+
+}
+

+ 52 - 0
src/main/java/com/ydtech/modules/admin/model/SysPartnerTime.java

@@ -0,0 +1,52 @@
+package com.ydtech.modules.admin.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 抽成比例修改表(SysPartnerTime)实体类
+ *
+ * @author makejava
+ * @since 2024-10-10 09:07:51
+ */
+@Data
+public class SysPartnerTime implements Serializable {
+    private static final long serialVersionUID = 104835295201241641L;
+    /**
+     * 自增id
+     */
+    @TableId(value = "id", type= IdType.AUTO)
+    private Integer id;
+    /**
+     * 用户id
+     */
+    private String userId;
+    /**
+     * 用户name
+     */
+    private String userName;
+    /**
+     * 旧比例
+     */
+    private String oldProportional;
+    /**
+     * 新比例
+     */
+    private String newProportional;
+    /**
+     * 月份
+     */
+    private String createTime;
+    /**
+     * 类型1合伙人 2工作室管理员
+     */
+    private Integer type;
+
+
+
+
+}
+

+ 112 - 0
src/main/java/com/ydtech/modules/admin/model/SysPremiumDetails.java

@@ -0,0 +1,112 @@
+package com.ydtech.modules.admin.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class SysPremiumDetails {
+
+    /**
+     * 自增id
+     */
+    @ApiModelProperty(value = "自增id")
+    @TableId(value = "id", type= IdType.AUTO)
+    private Integer id;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+    /**
+     * 用户name
+     */
+    @ApiModelProperty(value = "用户name")
+    private String userName;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "代理人id")
+    private String issuerId;
+    /**
+     * 用户name
+     */
+    @ApiModelProperty(value = "代理人name")
+    private String issuerName;
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderno;
+    /**
+     * 子订单id
+     */
+    @ApiModelProperty(value = "子订单id")
+    private String companyId;
+
+    /**
+     * 总保费
+     */
+    @ApiModelProperty(value = "总保费")
+    private BigDecimal sumpremium;
+
+    /**
+     * 交强险费用
+     */
+    @ApiModelProperty(value = "交强险费用")
+    private BigDecimal jqpremium;
+
+    /**
+     * 商业险费用
+     */
+    @ApiModelProperty(value = "商业险费用")
+    private BigDecimal sypremium;
+
+    /**
+     * 驾意险费用
+     */
+    @ApiModelProperty(value = "驾意险费用")
+    private BigDecimal jypremium;
+    /**
+     * 抽层比例
+     */
+    @ApiModelProperty(value = "抽层比例")
+    private String proportional;
+
+    /**
+     * 佣金
+     */
+    @ApiModelProperty(value = "佣金")
+    private BigDecimal extractFee;
+
+
+    /**
+     * 状态(0:未审核 1:审核通过)
+     */
+    @ApiModelProperty(value = "状态(0:未审核 1:审核通过)")
+    private Integer status;
+    /**
+     * 类型:1前线人员 2后线人员
+     */
+    @ApiModelProperty(value = "类型:1前线人员 2后线人员")
+    private Integer type;
+    /**
+     * 行业领域 1:汽车-车险
+     */
+    @ApiModelProperty(value = "行业领域 1:汽车-车险")
+    private Integer industrySector;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+
+
+}

+ 24 - 0
src/main/java/com/ydtech/modules/admin/model/dto/CommissionInfoDto.java

@@ -0,0 +1,24 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CommissionInfoDto {
+
+    @ApiModelProperty(value = "行业领域 1:汽车-车险")
+    private Integer industrySector;
+
+    @ApiModelProperty(value = "开始时间")
+    private String beginTime;
+
+    @ApiModelProperty(value = "结束时间")
+    private String endTime;
+
+    @ApiModelProperty(value = "页数")
+    private int pageNum;
+    @ApiModelProperty(value = "每页条数")
+    private int pageSize;
+
+
+}

+ 26 - 0
src/main/java/com/ydtech/modules/admin/model/dto/FilterPartnerInfoDto.java

@@ -0,0 +1,26 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class FilterPartnerInfoDto {
+
+    @ApiModelProperty(value = "开始时间")
+    private String beginTime;
+    @ApiModelProperty(value = "结束时间")
+    private String endTime;
+
+    @ApiModelProperty(value = "等级 1一级;2二级;3级")
+    private Integer partnerType;
+
+    @ApiModelProperty(value = "行业领域 1:汽车-车险")
+    private Integer industrySector;
+
+
+
+
+
+}

+ 43 - 0
src/main/java/com/ydtech/modules/admin/model/dto/PartnerGradeInfo.java

@@ -0,0 +1,43 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+@Data
+@ApiModel("每级合伙人详情")
+public class PartnerGradeInfo {
+
+    @ApiModelProperty(value = "开始时间")
+    private String beginTime;
+    @ApiModelProperty(value = "结束时间")
+    private String endTime;
+
+    @ApiModelProperty(value = "合伙人ids")
+    private List<String> partnerIds;
+
+    @ApiModelProperty(value = "管理员ids")
+    private List<String> leaderIds;
+
+    @ApiModelProperty(value = "合伙人:1;工作室:2 默认传:1")
+    private Integer type;
+
+    @ApiModelProperty(value = "行业领域 1:汽车-车险")
+    private Integer industrySector;
+
+    @ApiModelProperty(value = "工作室下团队ids")
+    private List<String> deptIds;
+
+    /**
+     * 前端埋点数据
+     */
+    @ApiModelProperty(value = "级别")
+    private Integer level;
+
+
+
+
+}

+ 18 - 0
src/main/java/com/ydtech/modules/admin/model/dto/PartnerInfoDto.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class PartnerInfoDto {
+    @ApiModelProperty(value = "开始时间")
+    private String beginTime;
+    @ApiModelProperty(value = "结束时间")
+    private String endTime;
+
+    @ApiModelProperty(value = " 全部行业:0 行业领域 1:汽车-车险")
+    private Integer industrySector;
+
+    @ApiModelProperty(value = "等级 1一级;2二级;3级")
+    private Integer partnerType;
+}

+ 14 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysPartnerConfigDto.java

@@ -0,0 +1,14 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class SysPartnerConfigDto {
+
+    @ApiModelProperty(value = "页数")
+    private int pageNum;
+
+    @ApiModelProperty(value = "每页条数")
+    private int pageSize;
+}

+ 4 - 0
src/main/java/com/ydtech/modules/admin/model/dto/TaskStatisticsDto.java

@@ -170,4 +170,8 @@ public class TaskStatisticsDto {
     @ApiModelProperty(value = "时间差")
     private String timeDifference;
 
+
+    @ApiModelProperty(value = "总保司")
+    private String insuranceCompanyNumber;
+
 }

+ 23 - 0
src/main/java/com/ydtech/modules/admin/model/dto/TeamUserInfosDto.java

@@ -0,0 +1,23 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class TeamUserInfosDto {
+
+    @ApiModelProperty(value = "开始时间")
+    private String beginTime;
+    @ApiModelProperty(value = "结束时间")
+    private String endTime;
+
+
+    @ApiModelProperty(value = "人员ids")
+    private List<String> userIds;
+
+    @ApiModelProperty(value = "行业领域 1:汽车-车险")
+    private Integer industrySector;
+
+}

+ 72 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysBarcodeConfig.java

@@ -0,0 +1,72 @@
+package com.ydtech.modules.admin.model.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 二维码配置表
+ * @TableName sys_barcode_config
+ */
+@TableName(value ="sys_barcode_config")
+@Data
+@ApiModel(value = "渠道分组表")
+@AllArgsConstructor
+@NoArgsConstructor
+public class SysBarcodeConfig implements Serializable {
+    /**
+     * 主键/自增
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 保险公司id
+     */
+    @ApiModelProperty(value = "保险公司id")
+    private String companyId;
+
+    /**
+     * 保险公司名称简称
+     */
+    @ApiModelProperty(value = "保险公司名称简称")
+    private String companyName;
+
+    /**
+     * 类型   0:url   1:base码   2:h5
+     */
+    @ApiModelProperty(value = "类型   0:url   1:base码   2:h5")
+    private Integer type;
+
+    /**
+     * 请求类型 1:api 2:python
+     */
+    @ApiModelProperty(value = "请求类型 1:api 2:python")
+    private Integer apiType;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+}

+ 4 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysPcAddress.java

@@ -91,5 +91,9 @@ public class SysPcAddress implements Serializable {
     @TableField(exist = false)
     private Integer type=1;
 
+    @TableField(exist = false)
+    @ApiModelProperty(value = "所属机构")
+    private String deptName;
+
 
 }

+ 3 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysQyWeChat.java

@@ -57,5 +57,8 @@ public class SysQyWeChat {
     @TableField("operator_time")
     private LocalDateTime operatorTime;
 
+    @ApiModelProperty("是否显示")
+    @TableField(exist = false)
+    private boolean display;
 
 }

+ 1 - 1
src/main/java/com/ydtech/modules/admin/model/report/company/CompanyQutationCountDataDto.java

@@ -78,7 +78,7 @@ public class CompanyQutationCountDataDto {
     private BigDecimal contributionRate;
 
     /***
-     *  承保数/核保书=缴费率
+     *  失败数
      */
     @ApiModelProperty("失败数")
     private BigDecimal areaCompanyErrNumber;

+ 18 - 0
src/main/java/com/ydtech/modules/admin/model/report/profitAnalysis/ProfitAnalysisDto.java

@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  *  @version
@@ -25,6 +26,7 @@ public class ProfitAnalysisDto {
 
     @ApiModelProperty("应收")
     private String sumcount;
+
     @ApiModelProperty("实付")
     private String paid;
 
@@ -69,4 +71,20 @@ public class ProfitAnalysisDto {
 
     @ApiModelProperty("转出银行卡")
     private String outCardNum;
+
+    @ApiModelProperty("支出类型")
+    private String expensesType;
+
+    @ApiModelProperty("支出类型id")
+    private String expensesId;
+
+    @ApiModelProperty("父id")
+    private String parentId;
+
+    @ApiModelProperty("类目")
+    private String category;
+
+    @ApiModelProperty("子级")
+    private List<ProfitAnalysisDto> children;
+
 }

+ 7 - 0
src/main/java/com/ydtech/modules/admin/model/report/profitAnalysis/ProfitAnalysisQueryDto.java

@@ -43,4 +43,11 @@ public class ProfitAnalysisQueryDto {
     @ApiModelProperty("年月")
     private String yearAndMonth;
 
+
+    @ApiModelProperty("支出类型 人员成本 1 固定成本 2   变动成本 3")
+    private String expensesType;
+
+    @ApiModelProperty("支出ids")
+    private List<String> expensesIds;
+
 }

+ 18 - 4
src/main/java/com/ydtech/modules/admin/model/vo/APPPartnerInfo.java

@@ -12,22 +12,36 @@ import java.util.List;
 @ApiModel(value = "合伙人下的管理员信息")
 public class APPPartnerInfo {
 
+    @ApiModelProperty(value = "机构id")
+    private String deptId;
 
+    @ApiModelProperty(value = "机构name")
+    private String deptName;
 
     @ApiModelProperty(value = "总保费")
     @JsonFormat(pattern = "0.00")
-    private BigDecimal sumpremium;
+    private BigDecimal sumPremium;
 
     @ApiModelProperty(value = "总佣金")
     @JsonFormat(pattern = "0.00")
     private BigDecimal extractFee;
 
     @ApiModelProperty(value = "成员总人数")
-    private Long number;
+    private Integer teamManNum;
+
+    @ApiModelProperty(value = "机构id")
+    private String leaderId;
+
+    @ApiModelProperty(value = "机构name")
+    private String leaderName;
+
+
+    @ApiModelProperty(value = "出单员工ids")
+    private List<String> userIds;
+
+
 
 
-    @ApiModelProperty(value = "管理员信息")
-    private List<AgencyLeaderInfo> agencyLeaderInfo;
 
 
 }

+ 37 - 0
src/main/java/com/ydtech/modules/admin/model/vo/APPPartnerInfoFreeVo.java

@@ -0,0 +1,37 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class APPPartnerInfoFreeVo {
+
+    /**
+     * 总保费
+     */
+    @ApiModelProperty(value = "总保费")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal sumPremium;
+
+    /**
+     * 总佣金
+     */
+    @ApiModelProperty(value = "总佣金")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal extractFee;
+
+    /**
+     * 团队总人数
+     */
+    @ApiModelProperty(value = "团队总人数")
+    private Integer teamManNum;
+
+    List<APPPartnerInfo> appPartnerInfos;
+
+
+
+}

+ 44 - 0
src/main/java/com/ydtech/modules/admin/model/vo/AddSysBarcodeConfigVo.java

@@ -0,0 +1,44 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class AddSysBarcodeConfigVo {
+
+    /**
+     * 保险公司id
+     */
+    @NotBlank(message = "保险公司id不能为空")
+    @ApiModelProperty(value = "保险公司id")
+    private String companyId;
+
+    /**
+     * 保险公司名称简称
+     */
+    @NotBlank(message = "保险公司名称简称不能为空")
+    @ApiModelProperty(value = "保险公司名称简称")
+    private String companyName;
+
+    /**
+     * 类型   0:url   1:base码   2:h5
+     */
+    @NotNull(message = "类型不能为空")
+    @ApiModelProperty(value = "类型   0:url   1:base码   2:h5")
+    private Integer type;
+
+    /**
+     * 请求类型 1:api 2:python
+     */
+    @NotNull(message = "请求类型不能为空")
+    @ApiModelProperty(value = "请求类型 1:api 2:python")
+    private Integer apiType;
+
+}

+ 66 - 0
src/main/java/com/ydtech/modules/admin/model/vo/AppPartnerNumVo.java

@@ -0,0 +1,66 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class AppPartnerNumVo {
+
+    /**
+     * 总保费
+     */
+    @ApiModelProperty(value = "总保费")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal sumPremium;
+
+
+
+    /**
+     * 抽成费用
+     */
+    @ApiModelProperty(value = "抽成费用")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal extractFee;
+    /**
+     * 团队总人数
+     */
+    @ApiModelProperty(value = "团队总人数")
+    private Integer TeamManNum;
+
+    /**
+     * 所有合伙人数
+     */
+    @ApiModelProperty(value = "下级所有合伙人数")
+    private Integer partnerNum;
+
+
+    /**
+     * 合伙人直接工作室数
+     */
+    @ApiModelProperty(value = "合伙人直接工作室数")
+    private Integer workroomNum;
+
+    @ApiModelProperty(value = "管理员ids")
+    private List<String> leaderIds;
+
+
+    //工作室
+    @ApiModelProperty(value = "工作室下团队人数")
+    private Integer workroomManNum;
+
+    @ApiModelProperty(value = "工作室下团队数")
+    private Integer workroomTeamNum;
+
+    @ApiModelProperty(value = "工作室下团队ids")
+    private List<String> deptIds;
+
+
+
+
+
+
+}

+ 52 - 0
src/main/java/com/ydtech/modules/admin/model/vo/AppSysPartnerVo.java

@@ -0,0 +1,52 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class AppSysPartnerVo {
+
+    /**
+     * 总保费
+     */
+    @ApiModelProperty(value = "总保费")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal sumPremium;
+
+    /**
+     * 总佣金
+     */
+    @ApiModelProperty(value = "总佣金")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal extractFee;
+
+    /**
+     * 团队总人数
+     */
+    @ApiModelProperty(value = "团队总人数")
+    private Integer TeamManNum;
+
+    @ApiModelProperty(value = "合伙人+工作室数量")
+    private Integer number;
+
+    @ApiModelProperty(value = "工作室数量")
+    private Integer workNumber;
+    //二级以下使用
+    @ApiModelProperty(value = "合伙人数量")
+    private Integer partnerNumber;
+
+    @ApiModelProperty(value = "合伙人ids")
+    private List<String> partnerIds;
+
+    @ApiModelProperty(value = "管理员ids")
+    private List<String> leaderIds;
+
+    @ApiModelProperty(value = "等级")
+    private Integer partnerType;
+
+
+}

+ 56 - 0
src/main/java/com/ydtech/modules/admin/model/vo/AppUserInfoVo.java

@@ -0,0 +1,56 @@
+package com.ydtech.modules.admin.model.vo;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ydtech.modules.admin.model.SysPartnerConfig;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+
+@Data
+public class AppUserInfoVo {
+
+    /**
+     * 员工id
+     */
+    @ApiModelProperty(value = "员工id")
+    private String userId;
+    /**
+     * 员工姓名
+     */
+    @ApiModelProperty(value = "员工姓名")
+    private String userName;
+
+    @ApiModelProperty("岗位名称")
+    private String positionName;
+    /**
+     * 团队名称
+     */
+    @ApiModelProperty(value = "团队名称")
+    private String deptName;
+
+    @ApiModelProperty(value = "手机号")
+    private String mobile;
+
+    /**
+     * 性别
+     */
+    @ApiModelProperty(value = "性别")
+    private String sex;
+
+    @ApiModelProperty(value = "微信号")
+    private String weChat;
+
+
+    @ApiModelProperty("入司时间")
+    private Date entryTime;
+
+    @ApiModelProperty("年限")
+    private Long years;
+
+    @ApiModelProperty(value = "等级背景")
+    private SysPartnerConfig sysPartnerConfig;
+
+}

+ 35 - 0
src/main/java/com/ydtech/modules/admin/model/vo/FilterPartnerInfoVo.java

@@ -0,0 +1,35 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ydtech.modules.admin.model.PartnerInfoVo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class FilterPartnerInfoVo {
+
+    /**
+     * 总保费
+     */
+    @ApiModelProperty(value = "总保费")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal sumPremium;
+
+    /**
+     * 总佣金
+     */
+    @ApiModelProperty(value = "总佣金")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal extractFee;
+
+    /**
+     * 团队总人数
+     */
+    @ApiModelProperty(value = "团队总人数")
+    private Integer teamManNum;
+
+    List<PartnerInfoVo> partnerInfoVoList;
+}

+ 34 - 0
src/main/java/com/ydtech/modules/admin/model/vo/PartnerInfoFreeVo.java

@@ -0,0 +1,34 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ydtech.modules.admin.model.PartnerInfoVo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class PartnerInfoFreeVo {
+    /**
+     * 总保费
+     */
+    @ApiModelProperty(value = "总保费")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal sumPremium;
+
+    /**
+     * 总佣金
+     */
+    @ApiModelProperty(value = "总佣金")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal extractFee;
+
+    /**
+     * 团队总人数
+     */
+    @ApiModelProperty(value = "团队总人数")
+    private Integer teamManNum;
+
+    List<PartnerInfoVo> partnerInfoVoList;
+}

+ 39 - 0
src/main/java/com/ydtech/modules/admin/model/vo/PartnerLeaderInfoVo.java

@@ -0,0 +1,39 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ydtech.modules.admin.model.PartnerInfoVo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class PartnerLeaderInfoVo {
+
+    /**
+     * 总保费
+     */
+    @ApiModelProperty(value = "总保费")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal sumPremium;
+
+    /**
+     * 总佣金
+     */
+    @ApiModelProperty(value = "总佣金")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal extractFee;
+
+    /**
+     * 团队总人数
+     */
+    @ApiModelProperty(value = "团队总人数")
+    private Integer teamManNum;
+
+    List<PartnerInfoVo> partnerInfoVoList;
+
+    List<String> userIds;
+
+
+}

+ 16 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysBarcodeConfigPageVo.java

@@ -0,0 +1,16 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.ydtech.core.page.PageRequest;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SysBarcodeConfigPageVo extends PageRequest {
+
+    @ApiModelProperty(value = "保险公司id")
+    private String companyId;
+}

+ 35 - 0
src/main/java/com/ydtech/modules/admin/model/vo/TeamUserInfosFreeVo.java

@@ -0,0 +1,35 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class TeamUserInfosFreeVo {
+
+    /**
+     * 总保费
+     */
+    @ApiModelProperty(value = "总保费")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal sumPremium;
+
+    /**
+     * 总佣金
+     */
+    @ApiModelProperty(value = "总佣金")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal extractFee;
+
+    /**
+     * 团队总人数
+     */
+    @ApiModelProperty(value = "团队总人数")
+    private Integer teamManNum;
+
+
+    List<TeamUserInfosVo> teamUserInfosVoList;
+}

+ 38 - 0
src/main/java/com/ydtech/modules/admin/model/vo/TeamUserInfosVo.java

@@ -0,0 +1,38 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class TeamUserInfosVo {
+
+    @ApiModelProperty(value = "合伙人id")
+    private String userId;
+    @ApiModelProperty(value = "合伙人Name")
+    private String userName;
+
+    @ApiModelProperty(value = "机构id")
+    private String leaderId;
+
+    @ApiModelProperty(value = "机构name")
+    private String leaderName;
+
+    /**
+     * 总保费
+     */
+    @ApiModelProperty(value = "总保费")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal sumPremium;
+
+
+
+    /**
+     * 抽成费用
+     */
+    @ApiModelProperty(value = "抽成费用")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal extractFee;
+}

+ 8 - 0
src/main/java/com/ydtech/modules/admin/service/ProfitAnalysisService.java

@@ -22,6 +22,14 @@ public interface ProfitAnalysisService {
     List<ProfitAnalysisDto> queryPage(ProfitAnalysisQueryDto profitAnalysisQueryDto);
 
     List<ProfitAnalysisDto> getProfitAnalysisQueryList(ProfitAnalysisQueryDto profitAnalysisQueryDto);
+    /**
+     *  @version
+     *  @author: whp
+     *  @Date: 2024/10/16 15:35
+     *  @Description:  查询利润分析统计明细
+     */
+    List<ProfitAnalysisDto> getProfitAnalysisQueryDetailsList(ProfitAnalysisQueryDto profitAnalysisQueryDto);
+
 }
 
 

+ 2 - 0
src/main/java/com/ydtech/modules/admin/service/SysAgencyLeaderService.java

@@ -45,6 +45,7 @@ public interface SysAgencyLeaderService extends IService<SysAgencyLeader> {
     AgencyExtractFee queryExtractFee(String userId);
 
     BasePageResult<AgencyExtractFeeVo> queryExtractFeeList(SysAgencyLeaderPageDto sysAgencyLeaderPageDto);
+    BasePageResult<AgencyExtractFeeVo> queryExtractFeeAlls(SysAgencyLeaderPageDto sysAgencyLeaderPageDto);
 
     BasePageResult<TeamUserInfoVo> queryTeamUser(TeamUserInfoDto teamUserInfoDto);
 
@@ -60,6 +61,7 @@ public interface SysAgencyLeaderService extends IService<SysAgencyLeader> {
     List<SysUser> queryAgencyUser(String deptId);
 
     IPage<AgencyUserInsAreaVo> queryAgencyUserInsAreaPage(AgencyUserInsAreaDto agencyUserInsAreaDto);
+    IPage<AgencyUserInsAreaVo> queryInsAreaPageById(AgencyUserInsAreaDto agencyUserInsAreaDto);
 
     HttpResult queryUserInsAreaExcel(AgencyUserInsAreaDto agencyUserInsAreaDto);
 }

+ 31 - 0
src/main/java/com/ydtech/modules/admin/service/SysBarcodeConfigService.java

@@ -0,0 +1,31 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.po.SysBarcodeConfig;
+import com.ydtech.modules.admin.model.vo.SysBarcodeConfigPageVo;
+
+import javax.validation.Valid;
+
+/**
+* @author dongxin
+* @description 针对表【sys_barcode_config(二维码配置表)】的数据库操作Service
+* @createDate 2024-09-27 15:12:05
+*/
+public interface SysBarcodeConfigService extends IService<SysBarcodeConfig> {
+
+    /**
+     * 二维码配置分页查询
+     * @param page
+     * @param sysBarcodeConfigPageVo
+     * @return
+     */
+    Page<SysBarcodeConfig> queryPage(Page page, @Valid SysBarcodeConfigPageVo sysBarcodeConfigPageVo);
+
+    /**
+     * 去重校验
+     * @param sysBarcodeConfig
+     * @return
+     */
+    String checkCompanyUnique(SysBarcodeConfig sysBarcodeConfig);
+}

+ 8 - 0
src/main/java/com/ydtech/modules/admin/service/SysPartnerAccountService.java

@@ -0,0 +1,8 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysPartnerAccount;
+
+public interface SysPartnerAccountService extends IService<SysPartnerAccount> {
+
+}

+ 20 - 0
src/main/java/com/ydtech/modules/admin/service/SysPartnerConfigService.java

@@ -0,0 +1,20 @@
+package com.ydtech.modules.admin.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysPartnerConfig;
+import com.ydtech.modules.admin.model.dto.SysPartnerConfigDto;
+import com.ydtech.modules.order.entity.BasePageResult;
+
+/**
+ * 合伙人APP等级背景配置表(SysPartnerConfig)表服务接口
+ *
+ * @author makejava
+ * @since 2024-10-16 09:48:19
+ */
+public interface SysPartnerConfigService extends IService<SysPartnerConfig> {
+
+    BasePageResult<SysPartnerConfig> queryByPage(SysPartnerConfigDto sysPartnerConfigDto);
+
+    boolean deleteById(Long id);
+}

+ 23 - 10
src/main/java/com/ydtech/modules/admin/service/SysPartnerService.java

@@ -3,14 +3,10 @@ package com.ydtech.modules.admin.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.admin.model.SysPartner;
-import com.ydtech.modules.admin.model.dto.SysAgencyLeaderPageDto;
-import com.ydtech.modules.admin.model.dto.SysPartnerAPPPageDto;
-import com.ydtech.modules.admin.model.dto.SysPartnerDto;
-import com.ydtech.modules.admin.model.dto.SysPartnerPageDto;
-import com.ydtech.modules.admin.model.vo.APPPartnerInfo;
-import com.ydtech.modules.admin.model.vo.AgencyExtractFeeVo;
-import com.ydtech.modules.admin.model.vo.SysPartnerAPPPageVo;
-import com.ydtech.modules.admin.model.vo.SysUserPartner;
+import com.ydtech.modules.admin.model.SysPartnerAccount;
+import com.ydtech.modules.admin.model.SysPremiumDetails;
+import com.ydtech.modules.admin.model.dto.*;
+import com.ydtech.modules.admin.model.vo.*;
 import com.ydtech.modules.order.entity.BasePageResult;
 
 import java.util.List;
@@ -36,6 +32,7 @@ public interface SysPartnerService extends IService<SysPartner> {
     boolean deleteById(String id);
 
     BasePageResult<AgencyExtractFeeVo> queryPartnerByPages(SysPartnerPageDto sysPartnerPageDto);
+    BasePageResult<AgencyExtractFeeVo> queryPartnerByPage(SysPartnerPageDto sysPartnerPageDto);
 
     BasePageResult<SysPartnerAPPPageVo> SysPartnerAPPPage(SysPartnerAPPPageDto sysPartnerAPPPageDto);
 
@@ -43,7 +40,23 @@ public interface SysPartnerService extends IService<SysPartner> {
 
     BasePageResult<AgencyExtractFeeVo> queryAgencyLeaderById(SysAgencyLeaderPageDto sysAgencyLeaderPageDto);
 
-    List<SysPartner> partnerInfo(String beginTime, String endTime);
+    List<AppSysPartnerVo> partnerInfo(PartnerInfoDto partnerInfoDto);
 
-    APPPartnerInfo getLeaderInfo(String userId);
+    APPPartnerInfoFreeVo getTeamInfo(PartnerGradeInfo partnerGradeInfo);
+
+    AppPartnerNumVo getHomePage(Integer type);
+
+    AppUserInfoVo getUserInfo(Integer type);
+
+    SysPartnerAccount getFee();
+
+    PartnerInfoFreeVo queryPartnerInfo(PartnerGradeInfo partnerGradeInfo);
+
+    BasePageResult<SysPremiumDetails> getCommissionInfo(CommissionInfoDto commissionInfoDto);
+
+    TeamUserInfosFreeVo getTeamUserInfo(TeamUserInfosDto teamUserInfosDto);
+
+    FilterPartnerInfoVo queryFilterPartnerInfo(FilterPartnerInfoDto filterPartnerInfoDto);
+
+    PartnerLeaderInfoVo partnerLeaderInfo(PartnerGradeInfo partnerGradeInfo);
 }

+ 17 - 0
src/main/java/com/ydtech/modules/admin/service/SysPartnerTimeService.java

@@ -0,0 +1,17 @@
+package com.ydtech.modules.admin.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysPartnerTime;
+
+/**
+ * 抽成比例修改表(SysPartnerTime)表服务接口
+ *
+ * @author makejava
+ * @since 2024-10-10 09:07:51
+ */
+public interface SysPartnerTimeService extends IService<SysPartnerTime> {
+
+
+
+}

+ 7 - 0
src/main/java/com/ydtech/modules/admin/service/SysPremiumDetailsService.java

@@ -0,0 +1,7 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysPremiumDetails;
+
+public interface SysPremiumDetailsService extends IService<SysPremiumDetails> {
+}

+ 12 - 4
src/main/java/com/ydtech/modules/admin/service/SysSwitchConfigService.java

@@ -68,17 +68,25 @@ public interface SysSwitchConfigService extends BaseIService<SysSwitchConfig> {
      */
     FeeLookSwitchesDTO feeLookSwitches();
 
+    /**
+     * 二维码是否显示
+     *
+     * @return 是否开启
+     */
+    boolean weComQRCodeDisplay();
+
     /**
      * 机构 掌柜币查看
      *
      * @return
      */
     boolean feeDisplaySwitches();
+
     /**
-     *  @version
-     *  @author: hxl
-     *  @Date: 2024/9/26 15:09
-     *  @Description:  电销组员开关
+     * @version
+     * @author: hxl
+     * @Date: 2024/9/26 15:09
+     * @Description: 电销组员开关
      */
     boolean dxtxDisplaySwitches();
 }

+ 19 - 19
src/main/java/com/ydtech/modules/admin/service/impl/CompanyDataReportServiceImpl.java

@@ -86,25 +86,25 @@ public class CompanyDataReportServiceImpl implements CompanyDataReportService {
         Page<CompanyQutationCountDataDto> resultSubOrder = insAreaCompanyMapper.queryCompanyQutationCountDataPage(companyQutationCountDataQueryDto, page);
         Long total = this.insAreaCompanyMapper.queryCompanyQutationCountDataPageTotal(companyQutationCountDataQueryDto);
 
-        List<CompanyQutationCountDataDto> records = resultSubOrder.getRecords();
-        for (CompanyQutationCountDataDto  item :records){
-            String companyId = item.getCompanyId();
-            String parterCompanyId = item.getParterCompanyId();
-
-            companyQutationCountDataQueryDto.setCompanyId(companyId);
-            companyQutationCountDataQueryDto.setParterCompanyId(parterCompanyId);
-            CompanyQutationCountDataDto   errItem=  insAreaCompanyMapper.getInsAreaCompanyError(companyQutationCountDataQueryDto);
-            if(ObjectUtils.isNotEmpty(errItem)){
-                BigDecimal areaCompanyErrNumber = errItem.getAreaCompanyErrNumber();  //失败报价数
-                BigDecimal orderSuccessNumber = item.getOrderSuccessNumber();//成功报价数
-                BigDecimal allNumber = this.calculateTotal(areaCompanyErrNumber, orderSuccessNumber, null);
-                item.setAllNumber(allNumber);
-                item.setAreaCompanyErrNumber(areaCompanyErrNumber);
-                int scale = 2;
-                RoundingMode roundingMode = RoundingMode.HALF_UP; // 四舍五入
-                item.setOrderSuccessNumberRate(item.getOrderSuccessNumber().divide(allNumber, scale, roundingMode));
-            }
-        }
+//        List<CompanyQutationCountDataDto> records = resultSubOrder.getRecords();
+//        for (CompanyQutationCountDataDto  item :records){
+//            String companyId = item.getCompanyId();
+//            String parterCompanyId = item.getParterCompanyId();
+//
+//            companyQutationCountDataQueryDto.setCompanyId(companyId);
+//            companyQutationCountDataQueryDto.setParterCompanyId(parterCompanyId);
+//            CompanyQutationCountDataDto   errItem=  insAreaCompanyMapper.getInsAreaCompanyError(companyQutationCountDataQueryDto);
+//            if(ObjectUtils.isNotEmpty(errItem)){
+//                BigDecimal areaCompanyErrNumber = errItem.getAreaCompanyErrNumber();  //失败报价数
+//                BigDecimal orderSuccessNumber = item.getOrderSuccessNumber();//成功报价数
+//                BigDecimal allNumber = this.calculateTotal(areaCompanyErrNumber, orderSuccessNumber, null);
+//                item.setAllNumber(allNumber);
+//                item.setAreaCompanyErrNumber(areaCompanyErrNumber);
+//                int scale = 2;
+//                RoundingMode roundingMode = RoundingMode.HALF_UP; // 四舍五入
+//                item.setOrderSuccessNumberRate(item.getOrderSuccessNumber().divide(allNumber, scale, roundingMode));
+//            }
+//        }
         resultSubOrder.setTotal(total);
         return new BasePageResult<>(companyQutationCountDataQueryDto.getPageNum(), page.getSize(), resultSubOrder.getTotal(), page.getPages(),
                 resultSubOrder.getRecords());

+ 68 - 4
src/main/java/com/ydtech/modules/admin/service/impl/ProfitAnalysisServiceImpl.java

@@ -4,20 +4,20 @@ import com.ydtech.modules.admin.model.report.profitAnalysis.ProfitAnalysisDto;
 import com.ydtech.modules.admin.model.report.profitAnalysis.ProfitAnalysisQueryDto;
 import com.ydtech.modules.admin.service.ProfitAnalysisService;
 import com.ydtech.modules.admin.utils.SliceUpDateUtil;
+import com.ydtech.modules.console.dao.ProfitAnalysisMapper;
 import com.ydtech.modules.fnc.dao.InsPlyIncomeMapper;
 import com.ydtech.modules.inv.dao.InvAccountMapper;
 import com.ydtech.modules.inv.model.InvAccount;
 import com.ydtech.modules.inv.model.InvAccountCardVo;
+import com.ydtech.modules.inv.model.InvAccountExpenses;
 import com.ydtech.utils.BigDecimalUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  *  @version
@@ -32,6 +32,8 @@ public class ProfitAnalysisServiceImpl implements ProfitAnalysisService {
 
     @Autowired
     private InsPlyIncomeMapper insPlyIncomeMapper;
+    @Autowired
+    private ProfitAnalysisMapper profitAnalysisMapper;
 
     /**
      *  @version
@@ -82,6 +84,68 @@ public class ProfitAnalysisServiceImpl implements ProfitAnalysisService {
         return profitAnalysisQueryList;
     }
 
+    @Override
+    public List<ProfitAnalysisDto> getProfitAnalysisQueryDetailsList(ProfitAnalysisQueryDto profitAnalysisQueryDto) {
+        List<ProfitAnalysisDto> resultList =new ArrayList<>();
+
+        if (StringUtils.isNotEmpty(profitAnalysisQueryDto.getExpensesType()) && "3".equals(profitAnalysisQueryDto.getExpensesType())) {
+            List<ProfitAnalysisDto> profitAnalysisDtos =  profitAnalysisMapper.selectAccountExpenses(profitAnalysisQueryDto);
+            resultList.addAll(profitAnalysisDtos) ;
+            List<ProfitAnalysisDto> addVariableCost = new ArrayList<>();
+            List<ProfitAnalysisDto> profitAnalysisDto1 = insPlyIncomeMapper.changeAmount(profitAnalysisQueryDto);
+            for (ProfitAnalysisDto analysisDto : profitAnalysisDto1) {
+                String outCardNum = analysisDto.getOutCardNum();
+                String enterCardNum = analysisDto.getEnterCardNum();
+                InvAccountCardVo outAccount = invAccountMapper.getByCarNumber(outCardNum);
+                InvAccountCardVo enterAccount = invAccountMapper.getByCarNumber(enterCardNum);
+                if (StringUtils.isNotEmpty(outAccount.getOuterFlag()) && StringUtils.isNotEmpty(enterAccount.getOuterFlag())) {
+                    if (!enterAccount.getOuterFlag().equals(outAccount.getOuterFlag())) {
+                        addVariableCost.add(analysisDto);
+
+                    }
+                }
+            }
+
+            Map<String, BigDecimal> profitAnalysisDtoMap = addVariableCost.stream()
+                    .collect(Collectors.toMap(
+                            ProfitAnalysisDto::getExpensesId,  // keyMapper,用于提取键(expensesId)
+                            ProfitAnalysisDto::getApplyAmount, // valueMapper,用于提取初始值(applyAmount)
+                            BigDecimal::add                    // mergeFunction,用于处理键冲突(相加 applyAmount)
+                    ));
+
+            for (ProfitAnalysisDto profitAnalysisDto : resultList) {
+                String expensesId = profitAnalysisDto.getExpensesId();
+                if (profitAnalysisDtoMap.containsKey(expensesId)) {
+                    BigDecimal bigDecimal = profitAnalysisDtoMap.get(expensesId);
+                    profitAnalysisDto.setApplyAmount(bigDecimal);
+                }
+            }
+        }else {
+            resultList.addAll(profitAnalysisMapper.getAllAccountExpenses(profitAnalysisQueryDto));
+        }
+        return getTree(resultList);
+    }
+
+    /**
+     * 组装树形结构结果集方法
+     */
+
+    public List<ProfitAnalysisDto> getTree(List<ProfitAnalysisDto> list){
+
+        return list.stream().filter(accountExpenses -> accountExpenses.getParentId().equals("0"))
+                .peek(accountExpenses -> accountExpenses.setChildren(getChildren(accountExpenses,list))).collect(Collectors.toList());
+    }
+
+    public List<ProfitAnalysisDto> getChildren(ProfitAnalysisDto user,List<ProfitAnalysisDto> userList){
+        return userList.stream().filter(u -> Objects.equals(u.getParentId(),user.getExpensesId())).map(
+                u -> {
+                    u.setChildren(getChildren(u,userList));
+                    return u;
+                }
+        ).collect(Collectors.toList());
+    }
+
+
     /**
      *  @version
      *  @author: hxl

+ 34 - 10
src/main/java/com/ydtech/modules/admin/service/impl/SysAgencyFeeApprovalServiceImpl.java

@@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
-import com.ydtech.modules.admin.dao.SysAgencyFeeApprovalMapper;
-import com.ydtech.modules.admin.dao.SysAgencyFeeApprovalRecordMapper;
-import com.ydtech.modules.admin.dao.SysDeptMapper;
+import com.ydtech.modules.admin.dao.*;
 import com.ydtech.modules.admin.model.*;
 import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalAddDto;
 import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalDto;
@@ -51,6 +49,11 @@ public class SysAgencyFeeApprovalServiceImpl extends ServiceImpl<SysAgencyFeeApp
 
     @Resource
     private SysDeptMapper sysDeptMapper;
+    @Resource
+    private SysPartnerAccountMapper sysPartnerAccountMapper;
+
+    @Resource
+    private SysUserMapper sysUserMapper;
 
 
 
@@ -65,9 +68,13 @@ public class SysAgencyFeeApprovalServiceImpl extends ServiceImpl<SysAgencyFeeApp
         //当前登录用户
         SysUser user = BaseController.getUser();
         //查询当前用户可提现金额
-        AgencyExtractFee agencyExtractFee = sysAgencyLeaderService.queryExtractFee(user.getId());
+        //AgencyExtractFee agencyExtractFee = sysAgencyLeaderService.queryExtractFee(user.getId());
+
+        SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>()
+                .eq(SysPartnerAccount::getUserId,user.getId()));
+
 
-        BigDecimal cashFee = agencyExtractFee.getCashFee();
+        BigDecimal cashFee = sysPartnerAccount.getCashFee();
         int compare = cashFee.compareTo(actualFee);
         if (compare < 0) {
             throw new SystemException("提现金额不能超过可提现金额");
@@ -83,20 +90,29 @@ public class SysAgencyFeeApprovalServiceImpl extends ServiceImpl<SysAgencyFeeApp
         }
         sysAgencyFeeApproval.setNumber(IdGenerate.nextId());
         //总保费
-        sysAgencyFeeApproval.setSumpremium(agencyExtractFee.getSumpremium());
+        sysAgencyFeeApproval.setSumpremium(sysPartnerAccount.getSumPremium());
         //总保费抽成费用
-        sysAgencyFeeApproval.setExtractFee(agencyExtractFee.getExtractFee().subtract(agencyExtractFee.getHistoryFee()));
+        sysAgencyFeeApproval.setExtractFee(sysPartnerAccount.getExtractFee());
         //已提现抽成费用
 //        sysAgencyFeeApproval.setHistoryFee(null);
         //可提现抽成费用
         sysAgencyFeeApproval.setCashFee(actualFee);
-        sysAgencyFeeApproval.setStartTime(agencyExtractFee.getStartTime());
-        sysAgencyFeeApproval.setProportional(agencyExtractFee.getProportional());
+//        sysAgencyFeeApproval.setStartTime(agencyExtractFee.getStartTime());
+//        sysAgencyFeeApproval.setProportional(agencyExtractFee.getProportional());
         sysAgencyFeeApproval.setCreateBy(user.getName());
         sysAgencyFeeApproval.setCreateTime(new Date());
         sysAgencyFeeApproval.setStatus("0");
         //提交审核信息
         this.save(sysAgencyFeeApproval);
+
+        sysPartnerAccount.setCashFee(sysPartnerAccount.getCashFee().subtract(actualFee));
+        BigDecimal historyFee = sysPartnerAccount.getHistoryFee();
+        if (historyFee == null) {
+            sysPartnerAccount.setHistoryFee(actualFee);
+        }else {
+            sysPartnerAccount.setHistoryFee(sysPartnerAccount.getHistoryFee().add(actualFee));
+        }
+        sysPartnerAccountMapper.updateById(sysPartnerAccount);
         //保存添加记录
         SysAgencyFeeApprovalRecord sysAgencyFeeApprovalRecord = BeanUtil.copyProperties(sysAgencyFeeApproval, SysAgencyFeeApprovalRecord.class);
         sysAgencyFeeApprovalRecord.setApprovalId(sysAgencyFeeApproval.getId());
@@ -121,7 +137,15 @@ public class SysAgencyFeeApprovalServiceImpl extends ServiceImpl<SysAgencyFeeApp
             //审批通过
             sysAgencyFeeApproval.setHistoryFee(sysAgencyFeeApproval.getCashFee());
             sysAgencyFeeApproval.setPicture(sysAgencyFeeApprovalEditDto.getPicture());
-            //sysAgencyFeeApproval.setExtractFee(sysAgencyFeeApproval1.getExtractFee().subtract(sysAgencyFeeApproval.getCashFee()));
+
+        }else {
+            SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>()
+                    .eq(SysPartnerAccount::getUserId,sysAgencyFeeApproval1.getUserId()));
+            sysPartnerAccount.setCashFee(sysPartnerAccount.getCashFee().add(sysAgencyFeeApproval1.getCashFee()));
+            sysPartnerAccount.setHistoryFee(sysPartnerAccount.getHistoryFee().subtract(sysAgencyFeeApproval1.getCashFee()));
+
+            sysPartnerAccountMapper.updateById(sysPartnerAccount);
+
         }
         sysAgencyFeeApproval.setId(sysAgencyFeeApprovalEditDto.getId());
         sysAgencyFeeApproval.setAuditTime(new Date());

+ 109 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysAgencyLeaderServiceImpl.java

@@ -77,6 +77,13 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
 
     @Resource
     private SysPartnerMapper sysPartnerMapper;
+    @Resource
+    private SysPartnerTimeMapper sysPartnerTimeMapper;
+    @Resource
+    private SysPartnerAccountMapper sysPartnerAccountMapper;
+
+    @Resource
+    private SysPremiumDetailsMapper sysPremiumDetailsMapper;
 
     @Value("${upload.file.path}")
     private String uploadPath;
@@ -148,6 +155,17 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
 
             }
         }
+        //添加抽层比例,一个月只能设置一次
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String format = simpleDateFormat.format(new Date());
+        SysPartnerTime sysPartnerTime = new SysPartnerTime();
+        sysPartnerTime.setType(2);
+        sysPartnerTime.setCreateTime(format);
+        sysPartnerTime.setUserId(sysAgencyLeaderDto.getUserId());
+        sysPartnerTime.setUserName(sysAgencyLeaderDto.getUserName());
+        sysPartnerTime.setNewProportional(sysAgencyLeaderDto.getProportional());
+
+        sysPartnerTimeMapper.insert(sysPartnerTime);
         return b;
     }
 
@@ -197,6 +215,14 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean edit(SysAgencyLeaderDto sysAgencyLeaderDto) {
+        //判断本月是否已修改比例
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String format = simpleDateFormat.format(new Date());
+        List<SysPartnerTime> sysPartnerTimes = sysPartnerTimeMapper.selectList(new LambdaQueryWrapper<SysPartnerTime>()
+                .eq(SysPartnerTime::getCreateTime,format).eq(SysPartnerTime::getUserId,sysAgencyLeaderDto.getUserId()));
+        if (sysPartnerTimes.size() > 0) {
+            throw new DescribeException(format+"已设置过抽成比例,每月只能修改一次");
+        }
         //不修改负责人userId传null
         String userId = sysAgencyLeaderDto.getUserId();
         String loginId = BaseController.getUserId();
@@ -307,6 +333,17 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
 
         }
 
+        //修改抽成比例记录改变过程
+        SysPartnerTime sysPartnerTime = new SysPartnerTime();
+        sysPartnerTime.setType(2);
+        sysPartnerTime.setCreateTime(format);
+        sysPartnerTime.setUserId(sysAgencyLeaderDto.getUserId());
+        sysPartnerTime.setUserName(sysAgencyLeaderDto.getUserName());
+        sysPartnerTime.setNewProportional(sysAgencyLeaderDto.getProportional());
+        sysPartnerTime.setOldProportional(sysAgencyLeader1.getProportional());
+
+        sysPartnerTimeMapper.insert(sysPartnerTime);
+
         return b;
     }
 
@@ -620,6 +657,70 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
     }
 
 
+    @Override
+    public BasePageResult<AgencyExtractFeeVo> queryExtractFeeAlls(SysAgencyLeaderPageDto sysAgencyLeaderPageDto) {
+        List<AgencyExtractFeeVo> agencyExtractFeeList = new ArrayList<>();
+
+        Page<SysAgencyLeader> page = new Page<>(sysAgencyLeaderPageDto.getPageNum(), sysAgencyLeaderPageDto.getPageSize());
+        LambdaQueryWrapper<SysAgencyLeader> wrapper = new LambdaQueryWrapper<>();
+        wrapper.like(StringUtils.isNotEmpty(sysAgencyLeaderPageDto.getUserId()), SysAgencyLeader::getUserId, sysAgencyLeaderPageDto.getUserId());
+        wrapper.like(StringUtils.isNotEmpty(sysAgencyLeaderPageDto.getUserName()), SysAgencyLeader::getUserName, sysAgencyLeaderPageDto.getUserName());
+        wrapper.eq(SysAgencyLeader::getDelFlag, 1);
+        wrapper.orderByDesc(SysAgencyLeader::getId);
+
+        Page<SysAgencyLeader> insOrdersPage = page(page, wrapper);
+        List<SysAgencyLeader> records = insOrdersPage.getRecords();
+        if (records.size() > 0) {
+            for (SysAgencyLeader sysAgencyLeaders : records) {
+                AgencyExtractFeeVo agencyExtractFee = new AgencyExtractFeeVo();
+                String userId = sysAgencyLeaders.getUserId();
+                //已提现抽成费用
+                BigDecimal historyFee = BigDecimal.ZERO;
+                SysUser sysUser = sysUserMapper.selectById(userId);
+                SysDept sysDept = sysDeptMapper.selectById(sysAgencyLeaders.getDeptId());
+                agencyExtractFee.setUserId(userId);
+                agencyExtractFee.setUserName(sysUser.getName());
+                agencyExtractFee.setDeptId(sysAgencyLeaders.getDeptId());
+                agencyExtractFee.setDeptName(sysDept.getName());
+
+                SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>().eq(SysPartnerAccount::getUserId, userId));
+                if (sysPartnerAccount != null) {
+                    BigDecimal sumPremium = sysPartnerAccount.getSumPremium();
+                    BigDecimal extractFee = sysPartnerAccount.getExtractFee();
+                    agencyExtractFee.setSumpremium(sumPremium);
+                    agencyExtractFee.setExtractFee(extractFee);
+
+                    // 填充 已提现抽成费用和可提现抽成费用
+                    List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
+                            .eq(SysAgencyFeeApproval::getUserId, sysAgencyLeaders.getUserId())
+                            .eq(SysAgencyFeeApproval::getStatus, 1));
+                    if (sysAgencyFeeApprovals.size() > 0) {
+                        for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
+                            historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
+                        }
+                    }
+
+                    if (!extractFee.equals(BigDecimal.ZERO)) {
+                        //已提现
+                        agencyExtractFee.setHistoryFee(historyFee);
+                        //可提现 = 总抽成-已提现
+                        agencyExtractFee.setCashFee(extractFee.subtract(historyFee));
+                    } else {
+                        agencyExtractFee.setHistoryFee(BigDecimal.ZERO);
+                        agencyExtractFee.setCashFee(extractFee.subtract(BigDecimal.ZERO));
+                    }
+                }
+                agencyExtractFeeList.add(agencyExtractFee);
+
+            }
+
+        }
+
+        return new BasePageResult<>(sysAgencyLeaderPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
+                agencyExtractFeeList);
+    }
+
+
     @Override
     public BasePageResult<TeamInformation> queryTeamInfoPage(TeamInformationDto teamInformationDto) {
         String userId = BaseController.getUserId();
@@ -914,6 +1015,14 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
         return agencyUserInsAreaVoIPage;
     }
 
+    @Override
+    public IPage<AgencyUserInsAreaVo> queryInsAreaPageById(AgencyUserInsAreaDto agencyUserInsAreaDto) {
+        Page page = new Page(agencyUserInsAreaDto.getPageNum(), agencyUserInsAreaDto.getPageSize());
+
+        IPage<AgencyUserInsAreaVo> agencyUserInsAreaVoIPage = sysPremiumDetailsMapper.queryInsAreaPageById(page, agencyUserInsAreaDto);
+        return agencyUserInsAreaVoIPage;
+    }
+
     @Override
     public HttpResult queryUserInsAreaExcel(AgencyUserInsAreaDto agencyUserInsAreaDto) {
 

+ 56 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysBarcodeConfigServiceImpl.java

@@ -0,0 +1,56 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.constants.UserConstants;
+import com.ydtech.modules.admin.dao.SysBarcodeConfigMapper;
+import com.ydtech.modules.admin.model.po.SysBarcodeConfig;
+import com.ydtech.modules.admin.model.po.SysChannelCost;
+import com.ydtech.modules.admin.model.po.SysChannelGrade;
+import com.ydtech.modules.admin.model.vo.SysBarcodeConfigPageVo;
+import com.ydtech.modules.admin.service.SysBarcodeConfigService;
+import com.ydtech.utils.StringUtils;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+* @author dongxin
+* @description 针对表【sys_barcode_config(二维码配置表)】的数据库操作Service实现
+* @createDate 2024-09-27 15:12:05
+*/
+@Service
+public class SysBarcodeConfigServiceImpl extends ServiceImpl<SysBarcodeConfigMapper, SysBarcodeConfig>
+    implements SysBarcodeConfigService {
+
+    @Override
+    public Page<SysBarcodeConfig> queryPage(Page page, SysBarcodeConfigPageVo sysBarcodeConfigPageVo) {
+        LambdaQueryWrapper<SysBarcodeConfig> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(StringUtils.isNotBlank(sysBarcodeConfigPageVo.getCompanyId()), SysBarcodeConfig::getCompanyId,
+                        sysBarcodeConfigPageVo.getCompanyId())
+        ;
+        Page<SysBarcodeConfig> costPage = page(page, wrapper);
+        return costPage;
+    }
+
+    @Override
+    public String checkCompanyUnique(SysBarcodeConfig sysBarcodeConfig) {
+        Long groupId = ObjectUtils.isEmpty(sysBarcodeConfig.getId()) ? -1L: sysBarcodeConfig.getId();
+        LambdaQueryWrapper<SysBarcodeConfig> qw = new LambdaQueryWrapper<>();
+        qw.eq(SysBarcodeConfig::getCompanyId,sysBarcodeConfig.getCompanyId())
+                .eq(SysBarcodeConfig::getApiType,sysBarcodeConfig.getApiType());
+        SysBarcodeConfig info = getOne(qw);
+        if (!Objects.isNull(info) && info.getId() != groupId) {
+            return UserConstants.NOT_UNIQUE;
+        }
+        return UserConstants.UNIQUE;
+    }
+}
+
+
+
+

+ 11 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerAccountServiceImpl.java

@@ -0,0 +1,11 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysPartnerAccountMapper;
+import com.ydtech.modules.admin.model.SysPartnerAccount;
+import com.ydtech.modules.admin.service.SysPartnerAccountService;
+import org.springframework.stereotype.Service;
+
+@Service("sysPartnerAccountService")
+public class SysPartnerAccountServiceImpl extends ServiceImpl<SysPartnerAccountMapper, SysPartnerAccount> implements SysPartnerAccountService {
+}

+ 40 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerConfigServiceImpl.java

@@ -0,0 +1,40 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysPartnerConfigMapper;
+import com.ydtech.modules.admin.model.SysPartnerConfig;
+import com.ydtech.modules.admin.model.dto.SysPartnerConfigDto;
+import com.ydtech.modules.admin.service.SysPartnerConfigService;
+import com.ydtech.modules.order.entity.BasePageResult;
+import org.springframework.stereotype.Service;
+
+@Service("sysPartnerConfigService")
+public class SysPartnerConfigServiceImpl extends ServiceImpl<SysPartnerConfigMapper, SysPartnerConfig> implements SysPartnerConfigService {
+
+    @Override
+    public BasePageResult<SysPartnerConfig> queryByPage(SysPartnerConfigDto sysPartnerConfigDto) {
+
+        Page<SysPartnerConfig> page = new Page<>(sysPartnerConfigDto.getPageNum(), sysPartnerConfigDto.getPageSize());
+        LambdaQueryWrapper<SysPartnerConfig> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SysPartnerConfig::getDelFlag,1);
+        wrapper.orderByDesc(SysPartnerConfig::getId);
+
+
+        Page<SysPartnerConfig> insOrdersPage = page(page, wrapper);
+
+        return new BasePageResult<>(sysPartnerConfigDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
+                insOrdersPage.getRecords());
+    }
+
+    @Override
+    public boolean deleteById(Long id) {
+        SysPartnerConfig sysPartnerConfig = new SysPartnerConfig();
+        sysPartnerConfig.setId(id);
+        sysPartnerConfig.setDelFlag(0);
+        return baseMapper.updateById(sysPartnerConfig)>0;
+    }
+
+
+}

+ 1045 - 110
src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerServiceImpl.java

@@ -11,13 +11,12 @@ import com.ydtech.aop.exception.DescribeException;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.dao.*;
 import com.ydtech.modules.admin.model.*;
-import com.ydtech.modules.admin.model.dto.SysAgencyLeaderPageDto;
-import com.ydtech.modules.admin.model.dto.SysPartnerAPPPageDto;
-import com.ydtech.modules.admin.model.dto.SysPartnerDto;
-import com.ydtech.modules.admin.model.dto.SysPartnerPageDto;
+import com.ydtech.modules.admin.model.dto.*;
+import com.ydtech.modules.admin.model.po.SysUserAccountHistory;
 import com.ydtech.modules.admin.model.vo.*;
 import com.ydtech.modules.admin.service.SysAgencyLeaderService;
 import com.ydtech.modules.admin.service.SysPartnerService;
+import com.ydtech.modules.admin.service.SysPremiumDetailsService;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.order.entity.BasePageResult;
@@ -29,10 +28,10 @@ import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.time.temporal.ChronoUnit;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -64,6 +63,23 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
     @Resource
     private SysAgencyLeaderService sysAgencyLeaderService;
 
+    @Resource
+    private SysPartnerTimeMapper sysPartnerTimeMapper;
+
+    @Resource
+    private SysPartnerAccountMapper sysPartnerAccountMapper;
+
+    @Resource
+    private SysPremiumDetailsMapper sysPremiumDetailsMapper;
+
+    @Resource
+    private SysPremiumDetailsService sysPremiumDetailsService;
+
+    @Resource
+    private SysUserAccountHistoryMapper sysUserAccountHistoryMapper;
+    @Resource
+    private SysPartnerConfigMapper sysPartnerConfigMapper;
+
 
     @Override
     public List<SysPartner> queryRecommendAndPartner(String id) {
@@ -205,8 +221,17 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
             sysPartner.setType(1);
             b = sysPartnerMapper.insert(sysPartner) > 0;
         }
-
-
+        //添加抽层比例,一个月只能设置一次
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String format = simpleDateFormat.format(new Date());
+        SysPartnerTime sysPartnerTime = new SysPartnerTime();
+        sysPartnerTime.setType(1);
+        sysPartnerTime.setCreateTime(format);
+        sysPartnerTime.setUserId(sysPartnerDto.getUserId());
+        sysPartnerTime.setUserName(sysPartnerDto.getUserName());
+        sysPartnerTime.setNewProportional(sysPartnerDto.getProportional());
+
+        sysPartnerTimeMapper.insert(sysPartnerTime);
         return b;
     }
 
@@ -355,6 +380,71 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
 
     }
 
+    @Override
+    public BasePageResult<AgencyExtractFeeVo> queryPartnerByPage(SysPartnerPageDto sysPartnerPageDto) {
+        List<AgencyExtractFeeVo> agencyExtractFeeList = new ArrayList<>();
+
+        Page<SysPartner> page = new Page<>(sysPartnerPageDto.getPageNum(), sysPartnerPageDto.getPageSize());
+        LambdaQueryWrapper<SysPartner> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SysPartner::getDelFlag, 1);
+        wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserId()), SysPartner::getUserId, sysPartnerPageDto.getUserId());
+        wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserName()), SysPartner::getUserName, sysPartnerPageDto.getUserName());
+        wrapper.orderByDesc(SysPartner::getId);
+
+        Page<SysPartner> insOrdersPage = page(page, wrapper);
+        List<SysPartner> sysPartnerList = insOrdersPage.getRecords();
+        if (sysPartnerList.size() > 0) {
+            for (SysPartner sysPartner : sysPartnerList) {
+                String userId = sysPartner.getUserId();
+
+                AgencyExtractFeeVo agencyExtractFee = new AgencyExtractFeeVo();
+                //已提现抽成费用
+                BigDecimal historyFee = BigDecimal.ZERO;
+                SysUser sysUser = sysUserMapper.selectOne(new LambdaQueryWrapper<SysUser>()
+                        .eq(SysUser::getId, userId)
+                        .ne(SysUser::getStatus, 0));
+                //填充查询人的姓名和机构
+                agencyExtractFee.setUserId(userId);
+                agencyExtractFee.setUserName(sysUser.getName());
+                agencyExtractFee.setDeptId(sysUser.getDeptId());
+                SysDept sysDept = sysDeptMapper.selectOne(new LambdaQueryWrapper<SysDept>()
+                        .eq(SysDept::getId, sysUser.getDeptId()).eq(SysDept::getDelFlag, 0));
+                agencyExtractFee.setDeptName(sysDept.getName());
+
+                SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>()
+                        .eq(SysPartnerAccount::getUserId, userId));
+                if (sysPartnerAccount != null) {
+
+                    BigDecimal sumPremium = sysPartnerAccount.getSumPremium();
+                    BigDecimal extractFee = sysPartnerAccount.getExtractFee();
+                    agencyExtractFee.setSumpremium(sumPremium);
+                    agencyExtractFee.setExtractFee(extractFee);
+
+
+                    // 填充 已提现抽成费用和可提现抽成费用
+                    List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
+                            .eq(SysAgencyFeeApproval::getUserId, sysPartner.getUserId())
+                            .eq(SysAgencyFeeApproval::getStatus, 1));
+                    if (sysAgencyFeeApprovals.size() > 0) {
+                        for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
+                            historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
+                        }
+                    }
+                    agencyExtractFee.setHistoryFee(historyFee);
+                    //可提现 = 总抽成-已提现
+                    agencyExtractFee.setCashFee(extractFee.subtract(historyFee));
+
+                }
+                agencyExtractFeeList.add(agencyExtractFee);
+
+            }
+        }
+
+        return new BasePageResult<>(sysPartnerPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
+                agencyExtractFeeList);
+
+    }
+
     @Override
     public BasePageResult<SysPartnerAPPPageVo> SysPartnerAPPPage(SysPartnerAPPPageDto sysPartnerAPPPageDto) {
         List<SysPartnerAPPPageVo> sysPartnerAPPPageVoList = new ArrayList<>();
@@ -466,12 +556,20 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean edit(SysPartnerDto sysPartnerDto) {
+        //判断本月是否已修改比例
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String format = simpleDateFormat.format(new Date());
+        List<SysPartnerTime> sysPartnerTimes = sysPartnerTimeMapper.selectList(new LambdaQueryWrapper<SysPartnerTime>()
+                .eq(SysPartnerTime::getCreateTime, format).eq(SysPartnerTime::getUserId, sysPartnerDto.getUserId()));
+        if (sysPartnerTimes.size() > 0) {
+            throw new DescribeException(format + "已设置过抽成比例,每月只能修改一次");
+        }
         boolean b;
         SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
                 .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysPartnerDto.getUserId()));
         if (sysPartner == null) throw new DescribeException("系统错误,请联系管理员!");
 
-        if (StringUtils.isNullOrEmpty(sysPartner.getSuggestId()) && StringUtils.isNotEmpty(sysPartnerDto.getSuggestId()))  {
+        if (StringUtils.isNullOrEmpty(sysPartner.getSuggestId()) && StringUtils.isNotEmpty(sysPartnerDto.getSuggestId())) {
             SysPartner partner = new SysPartner();
             partner.setId(sysPartner.getId());
             partner.setProportional(sysPartnerDto.getProportional());
@@ -481,7 +579,7 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
             SysPartner sysPartnerSuggest = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
                     .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, sysPartnerDto.getSuggestId()));
             if (sysPartnerSuggest == null) throw new SystemException("推荐人不存在");
-            partner.setType(sysPartnerSuggest.getType()+1);
+            partner.setType(sysPartnerSuggest.getType() + 1);
             b = sysPartnerMapper.updateById(partner) > 0;
 
             SysRelationPerson sysRelationPerson = new SysRelationPerson();
@@ -515,11 +613,19 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
             SysPartner partner = new SysPartner();
             partner.setId(sysPartner.getId());
             partner.setProportional(sysPartnerDto.getProportional());
-            //判断本月是否已修改比例 TODO
 
             b = sysPartnerMapper.updateById(partner) > 0;
         }
+        //修改抽成比例记录改变过程
+        SysPartnerTime sysPartnerTime = new SysPartnerTime();
+        sysPartnerTime.setType(1);
+        sysPartnerTime.setCreateTime(format);
+        sysPartnerTime.setUserId(sysPartnerDto.getUserId());
+        sysPartnerTime.setUserName(sysPartnerDto.getUserName());
+        sysPartnerTime.setNewProportional(sysPartnerDto.getProportional());
+        sysPartnerTime.setOldProportional(sysPartner.getProportional());
 
+        sysPartnerTimeMapper.insert(sysPartnerTime);
 
         return b;
     }
@@ -544,138 +650,967 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         if (records.size() > 0) {
             for (SysAgencyLeader sysAgencyLeaders : records) {
                 AgencyExtractFeeVo agencyExtractFee = new AgencyExtractFeeVo();
-                //总保费
-                BigDecimal bigDecimal = BigDecimal.ZERO;
+                String userId = sysAgencyLeaders.getUserId();
                 //已提现抽成费用
                 BigDecimal historyFee = BigDecimal.ZERO;
-                SysUser sysUser = sysUserMapper.selectById(sysAgencyLeaders.getUserId());
+                SysUser sysUser = sysUserMapper.selectById(userId);
                 SysDept sysDept = sysDeptMapper.selectById(sysAgencyLeaders.getDeptId());
-                agencyExtractFee.setUserId(sysAgencyLeaders.getUserId());
+                agencyExtractFee.setUserId(userId);
                 agencyExtractFee.setUserName(sysUser.getName());
                 agencyExtractFee.setDeptId(sysAgencyLeaders.getDeptId());
                 agencyExtractFee.setDeptName(sysDept.getName());
-                agencyExtractFee.setProportional(sysAgencyLeaders.getProportional());
-                //筛选订单,选择时间
-                Date updateTime = sysAgencyLeaders.getUpdateTime();
-                Date createTime = sysAgencyLeaders.getCreateTime();
-                String dateStr = "";
-                if (updateTime != null) {
-                    dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(updateTime);
-                    agencyExtractFee.setStartTime(updateTime);
+
+                SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>()
+                        .eq(SysPartnerAccount::getUserId, userId));
+                if (sysPartnerAccount != null) {
+                    BigDecimal sumPremium = sysPartnerAccount.getSumPremium();
+                    BigDecimal extractFee = sysPartnerAccount.getExtractFee();
+                    agencyExtractFee.setSumpremium(sumPremium);
+                    agencyExtractFee.setExtractFee(extractFee);
+
+                    // 填充 已提现抽成费用和可提现抽成费用
+                    List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
+                            .eq(SysAgencyFeeApproval::getUserId, sysAgencyLeaders.getUserId())
+                            .eq(SysAgencyFeeApproval::getStatus, 1));
+                    if (sysAgencyFeeApprovals.size() > 0) {
+                        for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
+                            historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
+                        }
+                    }
+
+                    if (!extractFee.equals(BigDecimal.ZERO)) {
+                        //已提现
+                        agencyExtractFee.setHistoryFee(historyFee);
+                        //可提现 = 总抽成-已提现
+                        agencyExtractFee.setCashFee(extractFee.subtract(historyFee));
+                    } else {
+                        agencyExtractFee.setHistoryFee(BigDecimal.ZERO);
+                        agencyExtractFee.setCashFee(extractFee.subtract(BigDecimal.ZERO));
+                    }
+                }
+                agencyExtractFeeList.add(agencyExtractFee);
+
+            }
+
+        }
+
+        return new BasePageResult<>(sysAgencyLeaderPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
+                agencyExtractFeeList);
+
+    }
+
+    @Override
+    public APPPartnerInfoFreeVo getTeamInfo(PartnerGradeInfo partnerGradeInfo) {
+        APPPartnerInfoFreeVo appPartnerInfoFreeVo = new APPPartnerInfoFreeVo();
+
+        List<APPPartnerInfo> appPartnerInfoList = new ArrayList<>();
+
+        List<String> deptIds = partnerGradeInfo.getDeptIds();
+        if (CollectionUtil.isEmpty(deptIds)) {
+            return appPartnerInfoFreeVo;
+        }
+        List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                .in(SysDept::getId, deptIds).eq(SysDept::getDelFlag, 0));
+        if (sysDeptList.size() == 0) {
+            return appPartnerInfoFreeVo;
+        }
+        for (SysDept sysDept : sysDeptList) {
+            APPPartnerInfo appPartnerInfo = new APPPartnerInfo();
+            appPartnerInfo.setDeptId(sysDept.getId());
+            appPartnerInfo.setDeptName(sysDept.getName());
+            String leaderId = sysDept.getLeaderId();
+            if (StringUtils.isNotEmpty(leaderId)) {
+                appPartnerInfo.setLeaderId(leaderId);
+                SysUser sysUser = sysUserMapper.selectById(leaderId);
+                appPartnerInfo.setLeaderName(sysUser.getName());
+            }
+
+            //获取机构下的团队
+            List<SysDept> sysDepTeam = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                    .likeRight(SysDept::getId, sysDept.getId())
+                    .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
+                    .eq(SysDept::getManagementSource, sysDept.getManagementSource()));
+            //机构下每个团队人数id集合
+            List<String> userIdList = new ArrayList<>();
+            int deptManNum = 0;
+            if (sysDepTeam.size() > 0) {
+                for (SysDept sysDept1 : sysDepTeam) {
+                    List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                            .likeRight(SysUser::getId, sysDept1.getId()).ne(SysUser::getStatus, 0));
+                    deptManNum = deptManNum + sysUsers.size();
+                    if (sysUsers.size() > 0) {
+                        List<String> collect = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
+                        userIdList.addAll(collect);
+                    }
+
+                }
+            }
+            appPartnerInfo.setTeamManNum(deptManNum);
+            appPartnerInfo.setUserIds(userIdList);
+
+            //查团队的保费
+            List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                    .in(SysPremiumDetails::getUserId, userIdList)
+                    .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
+                            SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
+                    .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
+            BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+            appPartnerInfo.setSumPremium(sumPremium);
+
+            List<SysUserAccountHistory> sysUserAccountHistories = sysUserAccountHistoryMapper.selectList(new LambdaQueryWrapper<SysUserAccountHistory>()
+                    .in(SysUserAccountHistory::getUserId, userIdList).eq(SysUserAccountHistory::getProperty, 3));
+
+            BigDecimal extractFee = sysUserAccountHistories.stream().map(SysUserAccountHistory::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+            appPartnerInfo.setExtractFee(extractFee);
+
+            appPartnerInfoList.add(appPartnerInfo);
+        }
+        List<String> ids = new ArrayList<>();
+        List<List<String>> collect = appPartnerInfoList.stream().map(APPPartnerInfo::getUserIds).collect(Collectors.toList());
+        if (collect.size() > 0) {
+            for (List<String> list : collect) {
+                ids.addAll(list);
+            }
+        }
+
+        List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                .in(SysPremiumDetails::getUserId, ids)
+                .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
+                        SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
+                .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
+        BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+        appPartnerInfoFreeVo.setSumPremium(sumPremium);
+
+        List<SysUserAccountHistory> sysUserAccountHistories = sysUserAccountHistoryMapper.selectList(new LambdaQueryWrapper<SysUserAccountHistory>()
+                .in(SysUserAccountHistory::getUserId, ids).eq(SysUserAccountHistory::getProperty, 3));
+
+        BigDecimal extractFee = sysUserAccountHistories.stream().map(SysUserAccountHistory::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+        appPartnerInfoFreeVo.setExtractFee(extractFee);
+
+        int sum = appPartnerInfoList.stream().mapToInt(APPPartnerInfo::getTeamManNum).sum();
+        appPartnerInfoFreeVo.setTeamManNum(sum);
+
+        appPartnerInfoFreeVo.setAppPartnerInfos(appPartnerInfoList);
+
+        return appPartnerInfoFreeVo;
+    }
+
+    @Override
+    public AppPartnerNumVo getHomePage(Integer type) {
+        AppPartnerNumVo appPartnerNumVo = new AppPartnerNumVo();
+        //合伙人:1 ;工作室管理员:2
+        String userId = BaseController.getUserId();
+        SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>()
+                .eq(SysPartnerAccount::getUserId, userId));
+        appPartnerNumVo.setSumPremium(sysPartnerAccount.getSumPremium());
+        appPartnerNumVo.setExtractFee(sysPartnerAccount.getExtractFee());
+        if (type == 1) {
+            //下面合伙人(直接+间接)数量
+            List<SysRelationPerson> sysRelationPersonList1 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                    .eq(SysRelationPerson::getSuggestId, userId)
+                    .eq(SysRelationPerson::getDelFlag, 1)
+                    .eq(SysRelationPerson::getType, 0));
+
+            appPartnerNumVo.setPartnerNum(sysRelationPersonList1.size());
+
+            //直接工作室数量
+            List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                    .eq(SysRelationPerson::getSuggestId, userId)
+                    .eq(SysRelationPerson::getDelFlag, 1)
+                    .eq(SysRelationPerson::getSource, 0)
+                    .eq(SysRelationPerson::getType, 1));
+            appPartnerNumVo.setWorkroomNum(sysRelationPersonList.size());
+            List<String> collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+            appPartnerNumVo.setLeaderIds(collect);
+            //登录人下面的所有团队人数
+            List<SysRelationPerson> sysRelationPersonList2 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                    .eq(SysRelationPerson::getSuggestId, userId)
+                    .eq(SysRelationPerson::getDelFlag, 1)
+                    .eq(SysRelationPerson::getType, 1));
+
+            List<String> ids = sysRelationPersonList2.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+            List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
+                    .in(CollectionUtil.isNotEmpty(ids), SysAgencyLeader::getUserId, ids).eq(SysAgencyLeader::getDelFlag, 1));
+            int deptManNum = 0;
+            if (leaderList.size() > 0) {
+                for (SysAgencyLeader sysAgencyLeader : leaderList) {
+                    //获取机构下的团队
+                    List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                            .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
+                            .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
+                            .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
+                    if (sysDeptList.size() > 0) {
+                        for (SysDept sysDept : sysDeptList) {
+                            List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                                    .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
+                            deptManNum = deptManNum + sysUsers.size();
+
+                        }
+                    }
+                }
+
+                appPartnerNumVo.setTeamManNum(deptManNum);
+            }
+        } else {
+            int deptManNum = 0;
+            SysAgencyLeader sysAgencyLeader = sysAgencyLeaderMapper.selectOne(new LambdaQueryWrapper<SysAgencyLeader>()
+                    .in(SysAgencyLeader::getUserId, userId).eq(SysAgencyLeader::getDelFlag, 1));
+            //获取机构下的团队
+            List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                    .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
+                    .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
+                    .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
+            appPartnerNumVo.setWorkroomTeamNum(sysDeptList.size());
+            List<String> deptIds = new ArrayList<>();
+            if (sysDeptList.size() > 0) {
+                for (SysDept sysDept : sysDeptList) {
+                    List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                            .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
+                    deptManNum = deptManNum + sysUsers.size();
+                    deptIds.add(sysDept.getId());
+                }
+                appPartnerNumVo.setWorkroomManNum(deptManNum);
+                appPartnerNumVo.setTeamManNum(deptManNum);
+                appPartnerNumVo.setDeptIds(deptIds);
+            }
+
+        }
+
+        return appPartnerNumVo;
+    }
+
+    @Override
+    public AppUserInfoVo getUserInfo(Integer type) {
+        String userId = BaseController.getUserId();
+        AppUserInfoVo appUserInfoVo = sysUserMapper.queryByUserId(userId);
+        if (type == 1) {
+            SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
+                    .eq(SysPartner::getDelFlag, 1).eq(SysPartner::getUserId, userId));
+            SysPartnerConfig sysPartnerConfig = sysPartnerConfigMapper.selectOne(new LambdaQueryWrapper<SysPartnerConfig>()
+                    .eq(SysPartnerConfig::getDelFlag,1).eq(SysPartnerConfig::getLevel,sysPartner.getType()));
+
+            appUserInfoVo.setSysPartnerConfig(sysPartnerConfig);
+        }
+        // 获取当前日期
+        LocalDate currentDate = LocalDate.now();
+        ZoneId zoneId = ZoneId.systemDefault();
+        Date entryTime = appUserInfoVo.getEntryTime();
+        if (entryTime != null) {
+            LocalDate localDate = entryTime.toInstant().atZone(zoneId).toLocalDate();
+            // 计算年数
+            long years = ChronoUnit.YEARS.between(localDate, currentDate);
+            appUserInfoVo.setYears(years);
+        }
+
+        return appUserInfoVo;
+    }
+
+    @Override
+    public SysPartnerAccount getFee() {
+        String userId = BaseController.getUserId();
+
+        return sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>().eq(SysPartnerAccount::getUserId, userId));
+    }
+
+    @Override
+    public List<AppSysPartnerVo> partnerInfo(PartnerInfoDto partnerInfoDto) {
+        List<AppSysPartnerVo> appSysPartnerVos = new ArrayList<>();
+        String userId = BaseController.getUserId();
+        SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
+                .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1));
+        //查询登陆人下所有合伙人
+        List<SysPartner> sysPartnerList = sysPartnerMapper.queryByLoginId(userId);
+
+        Map<Integer, List<SysPartner>> listMap = sysPartnerList.stream().sorted(Comparator.comparing(SysPartner::getId))
+                .collect(Collectors.groupingBy(SysPartner::getType));
+        //按等级查询
+        Integer partnerType = partnerInfoDto.getPartnerType();
+        if (partnerType != null) {
+            List<SysPartner> sysPartnerList1 = listMap.get(sysPartner.getType() + partnerType);
+
+            if (sysPartnerList1 != null) {
+                AppSysPartnerVo appSysPartnerVo = new AppSysPartnerVo();
+                //下级合伙人数
+                appSysPartnerVo.setPartnerNumber(sysPartnerList1.size());
+                List<String> ids = sysPartnerList1.stream().map(SysPartner::getUserId).collect(Collectors.toList());
+                appSysPartnerVo.setPartnerIds(ids);
+                List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                        .in(CollectionUtil.isNotEmpty(ids), SysPremiumDetails::getUserId, ids)
+                        .between(StringUtils.isNotEmpty(partnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(partnerInfoDto.getEndTime()),
+                                SysPremiumDetails::getCreateTime, partnerInfoDto.getBeginTime(), partnerInfoDto.getEndTime())
+                        .eq(partnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerInfoDto.getIndustrySector()));
+                BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+                BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+//                appSysPartnerVo.setSumPremium(sumPremium);
+//                appSysPartnerVo.setExtractFee(extractFee);
+                //二级以下团队的总人数
+                List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                        .in(CollectionUtil.isNotEmpty(ids), SysRelationPerson::getSuggestId, ids)
+                        .eq(SysRelationPerson::getDelFlag, 1)
+                        .eq(SysRelationPerson::getType, 1));
+                int deptManNum = 0;
+                if (sysRelationPersonList.size() > 0) {
+                    List<String> idList = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+                    List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
+                            .in(CollectionUtil.isNotEmpty(idList), SysAgencyLeader::getUserId, idList).eq(SysAgencyLeader::getDelFlag, 1));
+                    if (leaderList.size() > 0) {
+                        for (SysAgencyLeader sysAgencyLeader : leaderList) {
+                            //获取机构下的团队
+                            List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                                    .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
+                                    .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
+                                    .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
+                            if (sysDeptList.size() > 0) {
+                                for (SysDept sysDept : sysDeptList) {
+                                    List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                                            .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
+                                    deptManNum = deptManNum + sysUsers.size();
+
+                                }
+                            }
+                        }
+                    }
+                }
+//                appSysPartnerVo.setTeamManNum(deptManNum);
+
+                List<String> list = new ArrayList<>();
+                if (partnerType == 1) {
+                    //一级获取登陆人的之际工作室
+                    list.add(userId);
                 } else {
-                    dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createTime);
-                    agencyExtractFee.setStartTime(createTime);
+
+                    //获取上一级合伙人,查询工作室数量
+                    List<SysPartner> sysPartners = listMap.get(sysPartner.getType() + partnerType - 1);
+                    //上一级直接推荐的工作室数量
+                    List<String> list1 = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList());
+                    list.addAll(list1);
                 }
-                HashMap<String, BigDecimal> map = sysAgencyLeaderMapper.getBigDecimalNum(sysAgencyLeaders.getDeptId(), dateStr, null, null);
-                if (CollectionUtil.isNotEmpty(map)) {
+                List<SysRelationPerson> sysRelationPersons = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                        .in(CollectionUtil.isNotEmpty(list), SysRelationPerson::getSuggestId, list)
+                        .eq(SysRelationPerson::getDelFlag, 1)
+                        .eq(SysRelationPerson::getSource, 0)
+                        .eq(SysRelationPerson::getType, 1));
+                appSysPartnerVo.setWorkNumber(sysRelationPersons.size());
+                List<String> list1 = sysRelationPersons.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+                appSysPartnerVo.setLeaderIds(list1);
+
+                //直接工作室保费
+                List<SysPremiumDetails> sysPremiumDetails1 = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                        .in(CollectionUtil.isNotEmpty(ids), SysPremiumDetails::getUserId, list1)
+                        .between(StringUtils.isNotEmpty(partnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(partnerInfoDto.getEndTime()),
+                                SysPremiumDetails::getCreateTime, partnerInfoDto.getBeginTime(), partnerInfoDto.getEndTime())
+                        .eq(partnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerInfoDto.getIndustrySector()));
+                BigDecimal sumPremium1 = sysPremiumDetails1.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+                BigDecimal extractFee1 = sysPremiumDetails1.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+                appSysPartnerVo.setSumPremium(sumPremium.add(sumPremium1));
+                appSysPartnerVo.setExtractFee(extractFee.add(extractFee1));
+                int leaderManNum=0;
+                //直接工作室总
+                List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
+                        .in(CollectionUtil.isNotEmpty(list1), SysAgencyLeader::getUserId, list1).eq(SysAgencyLeader::getDelFlag, 1));
+
+                if (leaderList.size() > 0) {
+                    for (SysAgencyLeader sysAgencyLeader : leaderList) {
+                        //获取机构下的团队
+                        List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                                .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
+                                .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
+                                .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
+                        if (sysDeptList.size() > 0) {
+                            for (SysDept sysDept : sysDeptList) {
+                                List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                                        .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
+                                leaderManNum = leaderManNum + sysUsers.size();
 
-                    bigDecimal = bigDecimal.add(map.get("bigDecimal") == null ? BigDecimal.ZERO : map.get("bigDecimal"));
+                            }
+                        }
+                    }
                 }
-                agencyExtractFee.setSumpremium(bigDecimal);
-                BigDecimal multiply = bigDecimal.multiply(new BigDecimal(agencyExtractFee.getProportional())
-                        .divide(new BigDecimal("100"))).setScale(2, RoundingMode.DOWN);
-                agencyExtractFee.setExtractFee(multiply);
-                // 填充 已提现抽成费用和可提现抽成费用
-                List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
-                        .eq(SysAgencyFeeApproval::getUserId, sysAgencyLeaders.getUserId())
-                        .eq(SysAgencyFeeApproval::getStatus, 1));
-                if (sysAgencyFeeApprovals.size() > 0) {
-                    for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
-                        historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
+
+                appSysPartnerVo.setTeamManNum(deptManNum+leaderManNum);
+
+                appSysPartnerVo.setNumber(appSysPartnerVo.getPartnerNumber() + appSysPartnerVo.getWorkNumber());
+
+                //每一级存入map
+                appSysPartnerVo.setPartnerType(partnerType);
+                appSysPartnerVos.add(appSysPartnerVo);
+            }
+
+            return appSysPartnerVos;
+
+        }
+
+        for (int i = 1; i <= listMap.size(); i++) {
+            //二级
+            List<SysPartner> sysPartnerList1 = listMap.get(sysPartner.getType() + i);
+            if (sysPartnerList1.size() > 0) {
+                AppSysPartnerVo appSysPartnerVo = new AppSysPartnerVo();
+                //下级合伙人数
+                appSysPartnerVo.setPartnerNumber(sysPartnerList1.size());
+                List<String> ids = sysPartnerList1.stream().map(SysPartner::getUserId).collect(Collectors.toList());
+                appSysPartnerVo.setPartnerIds(ids);
+                List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                        .in(CollectionUtil.isNotEmpty(ids), SysPremiumDetails::getUserId, ids)
+                        .between(StringUtils.isNotEmpty(partnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(partnerInfoDto.getEndTime()),
+                                SysPremiumDetails::getCreateTime, partnerInfoDto.getBeginTime(), partnerInfoDto.getEndTime())
+                        .eq(partnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerInfoDto.getIndustrySector()));
+                BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+                BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+                //同等级合伙人团队的总人数:
+                List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                        .in(CollectionUtil.isNotEmpty(ids), SysRelationPerson::getSuggestId, ids)
+                        .eq(SysRelationPerson::getDelFlag, 1)
+                        .eq(SysRelationPerson::getType, 1));
+                int deptManNum = 0;
+                if (sysRelationPersonList.size() > 0) {
+                    List<String> idList = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+                    List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
+                            .in(CollectionUtil.isNotEmpty(idList), SysAgencyLeader::getUserId, idList).eq(SysAgencyLeader::getDelFlag, 1));
+                    if (leaderList.size() > 0) {
+                        for (SysAgencyLeader sysAgencyLeader : leaderList) {
+                            //获取机构下的团队
+                            List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                                    .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
+                                    .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
+                                    .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
+                            if (sysDeptList.size() > 0) {
+                                for (SysDept sysDept : sysDeptList) {
+                                    List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                                            .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
+                                    deptManNum = deptManNum + sysUsers.size();
+
+                                }
+                            }
+                        }
                     }
                 }
 
-                if (!bigDecimal.equals(BigDecimal.ZERO)) {
-                    //已提现
-                    agencyExtractFee.setHistoryFee(historyFee);
-                    //可提现 = 总抽成-已提现
-                    agencyExtractFee.setCashFee(multiply.subtract(historyFee));
+                List<String> list = new ArrayList<>();
+                if (i == 1) {
+                    //一级获取登陆人的之际工作室
+                    list.add(userId);
                 } else {
-                    agencyExtractFee.setHistoryFee(BigDecimal.ZERO);
-                    agencyExtractFee.setCashFee(multiply.subtract(BigDecimal.ZERO));
+
+                    //获取上一级合伙人,查询工作室数量
+                    List<SysPartner> sysPartners = listMap.get(sysPartner.getType() + i - 1);
+                    //上一级直接推荐的工作室数量
+                    List<String> list1 = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList());
+                    list.addAll(list1);
                 }
-                agencyExtractFeeList.add(agencyExtractFee);
+                List<SysRelationPerson> sysRelationPersons = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                        .in(CollectionUtil.isNotEmpty(list), SysRelationPerson::getSuggestId, list)
+                        .eq(SysRelationPerson::getDelFlag, 1)
+                        .eq(SysRelationPerson::getSource, 0)
+                        .eq(SysRelationPerson::getType, 1));
+                appSysPartnerVo.setWorkNumber(sysRelationPersons.size());
+                List<String> list1 = sysRelationPersons.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+                appSysPartnerVo.setLeaderIds(list1);
+                //直接工作室保费
+                List<SysPremiumDetails> sysPremiumDetails1 = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                        .in(CollectionUtil.isNotEmpty(ids), SysPremiumDetails::getUserId, list1)
+                        .between(StringUtils.isNotEmpty(partnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(partnerInfoDto.getEndTime()),
+                                SysPremiumDetails::getCreateTime, partnerInfoDto.getBeginTime(), partnerInfoDto.getEndTime())
+                        .eq(partnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerInfoDto.getIndustrySector()));
+                BigDecimal sumPremium1 = sysPremiumDetails1.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+                BigDecimal extractFee1 = sysPremiumDetails1.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+                appSysPartnerVo.setSumPremium(sumPremium.add(sumPremium1));
+                appSysPartnerVo.setExtractFee(extractFee.add(extractFee1));
+                int leaderManNum=0;
+                //直接工作室总
+                List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
+                        .in(CollectionUtil.isNotEmpty(list1), SysAgencyLeader::getUserId, list1).eq(SysAgencyLeader::getDelFlag, 1));
+
+                if (leaderList.size() > 0) {
+                    for (SysAgencyLeader sysAgencyLeader : leaderList) {
+                        //获取机构下的团队
+                        List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                                .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
+                                .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
+                                .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
+                        if (sysDeptList.size() > 0) {
+                            for (SysDept sysDept : sysDeptList) {
+                                List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                                        .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
+                                leaderManNum = leaderManNum + sysUsers.size();
+
+                            }
+                        }
+                    }
+                }
+
+                appSysPartnerVo.setTeamManNum(deptManNum+leaderManNum);
+
+                appSysPartnerVo.setNumber(appSysPartnerVo.getPartnerNumber() + appSysPartnerVo.getWorkNumber());
+                appSysPartnerVo.setPartnerType(i);
+                //每一级存入map
+                appSysPartnerVos.add(appSysPartnerVo);
+            }
+        }
+
+        return appSysPartnerVos;
+    }
+
+    @Override
+    public PartnerInfoFreeVo queryPartnerInfo(PartnerGradeInfo partnerGradeInfo) {
+        PartnerInfoFreeVo partnerInfoFreeVo = new PartnerInfoFreeVo();
+        List<PartnerInfoVo> partnerInfoVoList = new ArrayList<>();
+        //合伙人:1;工作室:2
+        Integer type = partnerGradeInfo.getType();
+        if (type == 1) {
+            List<String> partnerIds = partnerGradeInfo.getPartnerIds();
+            if (CollectionUtil.isEmpty(partnerIds)) {
+                return partnerInfoFreeVo;
+            }
+            //费用
+            List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                    .in(SysPremiumDetails::getUserId, partnerIds)
+                    .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
+                            SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
+                    .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
+            BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+            partnerInfoFreeVo.setSumPremium(sumPremium);
+            partnerInfoFreeVo.setExtractFee(extractFee);
+
+            //合伙人
+            List<SysPartner> sysPartnerList = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>()
+                    .in(SysPartner::getUserId, partnerGradeInfo.getPartnerIds()).eq(SysPartner::getDelFlag, 1));
+            if (sysPartnerList.size() > 0) {
+                for (SysPartner sysPartner : sysPartnerList) {
+                    PartnerInfoVo partnerInfoVo = new PartnerInfoVo();
+                    partnerInfoVo.setLevel(partnerGradeInfo.getLevel());
+                    String userId = sysPartner.getUserId();
+                    partnerInfoVo.setUserId(userId);
+                    SysUser sysUser = sysUserMapper.selectById(userId);
+                    partnerInfoVo.setUserName(sysUser.getName());
+                    SysUser sysUser1 = sysUserMapper.selectById(sysPartner.getSuggestId());
+                    partnerInfoVo.setSuggestName(sysUser1.getName());
+                    //费用
+                    List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                            .eq(SysPremiumDetails::getUserId, userId)
+                            .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
+                                    SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
+                            .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
+                    BigDecimal sumPremium1 = sysPremiumDetail.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+                    BigDecimal extractFee1 = sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+                    partnerInfoVo.setSumPremium(sumPremium1);
+                    partnerInfoVo.setExtractFee(extractFee1);
+                    //直接合伙人
+                    List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                            .eq(SysRelationPerson::getSuggestId, userId)
+                            .eq(SysRelationPerson::getDelFlag, 1)
+                            .eq(SysRelationPerson::getType, 0)
+                            .eq(SysRelationPerson::getSource, 0));
+                    List<String> collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+                    partnerInfoVo.setPartnerIds(collect);
+                    partnerInfoVo.setPartnerNumber(collect.size());
+
+                    //直接管理员
+                    List<SysRelationPerson> sysRelationPersonList1 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                            .eq(SysRelationPerson::getSuggestId, userId)
+                            .eq(SysRelationPerson::getDelFlag, 1)
+                            .eq(SysRelationPerson::getType, 1)
+                            .eq(SysRelationPerson::getSource, 0));
+
+                    List<String> collects = sysRelationPersonList1.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+                    partnerInfoVo.setLeaderIds(collects);
+                    partnerInfoVo.setWorkNumber(collects.size());
 
+                    //合伙人下所有工作室数
+                    List<SysRelationPerson> sysRelationPersonList2 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                            .eq(SysRelationPerson::getSuggestId, userId)
+                            .eq(SysRelationPerson::getDelFlag, 1)
+                            .eq(SysRelationPerson::getType, 1));
+
+                    int deptManNum = 0;
+                    if (sysRelationPersonList2.size() > 0) {
+                        List<String> idList = sysRelationPersonList2.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+                        List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
+                                .in(SysAgencyLeader::getUserId, idList).eq(SysAgencyLeader::getDelFlag, 1));
+                        if (leaderList.size() > 0) {
+                            for (SysAgencyLeader sysAgencyLeader : leaderList) {
+                                //获取机构下的团队
+                                List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                                        .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
+                                        .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
+                                        .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
+                                if (sysDeptList.size() > 0) {
+                                    for (SysDept sysDept : sysDeptList) {
+                                        List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                                                .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
+                                        deptManNum = deptManNum + sysUsers.size();
+
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    partnerInfoVo.setTeamManNum(deptManNum);
+
+                    partnerInfoVoList.add(partnerInfoVo);
+                }
+
+                partnerInfoFreeVo.setPartnerInfoVoList(partnerInfoVoList);
+            }
+        } else {
+            //工作室
+            List<String> leaderIds = partnerGradeInfo.getLeaderIds();
+            if (CollectionUtil.isEmpty(leaderIds)) {
+                return partnerInfoFreeVo;
+            }
+            //费用
+            List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                    .in(SysPremiumDetails::getUserId, leaderIds)
+                    .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
+                            SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
+                    .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
+            BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+            partnerInfoFreeVo.setSumPremium(sumPremium);
+            partnerInfoFreeVo.setExtractFee(extractFee);
+
+
+            List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
+                    .in(SysAgencyLeader::getUserId, leaderIds).eq(SysAgencyLeader::getDelFlag, 1));
+
+            for (SysAgencyLeader sysAgencyLeader : leaderList) {
+                PartnerInfoVo partnerInfoVo = new PartnerInfoVo();
+
+                String userId = sysAgencyLeader.getUserId();
+                partnerInfoVo.setUserId(userId);
+                SysUser sysUser = sysUserMapper.selectById(userId);
+                partnerInfoVo.setUserName(sysUser.getName());
+                SysUser sysUser1 = sysUserMapper.selectById(sysAgencyLeader.getSuggestId());
+                partnerInfoVo.setSuggestName(sysUser1.getName());
+
+                //费用
+                List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                        .eq(SysPremiumDetails::getUserId, userId)
+                        .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
+                                SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
+                        .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
+                BigDecimal sumPremium1 = sysPremiumDetail.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+                BigDecimal extractFee1 = sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+                partnerInfoVo.setSumPremium(sumPremium1);
+                partnerInfoVo.setExtractFee(extractFee1);
+
+                int deptManNum = 0;
+                //获取机构下的团队
+                List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                        .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
+                        .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
+                        .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
+
+                partnerInfoVo.setDeptNum(sysDeptList.size());
+                List<String> collect = sysDeptList.stream().map(SysDept::getId).collect(Collectors.toList());
+                partnerInfoVo.setDeptIds(collect);
+                if (sysDeptList.size() > 0) {
+                    for (SysDept sysDept : sysDeptList) {
+                        List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                                .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
+                        deptManNum = deptManNum + sysUsers.size();
+
+                    }
+                }
+                partnerInfoVo.setTeamManNum(deptManNum);
+
+                partnerInfoVoList.add(partnerInfoVo);
             }
 
         }
+        int sum = partnerInfoVoList.stream().mapToInt(PartnerInfoVo::getTeamManNum).sum();
+        partnerInfoFreeVo.setTeamManNum(sum);
+        partnerInfoFreeVo.setPartnerInfoVoList(partnerInfoVoList);
 
-        return new BasePageResult<>(sysAgencyLeaderPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
-                agencyExtractFeeList);
+        return partnerInfoFreeVo;
+    }
+
+    @Override
+    public BasePageResult<SysPremiumDetails> getCommissionInfo(CommissionInfoDto commissionInfoDto) {
+        String userId = BaseController.getUserId();
+
+        Page<SysPremiumDetails> page = new Page<>(commissionInfoDto.getPageNum(), commissionInfoDto.getPageSize());
+
+        LambdaQueryWrapper<SysPremiumDetails> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SysPremiumDetails::getUserId, userId);
+        wrapper.eq(commissionInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, commissionInfoDto.getIndustrySector());
+        wrapper.between(StringUtils.isNotEmpty(commissionInfoDto.getBeginTime()) && StringUtils.isNotEmpty(commissionInfoDto.getEndTime()),
+                SysPremiumDetails::getCreateTime, commissionInfoDto.getBeginTime(), commissionInfoDto.getEndTime());
+        wrapper.orderByDesc(SysPremiumDetails::getId);
+
+        Page<SysPremiumDetails> insOrdersPage = sysPremiumDetailsService.page(page, wrapper);
 
+
+        return new BasePageResult<>(commissionInfoDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
+                insOrdersPage.getRecords());
     }
 
     @Override
-    public List<SysPartner> partnerInfo(String beginTime, String endTime) {
+    public TeamUserInfosFreeVo getTeamUserInfo(TeamUserInfosDto teamUserInfosDto) {
+        TeamUserInfosFreeVo teamUserInfosFreeVo = new TeamUserInfosFreeVo();
 
-        List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
-                .eq(StringUtils.isNotEmpty(BaseController.getUserId()), SysRelationPerson::getSuggestId, BaseController.getUserId())
-                .eq(SysRelationPerson::getDelFlag, 1)
-                .eq(SysRelationPerson::getType, 0));
-        if (sysRelationPersonList.size() == 0) return null;
-        List<String> collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
-        List<SysPartner> sysPartnerList = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>()
-                .eq(SysPartner::getDelFlag, 1).in(CollectionUtil.isNotEmpty(collect), SysPartner::getUserId, collect)
-                .between(StringUtils.isNotEmpty(beginTime) && StringUtils.isNotEmpty(endTime)
-                        ,SysPartner::getCreateTime,beginTime,endTime));
+        List<TeamUserInfosVo> userInfosVoList = new ArrayList<>();
+        List<String> userIds = teamUserInfosDto.getUserIds();
+        if (CollectionUtil.isEmpty(userIds)) {
+            return teamUserInfosFreeVo;
+        }
+        //费用
+        List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                .in(SysPremiumDetails::getUserId, userIds)
+                .between(StringUtils.isNotEmpty(teamUserInfosDto.getBeginTime()) && StringUtils.isNotEmpty(teamUserInfosDto.getEndTime()),
+                        SysPremiumDetails::getCreateTime, teamUserInfosDto.getBeginTime(), teamUserInfosDto.getEndTime())
+                .eq(teamUserInfosDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, teamUserInfosDto.getIndustrySector()));
+        BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+        teamUserInfosFreeVo.setSumPremium(sumPremium);
+        List<SysUserAccountHistory> sysUserAccountHistories = sysUserAccountHistoryMapper.selectList(new LambdaQueryWrapper<SysUserAccountHistory>()
+                .in(SysUserAccountHistory::getUserId, userIds).eq(SysUserAccountHistory::getProperty, 3)
+                .eq(teamUserInfosDto.getIndustrySector() != null, SysUserAccountHistory::getBusinessSegmentsType, teamUserInfosDto.getIndustrySector()));
+
+        BigDecimal extractFee = sysUserAccountHistories.stream().map(SysUserAccountHistory::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+        teamUserInfosFreeVo.setExtractFee(extractFee);
+
+
+        List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                .ne(SysUser::getStatus, 0).in(SysUser::getId, teamUserInfosDto.getUserIds()));
+        for (SysUser sysUser : sysUsers) {
+            TeamUserInfosVo teamUserInfosVo = new TeamUserInfosVo();
+            teamUserInfosVo.setUserId(sysUser.getId());
+            teamUserInfosVo.setUserName(sysUser.getName());
+            String leaderId = sysUser.getLeaderId();
+            if (StringUtils.isNotEmpty(leaderId)) {
+                teamUserInfosVo.setLeaderId(sysUser.getLeaderId());
+                SysUser sysUser1 = sysUserMapper.selectById(sysUser.getLeaderId());
+                teamUserInfosVo.setLeaderName(sysUser1.getName());
+            }
 
-        return sysPartnerList;
+            //费用
+            List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                    .eq(SysPremiumDetails::getUserId, sysUser.getId())
+                    .between(StringUtils.isNotEmpty(teamUserInfosDto.getBeginTime()) && StringUtils.isNotEmpty(teamUserInfosDto.getEndTime()),
+                            SysPremiumDetails::getCreateTime, teamUserInfosDto.getBeginTime(), teamUserInfosDto.getEndTime())
+                    .eq(teamUserInfosDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, teamUserInfosDto.getIndustrySector()));
+            BigDecimal sumPremium1 = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+            teamUserInfosVo.setSumPremium(sumPremium1);
+            List<SysUserAccountHistory> sysUserAccountHistorie = sysUserAccountHistoryMapper.selectList(new LambdaQueryWrapper<SysUserAccountHistory>()
+                    .in(SysUserAccountHistory::getUserId, sysUser.getId()).eq(SysUserAccountHistory::getProperty, 3)
+                    .eq(teamUserInfosDto.getIndustrySector() != null, SysUserAccountHistory::getBusinessSegmentsType, teamUserInfosDto.getIndustrySector()));
+
+            BigDecimal extractFee1 = sysUserAccountHistories.stream().map(SysUserAccountHistory::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+            teamUserInfosVo.setExtractFee(extractFee1);
+
+            userInfosVoList.add(teamUserInfosVo);
+        }
+        teamUserInfosFreeVo.setTeamManNum(userIds.size());
+        teamUserInfosFreeVo.setTeamUserInfosVoList(userInfosVoList);
+
+        return teamUserInfosFreeVo;
     }
 
     @Override
-    public APPPartnerInfo getLeaderInfo(String userId) {
-        APPPartnerInfo appPartnerInfo = new APPPartnerInfo();
-        //查询合伙人有关系的工作室管理员
-        List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
-                .eq(StringUtils.isNotEmpty(userId), SysRelationPerson::getSuggestId, userId)
-                .eq(SysRelationPerson::getDelFlag, 1)
-                .eq(SysRelationPerson::getType, 1));
-        if (sysRelationPersonList.size() == 0) return null;
+    public FilterPartnerInfoVo queryFilterPartnerInfo(FilterPartnerInfoDto filterPartnerInfoDto) {
+        FilterPartnerInfoVo filterPartnerInfoVo = new FilterPartnerInfoVo();
 
-        List<String> collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
-        List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
-                .eq(SysAgencyLeader::getDelFlag, 1).in(CollectionUtil.isNotEmpty(collect), SysAgencyLeader::getUserId, collect));
-
-        List<AgencyLeaderInfo> agencyLeaderInfos = BeanUtil.copyToList(leaderList, AgencyLeaderInfo.class);
-        for (AgencyLeaderInfo agencyLeaderInfo : agencyLeaderInfos) {
-
-            SysUser sysUser = sysUserMapper.selectById(agencyLeaderInfo.getUserId());
-            agencyLeaderInfo.setUserName(sysUser.getName());
-            SysUser sysUser1 = sysUserMapper.selectById(agencyLeaderInfo.getSuggestId());
-            agencyLeaderInfo.setSuggestName(sysUser1.getName());
-            SysDept sysDept = sysDeptMapper.selectById(agencyLeaderInfo.getDeptId());
-            agencyLeaderInfo.setDeptName(sysDept.getName());
-            //填充费用
-            AgencyExtractFee agencyExtractFee = sysAgencyLeaderService.queryExtractFee(agencyLeaderInfo.getUserId());
-            BigDecimal sumpremium = agencyExtractFee.getSumpremium();
-            agencyLeaderInfo.setSumPremium(sumpremium);
-            BigDecimal percentage = new BigDecimal(agencyLeaderInfo.getProportional()).divide(new BigDecimal("100"));
-            agencyLeaderInfo.setProportional(percentage.toString());
-            BigDecimal extractFee = sumpremium.multiply(percentage).setScale(2, RoundingMode.DOWN);
-            agencyLeaderInfo.setExtractFee(extractFee);
-
-            List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
-                    .likeRight(SysUser::getId, agencyLeaderInfo.getDeptId()).ne(SysUser::getStatus, 0));
-            agencyLeaderInfo.setNumber(sysUsers.size());
-        }
-        appPartnerInfo.setAgencyLeaderInfo(agencyLeaderInfos);
-        //机构总人数
-        long count = agencyLeaderInfos.stream().mapToInt(AgencyLeaderInfo::getNumber).count();
-        appPartnerInfo.setNumber(count);
-        //总保费
-        BigDecimal reduce = agencyLeaderInfos.stream().map(AgencyLeaderInfo::getSumPremium).reduce(BigDecimal.ZERO, BigDecimal::add);
-        appPartnerInfo.setSumpremium(reduce);
-
-        SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>().eq(SysPartner::getUserId, userId));
-        BigDecimal percentage = new BigDecimal(sysPartner.getProportional()).divide(new BigDecimal("100"));
-        appPartnerInfo.setExtractFee(reduce.multiply(percentage).setScale(2, RoundingMode.DOWN));
-
-        return appPartnerInfo;
+        String userId = BaseController.getUserId();
+        SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
+                .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1));
+        //查询登陆人下所有合伙人
+        List<SysPartner> sysPartnerList = sysPartnerMapper.queryByLoginId(userId);
+
+        Map<Integer, List<SysPartner>> listMap = sysPartnerList.stream().sorted(Comparator.comparing(SysPartner::getId))
+                .collect(Collectors.groupingBy(SysPartner::getType));
+        Integer partnerType = filterPartnerInfoDto.getPartnerType();
+
+        List<SysPartner> sysPartnerList1 = listMap.get(sysPartner.getType() + partnerType);
+        List<String> collect1 = sysPartnerList1.stream().map(SysPartner::getUserId).collect(Collectors.toList());
+        if (collect1.size() == 0) {
+            return filterPartnerInfoVo;
+        }
+        //费用
+        List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                .in(CollectionUtil.isNotEmpty(collect1), SysPremiumDetails::getUserId, collect1)
+                .between(StringUtils.isNotEmpty(filterPartnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(filterPartnerInfoDto.getEndTime()),
+                        SysPremiumDetails::getCreateTime, filterPartnerInfoDto.getBeginTime(), filterPartnerInfoDto.getEndTime())
+                .eq(filterPartnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, filterPartnerInfoDto.getIndustrySector()));
+        BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+        BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+        filterPartnerInfoVo.setSumPremium(sumPremium);
+        filterPartnerInfoVo.setExtractFee(extractFee);
+
+        if (sysPartnerList1.size() > 0) {
+
+            List<PartnerInfoVo> partnerInfoVoList = new ArrayList<>();
+            for (SysPartner partner : sysPartnerList1) {
+
+                PartnerInfoVo partnerInfoVo = new PartnerInfoVo();
+
+                String id = sysPartner.getUserId();
+                partnerInfoVo.setUserId(id);
+                SysUser sysUser = sysUserMapper.selectById(id);
+                partnerInfoVo.setUserName(sysUser.getName());
+                SysUser sysUser1 = sysUserMapper.selectById(sysPartner.getSuggestId());
+                partnerInfoVo.setSuggestName(sysUser1.getName());
+                //费用
+                List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                        .eq(SysPremiumDetails::getUserId, userId)
+                        .between(StringUtils.isNotEmpty(filterPartnerInfoDto.getBeginTime()) && StringUtils.isNotEmpty(filterPartnerInfoDto.getEndTime()),
+                                SysPremiumDetails::getCreateTime, filterPartnerInfoDto.getBeginTime(), filterPartnerInfoDto.getEndTime())
+                        .eq(filterPartnerInfoDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, filterPartnerInfoDto.getIndustrySector()));
+                BigDecimal sumPremium1 = sysPremiumDetail.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+                BigDecimal extractFee1 = sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+                partnerInfoVo.setSumPremium(sumPremium1);
+                partnerInfoVo.setExtractFee(extractFee1);
+                //直接合伙人
+                List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                        .eq(SysRelationPerson::getSuggestId, userId)
+                        .eq(SysRelationPerson::getDelFlag, 1)
+                        .eq(SysRelationPerson::getType, 0)
+                        .eq(SysRelationPerson::getSource, 0));
+                List<String> collect = sysRelationPersonList.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+                partnerInfoVo.setPartnerIds(collect);
+
+                //直接管理员
+                List<SysRelationPerson> sysRelationPersonList1 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                        .eq(SysRelationPerson::getSuggestId, userId)
+                        .eq(SysRelationPerson::getDelFlag, 1)
+                        .eq(SysRelationPerson::getType, 1)
+                        .eq(SysRelationPerson::getSource, 0));
+
+                List<String> collects = sysRelationPersonList1.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+                partnerInfoVo.setLeaderIds(collects);
+
+                partnerInfoVo.setPartnerNumber(collects.size() + collect.size());
+
+                //工作室数
+                List<SysRelationPerson> sysRelationPersonList2 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                        .eq(SysRelationPerson::getSuggestId, userId)
+                        .eq(SysRelationPerson::getDelFlag, 1)
+                        .eq(SysRelationPerson::getType, 1));
+
+                int deptManNum = 0;
+                if (sysRelationPersonList2.size() > 0) {
+                    List<String> idList = sysRelationPersonList2.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+                    List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
+                            .in(SysAgencyLeader::getUserId, idList).eq(SysAgencyLeader::getDelFlag, 1));
+                    if (leaderList.size() > 0) {
+                        for (SysAgencyLeader sysAgencyLeader : leaderList) {
+                            //获取机构下的团队
+                            List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                                    .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
+                                    .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
+                                    .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
+                            if (sysDeptList.size() > 0) {
+                                for (SysDept sysDept : sysDeptList) {
+                                    List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                                            .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
+                                    deptManNum = deptManNum + sysUsers.size();
+
+                                }
+                            }
+                        }
+                    }
+                    partnerInfoVo.setTeamManNum(deptManNum);
+                }
+
+                partnerInfoVoList.add(partnerInfoVo);
+
+            }
+            int sum = partnerInfoVoList.stream().mapToInt(PartnerInfoVo::getTeamManNum).sum();
+            filterPartnerInfoVo.setPartnerInfoVoList(partnerInfoVoList);
+            filterPartnerInfoVo.setTeamManNum(sum);
+
+        }
+
+        return filterPartnerInfoVo;
     }
 
+    @Override
+    public PartnerLeaderInfoVo partnerLeaderInfo(PartnerGradeInfo partnerGradeInfo) {
+        PartnerLeaderInfoVo partnerLeaderInfoVo = new PartnerLeaderInfoVo();
+
+        List<PartnerInfoVo> partnerInfoVoList = new ArrayList<>();
+        //工作室
+        List<String> leaderIds = partnerGradeInfo.getLeaderIds();
+        if (CollectionUtil.isEmpty(leaderIds)) {
+            return partnerLeaderInfoVo;
+        }
+        //费用
+        List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                .in(SysPremiumDetails::getUserId, leaderIds)
+                .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
+                        SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
+                .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
+        BigDecimal sumPremium = sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+        BigDecimal extractFee = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+        partnerLeaderInfoVo.setSumPremium(sumPremium);
+        partnerLeaderInfoVo.setExtractFee(extractFee);
+
+        List<SysAgencyLeader> leaderList = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
+                .in(SysAgencyLeader::getUserId, leaderIds).eq(SysAgencyLeader::getDelFlag, 1));
+        List<String> userIds = new ArrayList<>();
+
+        for (SysAgencyLeader sysAgencyLeader : leaderList) {
+            PartnerInfoVo partnerInfoVo = new PartnerInfoVo();
+
+            String userId = sysAgencyLeader.getUserId();
+            partnerInfoVo.setUserId(userId);
+            SysUser sysUser = sysUserMapper.selectById(userId);
+            partnerInfoVo.setUserName(sysUser.getName());
+            SysUser sysUser1 = sysUserMapper.selectById(sysAgencyLeader.getSuggestId());
+            partnerInfoVo.setSuggestName(sysUser1.getName());
+
+            //费用
+            List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                    .eq(SysPremiumDetails::getUserId, userId)
+                    .between(StringUtils.isNotEmpty(partnerGradeInfo.getBeginTime()) && StringUtils.isNotEmpty(partnerGradeInfo.getEndTime()),
+                            SysPremiumDetails::getCreateTime, partnerGradeInfo.getBeginTime(), partnerGradeInfo.getEndTime())
+                    .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
+            BigDecimal sumPremium1 = sysPremiumDetail.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal extractFee1 = sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+            partnerInfoVo.setSumPremium(sumPremium1);
+            partnerInfoVo.setExtractFee(extractFee1);
+
+            int deptManNum = 0;
+            //获取机构下的团队
+            List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                    .likeRight(SysDept::getId, sysAgencyLeader.getDeptId())
+                    .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0)
+                    .eq(SysDept::getManagementSource, sysAgencyLeader.getSource()));
 
+            partnerInfoVo.setDeptNum(sysDeptList.size());
+            List<String> collect = sysDeptList.stream().map(SysDept::getId).collect(Collectors.toList());
 
+            partnerInfoVo.setDeptIds(collect);
 
+            if (sysDeptList.size() > 0) {
+                for (SysDept sysDept : sysDeptList) {
+                    List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                            .likeRight(SysUser::getId, sysDept.getId()).ne(SysUser::getStatus, 0));
+                    deptManNum = deptManNum + sysUsers.size();
+                    if (sysUsers.size() > 0) {
+
+                        List<String> collect1 = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
+                        userIds.addAll(collect1);
+                    }
+
+                }
+            }
+            partnerInfoVo.setTeamManNum(deptManNum);
+            partnerInfoVo.setLevel(partnerGradeInfo.getLevel());
+
+            partnerInfoVoList.add(partnerInfoVo);
+        }
+        int sum = partnerInfoVoList.stream().mapToInt(PartnerInfoVo::getTeamManNum).sum();
+        partnerLeaderInfoVo.setUserIds(userIds);
+        partnerLeaderInfoVo.setTeamManNum(sum);
+        partnerLeaderInfoVo.setPartnerInfoVoList(partnerInfoVoList);
+
+
+        return partnerLeaderInfoVo;
+    }
 
 
 }

+ 24 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerTimeServiceImpl.java

@@ -0,0 +1,24 @@
+package com.ydtech.modules.admin.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysPartnerTimeMapper;
+import com.ydtech.modules.admin.model.SysPartnerTime;
+import com.ydtech.modules.admin.service.SysPartnerTimeService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * 抽成比例修改表(SysPartnerTime)表服务实现类
+ *
+ * @author makejava
+ * @since 2024-10-10 09:07:51
+ */
+@Service("sysPartnerTimeService")
+public class SysPartnerTimeServiceImpl extends ServiceImpl<SysPartnerTimeMapper, SysPartnerTime> implements SysPartnerTimeService {
+    @Resource
+    private SysPartnerTimeMapper sysPartnerTimeMapper;
+
+
+}

+ 99 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysPcAddressHistoryServiceImpl.java

@@ -3,15 +3,22 @@ package com.ydtech.modules.admin.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysDeptMapper;
 import com.ydtech.modules.admin.dao.SysPcAddressHistoryMapper;
+import com.ydtech.modules.admin.model.SysDept;
 import com.ydtech.modules.admin.model.SysGeographyPositionRecord;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.dto.SysGeographyPositionPageDto;
 import com.ydtech.modules.admin.model.po.SysPcAddressHistory;
 import com.ydtech.modules.admin.service.SysPcAddressHistoryService;
+import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.utils.StringUtils;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.List;
+
 /**
 * @author Administrator
 * @description 针对表【sys_pc_address_history(pc获取ip地址记录表)】的数据库操作Service实现
@@ -20,6 +27,12 @@ import org.springframework.stereotype.Service;
 @Service
 public class SysPcAddressHistoryServiceImpl extends ServiceImpl<SysPcAddressHistoryMapper, SysPcAddressHistory>
     implements SysPcAddressHistoryService {
+    @Resource
+    private SysUserService sysUserService;
+
+    @Resource
+    private SysDeptMapper sysDeptMapper;
+
 
     @Override
     public BasePageResult<SysPcAddressHistory> queryPositionList(SysGeographyPositionPageDto sysGeographyPositionPageDto) {
@@ -30,11 +43,97 @@ public class SysPcAddressHistoryServiceImpl extends ServiceImpl<SysPcAddressHist
         wrapper.orderByDesc(SysPcAddressHistory::getOperationTime);
 
         Page<SysPcAddressHistory> insOrdersPage = page(page, wrapper);
+        List<SysPcAddressHistory> records = insOrdersPage.getRecords();
+        for (SysPcAddressHistory record : records) {
+            SysUser sysUser = sysUserService.getById(record.getUserId());
+            if (sysUser == null) continue;
+            record.setLeaderName(sysUser.getLeaderName());
+            String deptName = getDeptName(sysUser.getDeptId());
+            record.setDeptName(deptName);
+        }
 
         return new BasePageResult<>(sysGeographyPositionPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
                 insOrdersPage.getRecords());
     }
 
+    private String getDeptName(String deptId) {
+        StringBuilder stringBuilder = new StringBuilder();
+        SysDept sysDept = sysDeptMapper.selectOne(new LambdaQueryWrapper<SysDept>()
+                .eq(SysDept::getId, deptId).eq(SysDept::getDelFlag, 0));
+        if (StringUtils.isEmpty(sysDept.getComlevel())) {
+            SysDept sysDept5 = sysDeptMapper.selectById(sysDept.getParentId());
+            if (sysDept5 == null) {
+                stringBuilder.append(sysDept.getName());
+            } else {
+                SysDept sysDept4 = sysDeptMapper.selectById(sysDept5.getParentId());
+                if (sysDept4 == null) {
+                    stringBuilder.append(sysDept5.getName()).append("-").append(sysDept.getName());
+                } else {
+                    SysDept sysDept3 = sysDeptMapper.selectById(sysDept4.getParentId());
+                    if (sysDept3 == null) {
+                        stringBuilder.append(sysDept4.getName())
+                                .append("-").append(sysDept5.getName()).append("-").append(sysDept.getName());
+                    } else {
+                        SysDept sysDept2 = sysDeptMapper.selectById(sysDept3.getParentId());
+                        if (sysDept2 == null) {
+                            stringBuilder.append(sysDept3.getName()).append("-").append(sysDept4.getName())
+                                    .append("-").append(sysDept5.getName()).append("-").append(sysDept.getName());
+                        } else {
+                            stringBuilder.append(sysDept2.getName()).append("-").append(sysDept3.getName())
+                                    .append("-").append(sysDept4.getName()).append("-").append(sysDept5.getName()).append("-").append(sysDept.getName());
+                        }
+                    }
+                }
+            }
+        } else if (sysDept.getComlevel().equals("5")) {
+            SysDept sysDept4 = sysDeptMapper.selectById(sysDept.getParentId());
+            if (sysDept4 == null) {
+                stringBuilder.append(sysDept.getName());
+            } else {
+                SysDept sysDept3 = sysDeptMapper.selectById(sysDept4.getParentId());
+                if (sysDept3 == null) {
+                    stringBuilder.append(sysDept4.getName()).append("-").append(sysDept.getName());
+                } else {
+                    SysDept sysDept2 = sysDeptMapper.selectById(sysDept3.getParentId());
+                    if (sysDept2 == null) {
+                        stringBuilder.append(sysDept3.getName()).append("-").append(sysDept4.getName()).append("-").append(sysDept.getName());
+                    } else {
+                        stringBuilder.append(sysDept2.getName()).append("-").append(sysDept3.getName()).append("-").append(sysDept4.getName()).append("-").append(sysDept.getName());
+                    }
+                }
+            }
+        } else if (sysDept.getComlevel().equals("4")) {
+            SysDept sysDept3 = sysDeptMapper.selectById(sysDept.getParentId());
+            if (sysDept3 == null) {
+                stringBuilder.append(sysDept.getName());
+            } else {
+                SysDept sysDept2 = sysDeptMapper.selectById(sysDept3.getParentId());
+                if (sysDept2 == null) {
+                    stringBuilder.append(sysDept3.getName()).append("-").append(sysDept.getName());
+                } else {
+                    stringBuilder.append(sysDept2.getName()).append("-").append(sysDept3.getName()).append("-").append(sysDept.getName());
+                }
+            }
+        } else if (sysDept.getComlevel().equals("3")) {
+            SysDept sysDept2 = sysDeptMapper.selectById(sysDept.getParentId());
+            if (sysDept2 == null) {
+                stringBuilder.append(sysDept.getName());
+            } else {
+                stringBuilder.append(sysDept2.getName()).append("-").append(sysDept.getName());
+            }
+
+        } else if (sysDept.getComlevel().equals("2")) {
+            stringBuilder.append(sysDept.getName());
+        }
+        String s = stringBuilder.toString();
+        if (s.contains("总部-")) {
+            stringBuilder.replace(0, 3, "");
+        }
+
+
+        return stringBuilder.toString();
+    }
+
 }
 
 

+ 18 - 2
src/main/java/com/ydtech/modules/admin/service/impl/SysPcAddressServiceImpl.java

@@ -375,6 +375,15 @@ public class SysPcAddressServiceImpl extends ServiceImpl<SysPcAddressMapper, Sys
 
             insOrdersPage = page(page, wrapper);
         }
+        List<SysPcAddress> records = insOrdersPage.getRecords();
+        for (SysPcAddress sysPcAddress : records) {
+            SysUser sysUser = sysUserService.getById(sysPcAddress.getUserId());
+            if (sysUser == null) continue;
+            sysPcAddress.setLeaderName(sysUser.getLeaderName());
+            String deptName = getDeptName(sysUser.getDeptId());
+            sysPcAddress.setDeptName(deptName);
+        }
+
 
         return new BasePageResult<>(addressInfoDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
                 insOrdersPage.getRecords());
@@ -520,10 +529,17 @@ public class SysPcAddressServiceImpl extends ServiceImpl<SysPcAddressMapper, Sys
 
             sysPcAddressHistoryIPage = sysPcAddressHistoryMapper.queryAddressHistory(page, addressInfoDto);
         }
-
+        List<SysPcAddressHistory> records = sysPcAddressHistoryIPage.getRecords();
+        for (SysPcAddressHistory record : records) {
+            SysUser sysUser = sysUserService.getById(record.getUserId());
+            if (sysUser == null) continue;
+            record.setLeaderName(sysUser.getLeaderName());
+            String deptName = getDeptName(sysUser.getDeptId());
+            record.setDeptName(deptName);
+        }
 
         return new BasePageResult<>(addressInfoDto.getPageNum(), addressInfoDto.getPageSize(), sysPcAddressHistoryIPage.getTotal(), sysPcAddressHistoryIPage.getPages(),
-                sysPcAddressHistoryIPage.getRecords());
+                records);
     }
 
     /**

+ 12 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysPremiumDetailsServiceImpl.java

@@ -0,0 +1,12 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysPremiumDetailsMapper;
+import com.ydtech.modules.admin.model.SysPremiumDetails;
+import com.ydtech.modules.admin.service.SysPremiumDetailsService;
+import org.springframework.stereotype.Service;
+
+@Service("SysPremiumDetailsService")
+public class SysPremiumDetailsServiceImpl extends ServiceImpl<SysPremiumDetailsMapper, SysPremiumDetails> implements SysPremiumDetailsService {
+
+}

+ 14 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysSwitchConfigServiceImpl.java

@@ -132,6 +132,20 @@ public class SysSwitchConfigServiceImpl extends ServiceImpl<SysSwitchConfigMappe
         return feeLookSwitchesDTO;
     }
 
+    @Override
+    public boolean weComQRCodeDisplay() {
+        String deptId = BaseController.getDeptId();
+        SysDept dept = sysDeptService.getById(deptId);
+        // 渠道
+        if (ManagementSource.MS_01.getCode().equals(dept.getManagementSource())) {
+            return isEnabled(SwitchConfig.WCQCA_02.getCode());
+            // 代理人
+        } else if (ManagementSource.MS_02.getCode().equals(dept.getManagementSource())) {
+            return isEnabled(SwitchConfig.WCQCA_01.getCode());
+        }
+        return isEnabled(SwitchConfig.WCQCA_03.getCode());
+    }
+
     @Override
     public boolean feeDisplaySwitches() {
         String deptId = BaseController.getDeptId();

+ 22 - 1
src/main/java/com/ydtech/modules/admin/service/impl/TaskStatisticsServiceImpl.java

@@ -696,7 +696,7 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
      **/
     @Override
     public BusinessAgentData getBusinessAgentDataTotal(TaskStatisticsVo taskStatisticsVo) {
-        HashMap<String, String> dateMapByType = getDateMapByType(taskStatisticsVo.getDateType(), taskStatisticsVo.getCreatetimeStart(), taskStatisticsVo.getCreatetimeEnd());
+        HashMap<String, String> dateMapByType = getDateMapByTypeNew(taskStatisticsVo.getDateType(), taskStatisticsVo.getCreatetimeStart(), taskStatisticsVo.getCreatetimeEnd());
         taskStatisticsVo.setCreatetimeStart(dateMapByType.get("startDate"));
         taskStatisticsVo.setCreatetimeEnd(dateMapByType.get("endDate"));
 
@@ -752,6 +752,27 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
      **/
     @Override
     public HttpResult insuranceCompanyExcel(TaskStatisticsVo taskStatisticsVo) {
+        if(com.ydtech.utils.StringUtils.isNotEmpty(taskStatisticsVo.getProvinceId())){
+            String provinceId =   this.removeTrailingZeros(taskStatisticsVo.getProvinceId());
+            taskStatisticsVo.setProvinceId(provinceId);
+
+        }
+        if(com.ydtech.utils.StringUtils.isNotEmpty(taskStatisticsVo.getCityId())){
+            String cityId =   this.removeTrailingZeros(taskStatisticsVo.getCityId());
+            taskStatisticsVo.setCityId(cityId);
+        }
+        if(com.ydtech.utils.StringUtils.isNotEmpty(taskStatisticsVo.getCountyId())){
+            String countyId =   this.removeTrailingZeros(taskStatisticsVo.getCountyId());
+            taskStatisticsVo.setCountyId(countyId);
+        }
+
+        if(StringUtils.isNotEmpty(taskStatisticsVo.getDays())){
+            if("7".equals(taskStatisticsVo.getDays())){
+                taskStatisticsVo.setDays("2");
+            } else if ("30".equals(taskStatisticsVo.getDays())) {
+                taskStatisticsVo.setDays("3");
+            }
+        }
         List<InsuranceCompanyExcel> list = this.insAreaCompanyMapper.insuranceCompanyExcel(taskStatisticsVo);
         String uploadPath = this.uploadPath + "/excel/";
         Path path = Paths.get(uploadPath);

+ 39 - 0
src/main/java/com/ydtech/modules/console/controller/WithdrawalTaskController.java

@@ -0,0 +1,39 @@
+package com.ydtech.modules.console.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.console.dto.WithdrawalTaskDto;
+import com.ydtech.modules.console.service.WithdrawalTaskService;
+import com.ydtech.modules.console.vo.WithdrawalTaskVo;
+import com.ydtech.modules.order.entity.BasePageResult;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ *   控制台体现任务
+ */
+@RestController
+@RequestMapping("/withdrawalTask")
+public class WithdrawalTaskController {
+    @Autowired
+    private WithdrawalTaskService withdrawalTaskService;
+
+    /**
+     *
+     * @param withdrawalTaskVo
+     * @return  控制台 提现任务  分页
+     */
+    @PostMapping("/queryPage")
+    @ApiOperation(value = "银行卡号分页")
+    public HttpResult<BasePageResult<WithdrawalTaskDto>> queryPageOrder(@RequestBody @Valid WithdrawalTaskVo withdrawalTaskVo) {
+        BasePageResult<WithdrawalTaskDto> result = withdrawalTaskService.queryByVo(withdrawalTaskVo);
+        return HttpResult.ok("success", result);
+    }
+
+}

+ 19 - 0
src/main/java/com/ydtech/modules/console/dao/ProfitAnalysisMapper.java

@@ -0,0 +1,19 @@
+package com.ydtech.modules.console.dao;
+
+import com.ydtech.modules.admin.model.report.profitAnalysis.ProfitAnalysisDto;
+import com.ydtech.modules.admin.model.report.profitAnalysis.ProfitAnalysisQueryDto;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.HashMap;
+import java.util.List;
+
+@Mapper
+public interface ProfitAnalysisMapper {
+    List<ProfitAnalysisDto> getAllAccountExpenses(@Param("vo") ProfitAnalysisQueryDto profitAnalysisQueryDto);
+
+    List<ProfitAnalysisDto> getAllAccountExpensesId(@Param("vo") ProfitAnalysisQueryDto profitAnalysisQueryDto);
+
+    List<ProfitAnalysisDto> selectAccountExpenses(@Param("vo") ProfitAnalysisQueryDto profitAnalysisQueryDto);
+
+}

+ 15 - 0
src/main/java/com/ydtech/modules/console/dao/WithdrawalTaskMapper.java

@@ -0,0 +1,15 @@
+package com.ydtech.modules.console.dao;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.console.dto.WithdrawalTaskDto;
+import com.ydtech.modules.console.vo.WithdrawalTaskVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface WithdrawalTaskMapper {
+
+
+    Page<WithdrawalTaskDto> queryByVo(@Param("page") Page<WithdrawalTaskDto> page,@Param("vo") WithdrawalTaskVo withdrawalTaskVo);
+
+}

+ 57 - 0
src/main/java/com/ydtech/modules/console/dto/WithdrawalTaskDto.java

@@ -0,0 +1,57 @@
+package com.ydtech.modules.console.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class WithdrawalTaskDto implements Serializable {
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "用户名称")
+    private String userName;
+
+
+    @ApiModelProperty(value = "银行卡号")
+    private String bankNumber;
+
+    @ApiModelProperty(value = "开户行")
+    private String bankAccount;
+
+    @ApiModelProperty(value = "开户行地址")
+    private String bankAddress;
+
+    @ApiModelProperty(value = "创建时间")
+    private String createTime;
+
+    @ApiModelProperty(value = "账户审核状态  0未审核 1通过 2驳回")
+    private Integer auditStatus;
+
+
+    @ApiModelProperty(value = "审核时间")
+    private String auditTime;
+
+    @ApiModelProperty(value = "审核人id")
+    private String auditUserId;
+
+    @ApiModelProperty(value = "审核人名称")
+    private String auditUserName;
+
+
+    @ApiModelProperty(value = "驳回原因")
+    private String remark;
+
+    @ApiModelProperty(value = "删除标志 0未删除 1删除")
+    private String delFlag;
+
+    @ApiModelProperty(value = "真实姓名")
+    private String realUserName;
+
+    @ApiModelProperty(value = "0 未验证 1 已验证")
+    private String bankVerify;
+
+    @ApiModelProperty(value = "归属端 1:渠道 2:个代 a:合伙人 b:机构负责人")
+    private String ascription;
+}

+ 11 - 0
src/main/java/com/ydtech/modules/console/service/WithdrawalTaskService.java

@@ -0,0 +1,11 @@
+package com.ydtech.modules.console.service;
+
+
+import com.ydtech.modules.console.dto.WithdrawalTaskDto;
+import com.ydtech.modules.console.vo.WithdrawalTaskVo;
+import com.ydtech.modules.order.entity.BasePageResult;
+
+public interface WithdrawalTaskService {
+    BasePageResult<WithdrawalTaskDto> queryByVo(WithdrawalTaskVo withdrawalTaskVo);
+
+}

+ 59 - 0
src/main/java/com/ydtech/modules/console/service/impl/WithdrawalTaskServiceImpl.java

@@ -0,0 +1,59 @@
+package com.ydtech.modules.console.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.utils.SliceUpDateUtil;
+import com.ydtech.modules.console.dao.WithdrawalTaskMapper;
+import com.ydtech.modules.console.dto.WithdrawalTaskDto;
+import com.ydtech.modules.console.service.WithdrawalTaskService;
+import com.ydtech.modules.console.vo.WithdrawalTaskVo;
+import com.ydtech.modules.order.entity.BasePageResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.HashMap;
+
+@Service
+public class WithdrawalTaskServiceImpl implements WithdrawalTaskService {
+    @Autowired
+    private WithdrawalTaskMapper withdrawalTaskMapper;
+
+    @Override
+    public BasePageResult<WithdrawalTaskDto> queryByVo(WithdrawalTaskVo withdrawalTaskVo) {
+        HashMap<String, String> dateMapByType = getDateMapByType(withdrawalTaskVo.getDateType(), withdrawalTaskVo.getBeginDate(), withdrawalTaskVo.getEndDate());
+        withdrawalTaskVo.setBeginDate(dateMapByType.get("startDate"));
+        withdrawalTaskVo.setEndDate(dateMapByType.get("endDate"));
+        Page<WithdrawalTaskDto> page = new Page<>(withdrawalTaskVo.getPageNum(), withdrawalTaskVo.getPageSize());
+        Page<WithdrawalTaskDto> result = withdrawalTaskMapper.queryByVo(page, withdrawalTaskVo);
+        return new BasePageResult<>(withdrawalTaskVo.getPageNum(), page.getSize(), result.getTotal(), page.getPages(),
+                result.getRecords());
+    }
+
+
+    private static HashMap<String, String> getDateMapByType(String type, String startDate, String endDate) {
+        HashMap<String, String> map = new HashMap<>();
+        String startDateStr = "";
+        String endDateStr = "";
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(startDate) && org.apache.commons.lang3.StringUtils.isNotBlank(endDate)) {
+            startDateStr = org.apache.commons.lang3.StringUtils.isNotBlank(startDate) ? startDate + " 00:00:00" : null;
+            endDateStr = org.apache.commons.lang3.StringUtils.isNotBlank(endDate) ? endDate + " 23:59:59" : null;
+        } else {
+            if ("1".equals(type)) {
+                // 近1天
+                startDateStr = SliceUpDateUtil.getBeforeDay(new Date(), 0) + " 00:00:00";
+                endDateStr = SliceUpDateUtil.getBeforeDay(new Date(), 0) + " 23:59:59";
+            } else if ("2".equals(type)) {
+                // 近7天
+                startDateStr = SliceUpDateUtil.getBeforeDay(new Date(), 1) + " 00:00:00";
+                endDateStr = SliceUpDateUtil.getBeforeDay(new Date(), 0) + " 23:59:59";
+            } else if ("3".equals(type)) {
+                // 近30天
+                startDateStr = SliceUpDateUtil.getBeforeDay(new Date(), 6) + " 00:00:00";
+                endDateStr = SliceUpDateUtil.getBeforeDay(new Date(), 0) + " 23:59:59";
+            }
+        }
+        map.put("startDate", startDateStr);
+        map.put("endDate", endDateStr);
+        return map;
+    }
+}

+ 32 - 0
src/main/java/com/ydtech/modules/console/vo/WithdrawalTaskVo.java

@@ -0,0 +1,32 @@
+package com.ydtech.modules.console.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+@Data
+@ApiModel("查询Vo")
+public class WithdrawalTaskVo {
+
+    @ApiModelProperty(value = "每页页数")
+    private int pageSize;
+
+    @ApiModelProperty(value = "页数")
+    @Min(value = 1, message = "页数最小为1")
+    private int pageNum;
+
+    @ApiModelProperty(value = "天数")
+    private String dateType;
+
+
+    @ApiModelProperty(value = "时间筛选开始")
+    private String beginDate;
+
+    @ApiModelProperty(value = "时间筛选结束")
+    private String endDate;
+
+
+
+
+}

+ 3 - 1
src/main/java/com/ydtech/modules/esm/controller/EsmUserController.java

@@ -165,8 +165,10 @@ public class EsmUserController extends BaseController {
         if(!"20".equals(String.valueOf(sysUser.getRoleId()))&&!"21".equals(String.valueOf(sysUser.getRoleId()))){
             return HttpResult.error("只有团队长和代理角色可以查询");
         }
+        // 修改时间查询问题
+        record.setStartdate(record.getStartdate() + " 00:00:00");
+        record.setEnddate(record.getEnddate() + " 23:59:59");
         EsmUserCountVO esmUserCountVO = esmUserReferrerService.queryUserCount(record);
-
         return HttpResult.ok(esmUserCountVO);
     }
 

+ 3 - 3
src/main/java/com/ydtech/modules/fee/dao/InsFeeTelemarketingMapper.java

@@ -4,10 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ydtech.modules.fee.entity.po.InsFeeTelemarketing;
 
 /**
-* @author Administrator
+* @author dongxin
 * @description 针对表【ins_fee_telemarketing(电销费用扣减比例)】的数据库操作Mapper
-* @createDate 2024-08-28 19:13:00
-* @Entity com.ydtech.modules.fee.entity.po.InsFeeTelemarketing
+* @createDate 2024-10-15 11:02:51
+* @Entity generator.domain.InsFeeTelemarketing
 */
 public interface InsFeeTelemarketingMapper extends BaseMapper<InsFeeTelemarketing> {
 

+ 73 - 23
src/main/java/com/ydtech/modules/fee/entity/po/InsFeeTelemarketing.java

@@ -4,74 +4,106 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
-
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.order.entity.vo.SubmitExportFeesVo;
 import lombok.Data;
 
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
 /**
  * 电销费用扣减比例
- *
  * @TableName ins_fee_telemarketing
  */
-@TableName(value = "ins_fee_telemarketing")
+@TableName(value ="ins_fee_telemarketing")
 @Data
 public class InsFeeTelemarketing implements Serializable {
     /**
      * 主键
      */
-    @TableId(value = "id", type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
     private Integer id;
 
     /**
      * 子订单id
      */
-    @TableField(value = "sub_order_no")
     private String subOrderNo;
 
     /**
      * 交强扣减比例
      */
-    @TableField(value = "jq_export_proportion")
     private BigDecimal jqExportProportion;
 
     /**
      * 商业扣减比例
      */
-    @TableField(value = "sy_export_proportion")
     private BigDecimal syExportProportion;
 
     /**
      * 非车扣减比例
      */
-    @TableField(value = "no_car_export_proportion")
     private BigDecimal noCarExportProportion;
 
     /**
      * 创建用户
      */
-    @TableField(value = "create_user")
     private String createUser;
 
     /**
      * 创建时间
      */
-    @TableField(value = "create_time")
-    private Date createTime;
+    private LocalDateTime createTime;
+
+    /**
+     * 交强优惠比例
+     */
+    private BigDecimal jqTotalProportion;
+
+    /**
+     * 商业优惠比例
+     */
+    private BigDecimal syTotalProportion;
+
+    /**
+     * 非车优惠比例
+     */
+    private BigDecimal noTotalProportion;
+
+    /**
+     * 初始交强优惠比例
+     */
+    private BigDecimal firstJqTotalProportion;
+
+    /**
+     * 初始商业优惠比例
+     */
+    private BigDecimal firstSyTotalProportion;
+
+    /**
+     * 初始非车优惠比例
+     */
+    private BigDecimal firstNoTotalProportion;
 
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 
+    public InsFeeTelemarketing() {
+        super();
+    }
+
     public InsFeeTelemarketing(SubmitExportFeesVo submitExportFeesVo) {
         this.subOrderNo = submitExportFeesVo.getSubOrderNo();
         this.jqExportProportion = submitExportFeesVo.getJqExportProportion();
         this.syExportProportion = submitExportFeesVo.getSyExportProportion();
         this.noCarExportProportion = submitExportFeesVo.getNoCarExportProportion();
-        this.createTime = new Date();
+        this.jqTotalProportion = submitExportFeesVo.getJqdiscountrate();
+        this.syTotalProportion = submitExportFeesVo.getSydiscountrate();
+        this.noTotalProportion = submitExportFeesVo.getNodiscountrate();
+        this.firstJqTotalProportion = submitExportFeesVo.getFirstjqdiscountrate();
+        this.firstSyTotalProportion = submitExportFeesVo.getFirstsydiscountrate();
+        this.firstNoTotalProportion = submitExportFeesVo.getFirstnodiscountrate();
+        this.createTime = LocalDateTime.now();
         this.createUser = BaseController.getUserId();
     }
 
@@ -88,12 +120,18 @@ public class InsFeeTelemarketing implements Serializable {
         }
         InsFeeTelemarketing other = (InsFeeTelemarketing) that;
         return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
-                && (this.getSubOrderNo() == null ? other.getSubOrderNo() == null : this.getSubOrderNo().equals(other.getSubOrderNo()))
-                && (this.getJqExportProportion() == null ? other.getJqExportProportion() == null : this.getJqExportProportion().equals(other.getJqExportProportion()))
-                && (this.getSyExportProportion() == null ? other.getSyExportProportion() == null : this.getSyExportProportion().equals(other.getSyExportProportion()))
-                && (this.getNoCarExportProportion() == null ? other.getNoCarExportProportion() == null : this.getNoCarExportProportion().equals(other.getNoCarExportProportion()))
-                && (this.getCreateUser() == null ? other.getCreateUser() == null : this.getCreateUser().equals(other.getCreateUser()))
-                && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()));
+            && (this.getSubOrderNo() == null ? other.getSubOrderNo() == null : this.getSubOrderNo().equals(other.getSubOrderNo()))
+            && (this.getJqExportProportion() == null ? other.getJqExportProportion() == null : this.getJqExportProportion().equals(other.getJqExportProportion()))
+            && (this.getSyExportProportion() == null ? other.getSyExportProportion() == null : this.getSyExportProportion().equals(other.getSyExportProportion()))
+            && (this.getNoCarExportProportion() == null ? other.getNoCarExportProportion() == null : this.getNoCarExportProportion().equals(other.getNoCarExportProportion()))
+            && (this.getCreateUser() == null ? other.getCreateUser() == null : this.getCreateUser().equals(other.getCreateUser()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getJqTotalProportion() == null ? other.getJqTotalProportion() == null : this.getJqTotalProportion().equals(other.getJqTotalProportion()))
+            && (this.getSyTotalProportion() == null ? other.getSyTotalProportion() == null : this.getSyTotalProportion().equals(other.getSyTotalProportion()))
+            && (this.getNoTotalProportion() == null ? other.getNoTotalProportion() == null : this.getNoTotalProportion().equals(other.getNoTotalProportion()))
+            && (this.getFirstJqTotalProportion() == null ? other.getFirstJqTotalProportion() == null : this.getFirstJqTotalProportion().equals(other.getFirstJqTotalProportion()))
+            && (this.getFirstSyTotalProportion() == null ? other.getFirstSyTotalProportion() == null : this.getFirstSyTotalProportion().equals(other.getFirstSyTotalProportion()))
+            && (this.getFirstNoTotalProportion() == null ? other.getFirstNoTotalProportion() == null : this.getFirstNoTotalProportion().equals(other.getFirstNoTotalProportion()));
     }
 
     @Override
@@ -107,6 +145,12 @@ public class InsFeeTelemarketing implements Serializable {
         result = prime * result + ((getNoCarExportProportion() == null) ? 0 : getNoCarExportProportion().hashCode());
         result = prime * result + ((getCreateUser() == null) ? 0 : getCreateUser().hashCode());
         result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getJqTotalProportion() == null) ? 0 : getJqTotalProportion().hashCode());
+        result = prime * result + ((getSyTotalProportion() == null) ? 0 : getSyTotalProportion().hashCode());
+        result = prime * result + ((getNoTotalProportion() == null) ? 0 : getNoTotalProportion().hashCode());
+        result = prime * result + ((getFirstJqTotalProportion() == null) ? 0 : getFirstJqTotalProportion().hashCode());
+        result = prime * result + ((getFirstSyTotalProportion() == null) ? 0 : getFirstSyTotalProportion().hashCode());
+        result = prime * result + ((getFirstNoTotalProportion() == null) ? 0 : getFirstNoTotalProportion().hashCode());
         return result;
     }
 
@@ -123,8 +167,14 @@ public class InsFeeTelemarketing implements Serializable {
         sb.append(", noCarExportProportion=").append(noCarExportProportion);
         sb.append(", createUser=").append(createUser);
         sb.append(", createTime=").append(createTime);
+        sb.append(", jqTotalProportion=").append(jqTotalProportion);
+        sb.append(", syTotalProportion=").append(syTotalProportion);
+        sb.append(", noTotalProportion=").append(noTotalProportion);
+        sb.append(", firstJqTotalProportion=").append(firstJqTotalProportion);
+        sb.append(", firstSyTotalProportion=").append(firstSyTotalProportion);
+        sb.append(", firstNoTotalProportion=").append(firstNoTotalProportion);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();
     }
-}
+}

+ 12 - 2
src/main/java/com/ydtech/modules/fee/service/InsFeeTelemarketingService.java

@@ -1,13 +1,23 @@
 package com.ydtech.modules.fee.service;
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.fee.entity.po.InsFeeTelemarketing;
 
+import java.util.List;
+
 /**
-* @author Administrator
+* @author dongxin
 * @description 针对表【ins_fee_telemarketing(电销费用扣减比例)】的数据库操作Service
-* @createDate 2024-08-28 19:13:00
+* @createDate 2024-10-15 11:02:51
 */
 public interface InsFeeTelemarketingService extends IService<InsFeeTelemarketing> {
 
+    default InsFeeTelemarketing getByInsOrderNo(String id){
+        List<InsFeeTelemarketing> insFeeTelemarketingList = lambdaQuery()
+                .eq(InsFeeTelemarketing::getSubOrderNo,id)
+                .list();
+
+        return CollUtil.isNotEmpty(insFeeTelemarketingList)? insFeeTelemarketingList.get(0):null;
+    }
 }

+ 2 - 2
src/main/java/com/ydtech/modules/fee/service/impl/InsFeeTelemarketingServiceImpl.java

@@ -7,9 +7,9 @@ import com.ydtech.modules.fee.service.InsFeeTelemarketingService;
 import org.springframework.stereotype.Service;
 
 /**
-* @author Administrator
+* @author dongxin
 * @description 针对表【ins_fee_telemarketing(电销费用扣减比例)】的数据库操作Service实现
-* @createDate 2024-08-28 19:13:00
+* @createDate 2024-10-15 11:02:51
 */
 @Service
 public class InsFeeTelemarketingServiceImpl extends ServiceImpl<InsFeeTelemarketingMapper, InsFeeTelemarketing>

+ 35 - 3
src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java

@@ -8,9 +8,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.constants.enums.dict.FeeAuditAuditstatus;
 import com.ydtech.constants.enums.dict.ins.InsFeeAuditDistributionStatusEnum;
 import com.ydtech.exception.SystemException;
-import com.ydtech.modules.admin.model.SysDept;
-import com.ydtech.modules.admin.model.SysDeptAccount;
-import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.dao.SysPartnerAccountMapper;
+import com.ydtech.modules.admin.dao.SysPremiumDetailsMapper;
+import com.ydtech.modules.admin.model.*;
 import com.ydtech.modules.admin.model.po.SysChannelCost;
 import com.ydtech.modules.admin.model.po.SysUserAccount;
 import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
@@ -115,6 +115,11 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
     @Autowired
     private SysChannelCostService sysChannelCostService;
 
+    @Resource
+    private SysPremiumDetailsMapper sysPremiumDetailsMapper;
+    @Resource
+    private SysPartnerAccountMapper sysPartnerAccountMapper;
+
     @Autowired
     private Redisson redisson;
 
@@ -318,6 +323,33 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
                 }
                 sysChannelCostService.updateBatchById(costList);
             }
+            //抽层状态修改
+            sysPremiumDetailsMapper.updateStatus(insAreaCompany.getId());
+            List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                    .eq(SysPremiumDetails::getCompanyId,insAreaCompany.getId()).eq(SysPremiumDetails::getType,2));
+            if (sysPremiumDetails.size()>0) {
+                for (SysPremiumDetails sysPremiumDetail : sysPremiumDetails) {
+                    SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>()
+                            .eq(SysPartnerAccount::getUserId,sysPremiumDetail.getUserId()));
+                    if (sysPartnerAccount == null) {
+                        SysPartnerAccount sysPartnerAccount1 = new SysPartnerAccount();
+                        sysPartnerAccount1.setCreateTime(new Date());
+                        sysPartnerAccount1.setSumPremium(sysPremiumDetail.getSumpremium());
+                        sysPartnerAccount1.setExtractFee(sysPremiumDetail.getExtractFee());
+                        sysPartnerAccount1.setCashFee(sysPremiumDetail.getExtractFee());
+                        sysPartnerAccount1.setUserId(sysPremiumDetail.getUserId());
+                        sysPartnerAccountMapper.insert(sysPartnerAccount1);
+                    }else {
+                        sysPartnerAccount.setSumPremium(sysPartnerAccount.getSumPremium().add(sysPremiumDetail.getSumpremium()));
+                        sysPartnerAccount.setExtractFee(sysPartnerAccount.getExtractFee().add(sysPremiumDetail.getExtractFee()));
+                        sysPartnerAccount.setCashFee(sysPartnerAccount.getCashFee().add(sysPremiumDetail.getExtractFee()));
+                        sysPartnerAccountMapper.updateById(sysPartnerAccount);
+                    }
+                }
+
+            }
+
+
         } catch (Exception e) {
             throw new SystemException("当前业务繁忙,请稍后重试");
         } finally {

+ 3 - 0
src/main/java/com/ydtech/modules/order/aop/aspect/QuoteVerificationAspect.java

@@ -135,6 +135,9 @@ public class QuoteVerificationAspect {
                     }
 
                 }else{
+                    //将匹配失败的费用日志存储
+                    insAreaCompanyService.updateFeeMatchErrMsg(result.getData().getCompanyId(),logs.toString());
+
                     //输出费用匹配失败日志
                     result.getData().setFeeNoDescription(logs.toString());
                 }

+ 3 - 1
src/main/java/com/ydtech/modules/order/components/zijin/ZijinDuplicateInsuranceComponents.java

@@ -103,7 +103,9 @@ public class ZijinDuplicateInsuranceComponents extends ResponseMessageAbstractHa
         }
 
         if (jqEndDate.isEmpty() && syEndDate.isEmpty()) {
-            throw new SystemException(rtnMsg);
+            // 修改 需要在外部获取异常信息
+            return calculatePremiumResponse;
+//            throw new SystemException(rtnMsg);
         }
         repeatNumber -= 1;
         baseInfo.setTrafficTime(jqEndDate);

+ 116 - 0
src/main/java/com/ydtech/modules/order/controller/InsOrderReadPdfController.java

@@ -0,0 +1,116 @@
+package com.ydtech.modules.order.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.dto.SysUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkAreaDto;
+import com.ydtech.modules.admin.model.vo.*;
+import com.ydtech.modules.admin.service.SysUserLinkAreaService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.modules.order.entity.dto.InsOrderReadPdfContentDto;
+import com.ydtech.modules.order.entity.po.InsOrderReadPdf;
+import com.ydtech.modules.order.entity.vo.InsOrderReadPdfContentVo;
+import com.ydtech.modules.order.entity.vo.InsOrderReadPdfVo;
+import com.ydtech.modules.order.service.InsOrderReadPdfService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/10/14 17:30
+ *  @Description:
+ */
+@Api(tags = "读取保单配置")
+@RequestMapping("/insOrderReadPdf")
+@RestController
+public class InsOrderReadPdfController extends BaseController {
+
+
+    @Autowired
+    private InsOrderReadPdfService insOrderReadPdfService;
+
+    @PostMapping("queryPage")
+    @ApiOperation(value = "读取保单配置分页")
+    public HttpResult<BasePageResult<InsOrderReadPdf>> queryPage(@RequestBody InsOrderReadPdfVo insOrderReadPdfVo) {
+
+        try{
+            BasePageResult<InsOrderReadPdf> result = insOrderReadPdfService.queryPage(insOrderReadPdfVo);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+
+    @PostMapping("addOrUpdate")
+    @ApiOperation("读取保单配置添加修改")
+    public HttpResult<Object> addOrUpdate(@RequestBody InsOrderReadPdfVo insOrderReadPdfVo) {
+
+        try{
+            insOrderReadPdfService.addOrUpdate(insOrderReadPdfVo,getUser());
+            return HttpResult.ok("操作成功");
+        }catch (Exception e){
+            return HttpResult.error("操作失败"+e.getMessage());
+        }
+
+    }
+
+    @GetMapping("deleteById")
+    @ApiOperation("读取保单配置删除")
+    public HttpResult<Object> deleteById(String id) {
+        if(id==null || "".equals(id)) {
+            return HttpResult.error("id不能为空");
+        }
+        try{
+            insOrderReadPdfService.removeById(id);
+            return HttpResult.ok("删除成功");
+        }catch (Exception e){
+            return HttpResult.error("删除失败"+e.getMessage());
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/10/14 17:31
+     *  @Description: 回显
+     */
+    @GetMapping("/findById")
+    @ApiOperation(value = "通过id查询信息")
+    public HttpResult<InsOrderReadPdf> findAreaListByUserId(String id) {
+        if(id==null || "".equals(id)) {
+            return HttpResult.error("id不能为空");
+        }
+        try{
+            InsOrderReadPdf insOrderReadPdf = insOrderReadPdfService.getById(id);
+            return HttpResult.ok(insOrderReadPdf);
+        }catch (Exception e){
+            return HttpResult.error("查询失败"+e.getMessage());
+        }
+
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/10/15 14:24
+     *  @Description: 读取pdf内容
+     */
+    @PostMapping("readPdfContent")
+    @ApiOperation("读取保单内容")
+    public HttpResult<Object> readPdfContent(@RequestBody @Valid InsOrderReadPdfContentVo insOrderReadPdfContentVo) {
+
+        try{
+            InsOrderReadPdfContentDto dto= insOrderReadPdfService.readPdfContent(insOrderReadPdfContentVo);
+            return HttpResult.ok(dto);
+        }catch (Exception e){
+            return HttpResult.error("操作失败"+e.getMessage());
+        }
+
+    }
+}

+ 90 - 27
src/main/java/com/ydtech/modules/order/controller/QrCodeController.java

@@ -1,8 +1,18 @@
 package com.ydtech.modules.order.controller;
 
-import com.ydtech.core.page.HttpResult;
+import cn.dev33.satoken.annotation.SaIgnore;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ydtech.exception.SystemException;
+import com.ydtech.modules.admin.constants.UserConstants;
+import com.ydtech.modules.admin.model.po.SysBarcodeConfig;
+import com.ydtech.modules.admin.service.SysBarcodeConfigService;
 import com.ydtech.modules.admin.service.SysQRCodeRelationService;
+import com.ydtech.modules.admin.service.impl.SysBarcodeConfigServiceImpl;
+import com.ydtech.modules.esm.model.EsmInsCompany;
+import com.ydtech.modules.esm.service.EsmInsCompanyService;
+import com.ydtech.modules.esm.service.impl.EsmInsCompanyServiceImpl;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrderQrCode;
 import com.ydtech.modules.order.entity.InsOrders;
@@ -13,6 +23,7 @@ import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.protocol.entity.constants.PtlApiType;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -25,7 +36,9 @@ import javax.annotation.Resource;
 import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.Date;
+import java.util.List;
 import java.util.Objects;
 
 @Api(tags = "订单二维码管理")
@@ -39,15 +52,24 @@ public class QrCodeController {
     @Resource
     private InsAreaCompanyService insAreaCompanyService;
 
-    @Resource
-    private InsOrdersService insOrdersService;
     @Resource
     SysQRCodeRelationService sysQRCodeRelationService;
 
+    @Resource
+    SysBarcodeConfigService sysBarcodeConfigService;
+
+    @Resource
+    InsOrdersService insOrdersService;
+
     //二维码生成地址
     @Value("${qrcode.genAddress}")
     private String qrCodeGenAddress;
 
+    //二维码生成地址
+    @Value("${qrcode.imageSrc}")
+    private String imageSrc;
+    @Autowired
+    private EsmInsCompanyService esmInsCompanyService;
 
     @GetMapping(value = "/getQrCode")
     @ApiOperation(value = "获取二维码")
@@ -61,16 +83,7 @@ public class QrCodeController {
             InsOrders insOrders = insOrdersService.getById(insOrderQrCode.getOrderno());
 
             QrCodeVo qrCodeVo = new QrCodeVo();
-            String qrCodeUrl = "";
-            //是否是太平洋保险 大家财险
-            if ("TPIC1000000".equals(insAreaCompany.getCompanyId()) || "DJPC1000000".equals(insAreaCompany.getCompanyId())
-                    || ("CHAC1000000").equals(insAreaCompany.getCompanyId())
-                    || ("HTIC1000000".equals(insAreaCompany.getCompanyId()) && PtlApiType.PTL_API_2.getCode() == insAreaCompany.getApiType())) {
-                qrCodeUrl = insAreaCompany.getPaymentLink();
-            } else {
-                qrCodeUrl = qrCodeGenAddress + "?areaCompanyId=" + areaCompanyId;
-            }
-
+            String qrCodeUrl = qrCodeGenAddress + "?areaCompanyId=" + areaCompanyId;
             qrCodeVo.setQrCodeUrl(qrCodeUrl);
             qrCodeVo.setInscompany(insAreaCompany.getInscompany());//保险公司
             qrCodeVo.setSumpremium(insAreaCompany.getSumpremium());//总保费
@@ -99,7 +112,6 @@ public class QrCodeController {
         return modelAndView;
     }
 
-
     @PostMapping(value = "/destructionQrCode")
     @ApiOperation(value = "销毁二维码")
     public ModelAndView destructionQrCode(String areaCompanyId) {
@@ -116,29 +128,80 @@ public class QrCodeController {
 
     @GetMapping(value = "/index")
     @ApiOperation(value = "扫描二维码地址")
-    public String index(String areaCompanyId) throws IOException {
+    @SaIgnore
+    public Object index(String areaCompanyId) throws IOException {
         InsOrderQrCode insOrderQrCode = insOrderQrCodeService.getOne(areaCompanyId);
-        if (insOrderQrCode == null) {
+        InsAreaCompany insAreaCompany = insAreaCompanyService.getById(areaCompanyId);
+        // 根据保险公司获取二维码配置方式
+        LambdaQueryWrapper<SysBarcodeConfig> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SysBarcodeConfig::getCompanyId, insAreaCompany.getCompanyId())
+                .eq(SysBarcodeConfig::getApiType, insAreaCompany.getApiType());
+        List<SysBarcodeConfig> configs = sysBarcodeConfigService.list(wrapper);
+        if (CollUtil.isEmpty(configs) || configs.size() > 1) {
             //重定向到错误页面中
-            return "redirect:/order/qrCode/error";
+            ModelAndView modelAndView = new ModelAndView("qrcode_error");
+            return modelAndView;
         }
-
-        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
-        String qrcodeCreateTimeStr = dateFormat.format(insOrderQrCode.getCreatetime());
-        LocalDate qrcodeCreateTime = LocalDate.parse(qrcodeCreateTimeStr);
-        LocalDate currentDate = LocalDate.now();
-
-        if (Math.abs(currentDate.toEpochDay() - qrcodeCreateTime.toEpochDay()) >= 1) {
+        Integer configType = configs.get(0).getType();
+        if (insOrderQrCode == null) {
             //重定向到错误页面中
-            return "redirect:/order/qrCode/error";
+            ModelAndView modelAndView = new ModelAndView("qrcode_error");
+            return modelAndView;
         }
 
         //更新二维码扫描时间
         insOrderQrCode.setScanCodeTime(new Date());
         insOrderQrCodeService.updateById(insOrderQrCode);
-        //直接重定向到jumlurl
-        return "redirect:" + insOrderQrCode.getJumpUrl();
+        LocalDateTime createtime = insAreaCompany.getCreatetime();
+        LocalDate qrcodeCreateTime = createtime.toLocalDate();
+        LocalDate currentDate = LocalDate.now();
+        if (Math.abs(currentDate.toEpochDay() - qrcodeCreateTime.toEpochDay()) >= 1) {
+            //重定向到错误页面中
+            ModelAndView modelAndView = new ModelAndView("qrcode_error");
+            return modelAndView;
+        }
 
+        if(UserConstants.CONFIG_TYPE_2.equals(configType) || UserConstants.CONFIG_TYPE_1.equals(configType)){
+            InsOrders insOrders = insOrdersService.getById(insOrderQrCode.getOrderno());
+            // 获取图标
+            EsmInsCompany company = esmInsCompanyService.getById(insAreaCompany.getCompanyId());
+            ModelAndView modelAndView = new ModelAndView();
+            QrCodeVo qrCodeVo = new QrCodeVo();
+            qrCodeVo.setLogo(company.getLogo());
+            if(UserConstants.CONFIG_TYPE_1.equals(configType)){
+                modelAndView.setViewName("qrcode1");
+                qrCodeVo.setQrCodeUrl("data:image/png;base64,"+insAreaCompany.getPaymentLink());
+            } else {
+                modelAndView.setViewName("qrcode");
+                qrCodeVo.setQrCodeUrl(insAreaCompany.getPaymentLink());
+            }
+            qrCodeVo.setImageSrc(imageSrc);
+            qrCodeVo.setInscompany(insAreaCompany.getInscompany());//保险公司
+            qrCodeVo.setInscompanyCode(insAreaCompany.getCompanyId());//保险公司编号
+            qrCodeVo.setSumpremium(insAreaCompany.getSumpremium());//总保费
+            qrCodeVo.setSypremium(insAreaCompany.getSypremium());//商业险
+            qrCodeVo.setJqpremium(insAreaCompany.getJqpremium());//交强险
+            qrCodeVo.setTaxamount(insAreaCompany.getTaxamount());//车船税
+            qrCodeVo.setJypremium(insAreaCompany.getJypremium());//驾驭险
+            qrCodeVo.setCApplyNme(insOrders.getApplyinfo().getString("name"));//投保人
+            qrCodeVo.setCInsuredNme(insOrders.getInsureinfo().getString("name"));//被保人
+            qrCodeVo.setCOwnerNme(insOrders.getOwnerinfo().getString("name"));//车主
+            qrCodeVo.setCPlateNo(insOrders.getLicenseno());//车牌号
+            qrCodeVo.setJqStartDate(insAreaCompany.getJqStartDate());//交强开始时间
+            qrCodeVo.setJqEndDate(insAreaCompany.getJqEndDate());//交强结束时间
+            qrCodeVo.setSyStartDate(insAreaCompany.getSyStartDate());
+            qrCodeVo.setSysEndDate(insAreaCompany.getSyEndDate());
+            qrCodeVo.setSyStartDate(insAreaCompany.getSyStartDate());
+            qrCodeVo.setSysEndDate(insAreaCompany.getSyEndDate());
+            modelAndView.addObject("data",qrCodeVo);
+            return modelAndView;
+        } else if(UserConstants.CONFIG_TYPE_0.equals(configType)){
+            return "redirect:" + insOrderQrCode.getJumpUrl();
+        }else{
+            //重定向到错误页面中
+            ModelAndView modelAndView = new ModelAndView("qrcode_error");
+            return modelAndView;
+        }
     }
 
 

+ 23 - 0
src/main/java/com/ydtech/modules/order/dao/InsOrderReadPdfMapper.java

@@ -0,0 +1,23 @@
+package com.ydtech.modules.order.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.order.entity.po.InsOrderReadPdf;
+import com.ydtech.modules.order.entity.vo.InsOrderReadPdfVo;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/10/14 17:27
+ *  @Description: 保单读取配置
+ */
+public interface InsOrderReadPdfMapper extends BaseMapper<InsOrderReadPdf> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/10/14 18:04
+     *  @Description: 分頁查詢
+     */
+    Page<InsOrderReadPdf> queryPage(@Param("page") Page<InsOrderReadPdf> page, @Param("vo") InsOrderReadPdfVo insOrderReadPdfVo);
+}

+ 10 - 0
src/main/java/com/ydtech/modules/order/entity/InsAreaCompany.java

@@ -512,6 +512,16 @@ public class InsAreaCompany implements Serializable {
     @TableField("order_source")
     private Integer orderSource;
 
+    //费用匹配信息
+    @TableField("fee_match_err_msg")
+//    @TableField(exist = false)
+    private String feeMatchErrMsg;
+
+    //报价错误信息
+    @TableField("quote_err_msg")
+//    @TableField(exist = false)
+    private String quoteErrMsg;
+
     /**
      * 0 删除 1 正常
      * 删除订单

+ 435 - 5
src/main/java/com/ydtech/modules/order/entity/api/pingan/utils/PDFUtil.java

@@ -1,8 +1,18 @@
 package com.ydtech.modules.order.entity.api.pingan.utils;
 
+import com.ydtech.constants.InsuranceEnum;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.text.PDFTextStripper;
+
 
 import java.io.*;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.HashMap;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
 /**
  *  @version
  *  @author: hxl
@@ -23,11 +33,11 @@ public class PDFUtil {
         String parentPath = encryptFile.getParent();
         String name = encryptFile.getName();
         String fileName = name.split("\\.")[0] + "-decipher.pdf";
-        PDDocument load = PDDocument.load(encryptFile, password);
-        load.setAllSecurityToBeRemoved(true);
-        String decodeFilePath = parentPath + File.separator+fileName;
-        load.save(decodeFilePath);
-        load.close();
+        //PDDocument load = PDDocument.load(encryptFile, password);
+        //load.setAllSecurityToBeRemoved(true);
+        //String decodeFilePath = parentPath + File.separator+fileName;
+       // load.save(decodeFilePath);
+       // load.close();
     }
 
     /**
@@ -147,4 +157,424 @@ public class PDFUtil {
         decipher(targetPath,password);
     }
 
+    public static String getPdfText(String pdfFilePath) {
+        PDDocument document = null;
+        String text ="";
+        try {
+            document = PDDocument.load(new File(pdfFilePath));
+            PDFTextStripper pdfStripper = new PDFTextStripper();
+            pdfStripper.setSortByPosition(true); // 设置为true以按照文档中的顺序提取文本
+            pdfStripper.setShouldSeparateByBeads(true);
+            text= pdfStripper.getText(document);
+            text = text.replaceAll("\\s+", " ");
+            document.close();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+       return text;
+    }
+
+    public static String getPdfContentStr(String pdfText, String beginStr,String endStr,String dateType) {
+        String contentStr = getContentStr(pdfText, beginStr, endStr);
+        if(StringUtils.isNotBlank(contentStr)){
+            contentStr=contentStr.replaceAll(" ", "");
+            contentStr=contentStr.replaceAll("\\n+", "");
+            contentStr=contentStr.replaceAll("\\t+", "");
+            contentStr=contentStr.replaceAll("\\r+", "");
+            contentStr = contentStr.replaceAll("\\s+", "");
+            contentStr = contentStr.replaceAll("[^\u4E00-\u9FA50-9年月日:-]+", "");
+            contentStr = contentStr.replaceAll("时", "");
+        }
+        return contentStr;
+    }
+
+    public static LocalDateTime getPdfContentDate(String pdfText, String beginStr,String endStr,String dateType) {
+        String payDate = getContentStr(pdfText, beginStr, endStr);
+        LocalDateTime payDateTime = null;
+        if("1".equals(dateType)){
+            payDateTime = getStringTranferDate(payDate);
+        }else if("2".equals(dateType)){
+            payDateTime = getStringTranferDateCPIC(payDate);
+        }else if("3".equals(dateType)){
+            payDateTime = getStringTranferDatePinAn(payDate);
+        }
+        return payDateTime;
+    }
+    public static HashMap<String,LocalDateTime> getPdfContent(String pdfPath, String companyId){
+        HashMap<String,LocalDateTime>  map =new  HashMap<String,LocalDateTime>();
+        String pdfText = getPdfText(pdfPath);
+        System.out.println(pdfText);
+        String payDate=null;
+        String signDate=null;
+        if(StringUtils.isNotBlank(pdfText)){
+            //缴费时间、签单时间 payDate signingTime
+            //中煤  ===================== 11
+           if(companyId.contains(InsuranceEnum.ZMBX.getCode())){
+               payDate = getContentStr(pdfText, "收付确认时间:", "保单生成时间");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           //永诚 ----------------------------11
+           }else if(companyId.contains(InsuranceEnum.AICS.getCode())){
+               payDate = getContentStr(pdfText, "收费确认时间:", "电子保单生成时间");
+               //payDate = getContentStr(pdfText, "收费确认时间:", "业 电子保单生成时间:");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           //安盛  ================================11
+           }else if(companyId.contains(InsuranceEnum.TPBX.getCode())){
+               payDate = getContentStr(pdfText, "收费确认时间", "微信二维码");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           //恒邦    ====================   11
+           }else if(companyId.contains(InsuranceEnum.HBIC.getCode())){
+               payDate = getContentStr(pdfText, "保费确认时间:", "保单打印时间");
+               signDate = getContentStr(pdfText, "签单日期:", "核保");
+           }
+           //国任   =========================  11
+           else if(companyId.contains(InsuranceEnum.XDCX.getCode())){
+               payDate = getContentStr(pdfText, "收费确认时间:", "投保确认时间");
+               signDate = getContentStr(pdfText, "签单日期:", "核保");
+           }
+           //平安 =================================33
+           else if(companyId.contains(InsuranceEnum.PAIC.getCode())){
+               payDate = getContentStr(pdfText, "收费确认时间:", "投保确认时间");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           }
+           // 华农   ============================1.1
+           else if(companyId.contains(InsuranceEnum.HNIC.getCode())){
+               payDate = getContentStr(pdfText, "收费确认时间:", "有效保单生成时间");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           }
+
+           // 华泰   ============================  1  1
+           else if(companyId.contains(InsuranceEnum.HTIC.getCode())){
+               payDate = getContentStr(pdfText, "收费确认时间:", "有效保单生成时间");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           }
+           // 众安   ================================ 2.2
+           else if(companyId.contains(InsuranceEnum.ZAPA.getCode())){
+               payDate = getContentStr(pdfText, "收费确认时间:", "投保确认时间");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           }
+           //诚泰    ========================   1.2
+           else if(companyId.contains(InsuranceEnum.CHAC.getCode())){
+               payDate = getContentStr(pdfText, "收费确认时间:", "投保确认时间");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           }
+           //大家   ======================   111
+           else if(companyId.contains(InsuranceEnum.DJPC.getCode())){
+               payDate = getContentStr(pdfText, "收付确认时间:", "投保确认码");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           }
+           //泰康   =================================   1.2
+           else if(companyId.contains(InsuranceEnum.TKIC.getCode())){
+               payDate = getContentStr(pdfText, "收费确认时间:", "投保确认码");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           }
+           //紫金   =============================   1.1
+           else if(companyId.contains(InsuranceEnum.ZKIC.getCode())){
+               payDate = getContentStr(pdfText, "收费确认时间:", "确认码");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           }
+           //渤海  ===========================  11
+           else if(companyId.contains(InsuranceEnum.BPIC.getCode())){
+               payDate = getContentStr(pdfText, "收款确认时间:", "投保确认码");
+               signDate = getContentStr(pdfText, "签单日期:", "核保");
+           }
+           //太平   ===================   1.2
+           else if(companyId.contains(InsuranceEnum.TPIC.getCode())){
+               payDate = getContentStr(pdfText, "保费确认时间:", "确认码");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           }
+           //天安   ==============================1.1
+           else if(companyId.contains(InsuranceEnum.TAIC.getCode())){
+               payDate = getContentStr(pdfText, "收费确认时间:", "生成保单时间");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           }
+           //人保 ================================1.1
+           else if(companyId.contains(InsuranceEnum.PICC.getCode())){
+               payDate = getContentStr(pdfText, "收费确认时间:", "投保确认时间");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           }
+           //人寿   ===========================1 ,2
+           else if(companyId.contains(InsuranceEnum.GPIC.getCode())){
+               payDate = getContentStr(pdfText, "收付确认时间:", "保单打印时间");
+               signDate = getContentStr(pdfText, "签单日期:", "保险人签章");
+           }
+
+           //阳光  ===========================  11
+           else if(companyId.contains(InsuranceEnum.YGBX.getCode())){
+               payDate = getContentStr(pdfText, "收款确认:", "电子保单流水号");
+               signDate = getContentStr(pdfText, "签单日期:", "经办");
+           }
+
+           //太平洋  ================================2.2
+           else if(companyId.contains(InsuranceEnum.CPIC.getCode())){
+               payDate = getContentStr(pdfText, "收费确认时间:", "保单生成时间");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           }
+            // 泰山   =========================  1.1
+           else if(companyId.contains(InsuranceEnum.TSBX.getCode())){
+               payDate = getContentStr(pdfText, "收费确认时间:", "保单生成时间");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           }
+           //中华  ============================  3.1
+           else if(companyId.contains(InsuranceEnum.CICP.getCode())){
+               payDate = getContentStr(pdfText, "收费确认时间:", "投保确认时间");
+               signDate = getContentStr(pdfText, "签单日期:", "核保");
+           }
+
+           // 华安  ===================   1.1
+           else if(companyId.contains(InsuranceEnum.HAIC.getCode())){
+               payDate = getContentStr(pdfText, "收费时间:", "投保确认时间");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           }
+           // 大地  ===========================1.1
+           else if(companyId.contains(InsuranceEnum.CCIC.getCode())){
+               payDate = getContentStr(pdfText, "收费确认时间:", "投保确认时间");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           }
+           // 安诚 ======================  1.3
+           else if(companyId.contains(InsuranceEnum.ACIC.getCode())){
+               payDate = getContentStr(pdfText, "缴费确认时间:", "保单生成时间");
+               signDate = getContentStr(pdfText, "签单日期:", "(保");
+           }
+           // 永安   ===============================  11
+           else if(companyId.contains(InsuranceEnum.YAIC.getCode())){
+               payDate = getContentStr(pdfText, "支付确认时间:", "投保确认码");
+               signDate = getContentStr(pdfText, "签单日期:", "(保险人签章)");
+           }
+        }
+        LocalDateTime payDateTime = null;
+        LocalDateTime signDateTime = null;
+        if(companyId.contains(InsuranceEnum.PAIC.getCode()) || companyId.contains(InsuranceEnum.ZAPA.getCode())){
+            payDateTime = getStringTranferDatePinAn(payDate);
+            signDateTime = getStringTranferDatePinAn(signDate);
+        }else if(companyId.contains(InsuranceEnum.CHAC.getCode()) || companyId.contains(InsuranceEnum.TKIC.getCode()) || companyId.contains(InsuranceEnum.TPIC.getCode())
+         || companyId.contains(InsuranceEnum.GPIC.getCode()) || companyId.contains(InsuranceEnum.ACIC.getCode())){
+            payDateTime = getStringTranferDate(payDate);
+            signDateTime = getStringTranferDatePinAn(signDate);
+        }else if(companyId.contains(InsuranceEnum.CPIC.getCode())){
+            payDateTime = getStringTranferDateCPIC(payDate);
+            signDateTime = getStringTranferDateCPIC(signDate);
+        }else if(companyId.contains(InsuranceEnum.CICP.getCode())){
+            payDateTime = getStringTranferDatePinAn(payDate);
+            signDateTime = getStringTranferDate(signDate);
+        }
+        else{
+            payDateTime = getStringTranferDate(payDate);
+            signDateTime = getStringTranferDate(signDate);
+        }
+
+        map.put("payDate",payDateTime);
+        map.put("signDate",signDateTime);
+        return map;
+    }
+    private static LocalDateTime getStringTranferDateCPIC(String payDate) {
+        if (StringUtils.isNotBlank(payDate)) {
+            payDate = payDate.replaceAll(" ", "");
+            payDate = payDate.replaceAll("\\n+", "");
+            payDate = payDate.replaceAll("\\t+", "");
+            payDate = payDate.replaceAll("\\r+", "");
+            payDate = payDate.replaceAll("\\s+", "");
+            payDate = payDate.replaceAll("[\u4e00-\u9fa5]", "");
+            System.out.println(payDate.length());
+            if (payDate.length() == 18) {
+                payDate = payDate.substring(0, 10) + " " + payDate.substring(10, 18);
+            } else if (payDate.length() == 15) {
+                payDate = payDate.substring(0, 10) + " " + payDate.substring(10, 15) + ":00";
+            } else if (payDate.length() == 10) {
+                payDate = payDate + " 00:00:00";
+            }
+            return LocalDateTime.parse(payDate, DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"));
+        }
+        return null;
+    }
+    private static LocalDateTime getStringTranferDate(String payDate) {
+        if(StringUtils.isNotBlank(payDate)){
+            payDate=payDate.replaceAll(" ", "");
+            payDate=payDate.replaceAll("\\n+", "");
+            payDate=payDate.replaceAll("\\t+", "");
+            payDate=payDate.replaceAll("\\r+", "");
+            payDate = payDate.replaceAll("\\s+", "");
+            payDate = payDate.replaceAll("[\u4e00-\u9fa5]", "");
+            System.out.println(payDate.length());
+            if(payDate.length() == 18){
+                payDate = payDate.substring(0,10)+" "+ payDate.substring(10,18);
+            }else if(payDate.length() == 15){
+                    payDate = payDate.substring(0,10)+" "+ payDate.substring(10,15)+":00";
+            }else if(payDate.length() == 10){
+                payDate = payDate+" 00:00:00";
+            }
+            return LocalDateTime.parse(payDate, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+        }
+        return null;
+    }
+
+    private static LocalDateTime getStringTranferDatePinAn(String payDate) {
+        if(StringUtils.isNotBlank(payDate)){
+            payDate=payDate.replaceAll(" ", "");
+            payDate=payDate.replaceAll("\\n+", "");
+            payDate=payDate.replaceAll("\\t+", "");
+            payDate=payDate.replaceAll("\\r+", "");
+            payDate = payDate.replaceAll("\\s+", "");
+            payDate = payDate.replaceAll("[^\u4E00-\u9FA50-9年月日:]+", "");
+            payDate = payDate.replaceAll("时", "");
+            int count = 0;
+            int index = 0;
+            while ((index = payDate.indexOf(":", index)) != -1) {
+                index += ":".length();
+                count++;
+            }
+            System.out.println(payDate.length());
+            if((payDate.length() == 17 && count==2 ) || (payDate.length() == 18 && count==2 ) || ( payDate.length() == 19 && count==2 ) ) {
+                String minnute = payDate.substring(payDate.indexOf("日") + 1, payDate.length());
+                String day = payDate.substring(0, payDate.indexOf("日") + 1);
+                payDate = getContentStr(day) + " " + minnute;
+            }else if((payDate.length() == 14 && count==1 ) || ( payDate.length() == 15 && count==1 ) || ( payDate.length() == 16 && count==1 )){
+                String minnute = payDate.substring(payDate.indexOf("日")+1, payDate.length());
+                String day = payDate.substring(0, payDate.indexOf("日")+1);
+                payDate = getContentStr(day)+" "+ minnute+":00";
+            }else if(payDate.length() == 9 ||payDate.length() == 10 || payDate.length() == 11){
+                payDate = getContentStr(payDate)+" 00:00:00";
+            }
+            return LocalDateTime.parse(payDate, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+        }
+        return null;
+    }
+
+    public static String  getContentStr(String input){
+        Pattern pattern = Pattern.compile("(\\d{4})年(\\d{1,2})月(\\d{1,2})日");
+        Matcher matcher = pattern.matcher(input);
+        if (matcher.matches()) {
+            String year = matcher.group(1);
+            String month = matcher.group(2);
+            String day = matcher.group(3);
+            return year+"-"+((Integer.parseInt(month)<10 && month.length()==1) ?"0"+month:month)+"-"+((Integer.parseInt(month)<10 && month.length()==1)  ?"0"+day:day);
+        } else {
+            return null;
+        }
+    }
+
+    public static String  getContentStr(String input, String beginStr, String endStr){
+        // 创建正则表达式,其中"(?s)"表示忽略换行符,"."匹配任何字符(包括换行符)
+        String regex = "(?s)" + Pattern.quote(beginStr) + "(.+?)" + Pattern.quote(endStr);
+        Pattern pattern = Pattern.compile(regex);
+        Matcher matcher = pattern.matcher(input);
+
+        if (matcher.find()) {
+            return matcher.group(1);
+        } else {
+            return null;
+        }
+    }
+
+    public static void main(String[] args) throws IOException {
+        //中煤
+        //String pdfFilePath = "D:\\nasData\\carInsPolicy\\晋AC692F\\晋AC692F-商业险保单.pdf"; // PDF文件路径
+        //HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "ZMBX");
+        //永城
+        // String pdfFilePath = "D:\\nasData\\carInsPolicy\\1834183151125594114\\晋LD580R114B4032620240026390-交强险保单.pdf"; // PDF文件路径
+        //HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "AICS");
+        //安盛
+       // String pdfFilePath = "D:\\nasData\\carInsPolicy\\1823634528262541312\\晋JH6836-交强险保单.pdf"; // PDF文件路径
+        //  HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "TPBX");
+        //恒邦
+        String pdfFilePath = "D:\\nasData\\carInsPolicy\\晋KLY103\\晋KLY103-交强险保单.pdf"; // PDF文件路径
+        HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "HBIC");
+        //国任
+        // String pdfFilePath = "D:\\nasData\\carInsPolicy\\晋A139LV\\晋A139LV-交强险保单.pdf"; // PDF文件路径
+        //  HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "XDCX");
+        //平安
+        // String pdfFilePath = "D:\\nasData\\carInsPolicy\\晋C5523Q\\晋C5523Q-交强险保单.pdf"; // PDF文件路径
+        //HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "PAIC");
+
+        //华农
+        //String pdfFilePath = "D:\\bx\\huanong\\晋KME755-交强险保单.pdf"; // PDF文件路径
+        //HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "HNIC");
+
+        // 华泰
+        //String pdfFilePath = "D:\\bx\\huatai\\晋AH15L3-交强险保单.pdf"; // PDF文件路径
+        //HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "HTIC");
+
+        //众安
+       // String pdfFilePath = "D:\\bx\\zongan\\晋JTT447-交强险保单.pdf"; // PDF文件路径
+        //HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "ZAPA");
+
+        //诚泰
+       // String pdfFilePath = "D:\\bx\\chengtai\\晋A1WJ61-交强险保单.pdf"; // PDF文件路径
+        //HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "CHAC");
+
+        //大家
+        //String pdfFilePath = "D:\\bx\\dajia\\晋FH3550-交强险保单.pdf"; // PDF文件路径
+        //HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "DJPC");
+
+        //泰康
+        //String pdfFilePath = "D:\\bx\\taikang\\晋BB0233-交强险保单.pdf"; // PDF文件路径
+        //HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "TKIC");
+
+        //紫荆
+        //String pdfFilePath = "D:\\bx\\zijin\\晋KTY710-交强险保单.pdf"; // PDF文件路径
+        //HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "ZKIC");
+
+        //渤海
+       // String pdfFilePath = "D:\\bx\\bohai\\晋C1358S-2141103302024015981-交强险保单.pdf"; // PDF文件路径
+       // HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "BPIC");
+
+       //太平
+       // String pdfFilePath = "D:\\bx\\taiping\\63fe59c9f37a2a1ab62fe8f23f63943c.pdf"; // PDF文件路径
+        //HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "TPIC");
+
+        //天安
+        //String pdfFilePath = "D:\\bx\\tianan\\829d3f8efdc565b61092cc675d8ac316.pdf"; // PDF文件路径
+        //HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "TAIC");
+
+        //人民
+        //String pdfFilePath = "D:\\bx\\renbao\\b504310a9897db5be1745c76463d9e0a.pdf"; // PDF文件路径
+       // HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "PICC");
+
+        //人寿
+       // String pdfFilePath = "D:\\bx\\renshou\\4d36d1b7f19059ffb14a59d04ae140fb.pdf"; // PDF文件路径
+       // HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "GPIC");
+
+      //  String pdfFilePath = "D:\\bx\\renshou\\4d36d1b7f19059ffb14a59d04ae140fb.pdf"; // PDF文件路径
+       // HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "GPIC");
+
+       // String pdfFilePath = "D:\\bx\\renshou\\4d36d1b7f19059ffb14a59d04ae140fb.pdf"; // PDF文件路径
+       // HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "GPIC");
+
+        //阳光
+       // String pdfFilePath = "D:\\bx\\yangguang\\e364a2ea5b29b5056005c084c69fbcde.pdf"; // PDF文件路径
+       // HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "YGBX");
+
+        //太平洋
+        // String pdfFilePath = "D:\\bx\\taipingyang\\31f92fc448ef7aab3127a6d7fa07621c.pdf"; // PDF文件路径
+        // HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "CPIC");
+
+
+        //泰山
+        // String pdfFilePath = "D:\\bx\\taishan\\2c46d1bd604efe4d1894bf826af30e0a.pdf"; // PDF文件路径
+        // HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "TSBX");
+
+        // String pdfFilePath = "D:\\bx\\taishan\\2c46d1bd604efe4d1894bf826af30e0a.pdf"; // PDF文件路径
+        // HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "TSBX");
+
+
+        //中华
+        // String pdfFilePath = "D:\\bx\\zhonghua\\e3358efb60e4924c65d28971f4a01f94.pdf"; // PDF文件路径
+        // HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "CICP");
+
+        // 华安
+       //  String pdfFilePath = "D:\\bx\\huaan\\9560fc38737dc922db73bf8ffaa56482.pdf"; // PDF文件路径
+        // HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "HAIC");
+        // 大地
+        // String pdfFilePath = "D:\\bx\\dadi\\24f9830c1807fa47ecb933b78e155ed5.pdf"; // PDF文件路径
+        // HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "CCIC");
+        // 安诚
+        // String pdfFilePath = "D:\\bx\\ancheng\\f0b6430219fe3f32b2d63ab41dba95c4.pdf"; // PDF文件路径
+        // HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "ACIC");
+        // 永安
+        // String pdfFilePath = "D:\\bx\\yongan\\交强.pdf"; // PDF文件路径
+        //   HashMap<String, LocalDateTime> zmbx = getPdfContent(pdfFilePath, "YAIC");
+
+        System.out.println(zmbx.toString());
+
+    }
+
 }

+ 35 - 0
src/main/java/com/ydtech/modules/order/entity/dto/InsOrderReadPdfContentDto.java

@@ -0,0 +1,35 @@
+package com.ydtech.modules.order.entity.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * 保单读取信息配置表查询
+ *
+ */
+@Data
+@ApiModel(value = "保单读取信息")
+public class InsOrderReadPdfContentDto implements Serializable {
+
+
+    @ApiModelProperty("pdf内容")
+    private String pdfContent;
+    /**
+     * 保险公司名称
+     */
+
+    @ApiModelProperty("pdf解析内容")
+    private String readContent;
+
+    public InsOrderReadPdfContentDto() {
+    }
+
+    public InsOrderReadPdfContentDto(String pdfContent, String readContent) {
+        this.pdfContent = pdfContent;
+        this.readContent = readContent;
+    }
+}

+ 134 - 0
src/main/java/com/ydtech/modules/order/entity/po/InsOrderReadPdf.java

@@ -0,0 +1,134 @@
+package com.ydtech.modules.order.entity.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 保单读取信息配置表
+ * @TableName ins_order_read_pdf
+ */
+@TableName(value ="ins_order_read_pdf")
+@Data
+public class InsOrderReadPdf implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 保险公司id
+     */
+    private String companyId;
+
+    /**
+     * 保险公司名称
+     */
+    private String companyName;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    private String createUser;
+
+    /**
+     * 读取pdf字段
+     */
+    private String readName;
+
+    /**
+     * 截取前缀
+     */
+    private String readBegin;
+
+    /**
+     * 截取后缀
+     */
+    private String readEnd;
+
+    /**
+     * 1.yyyy-mm-dd  2. yyyy/mm/dd   3.年月日
+     */
+    private String readType;
+
+    /**
+     * 保单字段信息
+     */
+    private String orderMsg;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        InsOrderReadPdf other = (InsOrderReadPdf) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getCompanyId() == null ? other.getCompanyId() == null : this.getCompanyId().equals(other.getCompanyId()))
+            && (this.getCompanyName() == null ? other.getCompanyName() == null : this.getCompanyName().equals(other.getCompanyName()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getCreateUser() == null ? other.getCreateUser() == null : this.getCreateUser().equals(other.getCreateUser()))
+            && (this.getReadName() == null ? other.getReadName() == null : this.getReadName().equals(other.getReadName()))
+            && (this.getReadBegin() == null ? other.getReadBegin() == null : this.getReadBegin().equals(other.getReadBegin()))
+            && (this.getReadEnd() == null ? other.getReadEnd() == null : this.getReadEnd().equals(other.getReadEnd()))
+            && (this.getReadType() == null ? other.getReadType() == null : this.getReadType().equals(other.getReadType()))
+            && (this.getOrderMsg() == null ? other.getOrderMsg() == null : this.getOrderMsg().equals(other.getOrderMsg()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getCompanyId() == null) ? 0 : getCompanyId().hashCode());
+        result = prime * result + ((getCompanyName() == null) ? 0 : getCompanyName().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getCreateUser() == null) ? 0 : getCreateUser().hashCode());
+        result = prime * result + ((getReadName() == null) ? 0 : getReadName().hashCode());
+        result = prime * result + ((getReadBegin() == null) ? 0 : getReadBegin().hashCode());
+        result = prime * result + ((getReadEnd() == null) ? 0 : getReadEnd().hashCode());
+        result = prime * result + ((getReadType() == null) ? 0 : getReadType().hashCode());
+        result = prime * result + ((getOrderMsg() == null) ? 0 : getOrderMsg().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", companyId=").append(companyId);
+        sb.append(", companyName=").append(companyName);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", createUser=").append(createUser);
+        sb.append(", readName=").append(readName);
+        sb.append(", readBegin=").append(readBegin);
+        sb.append(", readEnd=").append(readEnd);
+        sb.append(", readType=").append(readType);
+        sb.append(", orderMsg=").append(orderMsg);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 27 - 0
src/main/java/com/ydtech/modules/order/entity/vo/InsOrderReadPdfContentVo.java

@@ -0,0 +1,27 @@
+package com.ydtech.modules.order.entity.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * 保单读取信息配置表查询
+ *
+ */
+@Data
+@ApiModel(value = "保单读取信息查询")
+public class InsOrderReadPdfContentVo implements Serializable {
+
+
+    @NotBlank(message = "保险公司id不能为空")
+    @ApiModelProperty("保险公司Id")
+    private String companyId;
+    /**
+     * 保险公司名称
+     */
+    @NotBlank(message = "保单路径不能为空")
+    @ApiModelProperty("保单路径")
+    private String url;
+}

Some files were not shown because too many files changed in this diff