Explorar el Código

Merge remote-tracking branch 'origin/test' into test

Qchen hace 2 años
padre
commit
e5b309ea92
Se han modificado 38 ficheros con 2932 adiciones y 505 borrados
  1. 31 1
      sql/Online.sql
  2. 21 5
      src/main/java/com/ydtech/config/resttemplate/RestTemplateConfig.java
  3. 78 0
      src/main/java/com/ydtech/modules/admin/controller/SysSysController.java
  4. 122 0
      src/main/java/com/ydtech/modules/admin/controller/SysUserLinkSysController.java
  5. 30 0
      src/main/java/com/ydtech/modules/admin/dao/SysSysMapper.java
  6. 37 0
      src/main/java/com/ydtech/modules/admin/dao/SysUserLinkSysMapper.java
  7. 47 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysSysAddDto.java
  8. 42 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysSysQueryDto.java
  9. 28 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkSysAddDto.java
  10. 47 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkSysQueryDto.java
  11. 158 0
      src/main/java/com/ydtech/modules/admin/model/po/SysSys.java
  12. 142 0
      src/main/java/com/ydtech/modules/admin/model/po/SysUserLinkSys.java
  13. 24 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysSysIdsVo.java
  14. 39 0
      src/main/java/com/ydtech/modules/admin/service/SysSysService.java
  15. 56 0
      src/main/java/com/ydtech/modules/admin/service/SysUserLinkSysService.java
  16. 80 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysSysServiceImpl.java
  17. 120 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkSysServiceImpl.java
  18. 2 1
      src/main/java/com/ydtech/modules/esm/service/impl/EsmUserReferrerServiceImpl.java
  19. 15 0
      src/main/java/com/ydtech/modules/fee/dao/InsFeeOrderConfigMapper.java
  20. 63 0
      src/main/java/com/ydtech/modules/fee/dto/po/InsFeeOrderConfig.java
  21. 46 0
      src/main/java/com/ydtech/modules/fee/dto/vo/ReCalcuLateProportion.java
  22. 73 0
      src/main/java/com/ydtech/modules/fee/dto/vo/RetailProportion.java
  23. 24 0
      src/main/java/com/ydtech/modules/fee/service/FeeRuleSchemeNewService.java
  24. 6 6
      src/main/java/com/ydtech/modules/fee/service/FeeRuleSchemeService.java
  25. 14 0
      src/main/java/com/ydtech/modules/fee/service/InsFeeOrderConfigService.java
  26. 67 9
      src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java
  27. 728 410
      src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java
  28. 25 0
      src/main/java/com/ydtech/modules/fee/service/impl/InsFeeOrderConfigServiceImpl.java
  29. 3 1
      src/main/java/com/ydtech/modules/order/controller/QrCodeController.java
  30. 44 0
      src/main/java/com/ydtech/modules/order/entity/vo/FeeOrderNewVo.java
  31. 3 0
      src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java
  32. 5 5
      src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java
  33. 6 0
      src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAgreementSaveDto.java
  34. 12 0
      src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreement.java
  35. 195 0
      src/main/java/com/ydtech/modules/protocols/entity/po/InsFeeOrderNew.java
  36. 392 67
      src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java
  37. 41 0
      src/main/resources/mapper/modules/admin/SysSysMapper.xml
  38. 66 0
      src/main/resources/mapper/modules/admin/SysUserLinkSysMapper.xml

+ 31 - 1
sql/Online.sql

@@ -28,4 +28,34 @@ ALTER TABLE `sys_amount_auditing` ADD COLUMN `account_name`  varchar(30) DEFAULT
 ALTER TABLE `sys_amount_auditing` ADD COLUMN `bank_card_num` varchar(100) DEFAULT NULL COMMENT '内部银行卡号';
 ALTER TABLE `sys_amount_auditing` ADD COLUMN `bank_name` varchar(100) DEFAULT NULL COMMENT '内部银行卡开户行名称';
 ALTER TABLE `sys_amount_auditing` ADD COLUMN `bank_num` varchar(100) DEFAULT NULL COMMENT '内部银行卡开户行号';
-ALTER TABLE `sys_amount_auditing` ADD COLUMN `account_id` varchar(30) DEFAULT NULL COMMENT '内部账户id';
+ALTER TABLE `sys_amount_auditing` ADD COLUMN `account_id` varchar(30) DEFAULT NULL COMMENT '内部账户id';
+
+
+--  add by  hxl  2024-07-15  添加系统表
+DROP TABLE IF EXISTS `sys_sys`;
+CREATE TABLE `sys_sys`  (
+                            `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+                            `system_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '系统名称',
+                            `system_code` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '系统编码',
+                            `system_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '系统描述',
+                            `system_status` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '系统状态   1. 启用 2 禁用',
+                            `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+                            `create_user` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建人',
+                            `update_time` datetime NULL DEFAULT NULL COMMENT '修改时间',
+                            `update_user` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '修改人',
+                            `system_url_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '系统前台显示图片',
+                            PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '系统表' ROW_FORMAT = Dynamic;
+
+--  add by  hxl  2024-07-15  添加系统关联用户表
+DROP TABLE IF EXISTS `sys_user_link_sys`;
+CREATE TABLE `sys_user_link_sys`  (
+                                      `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+                                      `sys_id` bigint NULL DEFAULT NULL COMMENT '系统表id',
+                                      `user_id` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户id',
+                                      `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+                                      `create_user` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建人',
+                                      `update_time` datetime NULL DEFAULT NULL COMMENT '修改状态',
+                                      `update_user` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '修改人',
+                                      PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户关联系统表' ROW_FORMAT = Dynamic;

+ 21 - 5
src/main/java/com/ydtech/config/resttemplate/RestTemplateConfig.java

@@ -21,6 +21,22 @@ import java.util.Collections;
 
 @Configuration
 public class RestTemplateConfig {
+
+    // 连接池最大连接数
+    private static final int MAX_TOTAL = 3200;
+
+    // 默认每条路线的最大值
+    private static final int DEFAULT_MAX_PER_ROUTE = 40;
+
+    // 返回数据的超时时间
+    private static final int SOCKET_TIMEOUT = 60 * 1000;
+
+    // 连接上服务器的超时时间
+    private static final int CONNECT_TIMEOUT = 3 * 1000;
+
+    // 从连接池中获取连接的超时时间
+    private static final int CONNECTION_REQUEST_TIMEOUT = 1000;
+
     @Bean
     public RestTemplate restTemplate() {
         RestTemplate restTemplate = new RestTemplate(httpRequestFactory());
@@ -40,14 +56,14 @@ public class RestTemplateConfig {
                 PlainConnectionSocketFactory.getSocketFactory()).register("https", SSLConnectionSocketFactory.getSocketFactory()).build();
         PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry);
         //设置整个连接池最大连接数
-        connectionManager.setMaxTotal(3000);
+        connectionManager.setMaxTotal(MAX_TOTAL);
 
         //路由是对maxTotal的细分
-        connectionManager.setDefaultMaxPerRoute(100);
+        connectionManager.setDefaultMaxPerRoute(DEFAULT_MAX_PER_ROUTE);
         RequestConfig requestConfig = RequestConfig.custom()
-                .setSocketTimeout(120000)  //返回数据的超时时间
-                .setConnectTimeout(3000) //连接上服务器的超时时间
-                .setConnectionRequestTimeout(1000) //从连接池中获取连接的超时时间
+                .setSocketTimeout(SOCKET_TIMEOUT)  //返回数据的超时时间
+                .setConnectTimeout(CONNECT_TIMEOUT) //连接上服务器的超时时间
+                .setConnectionRequestTimeout(CONNECTION_REQUEST_TIMEOUT) //从连接池中获取连接的超时时间
                 .build();
 
         return HttpClientBuilder.create()

+ 78 - 0
src/main/java/com/ydtech/modules/admin/controller/SysSysController.java

@@ -0,0 +1,78 @@
+package com.ydtech.modules.admin.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.dto.SysSysAddDto;
+import com.ydtech.modules.admin.model.dto.SysSysQueryDto;
+import com.ydtech.modules.admin.model.po.SysSys;
+import com.ydtech.modules.admin.model.vo.SysSysIdsVo;
+import com.ydtech.modules.admin.service.SysSysService;
+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.apache.commons.lang3.StringUtils;
+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;
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/15 9:13
+ *  @Description:  查询系统表
+ */
+@Api(tags = "系统表")
+@RequestMapping("/sysSys")
+@RestController
+public class SysSysController extends BaseController {
+
+
+    @Autowired
+    private SysSysService sysSysService;
+
+    @PostMapping("queryPage")
+    @ApiOperation(value = "系统表分页")
+    public HttpResult<BasePageResult<SysSys>> queryPage(@RequestBody SysSysQueryDto sysSysQueryDto) {
+
+        try{
+            BasePageResult<SysSys> result = sysSysService.queryPage(sysSysQueryDto);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+
+    @PostMapping("addOrUpdate")
+    @ApiOperation("系统表添加修改")
+    public HttpResult<Object> addOrUpdate(@RequestBody SysSysAddDto sysSysAddDto) {
+        if(StringUtils.isBlank(sysSysAddDto.getSystemCode())) {
+            return HttpResult.error("系统名称不能为空");
+        }
+        if(StringUtils.isBlank(sysSysAddDto.getSystemCode())) {
+            return HttpResult.error("系统编码不能为空");
+        }
+        try{
+            sysSysService.addOrUpdate(sysSysAddDto);
+            return HttpResult.ok("操作成功");
+        }catch (Exception e){
+            return HttpResult.error("操作失败"+e.getMessage());
+        }
+
+    }
+
+    @PostMapping("delete")
+    @ApiOperation("系统批量删除")
+    public HttpResult<Object> delete(@RequestBody SysSysIdsVo idsVo) {
+        if(idsVo.getIds()==null || idsVo.getIds().size()==0){
+            return HttpResult.error("系统ids不能为空");
+        }
+        try{
+            sysSysService.deleteByIds(idsVo.getIds());
+            return HttpResult.ok("删除成功");
+        }catch (Exception e){
+            return HttpResult.error("删除失败"+e.getMessage());
+        }
+    }
+}

+ 122 - 0
src/main/java/com/ydtech/modules/admin/controller/SysUserLinkSysController.java

@@ -0,0 +1,122 @@
+package com.ydtech.modules.admin.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.SysUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkSysAddDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkSysQueryDto;
+import com.ydtech.modules.admin.model.po.SysSys;
+import com.ydtech.modules.admin.model.po.SysUserLinkSys;
+import com.ydtech.modules.admin.model.vo.SysSysIdsVo;
+import com.ydtech.modules.admin.service.SysSysService;
+import com.ydtech.modules.admin.service.SysUserLinkSysService;
+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.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/15 9:54
+ *  @Description: 系统关联用户表
+ */
+@Api(tags = "系统关联用户表")
+@RequestMapping("/sysUserLinkSys")
+@RestController
+public class SysUserLinkSysController extends BaseController {
+
+
+    @Autowired
+    private SysUserLinkSysService sysUserLinkSysService;
+
+
+    @Autowired
+    private SysSysService sysSysService;
+
+    @PostMapping("queryPage")
+    @ApiOperation(value = "系统关联用户表分页")
+    public HttpResult<BasePageResult<SysUserLinkSys>> queryPage(@RequestBody SysUserLinkSysQueryDto sysUserLinkSysQueryDto) {
+
+        try{
+            BasePageResult<SysUserLinkSys> result = sysUserLinkSysService.queryPage(sysUserLinkSysQueryDto);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+
+    @PostMapping("addOrUpdate")
+    @ApiOperation("添加修改")
+    public HttpResult<Object> addOrUpdate(@RequestBody SysUserLinkSysAddDto sysUserLinkSysAddDto) {
+        if(StringUtils.isBlank(sysUserLinkSysAddDto.getUserId())) {
+            return HttpResult.error("用户工号不能为空");
+        }
+        if(CollectionUtils.isEmpty(sysUserLinkSysAddDto.getList())) {
+            return HttpResult.error("系统集合对象不能为空");
+        }
+        try{
+            sysUserLinkSysService.addOrUpdate(sysUserLinkSysAddDto);
+            return HttpResult.ok("操作成功");
+        }catch (Exception e){
+            return HttpResult.error("操作失败"+e.getMessage());
+        }
+
+    }
+
+    @PostMapping("delete")
+    @ApiOperation("系统关联批量删除")
+    public HttpResult<Object> delete(@RequestBody SysSysIdsVo idsVo) {
+        if(idsVo.getIds()==null || idsVo.getIds().size()==0){
+            return HttpResult.error("系统ids不能为空");
+        }
+        try{
+            sysUserLinkSysService.deleteByIds(idsVo.getIds());
+            return HttpResult.ok("删除成功");
+        }catch (Exception e){
+            return HttpResult.error("删除失败"+e.getMessage());
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 10:05
+     *  @Description:  查询所有用户
+     */
+    @PostMapping("queryUserPage")
+    @ApiOperation(value = "用户分页")
+    public HttpResult<BasePageResult<SysUser>> queryUserPage(@RequestBody SysUserDto sysUserDto) {
+
+        try{
+            BasePageResult<SysUser> result = sysUserLinkSysService.queryUserPage(sysUserDto);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+
+   /**
+    *  @version
+    *  @author: hxl
+    *  @Date: 2024/7/15 10:08
+    *  @Description:  查看所有启用的系统表
+    */
+    @GetMapping("querySysList")
+    @ApiOperation(value = "查看所有启用的系统表")
+    public HttpResult<List<SysSys>> querySysList() {
+
+        try{
+            List<SysSys> result = sysUserLinkSysService.querySysList();
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+}

+ 30 - 0
src/main/java/com/ydtech/modules/admin/dao/SysSysMapper.java

@@ -0,0 +1,30 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.dto.SysSysQueryDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementDto;
+import com.ydtech.modules.admin.model.po.SysSys;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+* @author Administrator
+* @description 针对表【sys_sys(系统表)】的数据库操作Mapper
+* @createDate 2024-07-15 08:59:45
+* @Entity generator.domain.SysSys
+*/
+public interface SysSysMapper extends BaseMapper<SysSys> {
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 9:21
+     *  @Description:  分页查询数据
+     */
+    Page<SysSys> queryPage(@Param("page") Page<SysUserLinkPtlAgreementDto> page, @Param("vo") SysSysQueryDto sysSysQueryDto);
+}
+
+
+
+

+ 37 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserLinkSysMapper.java

@@ -0,0 +1,37 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.SysUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkSysQueryDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkSys;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+* @author Administrator
+* @description 针对表【sys_user_link_sys(用户关联系统表)】的数据库操作Mapper
+* @createDate 2024-07-15 09:00:21
+* @Entity generator.domain.SysUserLinkSys
+*/
+public interface SysUserLinkSysMapper extends BaseMapper<SysUserLinkSys> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 10:29
+     *  @Description: 分页查询
+     */
+    Page<SysUserLinkSys> queryPage(@Param("page") Page<SysUserLinkSys> page, @Param("vo") SysUserLinkSysQueryDto sysUserLinkSysQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 10:30
+     *  @Description:  查询所有正常的用户分页查询
+     */
+    Page<SysUser> queryUserPage(@Param("page") Page<SysUser> page, @Param("vo") SysUserDto sysUserDto);
+}
+
+
+
+

+ 47 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysSysAddDto.java

@@ -0,0 +1,47 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/15 9:15
+ *  @Description:  系统表查询信息
+ */
+@Data
+@ApiModel("系统表添加对象")
+public class SysSysAddDto {
+
+    @ApiModelProperty(value = "系统id")
+    private Long id;
+    /***
+     *  系统名称
+     */
+    @ApiModelProperty(value = "系统名称")
+    private  String  systemName;
+    /***
+     * 系统编码
+     */
+    @ApiModelProperty(value = "系统编码")
+    private  String  systemCode;
+
+    /***
+     *  系统状态   1. 启用  2 禁用
+     */
+    @ApiModelProperty(value = "系统状态   1. 启用  2 禁用")
+    private  String systemStatus;
+
+    /***
+     *  系统描述
+     */
+    @ApiModelProperty(value = "系统描述")
+    private  String systemRemark;
+
+    /***
+     *  系统图片路径
+     */
+    @ApiModelProperty(value = "系统图片路径")
+    private  String systemUrlId;
+}

+ 42 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysSysQueryDto.java

@@ -0,0 +1,42 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/15 9:15
+ *  @Description:  系统表查询信息
+ */
+@Data
+@ApiModel("系统表查询信息")
+public class SysSysQueryDto {
+
+    /***
+     *  系统名称
+     */
+    @ApiModelProperty(value = "系统名称")
+    private  String  systemName;
+    /***
+     * 系统编码
+     */
+    @ApiModelProperty(value = "系统编码")
+    private  String  systemCode;
+
+    /***
+     *  系统状态   1. 启用  2 禁用
+     */
+    @ApiModelProperty(value = "系统状态   1. 启用  2 禁用")
+    private  String systemStatus;
+
+
+    @ApiModelProperty(value = "每页页数")
+    private int pageSize;
+
+    @ApiModelProperty(value = "页数")
+    private int pageNum;
+
+
+}

+ 28 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkSysAddDto.java

@@ -0,0 +1,28 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/15 9:15
+ *  @Description:  系统表查询信息
+ */
+@Data
+@ApiModel("系统表关联用户添加对象")
+public class SysUserLinkSysAddDto {
+
+    /***
+     *  系统名称
+     */
+    @ApiModelProperty(value = "用户id")
+    private  String  userId;
+
+    @ApiModelProperty(value = "系统集合对象")
+    private List<Long>   list =new ArrayList<>();
+}

+ 47 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkSysQueryDto.java

@@ -0,0 +1,47 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/15 9:15
+ *  @Description:  系统表查询信息
+ */
+@Data
+@ApiModel("系统表查询信息")
+public class SysUserLinkSysQueryDto {
+
+    /***
+     *  用户工号
+     */
+    @ApiModelProperty(value = "用户工号")
+    private  String  userId;
+    /***
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private  String  userName;
+
+    /***
+     *  系统名称
+     */
+    @ApiModelProperty(value = "系统名称")
+    private  String  systemName;
+    /***
+     * 系统编码
+     */
+    @ApiModelProperty(value = "系统编码")
+    private  String  systemCode;
+
+
+    @ApiModelProperty(value = "每页页数")
+    private int pageSize;
+
+    @ApiModelProperty(value = "页数")
+    private int pageNum;
+
+
+}

+ 158 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysSys.java

@@ -0,0 +1,158 @@
+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 lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 系统表
+ * @TableName sys_sys
+ */
+@TableName(value ="sys_sys")
+@Data
+public class SysSys implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 系统名称
+     */
+    @TableField(value = "system_name")
+    private String systemName;
+
+    /**
+     * 系统编码
+     */
+    @TableField(value = "system_code")
+    private String systemCode;
+
+    /**
+     * 系统描述
+     */
+    @TableField(value = "system_remark")
+    private String systemRemark;
+
+    /**
+     * 系统状态   1. 启用 2 禁用
+     */
+    @TableField(value = "system_status")
+    private String systemStatus;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    @TableField(value = "create_user")
+    private String createUser;
+
+    /**
+     * 修改时间
+     */
+    @TableField(value = "update_time")
+    private Date updateTime;
+
+    /**
+     * 修改人
+     */
+    @TableField(value = "update_user")
+    private String updateUser;
+
+    /**
+     * 系统前台显示图片
+     */
+    @TableField(value = "system_url_id")
+    private String systemUrlId;
+
+    @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;
+        }
+        SysSys other = (SysSys) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getSystemName() == null ? other.getSystemName() == null : this.getSystemName().equals(other.getSystemName()))
+            && (this.getSystemCode() == null ? other.getSystemCode() == null : this.getSystemCode().equals(other.getSystemCode()))
+            && (this.getSystemRemark() == null ? other.getSystemRemark() == null : this.getSystemRemark().equals(other.getSystemRemark()))
+            && (this.getSystemStatus() == null ? other.getSystemStatus() == null : this.getSystemStatus().equals(other.getSystemStatus()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getCreateUser() == null ? other.getCreateUser() == null : this.getCreateUser().equals(other.getCreateUser()))
+            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
+            && (this.getUpdateUser() == null ? other.getUpdateUser() == null : this.getUpdateUser().equals(other.getUpdateUser()))
+            && (this.getSystemUrlId() == null ? other.getSystemUrlId() == null : this.getSystemUrlId().equals(other.getSystemUrlId()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getSystemName() == null) ? 0 : getSystemName().hashCode());
+        result = prime * result + ((getSystemCode() == null) ? 0 : getSystemCode().hashCode());
+        result = prime * result + ((getSystemRemark() == null) ? 0 : getSystemRemark().hashCode());
+        result = prime * result + ((getSystemStatus() == null) ? 0 : getSystemStatus().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getCreateUser() == null) ? 0 : getCreateUser().hashCode());
+        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
+        result = prime * result + ((getUpdateUser() == null) ? 0 : getUpdateUser().hashCode());
+        result = prime * result + ((getSystemUrlId() == null) ? 0 : getSystemUrlId().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(", systemName=").append(systemName);
+        sb.append(", systemCode=").append(systemCode);
+        sb.append(", systemRemark=").append(systemRemark);
+        sb.append(", systemStatus=").append(systemStatus);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", createUser=").append(createUser);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", updateUser=").append(updateUser);
+        sb.append(", systemUrlId=").append(systemUrlId);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+
+    public SysSys() {
+    }
+
+    public SysSys(String systemName, String systemCode, String systemRemark, String systemStatus, Date createTime, String createUser, Date updateTime, String updateUser, String systemUrlId) {
+        this.systemName = systemName;
+        this.systemCode = systemCode;
+        this.systemRemark = systemRemark;
+        this.systemStatus = systemStatus;
+        this.createTime = createTime;
+        this.createUser = createUser;
+        this.updateTime = updateTime;
+        this.updateUser = updateUser;
+        this.systemUrlId = systemUrlId;
+    }
+}

+ 142 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysUserLinkSys.java

@@ -0,0 +1,142 @@
+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 lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 用户关联系统表
+ * @TableName sys_user_link_sys
+ */
+@TableName(value ="sys_user_link_sys")
+@Data
+public class SysUserLinkSys implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 系统表id
+     */
+    @TableField(value = "sys_id")
+    private Long sysId;
+
+    /**
+     * 用户id
+     */
+    @TableField(value = "user_id")
+    private String userId;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    @TableField(value = "create_user")
+    private String createUser;
+
+    /**
+     * 修改状态
+     */
+    @TableField(value = "update_time")
+    private Date updateTime;
+
+    /**
+     * 修改人
+     */
+    @TableField(value = "update_user")
+    private String updateUser;
+
+    /**
+     * 系统名称
+     */
+    @TableField(exist=false)
+    private String systemName;
+
+    /**
+     * 用户姓名
+     */
+    @TableField(exist=false)
+    private String userName;
+
+
+
+    @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;
+        }
+        SysUserLinkSys other = (SysUserLinkSys) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getSysId() == null ? other.getSysId() == null : this.getSysId().equals(other.getSysId()))
+            && (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getCreateUser() == null ? other.getCreateUser() == null : this.getCreateUser().equals(other.getCreateUser()))
+            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
+            && (this.getUpdateUser() == null ? other.getUpdateUser() == null : this.getUpdateUser().equals(other.getUpdateUser()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getSysId() == null) ? 0 : getSysId().hashCode());
+        result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getCreateUser() == null) ? 0 : getCreateUser().hashCode());
+        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
+        result = prime * result + ((getUpdateUser() == null) ? 0 : getUpdateUser().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(", sysId=").append(sysId);
+        sb.append(", userId=").append(userId);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", createUser=").append(createUser);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", updateUser=").append(updateUser);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+
+    public SysUserLinkSys() {
+    }
+
+    public SysUserLinkSys(Long sysId, String userId, Date createTime, String createUser, Date updateTime, String updateUser) {
+        this.sysId = sysId;
+        this.userId = userId;
+        this.createTime = createTime;
+        this.createUser = createUser;
+        this.updateTime = updateTime;
+        this.updateUser = updateUser;
+    }
+}

+ 24 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysSysIdsVo.java

@@ -0,0 +1,24 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/15 9:36
+ *  @Description: 系统表删除对象
+ */
+@Data
+@ApiModel
+public class SysSysIdsVo implements Serializable {
+    /***
+     * 用户ID
+     */
+    @ApiModelProperty("系统ids")
+    private List<Long> ids;
+}

+ 39 - 0
src/main/java/com/ydtech/modules/admin/service/SysSysService.java

@@ -0,0 +1,39 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.dto.SysSysAddDto;
+import com.ydtech.modules.admin.model.dto.SysSysQueryDto;
+import com.ydtech.modules.admin.model.po.SysSys;
+import com.ydtech.modules.order.entity.BasePageResult;
+
+import java.util.List;
+
+
+/**
+* @author Administrator
+* @description 针对表【sys_sys(系统表)】的数据库操作Service
+* @createDate 2024-07-15 08:59:45
+*/
+public interface SysSysService extends IService<SysSys> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 9:18
+     *  @Description:  系统表分页数据
+     */
+    BasePageResult<SysSys> queryPage(SysSysQueryDto sysSysQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 9:35
+     *  @Description: 添加系统信息
+     */
+    void addOrUpdate(SysSysAddDto sysSysAddDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 9:38
+     *  @Description: 系统删除
+     */
+    void deleteByIds(List<Long> ids);
+}

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

@@ -0,0 +1,56 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.SysUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkSysAddDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkSysQueryDto;
+import com.ydtech.modules.admin.model.po.SysSys;
+import com.ydtech.modules.admin.model.po.SysUserLinkSys;
+import com.ydtech.modules.order.entity.BasePageResult;
+
+import java.util.List;
+
+
+/**
+* @author Administrator
+* @description 针对表【sys_user_link_sys(用户关联系统表)】的数据库操作Service
+* @createDate 2024-07-15 09:00:21
+*/
+public interface SysUserLinkSysService extends IService<SysUserLinkSys> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 10:02
+     *  @Description: 查询用户关联的系统表
+     */
+    BasePageResult<SysUserLinkSys> queryPage(SysUserLinkSysQueryDto sysUserLinkSysQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 10:03
+     *  @Description:  新增或者修改数据
+     */
+    void addOrUpdate(SysUserLinkSysAddDto sysUserLinkSysAddDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 10:03
+     *  @Description: 删除
+     */
+    void deleteByIds(List<Long> ids);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 10:10
+     *  @Description: 查询所用启用的系统表
+     */
+    List<SysSys> querySysList();
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 10:10
+     *  @Description:  查看所有的用户表
+     */
+    BasePageResult<SysUser> queryUserPage(SysUserDto sysUserDto);
+}

+ 80 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysSysServiceImpl.java

@@ -0,0 +1,80 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysSysMapper;
+import com.ydtech.modules.admin.model.dto.SysSysAddDto;
+import com.ydtech.modules.admin.model.dto.SysSysQueryDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementDto;
+import com.ydtech.modules.admin.model.po.SysSys;
+import com.ydtech.modules.admin.service.SysSysService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.entity.BasePageResult;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+* @author Administrator
+* @description 针对表【sys_sys(系统表)】的数据库操作Service实现
+* @createDate 2024-07-15 08:59:45
+*/
+@Service
+public class SysSysServiceImpl extends ServiceImpl<SysSysMapper, SysSys>
+    implements SysSysService {
+
+    @Autowired
+    private SysSysMapper  sysSysMapper;
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 9:20
+     *  @Description: 分页查询数据
+     */
+    @Override
+    public BasePageResult<SysSys> queryPage(SysSysQueryDto sysSysQueryDto) {
+        Page<SysUserLinkPtlAgreementDto> page = new Page<>(sysSysQueryDto.getPageNum(),
+                sysSysQueryDto.getPageSize());
+        Page<SysSys> result = sysSysMapper.queryPage(page, sysSysQueryDto);
+        return  new BasePageResult<>(sysSysQueryDto.getPageNum(), page.getSize(), result.getTotal(), page.getPages(),
+                result.getRecords());
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 9:38
+     *  @Description:  系统表添加删除
+     */
+    @Override
+    public void addOrUpdate(SysSysAddDto sysSysAddDto) {
+
+        if(sysSysAddDto.getId()!=null){
+            //修改
+            SysSys sys = this.getById(sysSysAddDto.getId());
+            BeanUtils.copyProperties(sysSysAddDto, sys);
+            this.updateById(sys);
+        }else{
+            //添加
+            SysSys sys=new SysSys(sysSysAddDto.getSystemName(), sysSysAddDto.getSystemCode(), sysSysAddDto.getSystemRemark(),
+                    sysSysAddDto.getSystemStatus(), new Date(), new BaseController().getUser().getId(), new Date(), new BaseController().getUser().getId(), sysSysAddDto.getSystemUrlId());
+            this.save(sys);
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 9:51
+     *  @Description:  批量删除
+     */
+    @Override
+    public void deleteByIds(List<Long> ids) {
+          this.removeByIds(ids);
+    }
+}
+
+
+
+

+ 120 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkSysServiceImpl.java

@@ -0,0 +1,120 @@
+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.dao.SysUserLinkSysMapper;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.SysUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkSysAddDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkSysQueryDto;
+import com.ydtech.modules.admin.model.po.SysSys;
+import com.ydtech.modules.admin.model.po.SysUserLinkSys;
+import com.ydtech.modules.admin.service.SysSysService;
+import com.ydtech.modules.admin.service.SysUserLinkSysService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.entity.BasePageResult;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+* @author Administrator
+* @description 针对表【sys_user_link_sys(用户关联系统表)】的数据库操作Service实现
+* @createDate 2024-07-15 09:00:21
+*/
+@Service
+public class SysUserLinkSysServiceImpl extends ServiceImpl<SysUserLinkSysMapper, SysUserLinkSys>
+    implements SysUserLinkSysService {
+
+
+    @Autowired
+    private SysUserLinkSysMapper sysUserLinkSysMapper;
+
+    @Autowired
+    private SysSysService sysSysService;
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 10:11
+     *  @Description: 查询所有的关联用户的表
+     */
+    @Override
+    public BasePageResult<SysUserLinkSys> queryPage(SysUserLinkSysQueryDto sysUserLinkSysQueryDto) {
+        Page<SysUserLinkSys> page = new Page<>(sysUserLinkSysQueryDto.getPageNum(),
+                sysUserLinkSysQueryDto.getPageSize());
+        Page<SysUserLinkSys> result = sysUserLinkSysMapper.queryPage(page, sysUserLinkSysQueryDto);
+        return  new BasePageResult<>(sysUserLinkSysQueryDto.getPageNum(), page.getSize(), result.getTotal(), page.getPages(),
+                result.getRecords());
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 10:14
+     *  @Description:  新增或修改
+     */
+    @Override
+    public void addOrUpdate(SysUserLinkSysAddDto sysUserLinkSysAddDto) {
+        //先删除后添加
+        this.getBaseMapper().delete(new QueryWrapper<SysUserLinkSys>()
+                .lambda()
+                .eq(SysUserLinkSys::getUserId, sysUserLinkSysAddDto.getUserId()));
+        String userId = sysUserLinkSysAddDto.getUserId();
+        List<Long> list = sysUserLinkSysAddDto.getList();
+        List<SysUserLinkSys>  addList =new ArrayList<SysUserLinkSys>();
+        if(CollectionUtils.isNotEmpty(list)){
+            for (Long sysId : list){
+                SysUserLinkSys  sysUserLinkSys =new SysUserLinkSys(sysId, userId,new Date(), new BaseController().getUser().getId(), new Date(), new BaseController().getUser().getId());
+                addList.add(sysUserLinkSys);
+            }
+            //添加
+           this.saveBatch(addList,50);
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 10:15
+     *  @Description:  批量删除
+     */
+    @Override
+    public void deleteByIds(List<Long> ids) {
+          this.removeByIds(ids);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 10:15
+     *  @Description: 查询所有的系统集合
+     */
+    @Override
+    public List<SysSys> querySysList() {
+        LambdaQueryWrapper<SysSys> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(SysSys::getSystemStatus, "1");
+        return sysSysService.list(queryWrapper);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/15 10:15
+     *  @Description: 查询所有的用户列表
+     */
+    @Override
+    public BasePageResult<SysUser> queryUserPage(SysUserDto sysUserDto) {
+        Page<SysUser> page = new Page<>(sysUserDto.getPageNum(),
+                sysUserDto.getPageSize());
+        Page<SysUser> result = sysUserLinkSysMapper.queryUserPage(page, sysUserDto);
+        return  new BasePageResult<>(sysUserDto.getPageNum(), page.getSize(), result.getTotal(), page.getPages(),
+                result.getRecords());
+    }
+}
+
+
+
+

+ 2 - 1
src/main/java/com/ydtech/modules/esm/service/impl/EsmUserReferrerServiceImpl.java

@@ -73,7 +73,8 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
     private static void findParentsRecursive(String userId, List<EsmUserReferrer> esmUserReferrers, List<EsmUserReferrer> referrers) {
         if(esmUserReferrers.isEmpty())
             return;
-        EsmUserReferrer collect = esmUserReferrers.stream().filter(item -> item.getId().equals(userId)).findFirst().get();
+        EsmUserReferrer collect = esmUserReferrers.stream().filter(item -> item.getId().equals(userId)).findFirst()
+                .orElse(null);
         if (collect != null) {
             if (collect.getId().equals(collect.getReferrerId())) {
                 referrers.add(collect);

+ 15 - 0
src/main/java/com/ydtech/modules/fee/dao/InsFeeOrderConfigMapper.java

@@ -0,0 +1,15 @@
+package com.ydtech.modules.fee.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.fee.dto.po.InsFeeOrderConfig;
+import com.ydtech.modules.order.entity.BatchOrder;
+
+/**
+ * @author Administrator
+ * @description 针对表【InsFeeOrderConfig(费用配置)】的数据库操作Mapper
+ * @createDate 2024-6-5 16:19:14
+ * @Entity generator.domain.InsAccidentalDriving
+ */
+public interface InsFeeOrderConfigMapper extends BaseMapper<InsFeeOrderConfig> {
+
+}

+ 63 - 0
src/main/java/com/ydtech/modules/fee/dto/po/InsFeeOrderConfig.java

@@ -0,0 +1,63 @@
+package com.ydtech.modules.fee.dto.po;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
+import com.ydtech.modules.ins.model.vo.QuoteRespVo;
+import com.ydtech.modules.order.entity.InsAreaCompanyAccidentalDriving;
+import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
+import com.ydtech.utils.StringUtils;
+import com.ydtech.utils.idgen.IdGenerate;
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 费用差值配置
+ *
+ * @TableName ins_fee_order_config
+ */
+@TableName(value = "ins_fee_order_config", autoResultMap = true)
+@Data
+@ApiModel(value = "费用差值")
+@NoArgsConstructor
+@AllArgsConstructor
+public class InsFeeOrderConfig implements Serializable {
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = -6827009009645748788L;
+    /**
+     * 主键
+     */
+    @TableId(value = "id")
+    private String id;
+    /**
+     * 订单号
+     */
+    @TableField(value = "name")
+    private String name;
+    /**
+     * 协议id
+     */
+    @TableField(value = "keyword")
+    private String keyword;
+    /**
+     * 请求类型
+     */
+    @TableField(value = "val")
+    private BigDecimal val;
+
+}
+

+ 46 - 0
src/main/java/com/ydtech/modules/fee/dto/vo/ReCalcuLateProportion.java

@@ -0,0 +1,46 @@
+package com.ydtech.modules.fee.dto.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class ReCalcuLateProportion {
+
+    @ApiModelProperty("一级管理费比例")
+    private BigDecimal dept_level_1_proportion;
+
+    @ApiModelProperty("二级管理费")
+    private BigDecimal dept_level_2_proportion;
+
+    @ApiModelProperty("三级管理费")
+    private BigDecimal dept_level_3_proportion;
+
+    @ApiModelProperty("四级管理费")
+    private BigDecimal dept_level_4_proportion;
+
+    @ApiModelProperty("五级管理费")
+    private BigDecimal dept_level_5_proportion;
+
+    @ApiModelProperty("一级分销费")
+    private BigDecimal retail_level_1_proportion;
+
+    @ApiModelProperty("二级分销费")
+    private BigDecimal retail_level_2_proportion;
+
+    @ApiModelProperty("三级分销费")
+    private BigDecimal retail_level_3_proportion;
+
+    public ReCalcuLateProportion() {
+        this.dept_level_1_proportion = new BigDecimal(0);
+        this.dept_level_2_proportion = new BigDecimal(0);
+        this.dept_level_3_proportion = new BigDecimal(0);
+        this.dept_level_4_proportion = new BigDecimal(0);
+        this.dept_level_5_proportion = new BigDecimal(0);
+        this.retail_level_1_proportion = new BigDecimal(0);
+        this.retail_level_2_proportion = new BigDecimal(0);
+        this.retail_level_3_proportion = new BigDecimal(0);
+    }
+
+}

+ 73 - 0
src/main/java/com/ydtech/modules/fee/dto/vo/RetailProportion.java

@@ -0,0 +1,73 @@
+package com.ydtech.modules.fee.dto.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class RetailProportion {
+    @ApiModelProperty("交强一级分销比例")
+    private BigDecimal jqRetailLevel1Proportion;
+
+    @ApiModelProperty("交强二级分销比例")
+    private BigDecimal jqRetailLevel2Proportion;
+
+    @ApiModelProperty("交强三级分销比例")
+    private BigDecimal jqRetailLevel3Proportion;
+
+    @ApiModelProperty("商业一级分销比例")
+    private BigDecimal syRetailLevel1Proportion;
+
+    @ApiModelProperty("商业二级分销比例")
+    private BigDecimal syRetailLevel2Proportion;
+
+    @ApiModelProperty("商业三级分销比例")
+    private BigDecimal syRetailLevel3Proportion;
+
+    @ApiModelProperty("非车一级分销比例")
+    private BigDecimal noRetailLevel1Proportion;
+
+    @ApiModelProperty("非车二级分销比例")
+    private BigDecimal noRetailLevel2Proportion;
+
+    @ApiModelProperty("非车三级分销比例")
+    private BigDecimal noRetailLevel3Proportion;
+
+    public RetailProportion(){
+        this.jqRetailLevel1Proportion = new BigDecimal(0);
+        this.jqRetailLevel2Proportion = new BigDecimal(0);
+        this.jqRetailLevel3Proportion = new BigDecimal(0);
+        this.syRetailLevel1Proportion = new BigDecimal(0);
+        this.syRetailLevel2Proportion = new BigDecimal(0);
+        this.syRetailLevel3Proportion = new BigDecimal(0);
+        this.noRetailLevel1Proportion = new BigDecimal(0);
+        this.noRetailLevel2Proportion = new BigDecimal(0);
+        this.noRetailLevel3Proportion = new BigDecimal(0);
+    }
+
+    public void setProportion(double disrate1,double disrate2,double disrate3){
+        this.jqRetailLevel1Proportion = new BigDecimal(disrate1);
+        this.jqRetailLevel2Proportion = new BigDecimal(disrate2);
+        this.jqRetailLevel3Proportion = new BigDecimal(disrate3);
+        this.syRetailLevel1Proportion = new BigDecimal(disrate1);
+        this.syRetailLevel2Proportion = new BigDecimal(disrate2);
+        this.syRetailLevel3Proportion = new BigDecimal(disrate3);
+        this.noRetailLevel1Proportion = new BigDecimal(disrate1);
+        this.noRetailLevel2Proportion = new BigDecimal(disrate2);
+        this.noRetailLevel3Proportion = new BigDecimal(disrate3);
+    }
+
+    public void setProportion(ReCalcuLateProportion jqReCalcuLateProportion,ReCalcuLateProportion syReCalcuLateProportion,ReCalcuLateProportion noReCalcuLateProportion){
+        this.jqRetailLevel1Proportion = jqReCalcuLateProportion.getRetail_level_1_proportion();
+        this.jqRetailLevel2Proportion = jqReCalcuLateProportion.getRetail_level_2_proportion();
+        this.jqRetailLevel3Proportion = jqReCalcuLateProportion.getRetail_level_3_proportion();
+        this.syRetailLevel1Proportion = syReCalcuLateProportion.getRetail_level_1_proportion();
+        this.syRetailLevel2Proportion = syReCalcuLateProportion.getRetail_level_2_proportion();
+        this.syRetailLevel3Proportion = syReCalcuLateProportion.getRetail_level_3_proportion();
+        this.noRetailLevel1Proportion = noReCalcuLateProportion.getRetail_level_1_proportion();
+        this.noRetailLevel2Proportion = noReCalcuLateProportion.getRetail_level_2_proportion();
+        this.noRetailLevel3Proportion = noReCalcuLateProportion.getRetail_level_3_proportion();
+    }
+}

+ 24 - 0
src/main/java/com/ydtech/modules/fee/service/FeeRuleSchemeNewService.java

@@ -1,14 +1,18 @@
 package com.ydtech.modules.fee.service;
 
 
+import com.ydtech.modules.fee.dto.vo.ReCalcuLateProportion;
+import com.ydtech.modules.fee.dto.vo.RetailProportion;
 import com.ydtech.modules.ins.model.vo.QuoteRespVo;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.QueryOrderFeeResultVo;
 import com.ydtech.modules.order.entity.vo.QueryOrderFeeVo;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsExport;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNew;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -58,6 +62,26 @@ public interface FeeRuleSchemeNewService {
      */
     void verificationRuleFactor(InsAreaCompany insAreaCompany, InsOrders insOrders);
 
+    /**
+     * 重新计算费用
+     * @param costsProportion
+     * @param deptProportion
+     * @param retailProportion
+     * @param retailLevel
+     * @param ptlAgreementProductCostsExport
+     * @param originalRetailProportion
+     * @param type
+     * @return
+     */
+    public ReCalcuLateProportion recalculateProportion(BigDecimal costsProportion,
+                                                       BigDecimal deptProportion,
+                                                       BigDecimal retailProportion,
+                                                       BigDecimal taxRadio,
+                                                       Integer retailLevel,
+                                                       PtlAgreementProductCostsExport ptlAgreementProductCostsExport,
+                                                       RetailProportion originalRetailProportion,
+                                                       String type);
+
 
     /**
      * 计算费用因子

+ 6 - 6
src/main/java/com/ydtech/modules/fee/service/FeeRuleSchemeService.java

@@ -2,10 +2,7 @@ package com.ydtech.modules.fee.service;
 
 
 import com.ydtech.modules.ins.model.vo.QuoteRespVo;
-import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
-import com.ydtech.modules.order.entity.vo.FeeOrderNewVo;
-import com.ydtech.modules.order.entity.vo.QueryOrderFeeResultVo;
-import com.ydtech.modules.order.entity.vo.QueryOrderFeeVo;
+import com.ydtech.modules.order.entity.vo.*;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNew;
 
@@ -86,9 +83,10 @@ public interface FeeRuleSchemeService {
      * @param syProportion
      * @param noPremiums
      * @param noProportion
-     * @param proportion
+     * @param jqRetailProportion
      */
-    public BigDecimal calcRetail(BigDecimal jqPremiums,BigDecimal jqProportion, BigDecimal syPremiums,BigDecimal syProportion, BigDecimal noPremiums,BigDecimal noProportion, BigDecimal proportion);
+    FeeOrderNewVo.RetailFee calcRetail(BigDecimal jqPremiums,BigDecimal jqProportion, BigDecimal syPremiums,BigDecimal syProportion, BigDecimal noPremiums,
+                                 BigDecimal noProportion, BigDecimal jqRetailProportion, BigDecimal syRetailProportion, BigDecimal noRetailProportion);
 
 
     FeeOrderNewVo newConvertOrderFeeVoData(InsFeeOrderNew insFeeOrderNew, PtlAgreementProductCostsNew ptlAgreementProductCostsNew);
@@ -119,4 +117,6 @@ public interface FeeRuleSchemeService {
      * @return
      */
     boolean calculateProportion(FeeOrderNewVo.EntranceFee entranceFee,FeeOrderNewVo.DeptManagerFee deptManagerFee,FeeOrderNewVo.ExportFee exportFee,BigDecimal retailRadio,BigDecimal taxRadio,BigDecimal premiums);
+
+    List<DistributionLevelVo> converDistrbutionData(InsFeeOrderNew insFeeOrderNew);
 }

+ 14 - 0
src/main/java/com/ydtech/modules/fee/service/InsFeeOrderConfigService.java

@@ -0,0 +1,14 @@
+package com.ydtech.modules.fee.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.fee.dto.po.InsFeeOrderConfig;
+import com.ydtech.modules.order.entity.vo.dajia.InsAccidentalDrivingDajia;
+
+/**
+ * @author
+ * @description 针对表【InsFeeOrderConfig()】的数据库操作Service
+ * @createDate 2023-03-09 14:45:58
+ */
+public interface InsFeeOrderConfigService extends IService<InsFeeOrderConfig> {
+
+}

+ 67 - 9
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.fee.service.impl;
 
+import com.beust.ah.A;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.SysUserRole;
@@ -2640,6 +2641,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         List<FeeOrderNewVo.EntranceFee> entranceFeeList = new ArrayList<>();
         List<FeeOrderNewVo.ExportFee> exportFeeList = new ArrayList<>();
         List<FeeOrderNewVo.DeptManagerFee> deptManagerFeeList = new ArrayList<>();
+        List<FeeOrderNewVo.RetailFee> retailFeeList = new ArrayList<>();
 
         //region 入口费用
         //交强
@@ -2702,6 +2704,54 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
 
         //endregion
 
+        //region 分销
+        FeeOrderNewVo.RetailFee retailFeeLevel1 = new FeeOrderNewVo.RetailFee();
+        retailFeeLevel1.setInsuranceType("一级分销");
+        retailFeeLevel1.setJqRetailProportion(insFeeOrderNew.getJqRetailProportionLevel1());
+        retailFeeLevel1.setJqRetailPremiums(insFeeOrderNew.getJqRetailPremiumsLevel1());
+        retailFeeLevel1.setSyRetailProportion(insFeeOrderNew.getSyRetailProportionLevel1());
+        retailFeeLevel1.setSyRetailPremiums(insFeeOrderNew.getSyRetailPremiumsLevel1());
+        retailFeeLevel1.setNoRetailProportion(insFeeOrderNew.getNoRetailProportionLevel1());
+        retailFeeLevel1.setNoRetailPremiums(insFeeOrderNew.getNoRetailPremiumsLevel1());
+        retailFeeLevel1.setTotalRetailPremiums(insFeeOrderNew.getFirstDetailPremiums());
+        if(insFeeOrderNew.getFirstLevelUserId() != null) {
+            SysUser byId = sysUserService.getById(insFeeOrderNew.getFirstLevelUserId());
+            retailFeeLevel1.setUserName(byId.getName() + "(" + byId.getId() + ")");
+        }
+        retailFeeList.add(retailFeeLevel1);
+
+        FeeOrderNewVo.RetailFee retailFeeLevel2 = new FeeOrderNewVo.RetailFee();
+        retailFeeLevel2.setInsuranceType("二级分销");
+        retailFeeLevel2.setJqRetailProportion(insFeeOrderNew.getJqRetailProportionLevel2());
+        retailFeeLevel2.setJqRetailPremiums(insFeeOrderNew.getJqRetailPremiumsLevel2());
+        retailFeeLevel2.setSyRetailProportion(insFeeOrderNew.getSyRetailProportionLevel2());
+        retailFeeLevel2.setSyRetailPremiums(insFeeOrderNew.getSyRetailPremiumsLevel2());
+        retailFeeLevel2.setNoRetailProportion(insFeeOrderNew.getNoRetailProportionLevel2());
+        retailFeeLevel2.setNoRetailPremiums(insFeeOrderNew.getNoRetailPremiumsLevel2());
+        retailFeeLevel2.setTotalRetailPremiums(insFeeOrderNew.getSecondDetailPremiums());
+        if(insFeeOrderNew.getTwoLevelUserId() != null) {
+            SysUser byId = sysUserService.getById(insFeeOrderNew.getTwoLevelUserId());
+            retailFeeLevel2.setUserName(byId.getName() + "(" + byId.getId() + ")");
+        }
+        retailFeeList.add(retailFeeLevel2);
+
+        FeeOrderNewVo.RetailFee retailFeeLevel3 = new FeeOrderNewVo.RetailFee();
+        retailFeeLevel3.setInsuranceType("三级分销");
+        retailFeeLevel3.setJqRetailProportion(insFeeOrderNew.getJqRetailProportionLevel3());
+        retailFeeLevel3.setJqRetailPremiums(insFeeOrderNew.getJqRetailPremiumsLevel3());
+        retailFeeLevel3.setSyRetailProportion(insFeeOrderNew.getSyRetailProportionLevel3());
+        retailFeeLevel3.setSyRetailPremiums(insFeeOrderNew.getSyRetailPremiumsLevel3());
+        retailFeeLevel3.setNoRetailProportion(insFeeOrderNew.getNoRetailProportionLevel3());
+        retailFeeLevel3.setNoRetailPremiums(insFeeOrderNew.getNoRetailPremiumsLevel3());
+        retailFeeLevel3.setTotalRetailPremiums(insFeeOrderNew.getThirdDetailPremiums());
+        if(insFeeOrderNew.getThreeLevelUserId() != null){
+            SysUser byId = sysUserService.getById(insFeeOrderNew.getThreeLevelUserId());
+            retailFeeLevel3.setUserName(byId.getName()+"("+byId.getId()+")");
+        }
+        retailFeeList.add(retailFeeLevel3);
+
+        //endregion
+
 
         //region 出口费用
         //交强
@@ -2744,6 +2794,7 @@ insFeeOrderNew.getNoExportOtherCostsProportion(),
         feeOrderNewVo.setEntranceFee(entranceFeeList);
         feeOrderNewVo.setExportFee(exportFeeList);
         feeOrderNewVo.setDeptManagerFee(deptManagerFeeList);
+        feeOrderNewVo.setRetailFee(retailFeeList);
         return feeOrderNewVo;
     }
 
@@ -2848,36 +2899,43 @@ BigDecimal.ROUND_DOWN));
             exportFee.setSuperviseCosts(superviseCostsProportion);
         }
         exportFee.setSuperviseCostsPremiums(premium.multiply(exportFee.getSuperviseCosts().divide(new BigDecimal(100))).setScale(2,
-BigDecimal.ROUND_DOWN));
-        exportFee.setOtherCostsPremiums(premium.multiply(exportFee.getOtherCostsProportion().divide(new BigDecimal(100))).setScale(2,
                 BigDecimal.ROUND_DOWN));
-        exportFee.setTotalAmount(premium.multiply(exportFee.getTotalProportion().divide(new BigDecimal(100))).setScale(2,
+        exportFee.setOtherCostsPremiums(premium.multiply(exportFee.getOtherCostsProportion().divide(new BigDecimal(100))).setScale(2,
                 BigDecimal.ROUND_DOWN));
+        exportFee.setTotalAmount(exportFee.getSuperviseCostsPremiums().add(exportFee.getOtherCostsPremiums()));
 
         return exportFee;
     }
 
     @Override
-    public BigDecimal calcRetail(BigDecimal jqPremiums,BigDecimal jqProportion, BigDecimal syPremiums,BigDecimal syProportion, BigDecimal noPremiums,
-                                 BigDecimal noProportion, BigDecimal proportion) {
+    public FeeOrderNewVo.RetailFee calcRetail(BigDecimal jqPremiums,BigDecimal jqProportion, BigDecimal syPremiums,BigDecimal syProportion, BigDecimal noPremiums,
+                                 BigDecimal noProportion, BigDecimal jqRetailProportion, BigDecimal syRetailProportion, BigDecimal noRetailProportion) {
         BigDecimal jqRetail = new BigDecimal(0);
         BigDecimal syRetail = new BigDecimal(0);
         BigDecimal noRetail = new BigDecimal(0);
+        FeeOrderNewVo.RetailFee retailFee = new FeeOrderNewVo.RetailFee();
         //计算交强险分销
         if(jqProportion.compareTo(new BigDecimal(0)) > 0) {
-            jqRetail = jqPremiums.multiply(proportion.divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN);
+            jqRetail = jqPremiums.multiply(jqRetailProportion.divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN);
+            retailFee.setJqRetailPremiums(jqRetail);
+            retailFee.setJqRetailProportion(jqRetailProportion);
         }
         //计算商业险分销
         if(syProportion.compareTo(new BigDecimal(0)) > 0) {
-            syRetail = syPremiums.multiply(proportion.divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN);
+            syRetail = syPremiums.multiply(syRetailProportion.divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN);
+            retailFee.setSyRetailPremiums(syRetail);
+            retailFee.setSyRetailProportion(syRetailProportion);
         }
         //计算非车险分销
         if(noProportion.compareTo(new BigDecimal(0)) > 0) {
-            noRetail = noPremiums.multiply(proportion.divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN);
+            noRetail = noPremiums.multiply(noRetailProportion.divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN);
+            retailFee.setNoRetailPremiums(noRetail);
+            retailFee.setNoRetailProportion(noRetailProportion);
         }
         //总分销
         BigDecimal totalRetail = jqRetail.add(syRetail).add(noRetail).setScale(2,BigDecimal.ROUND_DOWN);
-        return totalRetail;
+        retailFee.setTotalRetailPremiums(totalRetail);
+        return retailFee;
     }
 
     public List<DistributionLevelVo> converDistrbutionData(InsFeeOrderNew insFeeOrderNew) {

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 728 - 410
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java


+ 25 - 0
src/main/java/com/ydtech/modules/fee/service/impl/InsFeeOrderConfigServiceImpl.java

@@ -0,0 +1,25 @@
+package com.ydtech.modules.fee.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.fee.dao.InsFeeOrderConfigMapper;
+import com.ydtech.modules.fee.dto.po.InsFeeOrderConfig;
+import com.ydtech.modules.fee.service.InsFeeOrderConfigService;
+import com.ydtech.modules.order.dao.InsAccidentalDrivingDaJiaMapper;
+import com.ydtech.modules.order.entity.vo.dajia.InsAccidentalDrivingDajia;
+import com.ydtech.modules.order.service.InsAccidentalDrivingDaJiaService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author Administrator
+ * @description 针对表【InsFeeOrderConfig()】的数据库操作Service实现
+ * @createDate 2023-03-09 14:45:58
+ */
+@Service
+public class InsFeeOrderConfigServiceImpl extends ServiceImpl<InsFeeOrderConfigMapper, InsFeeOrderConfig>
+        implements InsFeeOrderConfigService {
+
+}
+
+
+
+

+ 3 - 1
src/main/java/com/ydtech/modules/order/controller/QrCodeController.java

@@ -9,6 +9,7 @@ import com.ydtech.modules.order.entity.vo.QrCodeVo;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
 import com.ydtech.modules.order.service.InsOrderQrCodeService;
 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.Value;
@@ -58,7 +59,8 @@ public class QrCodeController {
             QrCodeVo qrCodeVo = new QrCodeVo();
             String qrCodeUrl = "";
             //是否是太平洋保险 大家财险
-            if ("TPIC1000000".equals(insAreaCompany.getCompanyId()) || "DJPC1000000".equals(insAreaCompany.getCompanyId()) || "HTIC1000000".equals(insAreaCompany.getCompanyId())) {
+            if ("TPIC1000000".equals(insAreaCompany.getCompanyId()) || "DJPC1000000".equals(insAreaCompany.getCompanyId())
+                    || ("HTIC1000000".equals(insAreaCompany.getCompanyId()) && PtlApiType.PTL_API_2.getCode() == insAreaCompany.getApiType())) {
                 qrCodeUrl = insAreaCompany.getPaymentLink();
             } else {
                 qrCodeUrl = qrCodeGenAddress + "?areaCompanyId=" + areaCompanyId;

+ 44 - 0
src/main/java/com/ydtech/modules/order/entity/vo/FeeOrderNewVo.java

@@ -30,6 +30,9 @@ public class FeeOrderNewVo implements Serializable {
     @ApiModelProperty("部门管理费用")
     private List<FeeOrderNewVo.DeptManagerFee> deptManagerFee;
 
+    @ApiModelProperty("分销费用")
+    private List<RetailFee> retailFee;
+
     /**
      * 入口费用
      */
@@ -109,4 +112,45 @@ public class FeeOrderNewVo implements Serializable {
         @ApiModelProperty("利润差值")
         private BigDecimal profitMarginPremiums;
     }
+
+    @ApiModel(description = "分销费用")
+    @Data
+    public static class RetailFee{
+        @ApiModelProperty("险种")
+        private String insuranceType;
+
+        @ApiModelProperty("姓名")
+        private String userName;
+
+        @ApiModelProperty("交强分销比例")
+        private BigDecimal jqRetailProportion;
+
+        @ApiModelProperty("交强分销费用")
+        private BigDecimal jqRetailPremiums;
+
+        @ApiModelProperty("商业分销比例")
+        private BigDecimal syRetailProportion;
+
+        @ApiModelProperty("商业分销费用")
+        private BigDecimal syRetailPremiums;
+
+        @ApiModelProperty("非车分销比例")
+        private BigDecimal noRetailProportion;
+
+        @ApiModelProperty("非车分销费用")
+        private BigDecimal noRetailPremiums;
+
+        @ApiModelProperty("总分销金额")
+        private BigDecimal totalRetailPremiums;
+
+        public RetailFee(){
+            jqRetailProportion = new BigDecimal(0);
+            jqRetailPremiums = new BigDecimal(0);
+            syRetailProportion = new BigDecimal(0);
+            syRetailPremiums = new BigDecimal(0);
+            noRetailProportion = new BigDecimal(0);
+            noRetailPremiums = new BigDecimal(0);
+            totalRetailPremiums = new BigDecimal(0);
+        }
+    }
 }

+ 3 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -667,10 +667,13 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
 
         costsNews.get(0).setJqCarCostsProportion(quoteVo.getJqSuperviseCostsProportion().toString());
         costsNews.get(0).setJqCarOtherCostsProportion(quoteVo.getJqOtherCostsProportion().toString());
+        costsNews.get(0).setJqCostsProportion(quoteVo.getJqSuperviseCostsProportion().add(quoteVo.getJqOtherCostsProportion()).toString());
         costsNews.get(0).setSyCarCostsProportion(quoteVo.getSySuperviseCostsProportion().toString());
         costsNews.get(0).setSyCarOtherCostsProportion(quoteVo.getSyOtherCostsProportion().toString());
+        costsNews.get(0).setSyCostsProportion(quoteVo.getSySuperviseCostsProportion().add(quoteVo.getSyOtherCostsProportion()).toString());
         costsNews.get(0).setNoCarCostsProportion(quoteVo.getNoSuperviseCostsProportion().toString());
         costsNews.get(0).setNoCarOtherCostsProportion(quoteVo.getNoOtherCostsProportion().toString());
+        costsNews.get(0).setNoCostsProportion(quoteVo.getNoSuperviseCostsProportion().add(quoteVo.getNoOtherCostsProportion()).toString());
 
         //计算费用
         feeRuleSchemeNewService.calcCostsExternal(costsNews.get(0),insAreaCompany);

+ 5 - 5
src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java

@@ -468,7 +468,7 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
 
             TimeEntity timeEntity = getRepeatStartEndTime(errorMsg, JQ_REGEX);
 
-            if(ObjectUtils.isEmpty(timeEntity)){
+            if(StringUtils.isEmpty(timeEntity.getCoverageEndDate())){
                 return "";
             }
 
@@ -558,7 +558,7 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
             log.info("永诚API方式 - xml请求 ------------报价 ->   商业险重复投保----------------");
             TimeEntity timeEntity = getRepeatStartEndTime(errorMsg, SY_REGEX);
 
-            if(ObjectUtils.isEmpty(timeEntity)){
+            if(StringUtils.isEmpty(timeEntity.getCoverageEndDate())){
                 return "";
             }
 
@@ -597,15 +597,15 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
             //终保日期
             TimeEntity timeEntity = getRepeatStartEndTime(ciMsg, SY_REGEX);
 
-            if(ObjectUtils.isEmpty(timeEntity)){
+            if(StringUtils.isEmpty(timeEntity.getCoverageEndDate())){
                 return false;
             }
 
             System.err.println("商业新起:" + timeEntity.getNewStartDate());
-            System.err.println("商业新止:" + timeEntity.getCoverageEndDate());
+            System.err.println("商业新止:" + timeEntity.getNewEndDate());
 
             m.getRequestLabel().getCondition().getBase().setTInsrncBgnTmSY(timeEntity.getNewStartDate());
-            m.getRequestLabel().getCondition().getBase().setTInsrncEndTmSY(timeEntity.getCoverageEndDate());
+            m.getRequestLabel().getCondition().getBase().setTInsrncEndTmSY(timeEntity.getNewEndDate());
 
             //转保信息清空  重新报价
             m.getRequestLabel().getCondition().getVhl().setCBusType("0");

+ 6 - 0
src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAgreementSaveDto.java

@@ -82,4 +82,10 @@ public class PtlAgreementSaveDto implements Serializable {
 
     @ApiModelProperty("外部订单协议")
     private Integer isExternal;
+
+    @ApiModelProperty("业务描述")
+    private String businessDescription;
+
+    @ApiModelProperty("工号描述")
+    private String jobDescription;
 }

+ 12 - 0
src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreement.java

@@ -233,6 +233,18 @@ public class PtlAgreement implements Serializable {
     @TableField(value = "audit_type")
     private Integer auditType;
 
+    /**
+     * 业务描述
+     */
+    @TableField(value = "business_description")
+    private String businessDescription;
+
+    /**
+     * 工号描述
+     */
+    @TableField(value = "job_description")
+    private String jobDescription;
+
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 

+ 195 - 0
src/main/java/com/ydtech/modules/protocols/entity/po/InsFeeOrderNew.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ydtech.modules.order.entity.vo.FeeOrderNewVo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -356,6 +357,133 @@ public class InsFeeOrderNew {
     @TableField(exist = false)
     private String threeLevelUserInfo;
 
+    /**
+     * 一级交强分销比例
+     */
+    @ApiModelProperty(value = "一级交强分销比例")
+    @TableField(value = "jq_retail_proportion_level_1")
+    private BigDecimal jqRetailProportionLevel1;
+
+    /**
+     * 一级交强分销费
+     */
+    @ApiModelProperty(value = "一级交强分销费")
+    @TableField(value = "jq_retail_premiums_level_1")
+    private BigDecimal jqRetailPremiumsLevel1;
+
+    /**
+     * 一级商业分销比例
+     */
+    @ApiModelProperty(value = "一级商业分销比例")
+    @TableField(value = "sy_retail_proportion_level_1")
+    private BigDecimal syRetailProportionLevel1;
+
+    /**
+     * 一级商业分销费
+     */
+    @ApiModelProperty(value = "一级商业分销费")
+    @TableField(value = "sy_retail_premiums_level_1")
+    private BigDecimal syRetailPremiumsLevel1;
+
+    /**
+     * 一级非车分销比例
+     */
+    @ApiModelProperty(value = "一级非车分销比例")
+    @TableField(value = "no_retail_proportion_level_1")
+    private BigDecimal noRetailProportionLevel1;
+
+    /**
+     * 一级非车分销费
+     */
+    @ApiModelProperty(value = "一级非车分销费")
+    @TableField(value = "no_retail_premiums_level_1")
+    private BigDecimal noRetailPremiumsLevel1;
+
+    /**
+     * 二级交强分销比例
+     */
+    @ApiModelProperty(value = "二级交强分销比例")
+    @TableField(value = "jq_retail_proportion_level_2")
+    private BigDecimal jqRetailProportionLevel2;
+
+    /**
+     * 二级交强分销费
+     */
+    @ApiModelProperty(value = "二级交强分销费")
+    @TableField(value = "jq_retail_premiums_level_2")
+    private BigDecimal jqRetailPremiumsLevel2;
+
+    /**
+     * 二级商业分销比例
+     */
+    @ApiModelProperty(value = "二级商业分销比例")
+    @TableField(value = "sy_retail_proportion_level_2")
+    private BigDecimal syRetailProportionLevel2;
+
+    /**
+     * 二级商业分销费
+     */
+    @ApiModelProperty(value = "二级商业分销费")
+    @TableField(value = "sy_retail_premiums_level_2")
+    private BigDecimal syRetailPremiumsLevel2;
+
+    /**
+     * 二级非车分销比例
+     */
+    @ApiModelProperty(value = "二级非车分销比例")
+    @TableField(value = "no_retail_proportion_level_2")
+    private BigDecimal noRetailProportionLevel2;
+
+    /**
+     * 二级非车分销费
+     */
+    @ApiModelProperty(value = "二级非车分销费")
+    @TableField(value = "no_retail_premiums_level_2")
+    private BigDecimal noRetailPremiumsLevel2;
+
+    /**
+     * 三级交强分销比例
+     */
+    @ApiModelProperty(value = "三级交强分销比例")
+    @TableField(value = "jq_retail_proportion_level_3")
+    private BigDecimal jqRetailProportionLevel3;
+
+    /**
+     * 三级交强分销费
+     */
+    @ApiModelProperty(value = "三级交强分销费")
+    @TableField(value = "jq_retail_premiums_level_3")
+    private BigDecimal jqRetailPremiumsLevel3;
+
+    /**
+     * 三级商业分销比例
+     */
+    @ApiModelProperty(value = "三级商业分销比例")
+    @TableField(value = "sy_retail_proportion_level_3")
+    private BigDecimal syRetailProportionLevel3;
+
+    /**
+     * 三级商业分销费
+     */
+    @ApiModelProperty(value = "三级商业分销费")
+    @TableField(value = "sy_retail_premiums_level_3")
+    private BigDecimal syRetailPremiumsLevel3;
+
+    /**
+     * 三级非车分销比例
+     */
+    @ApiModelProperty(value = "三级非车分销比例")
+    @TableField(value = "no_retail_proportion_level_3")
+    private BigDecimal noRetailProportionLevel3;
+
+    /**
+     * 三级非车分销费
+     */
+    @ApiModelProperty(value = "三级非车分销费")
+    @TableField(value = "no_retail_premiums_level_3")
+    private BigDecimal noRetailPremiumsLevel3;
+
+
     @ApiModelProperty(value = "分销等级")
     @TableField(value = "distribution_status")
     private String distributionStatus;
@@ -457,4 +585,71 @@ public class InsFeeOrderNew {
         this.setDeptId(deptId);
         this.setUserId(userId);
     }
+
+    /**
+     * 赋值分销
+     */
+    public void assignRetail(FeeOrderNewVo.RetailFee retailFeeLevel1,FeeOrderNewVo.RetailFee retailFeeLevel2,FeeOrderNewVo.RetailFee retailFeeLevel3){
+        this.setJqRetailProportionLevel1(retailFeeLevel1.getJqRetailProportion());
+        this.setJqRetailProportionLevel2(retailFeeLevel2.getJqRetailProportion());
+        this.setJqRetailProportionLevel3(retailFeeLevel3.getJqRetailProportion());
+        this.setJqRetailPremiumsLevel1(retailFeeLevel1.getJqRetailPremiums());
+        this.setJqRetailPremiumsLevel2(retailFeeLevel2.getJqRetailPremiums());
+        this.setJqRetailPremiumsLevel3(retailFeeLevel3.getJqRetailPremiums());
+
+        this.setSyRetailProportionLevel1(retailFeeLevel1.getSyRetailProportion());
+        this.setSyRetailProportionLevel2(retailFeeLevel2.getSyRetailProportion());
+        this.setSyRetailProportionLevel3(retailFeeLevel3.getSyRetailProportion());
+        this.setSyRetailPremiumsLevel1(retailFeeLevel1.getSyRetailPremiums());
+        this.setSyRetailPremiumsLevel2(retailFeeLevel2.getSyRetailPremiums());
+        this.setSyRetailPremiumsLevel3(retailFeeLevel3.getSyRetailPremiums());
+
+        this.setNoRetailProportionLevel1(retailFeeLevel1.getNoRetailProportion());
+        this.setNoRetailProportionLevel2(retailFeeLevel2.getNoRetailProportion());
+        this.setNoRetailProportionLevel3(retailFeeLevel3.getNoRetailProportion());
+        this.setNoRetailPremiumsLevel1(retailFeeLevel1.getNoRetailPremiums());
+        this.setNoRetailPremiumsLevel2(retailFeeLevel2.getNoRetailPremiums());
+        this.setNoRetailPremiumsLevel3(retailFeeLevel3.getNoRetailPremiums());
+    }
+
+
+    private BigDecimal twoPeople(BigDecimal number){
+        return number.setScale(2, BigDecimal.ROUND_DOWN);
+    }
+
+    /**
+     * 赋值机构管理信息
+     */
+    public void assignDept(FeeOrderNewVo.DeptManagerFee jqDeptManagerFee,FeeOrderNewVo.DeptManagerFee syDeptManagerFee, FeeOrderNewVo.DeptManagerFee noDeptManagerFee){
+        this.setJqDeptProportionLevel1(jqDeptManagerFee.getDeptProportionLevelOne());
+        this.setJqDeptPremiumsLevel1(twoPeople(jqDeptManagerFee.getDeptPremiumsLevelOne()));
+        this.setJqDeptProportionLevel2(jqDeptManagerFee.getDeptProportionLevelTwo());
+        this.setJqDeptPremiumsLevel2(twoPeople(jqDeptManagerFee.getDeptPremiumsLevelTwo()));
+        this.setJqDeptProportionLevel3(jqDeptManagerFee.getDeptProportionLevelThree());
+        this.setJqDeptPremiumsLevel3(twoPeople(jqDeptManagerFee.getDeptPremiumsLevelThree()));
+        this.setJqDeptProportionLevel4(jqDeptManagerFee.getDeptProportionLevelFoure());
+        this.setJqDeptPremiumsLevel4(twoPeople(jqDeptManagerFee.getDeptPremiumsLevelFoure()));
+        this.setJqDeptProportionLevel5(jqDeptManagerFee.getDeptProportionLevelFive());
+        this.setJqDeptPremiumsLevel5(twoPeople(jqDeptManagerFee.getDeptPremiumsLevelFive()));
+        this.setSyDeptProportionLevel1(syDeptManagerFee.getDeptProportionLevelOne());
+        this.setSyDeptPremiumsLevel1(twoPeople(syDeptManagerFee.getDeptPremiumsLevelOne()));
+        this.setSyDeptProportionLevel2(syDeptManagerFee.getDeptProportionLevelTwo());
+        this.setSyDeptPremiumsLevel2(twoPeople(syDeptManagerFee.getDeptPremiumsLevelTwo()));
+        this.setSyDeptProportionLevel3(syDeptManagerFee.getDeptProportionLevelThree());
+        this.setSyDeptPremiumsLevel3(twoPeople(syDeptManagerFee.getDeptPremiumsLevelThree()));
+        this.setSyDeptProportionLevel4(syDeptManagerFee.getDeptProportionLevelFoure());
+        this.setSyDeptPremiumsLevel4(twoPeople(syDeptManagerFee.getDeptPremiumsLevelFoure()));
+        this.setSyDeptProportionLevel5(syDeptManagerFee.getDeptProportionLevelFive());
+        this.setSyDeptPremiumsLevel5(twoPeople(syDeptManagerFee.getDeptPremiumsLevelFive()));
+        this.setNoDeptProportionLevel1(noDeptManagerFee.getDeptProportionLevelOne());
+        this.setNoDeptPremiumsLevel1(twoPeople(noDeptManagerFee.getDeptPremiumsLevelOne()));
+        this.setNoDeptProportionLevel2(noDeptManagerFee.getDeptProportionLevelTwo());
+        this.setNoDeptPremiumsLevel2(twoPeople(noDeptManagerFee.getDeptPremiumsLevelTwo()));
+        this.setNoDeptProportionLevel3(noDeptManagerFee.getDeptProportionLevelThree());
+        this.setNoDeptPremiumsLevel3(twoPeople(noDeptManagerFee.getDeptPremiumsLevelThree()));
+        this.setNoDeptProportionLevel4(noDeptManagerFee.getDeptProportionLevelFoure());
+        this.setNoDeptPremiumsLevel4(twoPeople(noDeptManagerFee.getDeptPremiumsLevelFoure()));
+        this.setNoDeptProportionLevel5(noDeptManagerFee.getDeptProportionLevelFive());
+        this.setNoDeptPremiumsLevel5(twoPeople(noDeptManagerFee.getDeptPremiumsLevelFive()));
+    }
 }

+ 392 - 67
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java

@@ -7,11 +7,18 @@ import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.esm.model.EsmRetail;
+import com.ydtech.modules.esm.model.EsmUserReferrer;
+import com.ydtech.modules.esm.service.EsmRetailService;
+import com.ydtech.modules.fee.dto.vo.ReCalcuLateProportion;
+import com.ydtech.modules.fee.dto.vo.RetailProportion;
 import com.ydtech.modules.fee.dto.vo.RetailStoreFee;
 import com.ydtech.modules.fee.service.CostsCalcService;
+import com.ydtech.modules.fee.service.FeeRuleSchemeNewService;
 import com.ydtech.modules.fee.service.FeeRuleSchemeService;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.entity.vo.DistributionLevelVo;
 import com.ydtech.modules.order.entity.vo.FeeOrderNewRecordVo;
 import com.ydtech.modules.order.entity.vo.FeeOrderNewVo;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
@@ -1096,10 +1103,20 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
     @Autowired
     FeeRuleSchemeService feeRuleSchemeService;
 
+    @Autowired
+    FeeRuleSchemeNewService feeRuleSchemeNewService;
+
+    @Autowired
+    EsmRetailService esmRetailService;
+
+
     @Transactional
     @Override
     public FeeOrderNewVo costsAdjust(FeeOrderNewRecordVo feeOrderNewRecordVo) {
         FeeOrderNewVo feeOrderNewVo = feeOrderNewRecordVo.getFeeOrderNewVoNew();
+
+        //region 费用校验
+
         //验证费用是否匹配
         if (feeOrderNewVo.getEntranceFee().get(0).getSuperviseCosts().add(feeOrderNewVo.getEntranceFee().get(0).getOtherCostsProportion())
                 .compareTo(feeOrderNewVo.getEntranceFee().get(0).getTotalProportion()) != 0) {
@@ -1118,9 +1135,14 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
         if(!modifyCostsHistory(feeOrderNewRecordVo)){
             throw new SystemException("调整费用失败");
         }
+
+        //endregion
+
         String feeId = feeOrderNewRecordVo.getFeeId();
         InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getById(feeId);
-
+        InsAreaCompany insAreaCompany = insAreaCompanyService.getById(insFeeOrderNew.getInsOrderNo());
+        InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
+        SysUser sysUser = sysUserService.findByUserId(insOrders.getUserid());
 
 
         //查询协议是否包含税
@@ -1130,127 +1152,387 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
             taxRadio = new BigDecimal("1.06");
         }
 
-        //分销费用信息 使用比例
-        InsAreaCompany insAreaCompany = insAreaCompanyService.getById(insFeeOrderNew.getInsOrderNo());
-        InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
-        SysUser sysUser = sysUserService.findByUserId(insOrders.getUserid());
-        RetailStoreFee retailStoreFee = costsCalcService.getRetailStoreFee(sysUser.getId(),
-                insFeeOrderNew.getJqPremium().add(insFeeOrderNew.getSyPremium()).add(insFeeOrderNew.getNoPremium()));
 
 
         List<FeeOrderNewVo.EntranceFee> entranceFeeList = new ArrayList<>();
         List<FeeOrderNewVo.DeptManagerFee> deptManagerFeeList = new ArrayList<>();
         List<FeeOrderNewVo.ExportFee> exportFeeList = new ArrayList<>();
+        List<FeeOrderNewVo.RetailFee> retailFeeList = new ArrayList<>();
 
         //region 入口费用
         //交强入口费用
-        FeeOrderNewVo.EntranceFee jqEntranceFee = feeRuleSchemeService.calcEntranceFee(insFeeOrderNew.getJqPremium(),
+        FeeOrderNewVo.EntranceFee jqEntranceFee = feeRuleSchemeService.calcEntranceFee(
+                insFeeOrderNew.getJqPremium(),
                 feeOrderNewVo.getEntranceFee().get(0).getSuperviseCosts(),
-                feeOrderNewVo.getEntranceFee().get(0).getOtherCostsProportion(), taxRadio);
+                feeOrderNewVo.getEntranceFee().get(0).getOtherCostsProportion(),
+                taxRadio);
+
         jqEntranceFee.setInsuranceType("交强险");
         entranceFeeList.add(jqEntranceFee);
 
         //商业入口费用
         FeeOrderNewVo.EntranceFee syEntranceFee = feeRuleSchemeService.calcEntranceFee(insFeeOrderNew.getSyPremium(),
                 feeOrderNewVo.getEntranceFee().get(1).getSuperviseCosts(),
-                feeOrderNewVo.getEntranceFee().get(1).getOtherCostsProportion(), taxRadio);
+                feeOrderNewVo.getEntranceFee().get(1).getOtherCostsProportion(),
+                taxRadio);
+
         syEntranceFee.setInsuranceType("商业险");
         entranceFeeList.add(syEntranceFee);
 
         //非车入口费用
         FeeOrderNewVo.EntranceFee noEntranceFee = feeRuleSchemeService.calcEntranceFee(insFeeOrderNew.getNoPremium(),
                 feeOrderNewVo.getEntranceFee().get(2).getSuperviseCosts(),
-                feeOrderNewVo.getEntranceFee().get(2).getOtherCostsProportion(), taxRadio);
+                feeOrderNewVo.getEntranceFee().get(2).getOtherCostsProportion(),
+                taxRadio);
+
         noEntranceFee.setInsuranceType("非车险");
         entranceFeeList.add(noEntranceFee);
 
         //endregion
 
+        //region 重新计算管理费比例和分销比例
+
+        List<EsmRetail> esmRetailList = esmRetailService.selectList(" where t.deptid=? and t.status = '1' ",
+                new Object[]{sysUser.getDeptId()});
+
+        Integer retailLevel = 0;
+
+        PtlAgreementProductCostsExport ptlAgreementProductCostsExport = new PtlAgreementProductCostsExport();
+
+        //默认分销比例设置
+        RetailProportion retailProportion = new RetailProportion();
+        if(!Objects.isNull(esmRetailList) && !esmRetailList.isEmpty())
+        {
+            retailLevel = Integer.parseInt(esmRetailList.get(0).getRetailtype());
+            //赋值默认的分销比例
+            retailProportion.setProportion(esmRetailList.get(0).getDisrate1(),esmRetailList.get(0).getDisrate2(),esmRetailList.get(0).getDisrate3());
+        }
+
+
+        //获取交强机构管理费总比例
+        BigDecimal jqDeptProportion =
+                     feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelOne()
+                .add(feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelTwo())
+                .add(feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelThree())
+                .add(feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelFoure())
+                .add(feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelFive());
+        //获取商业机构管理费总比例
+        BigDecimal syDeptProportion =
+                feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelOne()
+                        .add(feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelTwo())
+                        .add(feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelThree())
+                        .add(feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelFoure())
+                        .add(feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelFive());
+        //获取非车机构管理费总比例
+        BigDecimal noDeptProportion =
+                feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelOne()
+                        .add(feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelTwo())
+                        .add(feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelThree())
+                        .add(feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelFoure())
+                        .add(feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelFive());
+
+        ptlAgreementProductCostsExport.setJqExportRadioLevel1(feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelOne());
+        ptlAgreementProductCostsExport.setJqExportRadioLevel2(feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelTwo());
+        ptlAgreementProductCostsExport.setJqExportRadioLevel3(feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelThree());
+        ptlAgreementProductCostsExport.setJqExportRadioLevel4(feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelFoure());
+        ptlAgreementProductCostsExport.setJqExportRadioLevel5(feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelFive());
+
+        ptlAgreementProductCostsExport.setSyExportRadioLevel1(feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelOne());
+        ptlAgreementProductCostsExport.setSyExportRadioLevel2(feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelTwo());
+        ptlAgreementProductCostsExport.setSyExportRadioLevel3(feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelThree());
+        ptlAgreementProductCostsExport.setSyExportRadioLevel4(feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelFoure());
+        ptlAgreementProductCostsExport.setSyExportRadioLevel5(feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelFive());
+
+        ptlAgreementProductCostsExport.setNoCarExportRadioLevel1(feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelOne());
+        ptlAgreementProductCostsExport.setNoCarExportRadioLevel2(feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelTwo());
+        ptlAgreementProductCostsExport.setNoCarExportRadioLevel3(feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelThree());
+        ptlAgreementProductCostsExport.setNoCarExportRadioLevel4(feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelFoure());
+        ptlAgreementProductCostsExport.setNoCarExportRadioLevel5(feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelFive());
+
+
+        //获取交强分销总比例
+        BigDecimal jqRetailProportion = retailProportion.getJqRetailLevel1Proportion()
+                .add(retailProportion.getJqRetailLevel2Proportion())
+                .add(retailProportion.getJqRetailLevel3Proportion());
+
+        //获取商业分销总比例
+        BigDecimal syRetailProportion = retailProportion.getSyRetailLevel1Proportion()
+                .add(retailProportion.getSyRetailLevel2Proportion())
+                .add(retailProportion.getSyRetailLevel3Proportion());
+
+        //获取非车分销总比例
+        BigDecimal noRetailProportion = retailProportion.getNoRetailLevel1Proportion()
+                .add(retailProportion.getNoRetailLevel2Proportion())
+                .add(retailProportion.getNoRetailLevel3Proportion());
+
+        //重新计算比例  入口是否超出支付的比例
+        ReCalcuLateProportion jqReCalcuLateProportion = feeRuleSchemeNewService.recalculateProportion(
+                feeOrderNewVo.getEntranceFee().get(0).getTotalProportion(),
+                jqDeptProportion,
+                jqRetailProportion,
+                taxRadio,
+                retailLevel,
+                ptlAgreementProductCostsExport,
+                retailProportion,
+                "jq");
+
+        ReCalcuLateProportion syReCalcuLateProportion = feeRuleSchemeNewService.recalculateProportion(
+                feeOrderNewVo.getEntranceFee().get(1).getTotalProportion(),
+                syDeptProportion,
+                syRetailProportion,
+                taxRadio,
+                retailLevel,
+                ptlAgreementProductCostsExport,
+                retailProportion,
+                "sy");
+
+        ReCalcuLateProportion noReCalcuLateProportion = feeRuleSchemeNewService.recalculateProportion(
+                feeOrderNewVo.getEntranceFee().get(2).getTotalProportion(),
+                noDeptProportion,
+                noRetailProportion,
+                taxRadio,
+                retailLevel,
+                ptlAgreementProductCostsExport,
+                retailProportion,
+                "no");
+
+        retailProportion.setProportion(jqReCalcuLateProportion,syReCalcuLateProportion,noReCalcuLateProportion);
+//        ptlAgreementProductCostsExportService.updateById(ptlAgreementProductCostsExport);
+
+
+        //endregion
+
+        //region 计算分销费用
+
+        //获取分销比例
+
+        //分销总比例
+        BigDecimal jqRetailRadio = new BigDecimal("0");
+        BigDecimal syRetailRadio = new BigDecimal("0");
+        BigDecimal noRetailRadio = new BigDecimal("0");
+
+        FeeOrderNewVo.RetailFee retailFeeLevel3 = new FeeOrderNewVo.RetailFee();
+        FeeOrderNewVo.RetailFee retailFeeLevel2 = new FeeOrderNewVo.RetailFee();
+        FeeOrderNewVo.RetailFee retailFeeLevel1 = new FeeOrderNewVo.RetailFee();
+
+        if (esmRetailList != null && !esmRetailList.isEmpty()) {
+            EsmRetail esmRetail = esmRetailList.get(0);
+            //分销等级
+            insFeeOrderNew.setDistributionStatus(esmRetailList.get(0).getRetailtype());
+
+            if (esmRetail != null) {
+                if (Integer.parseInt(esmRetail.getRetailtype()) >= 3) {
+                    insFeeOrderNew.setThirdDetailProportion(retailProportion.getJqRetailLevel3Proportion());
+                    retailFeeLevel3 = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(),
+                            insFeeOrderNew.getJqCostsProportion(),
+                            insFeeOrderNew.getSyPremium(),
+                            insFeeOrderNew.getSyCostsProportion().add(insFeeOrderNew.getSyOtherCostsProportion()),
+                            insFeeOrderNew.getNoPremium(),
+                            insFeeOrderNew.getNoCostsProportion().add(insFeeOrderNew.getNoOtherCostsProportion()),
+                            retailProportion.getJqRetailLevel3Proportion(),
+                            retailProportion.getSyRetailLevel3Proportion(),
+                            retailProportion.getNoRetailLevel3Proportion());
+                    if(insFeeOrderNew.getFirstLevelUserId() != null){
+                        SysUser byId = sysUserService.getById(insFeeOrderNew.getThreeLevelUserId());
+                        retailFeeLevel3.setUserName(byId.getName()+"("+byId.getId()+")");
+                    }
+                    insFeeOrderNew.setThirdDetailPremiums(retailFeeLevel3.getTotalRetailPremiums());
+                }else{
+                    insFeeOrderNew.setThirdDetailProportion(new BigDecimal(0));
+                }
+                if (Integer.parseInt(esmRetail.getRetailtype()) >= 2) {
+                    insFeeOrderNew.setSecondDetailProportion(retailProportion.getJqRetailLevel2Proportion());
+                    retailFeeLevel2 = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(),
+                            insFeeOrderNew.getJqCostsProportion(),
+                            insFeeOrderNew.getSyPremium(),
+                            insFeeOrderNew.getSyCostsProportion(),
+                            insFeeOrderNew.getNoPremium(),
+                            insFeeOrderNew.getNoCostsProportion(),
+                            retailProportion.getJqRetailLevel2Proportion(),
+                            retailProportion.getSyRetailLevel2Proportion(),
+                            retailProportion.getNoRetailLevel2Proportion());
+
+                    insFeeOrderNew.setSecondDetailPremiums(retailFeeLevel2.getTotalRetailPremiums());
+                    if(insFeeOrderNew.getTwoLevelUserId() != null) {
+                        SysUser byId = sysUserService.getById(insFeeOrderNew.getTwoLevelUserId());
+                        retailFeeLevel2.setUserName(byId.getName() + "(" + byId.getId() + ")");
+                    }
+                }else{
+                    insFeeOrderNew.setSecondDetailProportion(new BigDecimal(0));
+                }
+                if (Integer.parseInt(esmRetail.getRetailtype()) >= 1) {
+                    insFeeOrderNew.setFirstDetailProportion(retailProportion.getJqRetailLevel1Proportion());
+                    retailFeeLevel1 = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(),
+                            insFeeOrderNew.getJqCostsProportion(),
+                            insFeeOrderNew.getSyPremium(),
+                            insFeeOrderNew.getSyCostsProportion(),
+                            insFeeOrderNew.getNoPremium(),
+                            insFeeOrderNew.getNoCostsProportion(),
+                            retailProportion.getJqRetailLevel1Proportion(),
+                            retailProportion.getSyRetailLevel1Proportion(),
+                            retailProportion.getNoRetailLevel1Proportion());
+
+                    insFeeOrderNew.setFirstDetailPremiums(retailFeeLevel1.getTotalRetailPremiums());
+                    if(insFeeOrderNew.getFirstLevelUserId() != null) {
+                        SysUser byId = sysUserService.getById(insFeeOrderNew.getFirstLevelUserId());
+                        retailFeeLevel1.setUserName(byId.getName() + "(" + byId.getId() + ")");
+                    }
+                }else{
+                    insFeeOrderNew.setFirstDetailProportion(new BigDecimal(0));
+                }
+            }else{
+                insFeeOrderNew.setFirstDetailPremiums(new BigDecimal(0));
+                insFeeOrderNew.setSecondDetailPremiums(new BigDecimal(0));
+                insFeeOrderNew.setThirdDetailPremiums(new BigDecimal(0));
+            }
+        }else{
+            insFeeOrderNew.setFirstDetailProportion(new BigDecimal(0));
+            insFeeOrderNew.setSecondDetailProportion(new BigDecimal(0));
+            insFeeOrderNew.setThirdDetailProportion(new BigDecimal(0));
+        }
+        jqRetailRadio = jqRetailRadio.add(retailFeeLevel1.getJqRetailProportion())
+                .add(retailFeeLevel2.getJqRetailProportion())
+                .add(retailFeeLevel3.getJqRetailProportion());
+
+        syRetailRadio = syRetailRadio.add(retailFeeLevel1.getSyRetailProportion())
+                .add(retailFeeLevel2.getSyRetailProportion())
+                .add(retailFeeLevel3.getSyRetailProportion());
+
+        noRetailRadio = noRetailRadio.add(retailFeeLevel1.getNoRetailProportion())
+                .add(retailFeeLevel2.getNoRetailProportion())
+                .add(retailFeeLevel3.getNoRetailProportion());
+
+        retailFeeLevel1.setInsuranceType("一级分销");
+        retailFeeLevel2.setInsuranceType("二级分销");
+        retailFeeLevel3.setInsuranceType("三级分销");
+
+        retailFeeList.add(retailFeeLevel1);
+        retailFeeList.add(retailFeeLevel2);
+        retailFeeList.add(retailFeeLevel3);
+
+
+
+
+
+        insFeeOrderNew.assignRetail(retailFeeLevel1,retailFeeLevel2,retailFeeLevel3);
+
+        //endregion
+
+        //region 设置机构管理费
+
+        //交强机构管理费
+        BigDecimal jqDeptRadio =
+                jqReCalcuLateProportion.getDept_level_1_proportion()
+                        .add(jqReCalcuLateProportion.getDept_level_2_proportion())
+                        .add(jqReCalcuLateProportion.getDept_level_3_proportion())
+                        .add(jqReCalcuLateProportion.getDept_level_4_proportion())
+                        .add(jqReCalcuLateProportion.getDept_level_5_proportion());
+
+        FeeOrderNewVo.DeptManagerFee jqDeptManagerFee = feeRuleSchemeService.calcDeptManagerFee(
+                insFeeOrderNew.getJqPremium(),
+                jqReCalcuLateProportion.getDept_level_1_proportion(),
+                jqReCalcuLateProportion.getDept_level_2_proportion(),
+                jqReCalcuLateProportion.getDept_level_3_proportion(),
+                jqReCalcuLateProportion.getDept_level_4_proportion(),
+                jqReCalcuLateProportion.getDept_level_5_proportion());
 
-        //region 部门管理费用
-        //交强部门管理费用
-        FeeOrderNewVo.DeptManagerFee jqDeptManagerFee = feeRuleSchemeService.calcDeptManagerFee(insFeeOrderNew.getJqPremium(),
-                feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelOne(),
-                feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelTwo(),
-                feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelThree(),
-                feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelFoure(),
-                feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelFive());
         jqDeptManagerFee.setInsuranceType("交强险");
         deptManagerFeeList.add(jqDeptManagerFee);
 
-        //商业部门管理费用
-        FeeOrderNewVo.DeptManagerFee syDeptManagerFee = feeRuleSchemeService.calcDeptManagerFee(insFeeOrderNew.getSyPremium(),
-                feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelOne(),
-                feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelTwo(),
-                feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelThree(),
-                feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelFoure(),
-                feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelFive());
+        BigDecimal syDeptRadio =
+                syReCalcuLateProportion.getDept_level_1_proportion()
+                        .add(syReCalcuLateProportion.getDept_level_2_proportion())
+                        .add(syReCalcuLateProportion.getDept_level_3_proportion())
+                        .add(syReCalcuLateProportion.getDept_level_4_proportion())
+                        .add(syReCalcuLateProportion.getDept_level_5_proportion());
+
+        FeeOrderNewVo.DeptManagerFee syDeptManagerFee = feeRuleSchemeService.calcDeptManagerFee(
+                insFeeOrderNew.getSyPremium(),
+                syReCalcuLateProportion.getDept_level_1_proportion(),
+                syReCalcuLateProportion.getDept_level_2_proportion(),
+                syReCalcuLateProportion.getDept_level_3_proportion(),
+                syReCalcuLateProportion.getDept_level_4_proportion(),
+                syReCalcuLateProportion.getDept_level_5_proportion());
+
         syDeptManagerFee.setInsuranceType("商业险");
         deptManagerFeeList.add(syDeptManagerFee);
 
-        //非车部门管理费用
-        FeeOrderNewVo.DeptManagerFee noDeptManagerFee = feeRuleSchemeService.calcDeptManagerFee(insFeeOrderNew.getNoPremium(),
-                feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelOne(),
-                feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelTwo(),
-                feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelThree(),
-                feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelFoure(),
-                feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelFive());
+        BigDecimal noDeptRadio =
+                noReCalcuLateProportion.getDept_level_1_proportion()
+                        .add(noReCalcuLateProportion.getDept_level_2_proportion())
+                        .add(noReCalcuLateProportion.getDept_level_3_proportion())
+                        .add(noReCalcuLateProportion.getDept_level_4_proportion())
+                        .add(noReCalcuLateProportion.getDept_level_5_proportion());
+
+        FeeOrderNewVo.DeptManagerFee noDeptManagerFee = feeRuleSchemeService.calcDeptManagerFee(
+                insFeeOrderNew.getNoPremium(),
+                noReCalcuLateProportion.getDept_level_1_proportion(),
+                noReCalcuLateProportion.getDept_level_2_proportion(),
+                noReCalcuLateProportion.getDept_level_3_proportion(),
+                noReCalcuLateProportion.getDept_level_4_proportion(),
+                noReCalcuLateProportion.getDept_level_5_proportion());
+
         noDeptManagerFee.setInsuranceType("非车险");
         deptManagerFeeList.add(noDeptManagerFee);
 
+        insFeeOrderNew.assignDept(jqDeptManagerFee,syDeptManagerFee,noDeptManagerFee);
 
-        BigDecimal jqDeptManagerTotalProportion = jqDeptManagerFee.getDeptProportionLevelOne().add(jqDeptManagerFee.getDeptProportionLevelTwo())
-                .add(jqDeptManagerFee.getDeptProportionLevelThree()).add(jqDeptManagerFee.getDeptProportionLevelFoure())
-                .add(jqDeptManagerFee.getDeptProportionLevelFive());
-
-        BigDecimal syDeptManagerTotalProportion = syDeptManagerFee.getDeptProportionLevelOne().add(syDeptManagerFee.getDeptProportionLevelTwo())
-                .add(syDeptManagerFee.getDeptProportionLevelThree()).add(syDeptManagerFee.getDeptProportionLevelFoure())
-                .add(syDeptManagerFee.getDeptProportionLevelFive());
-
-        BigDecimal noDeptManagerTotalProportion = noDeptManagerFee.getDeptProportionLevelOne().add(noDeptManagerFee.getDeptProportionLevelTwo())
-                .add(noDeptManagerFee.getDeptProportionLevelThree()).add(noDeptManagerFee.getDeptProportionLevelFoure())
-                .add(noDeptManagerFee.getDeptProportionLevelFive());
 
         //endregion
 
-
         //region 出口费用
         //查费用里的手续费
         InsFeeOrderNew insFeeOrderNewServiceById = insFeeOrderNewService.getById(feeOrderNewRecordVo.getFeeId());
         PtlAgreementProductCostsNew costsNew = ptlAgreementProductCostsNewService.getById(insFeeOrderNewServiceById.getCostsId());
         //交强出口费用
-        FeeOrderNewVo.ExportFee jqExportFee = feeRuleSchemeService.calcExportFee(insFeeOrderNew.getJqPremium(), new BigDecimal(costsNew.getJqCostsExportProportion()),
-                feeOrderNewVo.getEntranceFee().get(0).getTotalProportion(), jqDeptManagerTotalProportion, retailStoreFee.getRetailStoreRadio(), taxRadio);
+        FeeOrderNewVo.ExportFee jqExportFee = feeRuleSchemeService.calcExportFee(
+                insFeeOrderNew.getJqPremium(),
+                new BigDecimal(costsNew.getJqCostsExportProportion()),
+                feeOrderNewVo.getEntranceFee().get(0).getTotalProportion(),
+                jqDeptRadio,
+                jqRetailRadio,
+                taxRadio);
+
         jqExportFee.setInsuranceType("交强险");
         exportFeeList.add(jqExportFee);
 
 
         //商业出口费用
-        FeeOrderNewVo.ExportFee syExportFee = feeRuleSchemeService.calcExportFee(insFeeOrderNew.getSyPremium(), new BigDecimal(costsNew.getSyCostsExportProportion()),
-                feeOrderNewVo.getEntranceFee().get(1).getTotalProportion(), syDeptManagerTotalProportion, retailStoreFee.getRetailStoreRadio(), taxRadio);
+        FeeOrderNewVo.ExportFee syExportFee = feeRuleSchemeService.calcExportFee(
+                insFeeOrderNew.getSyPremium(),
+                new BigDecimal(costsNew.getSyCostsExportProportion()),
+                feeOrderNewVo.getEntranceFee().get(1).getTotalProportion(),
+                syDeptRadio,
+                syRetailRadio,
+                taxRadio);
+
         syExportFee.setInsuranceType("商业险");
         exportFeeList.add(syExportFee);
 
 
         //非车出口费用
-        FeeOrderNewVo.ExportFee noExportFee = feeRuleSchemeService.calcExportFee(insFeeOrderNew.getNoPremium(), new BigDecimal(costsNew.getNoCostsExportProportion()),
-                feeOrderNewVo.getEntranceFee().get(2).getTotalProportion(), noDeptManagerTotalProportion, retailStoreFee.getRetailStoreRadio(), taxRadio);
+        FeeOrderNewVo.ExportFee noExportFee = feeRuleSchemeService.calcExportFee(
+                insFeeOrderNew.getNoPremium(),
+                new BigDecimal(costsNew.getNoCostsExportProportion()),
+                feeOrderNewVo.getEntranceFee().get(2).getTotalProportion(),
+                noDeptRadio,
+                noRetailRadio,
+                taxRadio);
+
         noExportFee.setInsuranceType("非车险");
         exportFeeList.add(noExportFee);
 
         //endregion
 
 
-
-
-
         FeeOrderNewVo resultFeeOrderNewVo = new FeeOrderNewVo();
         resultFeeOrderNewVo.setEntranceFee(entranceFeeList);
         resultFeeOrderNewVo.setExportFee(exportFeeList);
-
+//        resultFeeOrderNewVo.setRetailFee(distributionLevelVoList);
 
 
         //ins_fee_order_new 保存新的费用
+        //入口
         insFeeOrderNew.setJqCostsProportion(entranceFeeList.get(0).getTotalProportion());
         insFeeOrderNew.setJqCostsPremiums(entranceFeeList.get(0).getTotalAmount());
         insFeeOrderNew.setJqSuperviseCostsProportion(entranceFeeList.get(0).getSuperviseCosts());
@@ -1323,24 +1605,64 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
         insFeeOrderNew.setNoExportOtherCostsProportion(exportFeeList.get(2).getOtherCostsProportion());
         insFeeOrderNew.setNoExportOtherCostsPremiums(exportFeeList.get(2).getOtherCostsPremiums());
 
-        //region 计算差值
-        //入口 - 出口 - 机构管理费 5级 - 分销费  = 差值
+        //分销费用
+        insFeeOrderNew.setJqRetailProportionLevel1(retailFeeLevel1.getJqRetailProportion());
+        insFeeOrderNew.setJqRetailPremiumsLevel1(retailFeeLevel1.getJqRetailPremiums());
+        insFeeOrderNew.setJqRetailProportionLevel2(retailFeeLevel2.getJqRetailProportion());
+        insFeeOrderNew.setJqRetailPremiumsLevel2(retailFeeLevel2.getJqRetailPremiums());
+        insFeeOrderNew.setJqRetailProportionLevel3(retailFeeLevel3.getJqRetailProportion());
+        insFeeOrderNew.setJqRetailPremiumsLevel3(retailFeeLevel3.getJqRetailPremiums());
+
+        insFeeOrderNew.setSyRetailProportionLevel1(retailFeeLevel1.getSyRetailProportion());
+        insFeeOrderNew.setSyRetailPremiumsLevel1(retailFeeLevel1.getSyRetailPremiums());
+        insFeeOrderNew.setSyRetailProportionLevel2(retailFeeLevel2.getSyRetailProportion());
+        insFeeOrderNew.setSyRetailPremiumsLevel2(retailFeeLevel2.getSyRetailPremiums());
+        insFeeOrderNew.setSyRetailProportionLevel3(retailFeeLevel3.getSyRetailProportion());
+        insFeeOrderNew.setSyRetailPremiumsLevel3(retailFeeLevel3.getSyRetailPremiums());
+
+        insFeeOrderNew.setNoRetailProportionLevel1(retailFeeLevel1.getNoRetailProportion());
+        insFeeOrderNew.setNoRetailPremiumsLevel1(retailFeeLevel1.getNoRetailPremiums());
+        insFeeOrderNew.setNoRetailProportionLevel2(retailFeeLevel2.getNoRetailProportion());
+        insFeeOrderNew.setNoRetailPremiumsLevel2(retailFeeLevel2.getNoRetailPremiums());
+        insFeeOrderNew.setNoRetailProportionLevel3(retailFeeLevel3.getNoRetailProportion());
+        insFeeOrderNew.setNoRetailPremiumsLevel3(retailFeeLevel3.getNoRetailPremiums());
+
+        insFeeOrderNew.setFirstDetailPremiums(
+                retailFeeLevel1.getJqRetailPremiums()
+                        .add(retailFeeLevel1.getSyRetailPremiums())
+                        .add(retailFeeLevel1.getNoRetailPremiums())
+        );
+
+        insFeeOrderNew.setSecondDetailPremiums(
+                retailFeeLevel2.getJqRetailPremiums()
+                        .add(retailFeeLevel2.getSyRetailPremiums())
+                        .add(retailFeeLevel2.getNoRetailPremiums())
+        );
+
+        insFeeOrderNew.setThirdDetailPremiums(
+                retailFeeLevel3.getJqRetailPremiums()
+                        .add(retailFeeLevel3.getSyRetailPremiums())
+                        .add(retailFeeLevel3.getNoRetailPremiums())
+        );
+
+        //region 计算利润差值
+        //入口 - 出口 - 机构管理费 1-5级 - 分销费  = 差值
 
         //分销交强费用
         //分开算  1  2 3 级
-        BigDecimal jqFirst = insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getFirstDetailProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
-        BigDecimal jqSecond = insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getSecondDetailProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
-        BigDecimal jqThird = insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getThirdDetailProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        BigDecimal jqFirst = insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getJqRetailProportionLevel1().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        BigDecimal jqSecond = insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getJqRetailProportionLevel2().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        BigDecimal jqThird = insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getJqRetailProportionLevel3().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
         BigDecimal jqFenXiao = jqFirst.add(jqSecond).add(jqThird);
         //分销商业费用
-        BigDecimal syFirst = insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getFirstDetailProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
-        BigDecimal sySecond = insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getSecondDetailProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
-        BigDecimal syThird = insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getThirdDetailProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        BigDecimal syFirst = insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getSyRetailProportionLevel1().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        BigDecimal sySecond = insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getSyRetailProportionLevel2().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        BigDecimal syThird = insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getSyRetailProportionLevel3().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
         BigDecimal syFenXiao = syFirst.add(sySecond).add(syThird);
         //分销非车费用
-        BigDecimal noFirst = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getFirstDetailProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
-        BigDecimal noSecond = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getSecondDetailProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
-        BigDecimal noThird = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getThirdDetailProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        BigDecimal noFirst = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getNoRetailProportionLevel1().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        BigDecimal noSecond = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getNoRetailProportionLevel2().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        BigDecimal noThird = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getNoRetailProportionLevel3().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
         BigDecimal noFenXiao = noFirst.add(noSecond).add(noThird);
 
 
@@ -1362,6 +1684,7 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
         insFeeOrderNew.setSyProfitMarginPremiums(syDifference);
         deptManagerFeeList.get(1).setProfitMarginPremiums(syDifference);
 
+
         BigDecimal noDifference = noEntranceFee.getTotalAmount().subtract(
                         (noExportFee.getSuperviseCostsPremiums().add(noExportFee.getOtherCostsPremiums())))
                 .subtract(
@@ -1371,15 +1694,17 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
 
         insFeeOrderNew.setNoProfitMarginPremiums(noDifference);
         deptManagerFeeList.get(2).setProfitMarginPremiums(noDifference);
+
         //endregion
         resultFeeOrderNewVo.setDeptManagerFee(deptManagerFeeList);
-
+        resultFeeOrderNewVo.setRetailFee(retailFeeList);
         //保存新的比例
         insFeeOrderNewService.updateById(insFeeOrderNew);
         return resultFeeOrderNewVo;
 
     }
 
+
     /**
      * 修改费用历史记录
      * @return

+ 41 - 0
src/main/resources/mapper/modules/admin/SysSysMapper.xml

@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.admin.dao.SysSysMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.po.SysSys">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="systemName" column="system_name" jdbcType="VARCHAR"/>
+            <result property="systemCode" column="system_code" jdbcType="VARCHAR"/>
+            <result property="systemRemark" column="system_remark" jdbcType="VARCHAR"/>
+            <result property="systemStatus" column="system_status" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="createUser" column="create_user" jdbcType="VARCHAR"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="updateUser" column="update_user" jdbcType="VARCHAR"/>
+            <result property="systemUrlId" column="system_url_id" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,system_name,system_code,
+        system_remark,system_status,create_time,
+        create_user,update_time,update_user,
+        system_url_id
+    </sql>
+    <select id="queryPage" resultType="com.ydtech.modules.admin.model.po.SysSys">
+         select *
+
+
+         from  sys_sys s
+         <where>
+             <if test="vo.systemName != null and vo.systemName != ''">
+                 AND system_name like CONCAT('%', #{vo.systemName}, '%')
+             </if>
+             <if test="vo.systemCode != null and vo.systemCode != ''">
+                 AND system_name = #{vsystemCode}
+             </if>
+         </where>
+         order by create_time  desc
+    </select>
+</mapper>

+ 66 - 0
src/main/resources/mapper/modules/admin/SysUserLinkSysMapper.xml

@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.admin.dao.SysUserLinkSysMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.po.SysUserLinkSys">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="sysId" column="sys_id" jdbcType="BIGINT"/>
+            <result property="userId" column="user_id" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="createUser" column="create_user" jdbcType="VARCHAR"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="updateUser" column="update_user" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,sys_id,user_id,
+        create_time,create_user,update_time,
+        update_user
+    </sql>
+
+    <select id="queryPage" resultType="com.ydtech.modules.admin.model.po.SysUserLinkSys">
+        select
+            link.id as id,
+            link.sys_id as sysId,
+            link.user_id as userId,
+            s.system_name as systemName,
+            su.name as userName
+        from  sys_user_link_sys link
+        left join sys_sys s  on s.id=link.sys_id
+        left join sys_user su on su.id =link.user_id
+        <where>
+            <if test="vo.systemName != null and vo.systemName != ''">
+                AND s.system_name like CONCAT('%', #{vo.systemName}, '%')
+            </if>
+            <if test="vo.systemCode != null and vo.systemCode != ''">
+                AND s.system_name = #{vsystemCode}
+            </if>
+            <if test="vo.userName != null and vo.userName != ''">
+                AND su.name like CONCAT('%', #{vo.userName}, '%')
+            </if>
+            <if test="vo.userId != null and vo.userId != ''">
+                AND su.id = #{vo.userId}
+            </if>
+        </where>
+    </select>
+
+    <select id="queryUserPage" resultType="com.ydtech.modules.admin.model.SysUser">
+        select *
+        from  sys_user su
+        <where>
+             su.status=1  and su.id !='admin'
+            <if test="vo.deptId != null and vo.deptId != ''">
+                AND su.dept_id like CONCAT('', #{vo.deptId}, '%')
+            </if>
+            <if test="vo.name != null and vo.name != ''">
+                AND su.name like CONCAT('%', #{vo.name}, '%')
+            </if>
+            <if test="vo.userId != null and vo.userId != ''">
+                AND su.id = #{vo.userId}
+            </if>
+        </where>
+    </select>
+
+</mapper>

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio