Просмотр исходного кода

Merge branch 'test' into test-wks

wks 1 год назад
Родитель
Сommit
6e92d7fc03
52 измененных файлов с 2263 добавлено и 194 удалено
  1. 11 0
      src/main/java/com/ydtech/aop/GetStringBufferContent.java
  2. 223 0
      src/main/java/com/ydtech/aop/StringBufferContentAspect.java
  3. 29 0
      src/main/java/com/ydtech/modules/admin/constants/DataPermissionsEnum.java
  4. 83 0
      src/main/java/com/ydtech/modules/admin/controller/DataPermissionsController.java
  5. 76 0
      src/main/java/com/ydtech/modules/admin/controller/InsRolePermissionsController.java
  6. 61 0
      src/main/java/com/ydtech/modules/admin/controller/taskStatistics/TaskStatisticsController.java
  7. 26 0
      src/main/java/com/ydtech/modules/admin/dao/DataPermissionsMapper.java
  8. 14 0
      src/main/java/com/ydtech/modules/admin/dao/InsRoleMenuPermissionsMapper.java
  9. 18 0
      src/main/java/com/ydtech/modules/admin/dao/InsRolePermissionsMapper.java
  10. 2 0
      src/main/java/com/ydtech/modules/admin/dao/TaskStatisticsMapper.java
  11. 112 0
      src/main/java/com/ydtech/modules/admin/model/DataPermissions.java
  12. 59 0
      src/main/java/com/ydtech/modules/admin/model/InsRoleMenuPermissions.java
  13. 75 0
      src/main/java/com/ydtech/modules/admin/model/InsRolePermissions.java
  14. 42 0
      src/main/java/com/ydtech/modules/admin/model/dto/BusinessAgentExcel.java
  15. 39 0
      src/main/java/com/ydtech/modules/admin/model/dto/BusinessCompanyExcel.java
  16. 66 0
      src/main/java/com/ydtech/modules/admin/model/dto/DataPermissionsDto.java
  17. 60 0
      src/main/java/com/ydtech/modules/admin/model/dto/GetChannelExcel.java
  18. 56 0
      src/main/java/com/ydtech/modules/admin/model/dto/InsRoleMenuPermissionsDto.java
  19. 51 0
      src/main/java/com/ydtech/modules/admin/model/dto/InsRolePermissionsDto.java
  20. 53 0
      src/main/java/com/ydtech/modules/admin/model/vo/DataPermissionsVo.java
  21. 38 0
      src/main/java/com/ydtech/modules/admin/service/DataPermissionsService.java
  22. 20 0
      src/main/java/com/ydtech/modules/admin/service/InsRoleMenuPermissionsService.java
  23. 40 0
      src/main/java/com/ydtech/modules/admin/service/InsRolePermissionsService.java
  24. 20 0
      src/main/java/com/ydtech/modules/admin/service/TaskStatisticsService.java
  25. 69 0
      src/main/java/com/ydtech/modules/admin/service/impl/DataPermissionsServiceImpl.java
  26. 62 0
      src/main/java/com/ydtech/modules/admin/service/impl/InsRoleMenuPermissionsServiceImpl.java
  27. 99 0
      src/main/java/com/ydtech/modules/admin/service/impl/InsRolePermissionsServiceImpl.java
  28. 152 0
      src/main/java/com/ydtech/modules/admin/service/impl/TaskStatisticsServiceImpl.java
  29. 18 0
      src/main/java/com/ydtech/modules/admin/utils/DataParams.java
  30. 13 2
      src/main/java/com/ydtech/modules/esm/controller/EsmInsCompanyController.java
  31. 7 0
      src/main/java/com/ydtech/modules/esm/dao/EsmInsCompanyMapper.java
  32. 7 0
      src/main/java/com/ydtech/modules/esm/service/EsmInsCompanyService.java
  33. 10 1
      src/main/java/com/ydtech/modules/esm/service/impl/EsmInsCompanyServiceImpl.java
  34. 33 36
      src/main/java/com/ydtech/modules/fee/dto/vo/RuleAttrMappingVo.java
  35. 2 0
      src/main/java/com/ydtech/modules/fnc/controller/contract/ContractController.java
  36. 1 0
      src/main/java/com/ydtech/modules/fnc/service/contract/impl/contractServiceImpl.java
  37. 122 116
      src/main/java/com/ydtech/modules/fnc/service/impl/InsPlyIncomeServiceImpl.java
  38. 6 1
      src/main/java/com/ydtech/modules/fnc/vo/ContractVo.java
  39. 3 0
      src/main/java/com/ydtech/modules/fnc/vo/InsPlyIncomeVo.java
  40. 26 15
      src/main/java/com/ydtech/modules/inv/utils/CheckInsPlyComeUtils.java
  41. 2 2
      src/main/java/com/ydtech/modules/order/controller/ExternalOrderController.java
  42. 9 0
      src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java
  43. 1 1
      src/main/java/com/ydtech/modules/protocols/controller/PtlNewAgreementController.java
  44. 6 4
      src/main/java/com/ydtech/modules/protocols/service/PtlAgreementProductCostsNewService.java
  45. 6 10
      src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java
  46. 43 0
      src/main/resources/mapper/modules/admin/DataPermissionsMapper.xml
  47. 19 0
      src/main/resources/mapper/modules/admin/InsRoleMenuPermissionsMapper.xml
  48. 16 0
      src/main/resources/mapper/modules/admin/InsRolePermissionsMapper.xml
  49. 109 1
      src/main/resources/mapper/modules/admin/TaskStatisticsMapper.xml
  50. 17 0
      src/main/resources/mapper/modules/esm/EsmInsCompanyMapper.xml
  51. 3 2
      src/main/resources/mapper/modules/fnc/contract/ContractMapper.xml
  52. 128 3
      src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

+ 11 - 0
src/main/java/com/ydtech/aop/GetStringBufferContent.java

@@ -0,0 +1,11 @@
+package com.ydtech.aop;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target({ElementType.METHOD, ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface GetStringBufferContent {
+}

+ 223 - 0
src/main/java/com/ydtech/aop/StringBufferContentAspect.java

@@ -0,0 +1,223 @@
+package com.ydtech.aop;
+
+import com.ydtech.modules.admin.constants.DataPermissionsEnum;
+import com.ydtech.modules.admin.dao.DataPermissionsMapper;
+import com.ydtech.modules.admin.model.DataPermissions;
+import com.ydtech.modules.admin.model.InsRoleMenuPermissions;
+import com.ydtech.modules.admin.model.InsRolePermissions;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.InsRoleMenuPermissionsDto;
+import com.ydtech.modules.admin.model.dto.InsRolePermissionsDto;
+import com.ydtech.modules.admin.model.vo.DataPermissionsVo;
+import com.ydtech.modules.admin.service.DataPermissionsService;
+import com.ydtech.modules.admin.service.InsRoleMenuPermissionsService;
+import com.ydtech.modules.admin.service.InsRolePermissionsService;
+import com.ydtech.modules.admin.utils.DataParams;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.inv.model.vo.InvAccountQueryVo;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Aspect
+@Component
+public class StringBufferContentAspect {
+    @Autowired
+    private HttpServletRequest request;
+
+
+    @Autowired
+    private DataPermissionsMapper dataPermissionsMapper;
+
+    @Autowired
+    private InsRoleMenuPermissionsService insRoleMenuPermissionsService;
+
+    @Autowired
+    private InsRolePermissionsService insRolePermissionsService;
+
+    @Autowired
+    private DataPermissionsService  dataPermissionsService;
+
+    @Pointcut("@annotation(GetStringBufferContent)")
+    public void getStringBufferContentPointcut() {
+    }
+
+    @Around("getStringBufferContentPointcut()")
+    public Object aroundGetStringBufferContent(ProceedingJoinPoint joinPoint) throws Throwable {
+        // 获取HttpServletRequest并添加空指针检查(这里假设已经在Spring配置中正确注入了HttpServletRequest,实际可能需要进一步处理注入问题)
+        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+        if (attributes == null) {
+            throw new IllegalStateException("无法获取ServletRequestAttributes");
+        }
+        HttpServletRequest request = attributes.getRequest();
+        if (request == null) {
+            throw new IllegalStateException("无法获取HttpServletRequest");
+        }
+        String string = request.getRequestURL().toString();
+        URI uri = new URI(string);
+        String path = uri.getPath();
+
+        DataParams invAccountQueryVo = (DataParams) joinPoint.getArgs()[0];
+        // 假设这里通过某种业务逻辑生成了stringBufferContent的值
+        this.buildStringBufferBasedOnDataPermissions(path, invAccountQueryVo);
+
+        // 继续执行被注解标注的方法或类的原有逻辑e
+        return joinPoint.proceed();
+    }
+
+    private void buildStringBufferBasedOnDataPermissions(String path, DataParams invAccountQueryVo) {
+        StringBuilder stringBuffer = new StringBuilder();
+        List<DataPermissions> operatorList = dataPermissionsMapper.getByPath(path);
+
+        List<DataPermissions> cheList = this.checkData(operatorList);
+        if(!cheList.isEmpty()){
+            Map<String, List<DataPermissions>> groupedMap = cheList.stream()
+                    .collect(Collectors.groupingBy(DataPermissions::getRuleField));
+            if (operatorList.size() == 1) {
+
+                handleSingleDataPermission(cheList.get(0), stringBuffer, invAccountQueryVo);
+            } else {
+                handleMultipleDataPermissions(groupedMap, stringBuffer, invAccountQueryVo);
+            }
+        }
+    }
+
+    /**
+     * @param operatorList
+     * @return 校验数据
+     */
+    private List<DataPermissions> checkData(List<DataPermissions> operatorList) {
+        SysUser user = BaseController.getUser();
+        String roleId = user.getRoleId();  // 角色id
+
+        // 提取该接口配置的菜单id列表,去重
+        List<String> menuIdList = operatorList.stream()
+                .map(DataPermissions::getMenuId)
+                .distinct()
+                .collect(Collectors.toList());
+
+        if (menuIdList.isEmpty()) {
+            // 如果没有配置菜单,直接返回空的DataPermissions列表
+            return new ArrayList<DataPermissions>();
+        }
+
+        // 创建用于查询角色菜单权限的对象,在循环中只需设置具体属性即可
+        InsRoleMenuPermissionsDto insRoleMenuPermissionsDto = new InsRoleMenuPermissionsDto();
+        insRoleMenuPermissionsDto.setRoleId(roleId);
+
+        // 创建用于查询角色权限的对象,同样在循环中设置具体属性
+        InsRolePermissionsDto insRolePermissionsDto = new InsRolePermissionsDto();
+        insRolePermissionsDto.setRoleId(roleId);
+
+        for (String menuId : menuIdList) {
+            // 设置当前循环中菜单id到相应查询对象中
+            insRoleMenuPermissionsDto.setMenuId(menuId);
+            insRolePermissionsDto.setMenuId(menuId);
+
+            // 通过角色id和菜单id查询是否配置了该菜单权限
+            List<InsRoleMenuPermissionsDto> roleMenuPermissionsList = insRoleMenuPermissionsService.getRoleMenuPermissionsList(insRoleMenuPermissionsDto);
+            if (!roleMenuPermissionsList.isEmpty()) {
+                // 如果存在该菜单权限,则查询该角色下的权限规则有哪些
+                List<InsRolePermissions> InsRolePermissionsServiceList = insRolePermissionsService.getInsRolePermissionsServiceList(insRolePermissionsDto);
+                if (!InsRolePermissionsServiceList.isEmpty()) {
+                    List<String> permissionsList = InsRolePermissionsServiceList.stream()
+                            .map(InsRolePermissions::getPermissionsId)
+                            .collect(Collectors.toList());
+
+                    DataPermissionsVo dataPermissionsVo = new DataPermissionsVo();
+                    dataPermissionsVo.setPermissionsList(permissionsList);
+                    // 执行查询并返回结果,一旦找到符合条件的权限并查询到对应数据权限,直接返回
+                    return dataPermissionsService.queryList(dataPermissionsVo);
+                }
+            }
+        }
+        // 如果遍历完所有菜单都没有符合条件的权限,返回空的DataPermissions列表
+        return new ArrayList<DataPermissions>();
+    }
+    private void handleSingleDataPermission(DataPermissions dataPermissions, StringBuilder stringBuffer,
+                                            DataParams invAccountQueryVo) {
+        HashMap<String, String> sqlMap = new HashMap<>();
+        String ruleCondition = dataPermissions.getRuleCondition();
+        String descByCode = DataPermissionsEnum.getDescByCode(ruleCondition);
+        String ruleField = dataPermissions.getRuleField();
+        String ruleValue = dataPermissions.getRuleValue();
+
+        sqlMap.put(ruleField, ruleValue);
+        buildStringBuffer(stringBuffer, ruleField, descByCode, ruleValue);
+
+        invAccountQueryVo.setStringBufferContent(stringBuffer.toString());
+        invAccountQueryVo.setStringBufferContentMap(sqlMap);
+    }
+
+    private void handleMultipleDataPermissions(Map<String, List<DataPermissions>> groupedMap, StringBuilder stringBuffer, DataParams invAccountQueryVo) {
+        HashMap<String, String> sqlMap = new HashMap<>();
+        for (Map.Entry<String, List<DataPermissions>> entry : groupedMap.entrySet()) {
+            List<DataPermissions> dataPermissionsList = entry.getValue();
+            int index = 0;
+            for (DataPermissions dataPermissions : dataPermissionsList) {
+                String ruleCondition = dataPermissions.getRuleCondition();
+                String descByCode = DataPermissionsEnum.getDescByCode(ruleCondition);
+                String ruleField = dataPermissions.getRuleField();
+                String ruleValue = dataPermissions.getRuleValue();
+                StringBuilder stringBuilder = new StringBuilder();
+                if(ruleValue.contains(",")){
+                    String[] split = ruleValue.split(",");
+                    int  indexNumber  =0;
+                    for (String s : split) {
+                        stringBuilder.append("'").append(s).append("'").append(",");
+                        indexNumber++;
+                    }
+                    stringBuilder.deleteCharAt(stringBuilder.length() - 1);
+                    ruleValue =stringBuilder.toString();
+
+                }
+                if (index >= 1) {
+                    sqlMap.put(ruleField + index, ruleValue);
+                } else {
+                    sqlMap.put(ruleField, ruleValue);
+                }
+                buildStringBuffer(stringBuffer, ruleField, descByCode, ruleValue, index);
+                index++;
+            }
+        }
+        invAccountQueryVo.setStringBufferContent(stringBuffer.toString());
+    }
+
+    private void buildStringBuffer(StringBuilder stringBuffer, String ruleField, String descByCode, String ruleValue) {
+        buildStringBuffer(stringBuffer, ruleField, descByCode, ruleValue, 0);
+    }
+
+    private void buildStringBuffer(StringBuilder stringBuffer, String ruleField, String descByCode, String ruleValue, int index) {
+        // 根据索引构建用于从map取值的键
+        String mapValueKey = index >= 1 ? ruleField + index : ruleField;
+        // 构建公共的SQL语句前缀部分
+        String commonSqlPrefix = String.format(" and %s %s", ruleField, descByCode);
+        String sqlFragment;
+        if (descByCode.contains("in")) {
+            if(!ruleValue.contains(",")){
+                sqlFragment = commonSqlPrefix + " ('"+ruleValue+"') ";
+
+            }else {
+                // 如果是in的情况,添加括号包裹map取值部分
+                sqlFragment = commonSqlPrefix + " ("+ruleValue+") ";
+            }
+        } else {
+            // 其他情况直接拼接map取值部分
+            sqlFragment = commonSqlPrefix +  " '"+ruleValue+"' ";
+        }
+        stringBuffer.append(sqlFragment);
+    }
+}

+ 29 - 0
src/main/java/com/ydtech/modules/admin/constants/DataPermissionsEnum.java

@@ -0,0 +1,29 @@
+package com.ydtech.modules.admin.constants;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 数据权限条件枚举
+ */
+@Getter
+@AllArgsConstructor
+public enum DataPermissionsEnum {
+    DATA_01("1", "="),
+    DATA_02("2", "!="),
+    DATA_03("3", "in"),
+    DATA_04("4", "not in"),
+    DATA_05("5", "sql");
+
+    private final String code;
+
+    private final String desc;
+    public static String getDescByCode(String code){
+        for (DataPermissionsEnum value : DataPermissionsEnum.values()) {
+            if(value.getCode().equals(code)){
+                return value.getDesc();
+            }
+        }
+        return null;
+    }
+}

+ 83 - 0
src/main/java/com/ydtech/modules/admin/controller/DataPermissionsController.java

@@ -0,0 +1,83 @@
+package com.ydtech.modules.admin.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.DataPermissions;
+import com.ydtech.modules.admin.model.dto.DataPermissionsDto;
+import com.ydtech.modules.admin.model.vo.DataPermissionsVo;
+import com.ydtech.modules.admin.service.DataPermissionsService;
+import com.ydtech.modules.base.controller.BaseController;
+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.*;
+
+import java.util.List;
+
+@Api(tags = "数据权限")
+@RequestMapping("/dataPermissions")
+@RestController
+public class DataPermissionsController extends BaseController {
+
+    @Autowired
+    private DataPermissionsService  dataPermissionsService;
+
+    /**
+     * @param dataPermissionsDto
+     * @return 新增数据权限
+     */
+    @PostMapping("saveAndUpdate")
+    @ApiOperation("新增修改")
+    public HttpResult insertInsAccount(@RequestBody DataPermissionsDto dataPermissionsDto) {
+        dataPermissionsService.saveAndUpdate(dataPermissionsDto);
+        return HttpResult.ok(StringUtils.isNotBlank(dataPermissionsDto.getId()) ? "编辑成功" : "新增成功");
+    }
+
+
+    /**
+     * @description: 分页查询
+     * @author: whp
+     **/
+    @PostMapping("queryPage")
+    @ApiOperation(value = "分页查询")
+    public HttpResult<IPage<DataPermissions>> queryPage(@RequestBody DataPermissionsVo dataPermissionsVo) {
+        try {
+            IPage<DataPermissions> result = dataPermissionsService.queryPage(dataPermissionsVo);
+            return HttpResult.ok("查询数据成功", result);
+        } catch (Exception e) {
+            return HttpResult.error("查询错误" + e.getMessage());
+        }
+    }
+
+    /**
+     * @description: 回显
+     * @author: whp
+     **/
+    @GetMapping("{id}")
+    @ApiOperation(value = "回显")
+        public HttpResult<DataPermissions> getById(@PathVariable("id") String id ) {
+        try {
+            DataPermissions result = dataPermissionsService.getSelectById(id);
+            return HttpResult.ok("查询数据成功", result);
+        } catch (Exception e) {
+            return HttpResult.error("查询错误" + e.getMessage());
+        }
+    }
+
+    /**
+     * @description: 查询List
+     * @author: whp
+     **/
+    @PostMapping("queryList")
+    @ApiOperation(value = "分页查询")
+    public HttpResult<List<DataPermissions>> queryList(@RequestBody DataPermissionsVo dataPermissionsVo) {
+        try {
+            List<DataPermissions> result = dataPermissionsService.queryList(dataPermissionsVo);
+            return HttpResult.ok("查询数据成功", result);
+        } catch (Exception e) {
+            return HttpResult.error("查询错误" + e.getMessage());
+        }
+    }
+
+}

+ 76 - 0
src/main/java/com/ydtech/modules/admin/controller/InsRolePermissionsController.java

@@ -0,0 +1,76 @@
+package com.ydtech.modules.admin.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.InsRoleMenuPermissions;
+import com.ydtech.modules.admin.model.InsRolePermissions;
+import com.ydtech.modules.admin.model.dto.InsRoleMenuPermissionsDto;
+import com.ydtech.modules.admin.model.dto.InsRolePermissionsDto;
+import com.ydtech.modules.admin.service.InsRolePermissionsService;
+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;
+
+import java.util.List;
+
+@Api(tags = "角色菜单数据权限")
+@RequestMapping("/insRolePermissions")
+@RestController
+public class InsRolePermissionsController {
+    @Autowired
+    private InsRolePermissionsService insRolePermissionsService;
+
+    /**
+     * @param insRolePermissionsDto
+     * @return 新增数据权限
+     */
+    @PostMapping("saveAndUpdate")
+    @ApiOperation("新增修改")
+    public HttpResult insertRolePermissions(@RequestBody InsRolePermissionsDto insRolePermissionsDto) {
+        insRolePermissionsService.insertAndUpdate(insRolePermissionsDto);
+        return HttpResult.ok(StringUtils.isNotBlank(insRolePermissionsDto.getId()) ? "编辑成功" : "新增成功");
+    }
+
+
+    /**
+     * @param insRoleMenuPermissionsDto
+     * @return 菜单角色数据权限关联
+     */
+    @PostMapping("saveAndUpdateRuleMenu")
+    @ApiOperation("新增修改")
+    public HttpResult saveAndUpdateRuleMenu(@RequestBody InsRoleMenuPermissionsDto insRoleMenuPermissionsDto) {
+        insRolePermissionsService.saveAndUpdateRuleMenu(insRoleMenuPermissionsDto);
+        return HttpResult.ok(StringUtils.isNotBlank(insRoleMenuPermissionsDto.getId()) ? "编辑成功" : "新增成功");
+    }
+
+
+    /**
+     * @param
+     * @return 获取数据权限菜单列表
+     */
+    @PostMapping("getInsRoleMenuPermissions")
+    @ApiOperation("获取数据权限菜单列表")
+    public HttpResult<List<InsRoleMenuPermissions>> getInsRoleMenuPermissions(@RequestBody InsRoleMenuPermissionsDto insRoleMenuPermissionsDto) {
+        List<InsRoleMenuPermissions> insRoleMenuPermissionsList = insRolePermissionsService.getInsRoleMenuPermissions(insRoleMenuPermissionsDto);
+        return HttpResult.ok(insRoleMenuPermissionsList);
+    }
+
+
+
+
+    /**
+     * @param
+     * @return 获取菜单数据权限
+     */
+    @PostMapping("getInsRolePermissionsDtoList")
+    @ApiOperation("获取菜单数据权限")
+    public HttpResult<List<InsRolePermissions>> getInsRolePermissionsDtoList(@RequestBody InsRolePermissionsDto insRolePermissionsDto) {
+        List<InsRolePermissions> insRoleMenuPermissionsList = insRolePermissionsService.getInsRolePermissionsDtoList(insRolePermissionsDto);
+        return HttpResult.ok(insRoleMenuPermissionsList);
+    }
+}

+ 61 - 0
src/main/java/com/ydtech/modules/admin/controller/taskStatistics/TaskStatisticsController.java

@@ -333,6 +333,26 @@ public class TaskStatisticsController {
         }
     }
 
+    /**
+     * @description:   控制台 - 业务数据 -保险公司导出
+     * @author: whp
+     * @date: 2024/12/13
+     **/
+    @PostMapping("/getBusinessDataExcel")
+    @ApiOperation(value = "任务统计-保险公司导出")
+    public HttpResult getBusinessDataExcel(@RequestBody TaskStatisticsVo taskStatisticsVo, HttpServletRequest httpServerRequest) {
+        KztGetDeptUtils kztGetDeptUtils = new KztGetDeptUtils();
+        KztGetDeptUtilsDto kztGetDeptUtilsDto = kztGetDeptUtils.KztGetDeptIds(httpServerRequest.getRequestURL().toString());
+        if(ObjectUtils.isNotEmpty(kztGetDeptUtilsDto)){
+            if("1".equals(kztGetDeptUtilsDto.getType())){
+                taskStatisticsVo.setDeptIds(kztGetDeptUtilsDto.getIds());
+            } else if ("2".equals(kztGetDeptUtilsDto.getType())) {
+                taskStatisticsVo.setUserIds(kztGetDeptUtilsDto.getIds());
+            }
+        }
+        return this.taskStatisticsService.getBusinessDataExcel(taskStatisticsVo);
+    }
+
     /**
      * @description:   控制台-业务数据-统计
      * @author: whp
@@ -410,6 +430,47 @@ public class TaskStatisticsController {
         }
     }
 
+    /**
+     * @description:   控制台 - 业务数据 -代理人导出
+     * @author: whp
+     * @date: 2024/12/13
+     **/
+    @PostMapping("/getBusinessAgentExcel")
+    @ApiOperation(value = "任务统计-代理人导出")
+    public HttpResult getBusinessAgentExcel(@RequestBody TaskStatisticsVo taskStatisticsVo, HttpServletRequest httpServerRequest) {
+        KztGetDeptUtils kztGetDeptUtils = new KztGetDeptUtils();
+        KztGetDeptUtilsDto kztGetDeptUtilsDto = kztGetDeptUtils.KztGetDeptIds(httpServerRequest.getRequestURL().toString());
+        if(ObjectUtils.isNotEmpty(kztGetDeptUtilsDto)){
+            if("1".equals(kztGetDeptUtilsDto.getType())){
+                taskStatisticsVo.setDeptIds(kztGetDeptUtilsDto.getIds());
+            } else if ("2".equals(kztGetDeptUtilsDto.getType())) {
+                taskStatisticsVo.setUserIds(kztGetDeptUtilsDto.getIds());
+            }
+        }
+        return this.taskStatisticsService.getBusinessAgentExcel(taskStatisticsVo);
+    }
+
+
+    /**
+     * @description:   控制台 - 业务数据 -渠道导出
+     * @author: whp
+     * @date: 2024/12/13
+     **/
+    @PostMapping("/getChannelExcel")
+    @ApiOperation(value = "任务统计-渠道导出")
+    public HttpResult getChannelExcel(@RequestBody TaskStatisticsVo taskStatisticsVo, HttpServletRequest httpServerRequest) {
+        KztGetDeptUtils kztGetDeptUtils = new KztGetDeptUtils();
+        KztGetDeptUtilsDto kztGetDeptUtilsDto = kztGetDeptUtils.KztGetDeptIds(httpServerRequest.getRequestURL().toString());
+        if(ObjectUtils.isNotEmpty(kztGetDeptUtilsDto)){
+            if("1".equals(kztGetDeptUtilsDto.getType())){
+                taskStatisticsVo.setDeptIds(kztGetDeptUtilsDto.getIds());
+            } else if ("2".equals(kztGetDeptUtilsDto.getType())) {
+                taskStatisticsVo.setUserIds(kztGetDeptUtilsDto.getIds());
+            }
+        }
+        return this.taskStatisticsService.getChannelExcel(taskStatisticsVo);
+    }
+
 
 
     /**

+ 26 - 0
src/main/java/com/ydtech/modules/admin/dao/DataPermissionsMapper.java

@@ -0,0 +1,26 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.DataPermissions;
+import com.ydtech.modules.admin.model.vo.DataPermissionsVo;
+import com.ydtech.modules.fnc.entity.ContractEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface DataPermissionsMapper   extends BaseMapper<DataPermissions> {
+
+    IPage<DataPermissions> queryPage(@Param("page") Page page, @Param("vo") DataPermissionsVo dataPermissionsVo);
+
+    List<DataPermissions> getByPath(String path);
+    /**
+     *
+     * @param dataPermissionsVo
+     * @return  菜单数据权限查询
+     */
+    List<DataPermissions> queryList(@Param("vo") DataPermissionsVo dataPermissionsVo);
+}

+ 14 - 0
src/main/java/com/ydtech/modules/admin/dao/InsRoleMenuPermissionsMapper.java

@@ -0,0 +1,14 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.InsRoleMenuPermissions;
+import com.ydtech.modules.admin.model.dto.InsRoleMenuPermissionsDto;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface InsRoleMenuPermissionsMapper extends BaseMapper<InsRoleMenuPermissions> {
+    List<InsRoleMenuPermissionsDto> getRoleMenuPermissionsList(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto);
+
+}

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

@@ -0,0 +1,18 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.InsRolePermissions;
+import com.ydtech.modules.admin.model.dto.InsRolePermissionsDto;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface InsRolePermissionsMapper  extends BaseMapper<InsRolePermissions> {
+    /**
+     *
+     * @param insRolePermissionsDto
+     * @return  通过角色 菜单id  获取 权限规则
+     */
+    List<InsRolePermissions> getInsRolePermissionsServiceList(InsRolePermissionsDto insRolePermissionsDto);
+}

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

@@ -55,4 +55,6 @@ public interface TaskStatisticsMapper extends BaseMapper<TaskStatisticsDto> {
      **/
     BusinessOrderData getBusinessOrderDataTotal(@Param("vo") TaskStatisticsVo taskStatisticsVo);
 
+    List<BusinessAgentData> getBusinessAgentDataExcel(@Param("vo") TaskStatisticsVo taskStatisticsVo);
+
 }

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

@@ -0,0 +1,112 @@
+package com.ydtech.modules.admin.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ydtech.modules.base.model.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 数据权限
+ */
+@ApiModel
+@Data
+@TableName(value = "ins_data_permissions")
+public class DataPermissions implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 编号
+     */
+    @ApiModelProperty(value = "id")
+    @TableId(value = "id")
+    private String id;
+
+    /**
+     * 用户ID
+     */
+    @ApiModelProperty(value = "用户ID")
+    @TableField(value = "user_id")
+    private String userId;
+
+    /**
+     * 部门ID
+     */
+    @ApiModelProperty(value = "部门ID")
+    @TableField(value = "dept_id")
+    private String deptId;
+
+
+    /**
+     * 规则名称
+     */
+    @ApiModelProperty(value = "规则名称")
+    @TableField(value = "rule_name")
+    private String ruleName;
+
+
+    /**
+     * 规则字段
+     */
+    @ApiModelProperty(value = "规则字段")
+    @TableField(value = "rule_field")
+    private String ruleField;
+
+
+    /**
+     * 条件规则
+     */
+    @ApiModelProperty(value = "条件规则")
+    @TableField(value = "rule_condition")
+    private String ruleCondition;
+
+    /**
+     * 规则值
+     */
+    @ApiModelProperty(value = "规则值")
+    @TableField(value = "rule_value")
+    private String ruleValue;
+
+
+    /**
+     * 状态
+     */
+    @ApiModelProperty(value = "状态")
+    @TableField(value = "status")
+    private String status;
+
+    /**
+     * 创建日期
+     */
+    @ApiModelProperty(value = "创建日期")
+    @TableField(value = "create_time")
+    private LocalDateTime createTime;
+
+    /**
+     * 菜单id
+     */
+    @ApiModelProperty(value = "菜单id")
+    @TableField(value = "menu_id")
+    private String menuId;
+
+    /**
+     * 接口路径
+     */
+    @ApiModelProperty(value = "接口路径")
+    @TableField(value = "interface_url")
+    private String interfaceUrl;
+
+
+    /**
+     * 接口路径
+     */
+    @ApiModelProperty(value = "自定义sql")
+    @TableField(value = "custom_sql")
+    private String customSql;
+
+
+}

+ 59 - 0
src/main/java/com/ydtech/modules/admin/model/InsRoleMenuPermissions.java

@@ -0,0 +1,59 @@
+package com.ydtech.modules.admin.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 角色菜单数据权限
+ */
+@ApiModel
+@Data
+@TableName(value = "ins_role_menu_permissions")
+public class InsRoleMenuPermissions implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    /**
+     * 编号
+     */
+    @ApiModelProperty(value = "id")
+    @TableId(value = "id")
+    private String id;
+
+    /**
+     * 角色id
+     */
+    @ApiModelProperty(value = "角色id")
+    @TableField(value = "role_id")
+    private String roleId;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    @TableField(value = "user_id")
+    private String userId;
+
+
+    /**
+     * 创建日期
+     */
+    @ApiModelProperty(value = "创建日期")
+    @TableField(value = "create_time")
+    private LocalDateTime createTime;
+
+
+    /**
+     * 菜单id
+     */
+    @ApiModelProperty(value = "菜单id")
+    @TableField(value = "menu_id")
+    private String menuId;
+
+}

+ 75 - 0
src/main/java/com/ydtech/modules/admin/model/InsRolePermissions.java

@@ -0,0 +1,75 @@
+package com.ydtech.modules.admin.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 角色数据权限
+ */
+@ApiModel
+@Data
+@TableName(value = "ins_role_permissions")
+public class InsRolePermissions implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 编号
+     */
+    @ApiModelProperty(value = "id")
+    @TableId(value = "id")
+    private String id;
+
+    /**
+     * 角色id
+     */
+    @ApiModelProperty(value = "角色id")
+    @TableField(value = "role_id")
+    private String roleId;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    @TableField(value = "user_id")
+    private String userId;
+
+
+    /**
+     * 规则id
+     */
+    @ApiModelProperty(value = "规则id")
+    @TableField(value = "permissions_id")
+    private String permissionsId;
+
+    /**
+     * 状态
+     */
+    @ApiModelProperty(value = "状态")
+    @TableField(value = "status")
+    private String status;
+
+
+    /**
+     * 创建日期
+     */
+    @ApiModelProperty(value = "创建日期")
+    @TableField(value = "create_time")
+    private LocalDateTime createTime;
+
+
+    /**
+     * 菜单id
+     */
+    @ApiModelProperty(value = "菜单id")
+    @TableField(value = "menu_id")
+    private String menuId;
+
+
+
+}

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

@@ -0,0 +1,42 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class BusinessAgentExcel {
+    @ExcelProperty(value = "姓名", index = 0)
+    private String userName;
+
+    @ExcelProperty(value = "工号", index = 1)
+    private String userId;
+
+    @ExcelProperty(value = "归属机构", index = 2)
+    private String deptName;
+
+    @ExcelProperty(value = "管理人", index = 3)
+    private String leaderName;
+
+    @ExcelProperty(value = "机构来源", index = 4)
+    private String managementSource;
+
+    @ExcelProperty(value = "签单保费", index = 5)
+    private BigDecimal sumPremium;
+
+
+    @ExcelProperty(value = "交强险保费", index = 6)
+    private BigDecimal jqpremium;
+
+
+    @ExcelProperty(value = "车船税", index = 7)
+    private BigDecimal taxamount;
+
+    @ExcelProperty(value = "商业险保费", index = 8)
+    private BigDecimal sypremium;
+
+
+    @ExcelProperty(value = "非车险保费", index = 9)
+    private BigDecimal jypremium;
+}

+ 39 - 0
src/main/java/com/ydtech/modules/admin/model/dto/BusinessCompanyExcel.java

@@ -0,0 +1,39 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class BusinessCompanyExcel {
+    @ExcelProperty(value = "保险公司", index = 0)
+    private String insuranceCompanyName;
+
+    @ExcelProperty(value = "协议类型", index = 1)
+    private String agreementType;
+
+    @ExcelProperty(value = "合作公司", index = 2)
+    private String partnerCompaniesName;
+
+    @ExcelProperty(value = "对接人", index = 3)
+    private String dockingPerson;
+
+    @ExcelProperty(value = "对接人联系方式", index = 4)
+    private String dockingPhone;
+
+    @ExcelProperty(value = "总保费", index = 5)
+    private String totalPremium;
+
+    @ExcelProperty(value = "出单笔数", index = 6)
+    private BigDecimal qutationInsureCount;
+
+    @ExcelProperty(value = "单均保费", index = 7)
+    private BigDecimal averagePremium;
+
+    @ExcelProperty(value = "人员数量", index = 8)
+    private BigDecimal userNumber;
+
+    @ExcelProperty(value = "人均产能", index = 9)
+    private BigDecimal perCapitaAmount;
+}

+ 66 - 0
src/main/java/com/ydtech/modules/admin/model/dto/DataPermissionsDto.java

@@ -0,0 +1,66 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 数据权限实体
+ */
+@Data
+@ApiModel("数据权限实体")
+public class DataPermissionsDto implements Serializable {
+
+
+    @ApiModelProperty(value = "id")
+    private String id;
+
+    @ApiModelProperty(value = "用户ID")
+    private String userId;
+
+    @ApiModelProperty(value = "部门ID")
+    private String deptId;
+
+    @ApiModelProperty(value = "规则名称")
+    private String ruleName;
+
+    @ApiModelProperty(value = "规则字段")
+    private String ruleField;
+
+    @ApiModelProperty(value = "条件规则")
+    private String ruleCondition;
+
+    @ApiModelProperty(value = "规则值")
+    private String ruleValue;
+
+    @ApiModelProperty(value = "状态")
+    private String status;
+
+    @ApiModelProperty(value = "创建日期")
+    private LocalDateTime createTime;
+
+    /**
+     * 菜单id
+     */
+    @ApiModelProperty(value = "菜单id")
+    private String menuId;
+
+    /**
+     * 接口路径
+     */
+    @ApiModelProperty(value = "接口路径")
+    private String interfaceUrl;
+
+    /**
+     * 接口路径
+     */
+    @ApiModelProperty(value = "自定义sql")
+    private String customSql;
+
+
+
+}

+ 60 - 0
src/main/java/com/ydtech/modules/admin/model/dto/GetChannelExcel.java

@@ -0,0 +1,60 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class GetChannelExcel {
+
+    @ExcelProperty(value = "姓名", index = 0)
+    private String userName;
+
+    @ExcelProperty(value = "工号", index = 1)
+    private String userId;
+
+    @ExcelProperty(value = "归属机构", index = 2)
+    private String deptName;
+
+    @ExcelProperty(value = "管理人", index = 3)
+    private String leaderName;
+
+    @ExcelProperty(value = "机构来源", index = 4)
+    private String managementSource;
+
+    @ExcelProperty(value = "签单保费", index = 5)
+    private BigDecimal sumPremium;
+
+
+    @ExcelProperty(value = "交强险保费", index = 6)
+    private BigDecimal jqpremium;
+
+
+    @ExcelProperty(value = "车船税", index = 7)
+    private BigDecimal taxamount;
+
+    @ExcelProperty(value = "商业险保费", index = 8)
+    private BigDecimal sypremium;
+
+
+    @ExcelProperty(value = "非车险保费", index = 9)
+    private BigDecimal jypremium;
+
+
+    @ExcelProperty(value = "单交订单数", index = 10)
+    private String riskCodeDj;
+
+    @ExcelProperty(value = "单商订单数", index = 11)
+    private String riskCodeDs;
+
+
+    @ExcelProperty(value = "单三订单数", index = 12)
+    private String riskCodeDsan;
+
+    @ExcelProperty(value = "交三订单数", index = 13)
+    private String riskCodeJs;
+
+    @ExcelProperty(value = "交商订单数", index = 14)
+    private String riskCodeJshang;
+}

+ 56 - 0
src/main/java/com/ydtech/modules/admin/model/dto/InsRoleMenuPermissionsDto.java

@@ -0,0 +1,56 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 数据权限角色关联实体
+ */
+@Data
+@ApiModel("数据权限角色菜单关联表")
+public class InsRoleMenuPermissionsDto {
+    /**
+     * 编号
+     */
+    @ApiModelProperty(value = "id")
+    private String id;
+
+    /**
+     * 角色id
+     */
+    @ApiModelProperty(value = "角色id")
+    private String roleId;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+
+    /**
+     * 创建日期
+     */
+    @ApiModelProperty(value = "创建日期")
+    private LocalDateTime createTime;
+
+
+    /**
+     * 菜单id
+     */
+    @ApiModelProperty(value = "菜单id")
+    private String menuId;
+
+    /**
+     * 菜单id
+     */
+    @ApiModelProperty(value = "菜单idList")
+    private List<String> menuIdList;
+
+}

+ 51 - 0
src/main/java/com/ydtech/modules/admin/model/dto/InsRolePermissionsDto.java

@@ -0,0 +1,51 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 数据权限角色关联实体
+ */
+@Data
+@ApiModel("数据权限角色关联实体")
+public class InsRolePermissionsDto {
+
+    @ApiModelProperty(value = "id")
+    private String id;
+
+
+    @ApiModelProperty(value = "角色id")
+    private String roleId;
+
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+
+    @ApiModelProperty(value = "规则id")
+    private String permissionsId;
+
+
+    @ApiModelProperty(value = "状态")
+    private String status;
+
+
+    @ApiModelProperty(value = "创建日期")
+    private LocalDateTime createTime;
+
+
+    @ApiModelProperty(value = "菜单id")
+    private String menuId;
+
+
+    @ApiModelProperty(value = "规则idList")
+    private List<String> permissionsIdList;
+
+
+}

+ 53 - 0
src/main/java/com/ydtech/modules/admin/model/vo/DataPermissionsVo.java

@@ -0,0 +1,53 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import java.util.List;
+
+@Data
+public class DataPermissionsVo {
+    @ApiModelProperty(value = "id")
+    private String id;
+
+    @ApiModelProperty(value = "用户ID")
+    private String userId;
+
+    @ApiModelProperty(value = "部门ID")
+    private String deptId;
+
+    @ApiModelProperty(value = "规则名称")
+    private String ruleName;
+
+    @ApiModelProperty(value = "规则字段")
+    private String ruleField;
+
+    @ApiModelProperty(value = "条件规则")
+    private String ruleCondition;
+
+    @ApiModelProperty(value = "规则值")
+    private String ruleValue;
+
+    @ApiModelProperty(value = "状态")
+    private String status;
+
+    @ApiModelProperty(value = "创建日期")
+    private String createTime;
+    @ApiModelProperty(value = "每页页数")
+    private int pageSize;
+
+    @ApiModelProperty(value = "页数")
+    @Min(value = 1, message = "页数最小为1")
+    private int pageNum;
+
+    @ApiModelProperty(value = "菜单id")
+    private String menuId;
+
+    @ApiModelProperty(value = "permissionsIdList")
+    private List<String> permissionsList;
+
+
+
+}

+ 38 - 0
src/main/java/com/ydtech/modules/admin/service/DataPermissionsService.java

@@ -0,0 +1,38 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ydtech.extension.BaseIService;
+import com.ydtech.modules.admin.model.DataPermissions;
+import com.ydtech.modules.admin.model.dto.DataPermissionsDto;
+import com.ydtech.modules.admin.model.vo.DataPermissionsVo;
+
+import java.util.List;
+
+public interface DataPermissionsService  extends BaseIService<DataPermissions> {
+    /**
+     * @param dataPermissionsDto
+     * @return 新增数据权限
+     */
+    void saveAndUpdate(DataPermissionsDto dataPermissionsDto);
+
+    /**
+     * @description: 分页查询
+     * @author: whp
+     **/
+    IPage<DataPermissions> queryPage(DataPermissionsVo dataPermissionsVo);
+
+    /**
+     *
+     * @param id
+     * @return  回显
+     */
+    DataPermissions getSelectById(String id);
+
+    /**
+     *
+     * @param dataPermissionsVo
+     * @return  菜单数据权限查询
+     */
+    List<DataPermissions> queryList(DataPermissionsVo dataPermissionsVo);
+
+}

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

@@ -0,0 +1,20 @@
+package com.ydtech.modules.admin.service;
+
+import com.ydtech.modules.admin.model.InsRoleMenuPermissions;
+import com.ydtech.modules.admin.model.dto.InsRoleMenuPermissionsDto;
+
+import java.util.List;
+
+public interface InsRoleMenuPermissionsService {
+    void saveAndUpdateRuleMenu(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto);
+
+    List<InsRoleMenuPermissions> getInsRoleMenuPermissions(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto);
+
+    /**
+     *
+     * @param insRoleMenuPermissionsDto
+     * @return  查询角色菜单
+     */
+    List<InsRoleMenuPermissionsDto> getRoleMenuPermissionsList(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto);
+
+}

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

@@ -0,0 +1,40 @@
+package com.ydtech.modules.admin.service;
+
+import com.ydtech.extension.BaseIService;
+import com.ydtech.modules.admin.model.InsRoleMenuPermissions;
+import com.ydtech.modules.admin.model.InsRolePermissions;
+import com.ydtech.modules.admin.model.dto.InsRoleMenuPermissionsDto;
+import com.ydtech.modules.admin.model.dto.InsRolePermissionsDto;
+
+import java.util.List;
+
+public interface InsRolePermissionsService extends BaseIService<InsRolePermissions> {
+
+    void insertAndUpdate(InsRolePermissionsDto insRolePermissionsDto);
+
+    /**
+     * 权限角色关联表
+     * @param insRoleMenuPermissionsDto
+     */
+    void saveAndUpdateRuleMenu(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto);
+
+    /**
+     *
+     * @param insRoleMenuPermissionsDto
+     * @return  获取数据权限菜单列表
+     */
+    List<InsRoleMenuPermissions> getInsRoleMenuPermissions(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto);
+    /**
+     * @param
+     * @return 获取菜单数据权限
+     */
+    List<InsRolePermissions> getInsRolePermissionsDtoList(InsRolePermissionsDto insRolePermissionsDto);
+
+    /**
+     *
+     * @param insRolePermissionsDto
+     * @return  通过角色 菜单id  获取 权限规则
+     */
+    List<InsRolePermissions> getInsRolePermissionsServiceList(InsRolePermissionsDto insRolePermissionsDto);
+
+}

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

@@ -168,4 +168,24 @@ public interface TaskStatisticsService {
      * @return
      */
     BusinessAgentData getBusinessElectricDataTotal(TaskStatisticsVo taskStatisticsVo);
+
+    /**
+     * @description:   控制台 - 业务数据 -保险公司导出
+     * @author: whp
+     * @date: 2024/12/13
+     **/
+    HttpResult getBusinessDataExcel(TaskStatisticsVo taskStatisticsVo);
+    /**
+     * @description:   控制台 - 业务数据 -代理人导出
+     * @author: whp
+     * @date: 2024/12/13
+     **/
+    HttpResult getBusinessAgentExcel(TaskStatisticsVo taskStatisticsVo);
+    /**
+     * @description:   控制台 - 业务数据 -渠道导出
+     * @author: whp
+     * @date: 2024/12/13
+     **/
+    HttpResult getChannelExcel(TaskStatisticsVo taskStatisticsVo);
+
 }

+ 69 - 0
src/main/java/com/ydtech/modules/admin/service/impl/DataPermissionsServiceImpl.java

@@ -0,0 +1,69 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.DataPermissionsMapper;
+import com.ydtech.modules.admin.model.DataPermissions;
+import com.ydtech.modules.admin.model.dto.DataPermissionsDto;
+import com.ydtech.modules.admin.model.vo.DataPermissionsVo;
+import com.ydtech.modules.admin.service.DataPermissionsService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.base.model.vo.PageVo;
+import com.ydtech.modules.fnc.entity.ContractEntity;
+import com.ydtech.modules.fnc.vo.ContractVo;
+import com.ydtech.utils.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class DataPermissionsServiceImpl   extends ServiceImpl<DataPermissionsMapper, DataPermissions>  implements DataPermissionsService {
+    /**
+     * 新增或修改数据权限
+     * @param dataPermissionsDto
+     */
+    @Override
+    public void saveAndUpdate(DataPermissionsDto dataPermissionsDto) {
+        String id = dataPermissionsDto.getId();
+        if(StringUtils.isEmpty(id)){
+            DataPermissions dataPermissions = new DataPermissions();
+            BeanUtils.copyProperties(dataPermissionsDto, dataPermissions);
+            dataPermissions.setUserId(BaseController.getUserId());
+            dataPermissions.setDeptId(BaseController.getDeptId());
+            dataPermissions.setCreateTime(LocalDateTime.now());
+            baseMapper.insert(dataPermissions);
+        }else {
+            DataPermissions dataPermissions = new DataPermissions();
+            BeanUtils.copyProperties(dataPermissionsDto,dataPermissions);
+            baseMapper.updateById(dataPermissions);
+        }
+    }
+
+    @Override
+    public IPage<DataPermissions> queryPage(DataPermissionsVo dataPermissionsVo) {
+        PageVo<DataPermissionsVo> pageVo = new PageVo<>();
+        Page page = new Page(dataPermissionsVo.getPageNum(), dataPermissionsVo.getPageSize());
+        pageVo.setPageNum(dataPermissionsVo.getPageNum());
+        pageVo.setPageSize(dataPermissionsVo.getPageSize());
+        IPage<DataPermissions> queriedPage = baseMapper.queryPage(page, dataPermissionsVo);
+        return queriedPage;
+    }
+
+    @Override
+    public DataPermissions getSelectById(String id) {
+        return baseMapper.selectById(id);
+    }
+    /**
+     *
+     * @param dataPermissionsVo
+     * @return  菜单数据权限查询
+     */
+    @Override
+    public List<DataPermissions> queryList(DataPermissionsVo dataPermissionsVo) {
+        return baseMapper.queryList(dataPermissionsVo);
+    }
+}

+ 62 - 0
src/main/java/com/ydtech/modules/admin/service/impl/InsRoleMenuPermissionsServiceImpl.java

@@ -0,0 +1,62 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.exception.SystemException;
+import com.ydtech.modules.admin.dao.InsRoleMenuPermissionsMapper;
+import com.ydtech.modules.admin.model.InsRoleMenuPermissions;
+import com.ydtech.modules.admin.model.dto.InsRoleMenuPermissionsDto;
+import com.ydtech.modules.admin.service.InsRoleMenuPermissionsService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.utils.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+@Transactional
+public class InsRoleMenuPermissionsServiceImpl  extends ServiceImpl<InsRoleMenuPermissionsMapper, InsRoleMenuPermissions> implements InsRoleMenuPermissionsService {
+    @Override
+    public void saveAndUpdateRuleMenu(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto) {
+        String roleId = insRoleMenuPermissionsDto.getRoleId();
+        ArrayList<InsRoleMenuPermissions> insertList = new ArrayList<>();
+        List<String> menuIdList = insRoleMenuPermissionsDto.getMenuIdList();
+        if(StringUtils.isEmpty(roleId)){
+            throw new SystemException("角色id不能为null");
+        }
+        //通过角色id查询
+        QueryWrapper<InsRoleMenuPermissions> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("role_id",roleId);
+        List<InsRoleMenuPermissions> insRoleMenuPermissions = baseMapper.selectList(queryWrapper);
+        if(!insRoleMenuPermissions.isEmpty()){
+            baseMapper.deleteBatchIds(insRoleMenuPermissions);
+        }
+
+        for (String s : menuIdList) {
+            InsRoleMenuPermissions insRoleMenuPermissions1 = new InsRoleMenuPermissions();
+            insRoleMenuPermissions1.setMenuId(s);
+            insRoleMenuPermissions1.setRoleId(roleId);
+            insRoleMenuPermissions1.setUserId(BaseController.getUserId());
+            insRoleMenuPermissions1.setCreateTime(LocalDateTime.now());
+            insertList.add(insRoleMenuPermissions1);
+        }
+        this.saveBatch(insertList);
+
+
+    }
+
+    @Override
+    public List<InsRoleMenuPermissions> getInsRoleMenuPermissions(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto) {
+        QueryWrapper<InsRoleMenuPermissions> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("role_id",insRoleMenuPermissionsDto.getRoleId());
+        return baseMapper.selectList(queryWrapper);
+    }
+
+    @Override
+    public List<InsRoleMenuPermissionsDto> getRoleMenuPermissionsList(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto) {
+        return baseMapper.getRoleMenuPermissionsList(insRoleMenuPermissionsDto);
+    }
+}

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

@@ -0,0 +1,99 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.InsRolePermissionsMapper;
+import com.ydtech.modules.admin.model.InsRoleMenuPermissions;
+import com.ydtech.modules.admin.model.InsRolePermissions;
+import com.ydtech.modules.admin.model.dto.InsRoleMenuPermissionsDto;
+import com.ydtech.modules.admin.model.dto.InsRolePermissionsDto;
+import com.ydtech.modules.admin.service.InsRoleMenuPermissionsService;
+import com.ydtech.modules.admin.service.InsRolePermissionsService;
+import com.ydtech.modules.base.controller.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+public class InsRolePermissionsServiceImpl extends ServiceImpl<InsRolePermissionsMapper, InsRolePermissions> implements InsRolePermissionsService {
+    @Autowired
+    private InsRoleMenuPermissionsService insRoleMenuPermissionsService;
+    /**
+     * 新增角色关联权限
+     *
+     * @param insRolePermissionsDto
+     */
+    @Override
+    @Transactional
+    public void insertAndUpdate(InsRolePermissionsDto insRolePermissionsDto) {
+        ArrayList<InsRolePermissions> insRolePermissionsArrayList = new ArrayList<>();
+        //先查看是否存在已配置该权限
+        QueryWrapper<InsRolePermissions> queryWrapper = new QueryWrapper<>();
+
+        queryWrapper.eq("role_id", insRolePermissionsDto.getRoleId())
+                .eq("menu_id", insRolePermissionsDto.getMenuId());
+
+        List<InsRolePermissions> insRolePermissions = baseMapper.selectList(queryWrapper);
+        List<String> ids = insRolePermissions.stream().map(InsRolePermissions::getId).collect(Collectors.toList());
+
+        //删除已配置的权限
+        if(!ids.isEmpty()){
+            baseMapper.deleteBatchIds(ids);
+        }
+
+        List<String> permissionsIdList = insRolePermissionsDto.getPermissionsIdList();
+        for (String s : permissionsIdList) {
+            InsRolePermissions insRolePermissions1 = new InsRolePermissions();
+            String userId = BaseController.getUserId();
+            insRolePermissions1.setUserId(userId);
+            insRolePermissions1.setRoleId(insRolePermissionsDto.getRoleId());
+            insRolePermissions1.setMenuId(insRolePermissionsDto.getMenuId());
+            insRolePermissions1.setPermissionsId(s);
+            insRolePermissions1.setCreateTime(LocalDateTime.now());
+            insRolePermissionsArrayList.add(insRolePermissions1);
+        }
+        this.saveBatch(insRolePermissionsArrayList);
+    }
+
+    @Override
+    @Transactional
+    public void saveAndUpdateRuleMenu(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto) {
+        insRoleMenuPermissionsService.saveAndUpdateRuleMenu(insRoleMenuPermissionsDto);
+
+    }
+
+    /**
+     * @param
+     * @return 获取数据权限菜单列表
+     */
+    @Override
+    public List<InsRoleMenuPermissions> getInsRoleMenuPermissions(InsRoleMenuPermissionsDto insRoleMenuPermissionsDto) {
+
+        return insRoleMenuPermissionsService.getInsRoleMenuPermissions(insRoleMenuPermissionsDto);
+    }
+    /**
+     * @param
+     * @return 获取菜单数据权限
+     */
+    @Override
+    public List<InsRolePermissions> getInsRolePermissionsDtoList(InsRolePermissionsDto insRolePermissionsDto) {
+        QueryWrapper<InsRolePermissions> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("menu_id",insRolePermissionsDto.getMenuId())
+                .eq("role_id",insRolePermissionsDto.getRoleId());
+        return  baseMapper.selectList(queryWrapper);
+    }
+    /**
+     *
+     * @param insRolePermissionsDto
+     * @return  通过角色 菜单id  获取 权限规则
+     */
+    @Override
+    public List<InsRolePermissions> getInsRolePermissionsServiceList(InsRolePermissionsDto insRolePermissionsDto) {
+        return baseMapper.getInsRolePermissionsServiceList(insRolePermissionsDto);
+    }
+}

+ 152 - 0
src/main/java/com/ydtech/modules/admin/service/impl/TaskStatisticsServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.admin.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -19,6 +20,7 @@ import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.dto.*;
 import com.ydtech.modules.admin.model.vo.BusinessAgentData;
 import com.ydtech.modules.admin.model.vo.BusinessOrderData;
+import com.ydtech.modules.admin.model.vo.SysUserPartner;
 import com.ydtech.modules.admin.model.vo.TaskStatisticsVo;
 import com.ydtech.modules.admin.service.SysDeptService;
 import com.ydtech.modules.admin.service.TaskStatisticsService;
@@ -30,9 +32,11 @@ import com.ydtech.modules.order.dao.InsAreaCompanyMapper;
 import com.ydtech.modules.order.dao.InsOrdersMapper;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import java.io.File;
 import java.io.IOException;
@@ -1220,6 +1224,154 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
         return result;
     }
 
+    @Override
+    public HttpResult getBusinessDataExcel(TaskStatisticsVo taskStatisticsVo) {
+        if (StringUtils.isNotEmpty(taskStatisticsVo.getDays())) {
+            if ("7".equals(taskStatisticsVo.getDays())) {
+                taskStatisticsVo.setDateType("2");
+            } else if ("30".equals(taskStatisticsVo.getDays())) {
+                taskStatisticsVo.setDateType("3");
+            } else if ("1".equals(taskStatisticsVo.getDays())) {
+                taskStatisticsVo.setDateType("1");
+            }
+        }
+
+        if (com.ydtech.utils.StringUtils.isNotEmpty(taskStatisticsVo.getParterProvinceId())) {
+            String provinceId = this.removeTrailingZeros(taskStatisticsVo.getParterProvinceId());
+            taskStatisticsVo.setParterProvinceId(provinceId);
+        }
+
+        if (com.ydtech.utils.StringUtils.isNotEmpty(taskStatisticsVo.getParterCityId())) {
+            String cityId = this.removeTrailingZeros(taskStatisticsVo.getParterCityId());
+            taskStatisticsVo.setParterCityId(cityId);
+        }
+
+        if (com.ydtech.utils.StringUtils.isNotEmpty(taskStatisticsVo.getParterCountyId())) {
+            String countyId = this.removeTrailingZeros(taskStatisticsVo.getParterCountyId());
+            taskStatisticsVo.setParterCountyId(countyId);
+        }
+
+        HashMap<String, String> dateMapByType = getDateMapByTypeNew(taskStatisticsVo.getDateType(), taskStatisticsVo.getCreatetimeStart(), taskStatisticsVo.getCreatetimeEnd());
+        taskStatisticsVo.setCreatetimeStart(dateMapByType.get("startDate"));
+        taskStatisticsVo.setCreatetimeEnd(dateMapByType.get("endDate"));
+
+        List<TaskStatisticsDto> list = this.insAreaCompanyMapper.getBusinessDataList(taskStatisticsVo);
+        List<BusinessCompanyExcel> sysUserPartners = BeanUtil.copyToList(list, BusinessCompanyExcel.class);
+        String uploadPath = this.uploadPath + "/excel/";
+        Path path = Paths.get(uploadPath);
+        if (!Files.exists(path)) {
+            try {
+                Files.createDirectories(path);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        String fileName = EasyExcelUtils.downExcel(uploadPath, "业务数据保险公司导出", BusinessCompanyExcel.class, sysUserPartners);
+        return HttpResult.ok("", uploadUrl + "excel/" + fileName);
+    }
+
+    /**
+     * @description:   控制台 - 业务数据 - 代理人导出
+     * @author: whp
+     * @date: 2024/12/13
+     **/
+    @Override
+    public HttpResult getBusinessAgentExcel(TaskStatisticsVo taskStatisticsVo) {
+        if(StringUtils.isNotEmpty(taskStatisticsVo.getTreeType()) ){
+            if((StringUtils.isNotEmpty(taskStatisticsVo.getTreeUserId()) && "2".equals(taskStatisticsVo.getTreeType()))){
+                List<String> userIds=this.getNextLevel(taskStatisticsVo.getTreeUserId());
+                if(!userIds.isEmpty() && userIds.get(0)!=null){
+                    taskStatisticsVo.setUserIds(userIds);
+                }else {
+                    taskStatisticsVo.setUserId(taskStatisticsVo.getTreeUserId());
+                }
+            }else if (StringUtils.isNotEmpty(taskStatisticsVo.getTreeUserId()) && "1".equals(taskStatisticsVo.getTreeType())){
+                taskStatisticsVo.setDeptId(taskStatisticsVo.getTreeUserId());
+                taskStatisticsVo.setTreeUserId(null);
+                taskStatisticsVo.setUserIds(new ArrayList<>());
+            }
+        }
+
+        HashMap<String, String> dateMapByType = getDateMapByTypeNew(taskStatisticsVo.getDateType(), taskStatisticsVo.getCreatetimeStart(), taskStatisticsVo.getCreatetimeEnd());
+        taskStatisticsVo.setCreatetimeStart(dateMapByType.get("startDate"));
+        taskStatisticsVo.setCreatetimeEnd(dateMapByType.get("endDate"));
+        getDateByType(taskStatisticsVo.getDateType(), taskStatisticsVo);
+        List<BusinessAgentData> list = this.taskStatisticsMapper.getBusinessAgentDataExcel(taskStatisticsVo);
+        for (BusinessAgentData record : list) {
+            this.appendName(record);
+            if (record.getDistributionAmountRate() == null) {
+                record.setDistributionAmountRate(new BigDecimal("0.0000"));
+            }
+            if(record.getManagementSource().equals("2")){
+                record.setManagementSource("代理人");
+            }
+        }
+        List<BusinessAgentExcel> sysUserPartners = BeanUtil.copyToList(list, BusinessAgentExcel.class);
+
+        String uploadPath = this.uploadPath + "/excel/";
+        Path path = Paths.get(uploadPath);
+        if (!Files.exists(path)) {
+            try {
+                Files.createDirectories(path);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        String fileName = EasyExcelUtils.downExcel(uploadPath, "业务数据代理人导出", BusinessAgentExcel.class, sysUserPartners);
+        return HttpResult.ok("", uploadUrl + "excel/" + fileName);
+    }
+    /**
+     * @description:   控制台 - 业务数据 -渠道导出
+     * @author: whp
+     * @date: 2024/12/13
+     **/
+    @Override
+    public HttpResult getChannelExcel(TaskStatisticsVo taskStatisticsVo) {
+        if(StringUtils.isNotEmpty(taskStatisticsVo.getTreeType()) ){
+            if((StringUtils.isNotEmpty(taskStatisticsVo.getTreeUserId()) && "2".equals(taskStatisticsVo.getTreeType()))){
+                List<String> userIds=this.getNextLevel(taskStatisticsVo.getTreeUserId());
+                if(!userIds.isEmpty() && userIds.get(0)!=null){
+                    taskStatisticsVo.setUserIds(userIds);
+                }else {
+                    taskStatisticsVo.setUserId(taskStatisticsVo.getTreeUserId());
+                }
+            }else if (StringUtils.isNotEmpty(taskStatisticsVo.getTreeUserId()) && "1".equals(taskStatisticsVo.getTreeType())){
+                taskStatisticsVo.setDeptId(taskStatisticsVo.getTreeUserId());
+                taskStatisticsVo.setTreeUserId(null);
+                taskStatisticsVo.setUserIds(new ArrayList<>());
+            }
+        }
+
+        HashMap<String, String> dateMapByType = getDateMapByTypeNew(taskStatisticsVo.getDateType(), taskStatisticsVo.getCreatetimeStart(), taskStatisticsVo.getCreatetimeEnd());
+        taskStatisticsVo.setCreatetimeStart(dateMapByType.get("startDate"));
+        taskStatisticsVo.setCreatetimeEnd(dateMapByType.get("endDate"));
+        getDateByType(taskStatisticsVo.getDateType(), taskStatisticsVo);
+        List<BusinessAgentData> list = this.taskStatisticsMapper.getBusinessAgentDataExcel(taskStatisticsVo);
+        for (BusinessAgentData record : list) {
+            this.appendName(record);
+            if (record.getDistributionAmountRate() == null) {
+                record.setDistributionAmountRate(new BigDecimal("0.0000"));
+            }
+            if(record.getManagementSource().equals("1")){
+                record.setManagementSource("渠道");
+
+            }
+        }
+        List<GetChannelExcel> sysUserPartners = BeanUtil.copyToList(list, GetChannelExcel.class);
+
+        String uploadPath = this.uploadPath + "/excel/";
+        Path path = Paths.get(uploadPath);
+        if (!Files.exists(path)) {
+            try {
+                Files.createDirectories(path);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        String fileName = EasyExcelUtils.downExcel(uploadPath, "业务数据渠道导出", GetChannelExcel.class, sysUserPartners);
+        return HttpResult.ok("", uploadUrl + "excel/" + fileName);
+    }
+
     /**
      *  @version
      *  @author: hh

+ 18 - 0
src/main/java/com/ydtech/modules/admin/utils/DataParams.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.admin.utils;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.HashMap;
+@Data
+public class DataParams {
+
+    @ApiModelProperty(value = "权限sql")
+    private String stringBufferContent;
+
+
+    @ApiModelProperty(value = "权限Map")
+    private HashMap<String,String> stringBufferContentMap;
+
+
+}

+ 13 - 2
src/main/java/com/ydtech/modules/esm/controller/EsmInsCompanyController.java

@@ -12,7 +12,6 @@ import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageRequest;
 import com.ydtech.core.page.PageResult;
 import com.ydtech.exception.SystemException;
-import com.ydtech.modules.admin.model.SysDept;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.model.EsmInsCompany;
 import com.ydtech.modules.esm.model.vo.req.EsmInsCompanyReq;
@@ -21,7 +20,6 @@ import com.ydtech.modules.esm.service.EsmInsCompanyService;
 import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 import com.ydtech.modules.protocol.entity.vo.PtlAgreementPageVo;
 import com.ydtech.modules.protocol.service.PtlAgreementService;
-import com.ydtech.modules.protocol.service.impl.PtlAgreementServiceImpl;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
 import com.ydtech.utils.StringUtils;
 import io.swagger.annotations.Api;
@@ -289,4 +287,17 @@ public class EsmInsCompanyController extends BaseController {
         List<EsmInsCompanyResVo> esmInsCompanyList = esmInsCompanyService.findOrderCompanyList();
         return HttpResult.ok(esmInsCompanyList);
     }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/12/12 14:29
+     *  @Description:  获取外部协议的保险公司的集合
+     */
+    @PostMapping("/getExternalAgreementCompanyList")
+    @ApiOperation("获取外部协议的保险公司的集合")
+    public HttpResult<List<EsmInsCompanyResVo>> getExternalAgreementCompanyList(@RequestSingleParam("name") String name) {
+        List<EsmInsCompanyResVo> lst = esmInsCompanyService.getExternalAgreementCompanyList(name);
+        return HttpResult.ok(lst);
+    }
 }

+ 7 - 0
src/main/java/com/ydtech/modules/esm/dao/EsmInsCompanyMapper.java

@@ -36,4 +36,11 @@ public interface EsmInsCompanyMapper extends BaseMapper<EsmInsCompany> {
      *  @Description: 查询订单下的保险公司列表
      */
     List<EsmInsCompanyResVo> findOrderCompanyList();
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/12/12 14:34
+     *  @Description:  获取外部协议的公司列表
+     */
+    List<EsmInsCompanyResVo> getExternalAgreementCompanyList( @Param("name")  String name);
 }

+ 7 - 0
src/main/java/com/ydtech/modules/esm/service/EsmInsCompanyService.java

@@ -84,6 +84,13 @@ public interface EsmInsCompanyService extends IService<EsmInsCompany> {
      *  @Description:  通过保险公司名称或简称查询
      */
     public EsmInsCompany findInsCompanyByNameOrNamesimple(String companyName);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/12/12 14:32
+     *  @Description:  获取外部协议的保险公司列表
+     */
+    List<EsmInsCompanyResVo> getExternalAgreementCompanyList(String name);
 }
 
 

+ 10 - 1
src/main/java/com/ydtech/modules/esm/service/impl/EsmInsCompanyServiceImpl.java

@@ -10,7 +10,6 @@ import com.ydtech.modules.esm.model.vo.res.EsmInsCompanyResVo;
 import com.ydtech.modules.esm.service.EsmInsCompanyService;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
 import com.ydtech.utils.StringUtils;
-import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -198,6 +197,16 @@ public class EsmInsCompanyServiceImpl extends ServiceImpl<EsmInsCompanyMapper, E
         }
         return null;
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/12/12 14:33
+     *  @Description: 获取外部协议的保险公司列表
+     */
+    @Override
+    public List<EsmInsCompanyResVo> getExternalAgreementCompanyList(String name) {
+        return baseMapper.getExternalAgreementCompanyList(name);
+    }
 }
 
 

+ 33 - 36
src/main/java/com/ydtech/modules/fee/dto/vo/RuleAttrMappingVo.java

@@ -75,10 +75,10 @@ public class RuleAttrMappingVo {
         LocalDate currentDate = LocalDate.now();
 
         //交强起保日期
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("JqStartTime",insOrders.getJqstartdate()));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("JqStartTime", insAreaCompany.getJqStartDate()));
 
         //商业起保日期
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("SyStartTime",insOrders.getSystartdate()));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("SyStartTime", insAreaCompany.getSyStartDate()));
 
         boolean isNoLicenseFlag = false;
         if (carJudgeRule != null) {
@@ -100,7 +100,7 @@ public class RuleAttrMappingVo {
 
         //车龄
         long between = ChronoUnit.YEARS.between(registrationDate, currentDate) + 1;
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleAge",String.valueOf(between)));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleAge", String.valueOf(between)));
 
 
         //发证日期
@@ -140,25 +140,25 @@ public class RuleAttrMappingVo {
 
         String OPIConsistent = "0";
         //车主 投被保人是否一致
-        if((ownerInfo.getName().equals(insuredPersonInfo.getName()) && insuredPersonInfo.getName().equals(policyHolderInfo.getName())) &&
-                (ownerInfo.getIdentifyNumber().equals(insuredPersonInfo.getIdentifyNumber()) && insuredPersonInfo.getIdentifyNumber().equals(policyHolderInfo.getIdentifyNumber()))){
+        if ((ownerInfo.getName().equals(insuredPersonInfo.getName()) && insuredPersonInfo.getName().equals(policyHolderInfo.getName())) &&
+                (ownerInfo.getIdentifyNumber().equals(insuredPersonInfo.getIdentifyNumber()) && insuredPersonInfo.getIdentifyNumber().equals(policyHolderInfo.getIdentifyNumber()))) {
             OPIConsistent = "1";
         }
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("OPIConsistent",OPIConsistent));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("OPIConsistent", OPIConsistent));
 
         String PIConsistent = "0";
         //投被保人是否一致
-        if(insuredPersonInfo.getName().equals(policyHolderInfo.getName()) && insuredPersonInfo.getIdentifyNumber().equals(policyHolderInfo.getIdentifyNumber())){
+        if (insuredPersonInfo.getName().equals(policyHolderInfo.getName()) && insuredPersonInfo.getIdentifyNumber().equals(policyHolderInfo.getIdentifyNumber())) {
             PIConsistent = "1";
         }
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("PIConsistent",PIConsistent));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("PIConsistent", PIConsistent));
 
         //2024-06-20 起保日期 月份判断
-        if(insAreaCompany.getJqStartDate() != null && !insAreaCompany.getJqStartDate().equals("")){
+        if (insAreaCompany.getJqStartDate() != null && !insAreaCompany.getJqStartDate().equals("")) {
             LocalDateTime jqStartDate = LocalDateTime.parse(insAreaCompany.getJqStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("JqStartMonth", String.valueOf(jqStartDate.getMonthValue())));
         }
-        if(insAreaCompany.getSyStartDate() != null && !insAreaCompany.getSyStartDate().equals("")) {
+        if (insAreaCompany.getSyStartDate() != null && !insAreaCompany.getSyStartDate().equals("")) {
             LocalDateTime syStartDate = LocalDateTime.parse(insAreaCompany.getSyStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("SyStartMonth", String.valueOf(syStartDate.getMonthValue())));
         }
@@ -303,73 +303,70 @@ public class RuleAttrMappingVo {
         // 商业出险次数
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("SyNumberOfClaims", insAreaCompany.getSyClaims() == null ? "0" : insAreaCompany.getSyClaims()));
         // 车牌地区
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("LicenseArea", insOrders.getLicenseno().substring(0,1)));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("LicenseArea", insOrders.getLicenseno().substring(0, 1)));
         // 系数
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("Coefficient", getCoefficient(carInfo,insAreaCompany).toString()));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("Coefficient", getCoefficient(carInfo, insAreaCompany).toString()));
         // 商业是否有费用
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("CiMessage", (insAreaCompany.getCiMessage() == null || "".equals(insAreaCompany.getCiMessage())) ? "0" : "1"));
         return ruleAttrMappingVoList;
     }
 
-    private static Float getCoefficient(CarInfoVo carInfo,InsAreaCompany insAreaCompany){
+    private static Float getCoefficient(CarInfoVo carInfo, InsAreaCompany insAreaCompany) {
         Integer seatCount = Integer.parseInt(carInfo.getSeatCount());
         Float coefficient = 1.00f;
 
         //        ruleAttrMappingVoList.add(new RuleAttrMappingVo())
         //家庭自用车
-        if(carInfo.getCimodelclass().equals(VehicleType.VT_A0.getCode()) &&
-                carInfo.getVehicleUse().equals(TypeVehicleMapping.TM_05.getCode())){
+        if (carInfo.getCimodelclass().equals(VehicleType.VT_A0.getCode()) &&
+                carInfo.getVehicleUse().equals(TypeVehicleMapping.TM_05.getCode())) {
             //2-5座
-            if(seatCount >= 2 && seatCount <=5) {
+            if (seatCount >= 2 && seatCount <= 5) {
                 coefficient = Float.parseFloat(insAreaCompany.getJqpremium().toString()) / 950;
             }
             //6-9座
-            if(seatCount >= 6 && seatCount <=9){
+            if (seatCount >= 6 && seatCount <= 9) {
                 coefficient = Float.parseFloat(insAreaCompany.getJqpremium().toString()) / 1100;
             }
-        }else
+        } else
             //非营业机关、企业
-            if(carInfo.getCimodelclass().equals(VehicleType.VT_A0.getCode()) &&
+            if (carInfo.getCimodelclass().equals(VehicleType.VT_A0.getCode()) &&
                     (carInfo.getVehicleUse().equals(TypeVehicleMapping.TM_06.getCode()) ||
-                            carInfo.getVehicleUse().equals(TypeVehicleMapping.TM_07.getCode()))){
+                            carInfo.getVehicleUse().equals(TypeVehicleMapping.TM_07.getCode()))) {
                 //2-5座
-                if(seatCount >= 2 && seatCount <=5) {
+                if (seatCount >= 2 && seatCount <= 5) {
                     coefficient = Float.parseFloat(insAreaCompany.getJqpremium().toString()) / 1000;
                 }
                 //6-9座
-                if(seatCount >= 6 && seatCount <=9){
+                if (seatCount >= 6 && seatCount <= 9) {
                     coefficient = Float.parseFloat(insAreaCompany.getJqpremium().toString()) / 1130;
                 }
-            }
-            else
+            } else
                 //货车
-                if(carInfo.getCimodelclass().equals(VehicleType.VT_A1.getCode()))
-                {
+                if (carInfo.getCimodelclass().equals(VehicleType.VT_A1.getCode())) {
                     //营业货运 2吨
-                    if(carInfo.getVehicleUse().equals(TypeVehicleMapping.TM_04.getCode()) &&
-                            Integer.parseInt(carInfo.getLimitLoad()) < 2000){
+                    if (carInfo.getVehicleUse().equals(TypeVehicleMapping.TM_04.getCode()) &&
+                            Integer.parseInt(carInfo.getLimitLoad()) < 2000) {
                         coefficient = Float.parseFloat(insAreaCompany.getJqpremium().toString()) / 1850;
                     }
 
                     //非营业货运 2吨
-                    if(carInfo.getVehicleUse().equals(TypeVehicleMapping.TM_08.getCode()) &&
-                            Integer.parseInt(carInfo.getLimitLoad()) < 2000){
+                    if (carInfo.getVehicleUse().equals(TypeVehicleMapping.TM_08.getCode()) &&
+                            Integer.parseInt(carInfo.getLimitLoad()) < 2000) {
                         coefficient = Float.parseFloat(insAreaCompany.getJqpremium().toString()) / 1200;
                     }
 
                     //大吨位
-                    if(Integer.parseInt(carInfo.getLimitLoad()) > 2000){
+                    if (Integer.parseInt(carInfo.getLimitLoad()) > 2000) {
                         coefficient = Float.parseFloat(insAreaCompany.getJqpremium().toString()) / 4480;
                     }
-                }
-                else
+                } else
                     //出租车 网约车
-                    if(carInfo.getCimodelclass().equals(VehicleType.VT_A0.getCode()) &&
-                            carInfo.getVehicleUse().equals(TypeVehicleMapping.TM_01.getCode())){
+                    if (carInfo.getCimodelclass().equals(VehicleType.VT_A0.getCode()) &&
+                            carInfo.getVehicleUse().equals(TypeVehicleMapping.TM_01.getCode())) {
                         coefficient = Float.parseFloat(insAreaCompany.getJqpremium().toString()) / 1800;
                     }
 
-                    return coefficient;
+        return coefficient;
     }
 
 }

+ 2 - 0
src/main/java/com/ydtech/modules/fnc/controller/contract/ContractController.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.fnc.controller.contract;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ydtech.aop.GetStringBufferContent;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.dto.TaskStatisticsDto;
 import com.ydtech.modules.admin.model.vo.KztGetDeptUtilsDto;
@@ -47,6 +48,7 @@ public class ContractController extends BaseController {
      **/
     @PostMapping("queryPage")
     @ApiOperation(value = "合同分页查询")
+    @GetStringBufferContent
     public HttpResult<IPage<ContractEntity>> queryPage(@RequestBody ContractVo contractVO) {
         try {
             IPage<ContractEntity> result = contractService.queryPage(contractVO);

+ 1 - 0
src/main/java/com/ydtech/modules/fnc/service/contract/impl/contractServiceImpl.java

@@ -34,6 +34,7 @@ import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
 import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.cache.CacheProperties;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;

+ 122 - 116
src/main/java/com/ydtech/modules/fnc/service/impl/InsPlyIncomeServiceImpl.java

@@ -4029,168 +4029,174 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
     @Override
     @Transactional
     public void correctData(InsPlyIncomeVo insPlyIncomeVo) {
-        String licenseno = insPlyIncomeVo.getLicenseno();
-        HashMap<String, Object> params = new HashMap<>();
-        params.put("licenseno", licenseno);
-        List<InsPlyIncome> insPlyIncomes = baseMapper.queryNew(params);
-        if (insPlyIncomes.isEmpty()) {
-            throw new SystemException("该车牌号不存在");
-        }
+        List<String> licensenoList = insPlyIncomeVo.getLicensenoList();
+        for (String s : licensenoList) {
+            HashMap<String, Object> params = new HashMap<>();
+            params.put("licenseno", s);
+            List<InsPlyIncome> insPlyIncomes = baseMapper.queryNew(params);
+            if (insPlyIncomes.isEmpty()) {
+                throw new SystemException("该车牌号不存在");
+            }
 //      如果 该数据是平台  则转为私有 如果是私有则转为 平台
-        InsPlyIncome insPlyIncome1 = insPlyIncomes.get(0);
-        if ("1".equals(insPlyIncome1.getAgreementType())) { //平台转私有
-            BigDecimal jqPremium = insPlyIncome1.getJqPremium();  //交强保费
-            BigDecimal syPremium = insPlyIncome1.getSyPremium();  //商业保费
-            BigDecimal noPremium = insPlyIncome1.getNoPremium();  //非车保费
+            InsPlyIncome insPlyIncome1 = insPlyIncomes.get(0);
+            if ("1".equals(insPlyIncome1.getAgreementType())) { //平台转私有
+                BigDecimal jqPremium = insPlyIncome1.getJqPremium();  //交强保费
+                BigDecimal syPremium = insPlyIncome1.getSyPremium();  //商业保费
+                BigDecimal noPremium = insPlyIncome1.getNoPremium();  //非车保费
 
-            BigDecimal jqSuperviseCostsProportion = insPlyIncome1.getJqSuperviseCostsProportion();//交强手续费比例
-            BigDecimal sySuperviseCostsProportion = insPlyIncome1.getSySuperviseCostsProportion(); //商业手续费比例
-            BigDecimal noSuperviseCostsProportion = insPlyIncome1.getNoSuperviseCostsProportion(); //非车手续费比例
+                BigDecimal jqSuperviseCostsProportion = insPlyIncome1.getJqSuperviseCostsProportion();//交强手续费比例
+                BigDecimal sySuperviseCostsProportion = insPlyIncome1.getSySuperviseCostsProportion(); //商业手续费比例
+                BigDecimal noSuperviseCostsProportion = insPlyIncome1.getNoSuperviseCostsProportion(); //非车手续费比例
 
-            BigDecimal jqOtherCostsProportion = insPlyIncome1.getJqOtherCostsProportion(); //交强跟单比例
-            BigDecimal syOtherCostsProportion = insPlyIncome1.getSyOtherCostsProportion(); // 商业跟单比例
-            BigDecimal noOtherCostsProportion = insPlyIncome1.getNoOtherCostsProportion(); // 非车跟单比例
+                BigDecimal jqOtherCostsProportion = insPlyIncome1.getJqOtherCostsProportion(); //交强跟单比例
+                BigDecimal syOtherCostsProportion = insPlyIncome1.getSyOtherCostsProportion(); // 商业跟单比例
+                BigDecimal noOtherCostsProportion = insPlyIncome1.getNoOtherCostsProportion(); // 非车跟单比例
 
-            if ((jqSuperviseCostsProportion.compareTo(BigDecimal.ZERO) > 0 || sySuperviseCostsProportion.compareTo(BigDecimal.ZERO) > 0) && jqPremium.compareTo(BigDecimal.ZERO)>0 || syPremium.compareTo(BigDecimal.ZERO)>0) {  //私有手续费
-                BigDecimal commissionFeerate = this.calculateTotal(insPlyIncome1.getJqSuperviseCostsProportion(), insPlyIncome1.getSySuperviseCostsProportion(), null);
-                BigDecimal commissionFeevalue = this.calculateTotal(insPlyIncome1.getJqSuperviseCostsPremiums(), insPlyIncome1.getSySuperviseCostsPremiums(), null);
+                if ((jqSuperviseCostsProportion.compareTo(BigDecimal.ZERO) > 0 || sySuperviseCostsProportion.compareTo(BigDecimal.ZERO) > 0) && jqPremium.compareTo(BigDecimal.ZERO)>0 || syPremium.compareTo(BigDecimal.ZERO)>0) {  //私有手续费
+                    BigDecimal commissionFeerate = this.calculateTotal(insPlyIncome1.getJqSuperviseCostsProportion(), insPlyIncome1.getSySuperviseCostsProportion(), null);
+                    BigDecimal commissionFeevalue = this.calculateTotal(insPlyIncome1.getJqSuperviseCostsPremiums(), insPlyIncome1.getSySuperviseCostsPremiums(), null);
 
-                InsPlyIncome insPlyIncome = new InsPlyIncome();
-                BeanUtils.copyProperties(insPlyIncome1, insPlyIncome);
+                    InsPlyIncome insPlyIncome = new InsPlyIncome();
+                    BeanUtils.copyProperties(insPlyIncome1, insPlyIncome);
 
-                insPlyIncome.setJqOtherCostsProportion(null);
-                insPlyIncome.setJqOtherCostsPremium(null);
 
-                insPlyIncome.setSyOtherCostsProportion(null);
-                insPlyIncome.setSyOtherCostsPremium(null);
+                    insPlyIncome.setJqOtherCostsProportion(null);
+                    insPlyIncome.setJqOtherCostsPremium(null);
 
-                insPlyIncome.setNoOtherCostsProportion(null);
-                insPlyIncome.setNoOtherCostsPremium(null);
+                    insPlyIncome.setSyOtherCostsProportion(null);
+                    insPlyIncome.setSyOtherCostsPremium(null);
 
-                insPlyIncome.setNoSuperviseCostsPremiums(null);
-                insPlyIncome.setNoSuperviseCostsProportion(null);
+                    insPlyIncome.setNoOtherCostsProportion(null);
+                    insPlyIncome.setNoOtherCostsPremium(null);
 
-                insPlyIncome.setOtherFeerate(null);
-                insPlyIncome.setOtherFeevalue(null);
+                    insPlyIncome.setNoSuperviseCostsPremiums(null);
+                    insPlyIncome.setNoSuperviseCostsProportion(null);
 
-                insPlyIncome.setCommissionFeerate(commissionFeerate);
-                insPlyIncome.setCommissionFeevalue(commissionFeevalue);
-                insPlyIncome.setAllFeeValue(commissionFeevalue);
-                insPlyIncome.setAgreementId(insPlyIncomeVo.getAgreementId());
-                insPlyIncome.setId(null);
+                    insPlyIncome.setOtherFeerate(null);
+                    insPlyIncome.setOtherFeevalue(null);
 
-                baseMapper.insert(insPlyIncome);
-            }
+                    insPlyIncome.setCommissionFeerate(commissionFeerate);
+                    insPlyIncome.setCommissionFeevalue(commissionFeevalue);
+                    insPlyIncome.setAllFeeValue(commissionFeevalue);
+                    insPlyIncome.setReceivableAmount(commissionFeevalue);
+                    insPlyIncome.setAgreementId(insPlyIncomeVo.getAgreementId());
+                    insPlyIncome.setId(null);
+
+                    baseMapper.insert(insPlyIncome);
+                }
 
-            if ((jqOtherCostsProportion.compareTo(BigDecimal.ZERO) > 0 || syOtherCostsProportion.compareTo(BigDecimal.ZERO) > 0) && jqPremium.compareTo(BigDecimal.ZERO)>0 || syPremium.compareTo(BigDecimal.ZERO)>0) {
+                if ((jqOtherCostsProportion.compareTo(BigDecimal.ZERO) > 0 || syOtherCostsProportion.compareTo(BigDecimal.ZERO) > 0) && jqPremium.compareTo(BigDecimal.ZERO)>0 || syPremium.compareTo(BigDecimal.ZERO)>0) {
 
-                BigDecimal syOtherAmount = algorithmAmount(insPlyIncome1.getSyPremium(), insPlyIncome1.getSyOtherCostsProportion());
-                BigDecimal jqOtherAmount = algorithmAmount(insPlyIncome1.getJqPremium(), insPlyIncome1.getJqOtherCostsProportion());
+                    BigDecimal syOtherAmount = algorithmAmount(insPlyIncome1.getSyPremium(), insPlyIncome1.getSyOtherCostsProportion());
+                    BigDecimal jqOtherAmount = algorithmAmount(insPlyIncome1.getJqPremium(), insPlyIncome1.getJqOtherCostsProportion());
 
 
-                BigDecimal otherFvalue = this.calculateTotal(syOtherAmount, jqOtherAmount, null);
-                BigDecimal otherFeet = this.calculateTotal(insPlyIncome1.getJqOtherCostsProportion(), insPlyIncome1.getSyOtherCostsProportion(), null);
+                    BigDecimal otherFvalue = this.calculateTotal(syOtherAmount, jqOtherAmount, null);
+                    BigDecimal otherFeet = this.calculateTotal(insPlyIncome1.getJqOtherCostsProportion(), insPlyIncome1.getSyOtherCostsProportion(), null);
 
-                InsPlyIncome insPlyIncome = new InsPlyIncome();
-                BeanUtils.copyProperties(insPlyIncome1, insPlyIncome);
+                    InsPlyIncome insPlyIncome = new InsPlyIncome();
+                    BeanUtils.copyProperties(insPlyIncome1, insPlyIncome);
 
-                insPlyIncome.setNoOtherCostsProportion(null);
-                insPlyIncome.setNoOtherCostsPremium(null);
+                    insPlyIncome.setNoOtherCostsProportion(null);
+                    insPlyIncome.setNoOtherCostsPremium(null);
 
-                insPlyIncome.setNoSuperviseCostsPremiums(null);
-                insPlyIncome.setNoSuperviseCostsProportion(null);
+                    insPlyIncome.setNoSuperviseCostsPremiums(null);
+                    insPlyIncome.setNoSuperviseCostsProportion(null);
 
-                insPlyIncome.setJqSuperviseCostsProportion(null);
-                insPlyIncome.setJqSuperviseCostsPremiums(null);
+                    insPlyIncome.setJqSuperviseCostsProportion(null);
+                    insPlyIncome.setJqSuperviseCostsPremiums(null);
 
-                insPlyIncome.setSySuperviseCostsPremiums(null);
-                insPlyIncome.setSySuperviseCostsProportion(null);
+                    insPlyIncome.setSySuperviseCostsPremiums(null);
+                    insPlyIncome.setSySuperviseCostsProportion(null);
 
-                insPlyIncome.setCommissionFeevalue(null);
-                insPlyIncome.setCommissionFeerate(null);
+                    insPlyIncome.setCommissionFeevalue(null);
+                    insPlyIncome.setCommissionFeerate(null);
 
-                insPlyIncome.setJqOtherCostsPremium(jqOtherAmount);
-                insPlyIncome.setSyOtherCostsPremium(syOtherAmount);
-                insPlyIncome.setOtherFeevalue(otherFvalue);
-                insPlyIncome.setOtherFeerate(otherFeet);
-                insPlyIncome.setAllFeeValue(otherFvalue);
-                insPlyIncome.setAgreementId(insPlyIncomeVo.getAgreementId());
-                insPlyIncome.setIsNotDocumentary("1");
-                insPlyIncome.setId(null);
+                    insPlyIncome.setJqOtherCostsPremium(jqOtherAmount);
+                    insPlyIncome.setSyOtherCostsPremium(syOtherAmount);
+                    insPlyIncome.setOtherFeevalue(otherFvalue);
+                    insPlyIncome.setOtherFeerate(otherFeet);
+                    insPlyIncome.setAllFeeValue(otherFvalue);
+                    insPlyIncome.setReceivableAmount(otherFvalue);
+                    insPlyIncome.setAgreementId(insPlyIncomeVo.getAgreementId());
+                    insPlyIncome.setIsNotDocumentary("1");
+                    insPlyIncome.setId(null);
 
-                baseMapper.insert(insPlyIncome);
-            }
+                    baseMapper.insert(insPlyIncome);
+                }
 
-            if (noSuperviseCostsProportion.compareTo(BigDecimal.ZERO)>0 &&  noPremium.compareTo(BigDecimal.ZERO)>0) {  //非车手续费
-                InsPlyIncome insPlyIncome = new InsPlyIncome();
-                BeanUtils.copyProperties(insPlyIncome1, insPlyIncome);
+                if (noSuperviseCostsProportion.compareTo(BigDecimal.ZERO)>0 &&  noPremium.compareTo(BigDecimal.ZERO)>0) {  //非车手续费
+                    InsPlyIncome insPlyIncome = new InsPlyIncome();
+                    BeanUtils.copyProperties(insPlyIncome1, insPlyIncome);
 
-                insPlyIncome.setJqSuperviseCostsPremiums(null);
-                insPlyIncome.setJqSuperviseCostsProportion(null);
+                    insPlyIncome.setJqSuperviseCostsPremiums(null);
+                    insPlyIncome.setJqSuperviseCostsProportion(null);
 
-                insPlyIncome.setSySuperviseCostsPremiums(null);
-                insPlyIncome.setSySuperviseCostsProportion(null);
+                    insPlyIncome.setSySuperviseCostsPremiums(null);
+                    insPlyIncome.setSySuperviseCostsProportion(null);
 
-                insPlyIncome.setJqOtherCostsPremium(null);
-                insPlyIncome.setJqOtherCostsProportion(null);
+                    insPlyIncome.setJqOtherCostsPremium(null);
+                    insPlyIncome.setJqOtherCostsProportion(null);
 
-                insPlyIncome.setSyOtherCostsProportion(null);
-                insPlyIncome.setSyOtherCostsPremium(null);
+                    insPlyIncome.setSyOtherCostsProportion(null);
+                    insPlyIncome.setSyOtherCostsPremium(null);
 
-                insPlyIncome.setNoOtherCostsProportion(null);
-                insPlyIncome.setNoOtherCostsPremium(null);
+                    insPlyIncome.setNoOtherCostsProportion(null);
+                    insPlyIncome.setNoOtherCostsPremium(null);
 
 
-                insPlyIncome.setOtherFeevalue(null);
-                insPlyIncome.setOtherFeerate(null);
+                    insPlyIncome.setOtherFeevalue(null);
+                    insPlyIncome.setOtherFeerate(null);
 
-                insPlyIncome.setCommissionFeevalue(insPlyIncome1.getNoSuperviseCostsPremiums());
-                insPlyIncome.setCommissionFeerate(insPlyIncome1.getNoSuperviseCostsProportion());
-                insPlyIncome.setAllFeeValue(insPlyIncome1.getNoSuperviseCostsPremiums());
+                    insPlyIncome.setCommissionFeevalue(insPlyIncome1.getNoSuperviseCostsPremiums());
+                    insPlyIncome.setCommissionFeerate(insPlyIncome1.getNoSuperviseCostsProportion());
+                    insPlyIncome.setAllFeeValue(insPlyIncome1.getNoSuperviseCostsPremiums());
 
-                insPlyIncome.setAgreementId(insPlyIncomeVo.getAgreementId());
-                insPlyIncome.setId(null);
-                insPlyIncome.setIsNotCar("1");
-                baseMapper.insert(insPlyIncome);
-            }
+                    insPlyIncome.setAgreementId(insPlyIncomeVo.getAgreementId());
+                    insPlyIncome.setId(null);
+                    insPlyIncome.setIsNotCar("1");
+                    insPlyIncome.setReceivableAmount(insPlyIncome1.getNoSuperviseCostsPremiums());
+                    baseMapper.insert(insPlyIncome);
+                }
 
-            if (noOtherCostsProportion .compareTo(BigDecimal.ZERO) >0 && noPremium.compareTo(BigDecimal.ZERO)>0) {
+                if (noOtherCostsProportion .compareTo(BigDecimal.ZERO) >0 && noPremium.compareTo(BigDecimal.ZERO)>0) {
 
-                //                algorithmAmount(syPremium, syOtherCostsProportion)
-                BigDecimal noOtherAmount = algorithmAmount(insPlyIncome1.getNoPremium(), insPlyIncome1.getNoOtherCostsProportion());
+                    //                algorithmAmount(syPremium, syOtherCostsProportion)
+                    BigDecimal noOtherAmount = algorithmAmount(insPlyIncome1.getNoPremium(), insPlyIncome1.getNoOtherCostsProportion());
 
 
-                InsPlyIncome insPlyIncome = new InsPlyIncome();
-                BeanUtils.copyProperties(insPlyIncome1, insPlyIncome);
+                    InsPlyIncome insPlyIncome = new InsPlyIncome();
+                    BeanUtils.copyProperties(insPlyIncome1, insPlyIncome);
 
-                insPlyIncome.setJqSuperviseCostsPremiums(null);
-                insPlyIncome.setJqSuperviseCostsProportion(null);
+                    insPlyIncome.setJqSuperviseCostsPremiums(null);
+                    insPlyIncome.setJqSuperviseCostsProportion(null);
 
-                insPlyIncome.setSySuperviseCostsPremiums(null);
-                insPlyIncome.setSySuperviseCostsProportion(null);
+                    insPlyIncome.setSySuperviseCostsPremiums(null);
+                    insPlyIncome.setSySuperviseCostsProportion(null);
 
-                insPlyIncome.setJqOtherCostsPremium(null);
-                insPlyIncome.setJqOtherCostsProportion(null);
+                    insPlyIncome.setJqOtherCostsPremium(null);
+                    insPlyIncome.setJqOtherCostsProportion(null);
 
-                insPlyIncome.setSyOtherCostsProportion(null);
-                insPlyIncome.setSyOtherCostsPremium(null);
+                    insPlyIncome.setSyOtherCostsProportion(null);
+                    insPlyIncome.setSyOtherCostsPremium(null);
 
-                insPlyIncome.setNoSuperviseCostsPremiums(null);
-                insPlyIncome.setNoSuperviseCostsProportion(null);
+                    insPlyIncome.setNoSuperviseCostsPremiums(null);
+                    insPlyIncome.setNoSuperviseCostsProportion(null);
 
-                insPlyIncome.setCommissionFeerate(null);
-                insPlyIncome.setCommissionFeevalue(null);
+                    insPlyIncome.setCommissionFeerate(null);
+                    insPlyIncome.setCommissionFeevalue(null);
 
-                insPlyIncome.setOtherFeevalue(noOtherAmount);
-                insPlyIncome.setOtherFeerate(insPlyIncome1.getNoOtherCostsProportion());
+                    insPlyIncome.setOtherFeevalue(noOtherAmount);
+                    insPlyIncome.setOtherFeerate(insPlyIncome1.getNoOtherCostsProportion());
 
-                insPlyIncome.setNoOtherCostsPremium(noOtherAmount);
-                insPlyIncome.setAgreementId(insPlyIncomeVo.getAgreementId());
-                insPlyIncome.setAllFeeValue(insPlyIncome1.getNoOtherCostsPremium());
-                insPlyIncome.setId(null);
-                insPlyIncome.setIsNotCar("1");
-                insPlyIncome.setIsNotDocumentary("1");
-                baseMapper.insert(insPlyIncome);
+                    insPlyIncome.setNoOtherCostsPremium(noOtherAmount);
+                    insPlyIncome.setAgreementId(insPlyIncomeVo.getAgreementId());
+                    insPlyIncome.setAllFeeValue(insPlyIncome1.getNoOtherCostsPremium());
+                    insPlyIncome.setId(null);
+                    insPlyIncome.setIsNotCar("1");
+                    insPlyIncome.setIsNotDocumentary("1");
+                    baseMapper.insert(insPlyIncome);
+                }
             }
         }
     }

+ 6 - 1
src/main/java/com/ydtech/modules/fnc/vo/ContractVo.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.fnc.vo;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.ydtech.modules.admin.utils.DataParams;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -10,11 +11,12 @@ import lombok.Data;
 import javax.validation.constraints.Min;
 import java.io.Serializable;
 import java.time.LocalDateTime;
+import java.util.HashMap;
 import java.util.List;
 
 @Data
 @ApiModel("合同查询vo")
-public class ContractVo implements Serializable {
+public class ContractVo  extends DataParams implements Serializable {
     @ApiModelProperty("主键")
     private String id;
 
@@ -120,4 +122,7 @@ public class ContractVo implements Serializable {
 
     @ApiModelProperty("是否是查看详情")
     private String isView;
+
+    @ApiModelProperty("是否是查看详情")
+    private String inValue;
 }

+ 3 - 0
src/main/java/com/ydtech/modules/fnc/vo/InsPlyIncomeVo.java

@@ -429,4 +429,7 @@ public class InsPlyIncomeVo implements Serializable {
     private String status;
 
 
+
+    @ApiModelProperty(value = "车牌号list")
+    private List<String> licensenoList;
 }

+ 26 - 15
src/main/java/com/ydtech/modules/inv/utils/CheckInsPlyComeUtils.java

@@ -20,6 +20,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
 import java.util.HashMap;
 import java.util.Map;
@@ -238,9 +239,9 @@ public class CheckInsPlyComeUtils {
         if(checkIsNull(dto.getPolicyno(), "交强保单号")!=null){
             errorMsg+=checkIsNull(dto.getPolicyno(), "交强保单号")+"; ";
         }
-        if(checkIsNull(dto.getSyPolicyno(), "商业保单号")!=null){
-            errorMsg+=checkIsNull(dto.getSyPolicyno(), "商业保单号")+"; ";
-        }
+//        if(checkIsNull(dto.getSyPolicyno(), "商业保单号")!=null){
+//            errorMsg+=checkIsNull(dto.getSyPolicyno(), "商业保单号")+"; ";
+//        }
         if(isNumeric(dto.getJqPremium(), "交强险保费")!=null){
             errorMsg+=isNumeric(dto.getJqPremium(), "交强险保费")+"; ";
         }
@@ -284,13 +285,23 @@ public class CheckInsPlyComeUtils {
     }
 
     private static String pareTimeLocalDate(String signDate) {
-        DateTimeFormatter originalFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        DateTimeFormatter targetFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        // 解析原始字符串日期为 LocalDateTime
-        LocalDateTime originalDateTime = LocalDateTime.parse(signDate, originalFormatter);
+        // 定义输入格式(仅日期)
+        DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+
+        // 解析原始字符串日期为 LocalDate
+        LocalDate localDate = LocalDate.parse(signDate, inputFormatter);
+
+        // 创建一个表示午夜的 LocalTime
+        LocalTime localTime = LocalTime.MIDNIGHT; // 或者 LocalTime.of(0, 0, 0)
+
+        // 将 LocalDate 和 LocalTime 合并为 LocalDateTime
+        LocalDateTime localDateTime = localDate.atTime(localTime);
+
+        // 定义输出格式(日期和时间)
+        DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
         // 将 LocalDateTime 转换为目标格式的字符串
-        String b = originalDateTime.format(targetFormatter);
-        return b;
+        return localDateTime.format(outputFormatter);
     }
 
     /**
@@ -359,9 +370,9 @@ public class CheckInsPlyComeUtils {
         if(checkIsNull(dto.getPolicyno(), "交强保单号")!=null){
             errorMsg+=checkIsNull(dto.getPolicyno(), "交强保单号")+"; ";
         }
-        if(checkIsNull(dto.getSyPolicyno(), "商业保单号")!=null){
-            errorMsg+=checkIsNull(dto.getSyPolicyno(), "商业保单号")+"; ";
-        }
+//        if(checkIsNull(dto.getSyPolicyno(), "商业保单号")!=null){
+//            errorMsg+=checkIsNull(dto.getSyPolicyno(), "商业保单号")+"; ";
+//        }
         if(isNumeric(dto.getJqPremium(), "交强险保费")!=null){
             errorMsg+=isNumeric(dto.getJqPremium(), "交强险保费")+"; ";
         }
@@ -651,9 +662,9 @@ public class CheckInsPlyComeUtils {
         if(checkIsNull(dto.getPolicyno(), "交强保单号")!=null){
             errorMsg+=checkIsNull(dto.getPolicyno(), "交强保单号")+"; ";
         }
-        if(checkIsNull(dto.getSyPolicyno(), "商业保单号")!=null){
-            errorMsg+=checkIsNull(dto.getSyPolicyno(), "商业保单号")+"; ";
-        }
+//        if(checkIsNull(dto.getSyPolicyno(), "商业保单号")!=null){
+//            errorMsg+=checkIsNull(dto.getSyPolicyno(), "商业保单号")+"; ";
+//        }
         if(checkIsNull(dto.getNoPolicyno(), "非车保单号")!=null){
             errorMsg+=checkIsNull(dto.getNoPolicyno(), "非车保单号")+"; ";
         }

+ 2 - 2
src/main/java/com/ydtech/modules/order/controller/ExternalOrderController.java

@@ -194,13 +194,13 @@ public class ExternalOrderController {
     @PostMapping("/externalOrderFee")
     @ApiOperation("外部订单费用")
     public HttpResult<Object> externalOrderFee(@RequestBody ExternalOrderFeeVo externalOrderFeeVo){
-        //校验是否是外部订单的现询协议
+        //校验是否是外部订单的现询协议
         PtlAgreement ptlAgreement = ptlAgreementService.getById(externalOrderFeeVo.getAgreementId());
         ProductsType productsType = InsuranceRisk.determineInsuranceInformation(externalOrderFeeVo.getKinds(), externalOrderFeeVo.getRisks());
         externalOrderFeeVo.setProductCode(productsType.getCode());
         PtlAgreementProductCostsNew noInquiryNowFee = ptlAgreementProductCostsNewService.getNoInquiryNowFee(externalOrderFeeVo.getAgreementId(), externalOrderFeeVo.getProductCode());
         if(Objects.isNull(noInquiryNowFee)){
-            throw new SystemException("不存在该协议");
+            throw new SystemException("不存在现询费用");
         }
         externalOrderFeeVo.blank();
         ExternalOrderFeeVo resultExternalOrderFeeVo = feeRuleSchemeNewService.calcCostsExternalExportData(ptlAgreement, noInquiryNowFee, externalOrderFeeVo);

+ 9 - 0
src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java

@@ -420,6 +420,15 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
      * @return  代课录单数
      */
     HashMap<String,Object> getSumEntryStatus(@Param("taskStatisticsVo") TaskStatisticsVo taskStatisticsVo);
+
+    /**
+     *
+     * @param taskStatisticsVo
+     * @return  业务 数据保险公司
+     */
+    List<TaskStatisticsDto> getBusinessDataList(@Param("vo") TaskStatisticsVo taskStatisticsVo);
+
+
 }
 
 

+ 1 - 1
src/main/java/com/ydtech/modules/protocols/controller/PtlNewAgreementController.java

@@ -224,7 +224,7 @@ public class PtlNewAgreementController extends BaseController {
         return HttpResult.ok(ptlAgreementProductCostsTrajectoryService.getTrajectory(costsId));
     }
 
-    @ApiOperation("获取现询费用")
+    @ApiOperation("获取现询费用")
     @PostMapping("getInquiryNowFee")
     public HttpResult getInquiryNowFee(@RequestBody InquiryNowFeeQueryVo inquiryNowFeeQueryVo) {
         return HttpResult.ok(ptlAgreementProductCostsNewService.getInquiryNowFee(inquiryNowFeeQueryVo));

+ 6 - 4
src/main/java/com/ydtech/modules/protocols/service/PtlAgreementProductCostsNewService.java

@@ -9,10 +9,8 @@ import com.ydtech.modules.order.entity.vo.FeeOrderNewVo;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNew;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttr;
 import com.ydtech.modules.protocols.entity.vo.*;
-import org.apache.poi.ss.formula.functions.T;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * @author: tz
@@ -139,13 +137,17 @@ public interface PtlAgreementProductCostsNewService extends IService<PtlAgreemen
     Page<PtlAgreementProductCostsNew> getCostsAuditList(Page page, AgreementProductQueryVo agreementProductQueryVo);
 
     /**
-     * 获取现询费用
+     * 获取现询费用
      *
      * @param inquiryNowFeeQueryVo
      * @return
      */
     List<PtlAgreementProductCostsNew> getInquiryNowFee(InquiryNowFeeQueryVo inquiryNowFeeQueryVo);
-
+    /**
+     * 获取现询费用
+     *
+     * @return
+     */
     PtlAgreementProductCostsNew getNoInquiryNowFee(String agreementId, String productCode);
 
     /**

+ 6 - 10
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.constants.enums.dict.FeeAuditAuditstatus;
-import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 import com.ydtech.constants.enums.dict.agreement.ProductsType;
 import com.ydtech.constants.enums.dict.insurance.TrafficManagementVehicleType;
 import com.ydtech.core.page.HttpResult;
@@ -21,21 +20,15 @@ import com.ydtech.modules.fee.dto.vo.RetailProportion;
 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.fee.service.impl.InsFeeOrderConfigServiceImpl;
 import com.ydtech.modules.fnc.entity.InsFeeAudit;
 import com.ydtech.modules.fnc.entity.InsFeeAuditHistory;
 import com.ydtech.modules.fnc.service.InsFeeAuditHistoryService;
 import com.ydtech.modules.fnc.service.InsFeeAuditService;
-import com.ydtech.modules.fnc.service.impl.InsFeeAuditServiceImpl;
 import com.ydtech.modules.order.entity.InsAreaCompany;
-import com.ydtech.modules.order.entity.InsFeeOrder;
 import com.ydtech.modules.order.entity.InsOrders;
-import com.ydtech.modules.order.entity.api.pingan.constants.order.OrderStatusCodeEnum;
-import com.ydtech.modules.order.entity.api.zijin.constants.enums.OrderStatusEnum;
 import com.ydtech.modules.order.entity.vo.FeeOrderNewRecordVo;
 import com.ydtech.modules.order.entity.vo.FeeOrderNewVo;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
-import com.ydtech.modules.order.service.InsFeeOrderService;
 import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.protocol.constants.ValidStatus;
 import com.ydtech.modules.protocol.entity.po.PtlAgreement;
@@ -48,7 +41,6 @@ import com.ydtech.modules.protocols.dao.PtlAgreementProductCostsNewMapper;
 import com.ydtech.modules.protocols.entity.po.*;
 import com.ydtech.modules.protocols.entity.vo.*;
 import com.ydtech.modules.protocols.service.*;
-import com.ydtech.utils.ObjectUtil;
 import com.ydtech.utils.idgen.IdGenerate;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -2391,7 +2383,7 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
     }
 
     /**
-     * 获取现询费用
+     * 获取现询费用
      *
      * @param inquiryNowFeeQueryVo
      * @return
@@ -2429,7 +2421,11 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
 
         return ptlAgreementProductCostsNews;
     }
-
+    /**
+     * 获取现询费用
+     *
+     * @return
+     */
     @Override
     public PtlAgreementProductCostsNew getNoInquiryNowFee(String agreementId, String productCode) {
 

+ 43 - 0
src/main/resources/mapper/modules/admin/DataPermissionsMapper.xml

@@ -0,0 +1,43 @@
+<?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.DataPermissionsMapper">
+
+    <select id="queryPage" resultType="com.ydtech.modules.admin.model.DataPermissions">
+        select * from ins_data_permissions a
+        <where>
+            <if test="vo.menuId !=null  and  vo.menuId !=''">
+                a.menu_id =#{vo.menuId}
+            </if>
+        </where>
+    </select>
+
+
+    <select id="getByPath" resultType="com.ydtech.modules.admin.model.DataPermissions">
+        select * from ins_data_permissions a
+        <where>
+            <if test="path !=null  and  path !=''">
+                a.interface_url =#{path}
+            </if>
+        </where>
+    </select>
+
+
+    <select id="queryList" resultType="com.ydtech.modules.admin.model.DataPermissions">
+        select * from ins_data_permissions a
+        <where>
+            <if test="vo.menuId !=null  and  vo.menuId !=''">
+                and a.menu_id =#{vo.menuId}
+            </if>
+            <if test="vo.status !=null  and  vo.status!=''">
+                and a.status =#{vo.status}
+            </if>
+            <if test="vo.permissionsList !=null  and  vo.permissionsList !=''  and  vo.permissionsList.size()>0">
+                and a.id in
+                <foreach collection="vo.permissionsList" item="id" index="index" open="(" close=")" separator=",">
+                    #{id}
+                </foreach>
+            </if>
+        </where>
+    </select>
+</mapper>
+

+ 19 - 0
src/main/resources/mapper/modules/admin/InsRoleMenuPermissionsMapper.xml

@@ -0,0 +1,19 @@
+<?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.InsRoleMenuPermissionsMapper">
+    <select id="getRoleMenuPermissionsList" resultType="com.ydtech.modules.admin.model.dto.InsRoleMenuPermissionsDto">
+        select * from
+        ins_role_menu_permissions a
+        <where>
+            <if test="roleId  !=null  and  roleId!='' ">
+                a.role_id =#{roleId}
+            </if>
+
+            <if test="menuId  !=null  and  menuId!='' ">
+              and a.menu_id=#{menuId}
+            </if>
+        </where>
+
+    </select>
+
+</mapper>

+ 16 - 0
src/main/resources/mapper/modules/admin/InsRolePermissionsMapper.xml

@@ -0,0 +1,16 @@
+<?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.InsRolePermissionsMapper">
+
+        <select id="getInsRolePermissionsServiceList" resultType="com.ydtech.modules.admin.model.InsRolePermissions">
+            select *  from  ins_role_permissions a
+            <where>
+                <if test="roleId !=null  and  roleId !=''">
+                   and  role_id =#{roleId}
+                </if>
+                <if test="menuId !=null  and  menuId !=''">
+                   and  menu_id =#{menuId}
+                </if>
+            </where>
+        </select>
+</mapper>

+ 109 - 1
src/main/resources/mapper/modules/admin/TaskStatisticsMapper.xml

@@ -111,7 +111,6 @@
             </if>
         </where>
         order by  a.sumpremium  desc ,su.id
-
     </select>
 
     <select id="getBusinessAgentDataTotal" resultType="java.lang.Long">
@@ -508,4 +507,113 @@
                 io.orderno) a
     </select>
 
+    <select id="getBusinessAgentDataExcel"  resultType="com.ydtech.modules.admin.model.vo.BusinessAgentData">
+        select
+        su.id as "userId",
+        su.name as "userName",
+        sd.id as "deptId",
+        su.leader_name as "leaderName",
+        IFNULL(a.sumpremium,0) as "sumpremium",
+        IFNULL(a.jqpremium,0) as "jqpremium",
+        IFNULL(a.sypremium,0) as "sypremium",
+        IFNULL(a.taxamount,0) as "taxamount",
+        IFNULL(a.jypremium,0) as "jypremium",
+        IFNULL(a.riskCodeJs,0) as "riskCodeJs",
+        IFNULL(a.riskCodeDj,0) as "riskCodeDj" ,
+        IFNULL(a.riskCodeJshang,0) as "riskCodeJshang",
+        IFNULL(a.riskCodeDs,0) as "riskCodeDs",
+        IFNULL(a.riskCodeDsan,0) as "riskCodeDsan",
+        sd.management_source as "managementSource",
+        IFNULL(IFNULL(a.entranceAllFee,0) -IFNULL(a.exportAllFee,0),0)  as  "distributionAmount",
+        (IFNULL(IFNULL(a.entranceAllFee,0) -IFNULL(a.exportAllFee,0),0)) / a.sumpremium as "distributionAmountRate"
+        from sys_user su
+        left join sys_dept sd on sd.id =su.dept_id
+        LEFT JOIN sys_user_role sur ON sur.user_id = su.id
+        left join (
+        select
+        io.userid as "userId",
+        sum(IFNULL(jqpremium, 0) + IFNULL(sypremium, 0)+ IFNULL(jypremium, 0)) as "sumpremium",
+        IFNULL(sum(jqpremium),0) as "jqpremium",
+        IFNULL(sum(sypremium),0) as "sypremium",
+        IFNULL(sum(taxamount),0) as "taxamount",
+        IFNULL(sum(jypremium),0) as "jypremium",
+        COUNT( CASE WHEN iac.product = '交三'  THEN 1 END ) AS "riskCodeJs",
+        COUNT( CASE WHEN iac.product = '单交'  THEN 1 END ) AS "riskCodeDj",
+        COUNT( CASE WHEN iac.product = '交商'  THEN 1 END ) AS "riskCodeJshang",
+        COUNT( CASE WHEN iac.product = '单商'  THEN 1 END ) AS "riskCodeDs",
+        COUNT( CASE WHEN iac.product = '单三'  THEN 1 END ) AS "riskCodeDsan",
+        ROUND(sum(IFNULL(ifon.jq_costs_premiums,0) + IFNULL(ifon.sy_costs_premiums,0) + IFNULL
+        (ifon.no_costs_premiums,0)),2) as "entranceAllFee",
+        ROUND(sum(IFNULL(jq_export_other_costs_premiums,0) + IFNULL(jq_export_supervise_costs_premiums,0)
+        +IFNULL(sy_export_other_costs_premiums,0) +IFNULL(sy_export_supervise_costs_premiums,0)
+        +IFNULL(no_export_other_costs_premiums,0)+IFNULL(no_export_supervise_costs_premiums,0) ),2) as "exportAllFee"
+        from ins_area_company iac
+        left join ins_orders io on io.orderno =iac.orderno
+        left join  sys_user  su  on su.id =io.userid
+        LEFT JOIN ins_fee_order_new ifon ON iac.id = ifon.ins_order_no
+        <where>
+            iac.orderstatus = '3'
+            <if test="vo.signingTimeStart != null and vo.signingTimeStart!='' and vo.signingTimeEnd != null and vo.signingTimeEnd != ''">
+                AND DATE_FORMAT(iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{vo.signingTimeStart}, '%Y-%m-%d') AND DATE_FORMAT(#{vo.signingTimeEnd}, '%Y-%m-%d')
+            </if>
+            <if test="vo.enterTimeStart != null and vo.enterTimeStart!='' and vo.enterTimeEnd != null and vo.enterTimeEnd != ''">
+                AND DATE_FORMAT(iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{vo.enterTimeStart}, '%Y-%m-%d') AND DATE_FORMAT(#{vo.enterTimeEnd}, '%Y-%m-%d')
+            </if>
+
+            <if test="vo.userIds  !=null  and vo.userIds!=''  and vo.userIds.size()>0">
+                and su.leader_id in
+                <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+
+        </where>
+        group by io.userid
+        ) a  on  a.userId  =su.id
+        <where>
+            1=1
+            <if test="vo.userId !=null  and vo.userId!=''">
+                and su.id=#{vo.userId}
+            </if>
+
+            <if test="vo.userName !=null  and vo.userName!=''">
+                and su.name=#{vo.userName}
+            </if>
+
+            <if test="vo.managementSource !=null  and vo.managementSource!=''">
+                and sd.management_source=#{vo.managementSource}
+            </if>
+
+            <if test="vo.userIds  !=null  and vo.userIds!=''  and vo.userIds.size()>0">
+                and su.leader_id in
+                <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+
+            <choose>
+                <when  test='vo.managementSource == "2"'>
+                    and (sur.role_id = 20  or  sur.role_id = 21)
+                </when>
+                <when  test='vo.managementSource == "1"'>
+                    and (sur.role_id = 19  or  sur.role_id = 21)
+                </when>
+                <otherwise>
+                </otherwise>
+            </choose>
+
+            <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
+                AND sd.id in
+                <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+
+            <if test="vo.deptId !=null  and vo.deptId!=''">
+                and sd.id like concat('%',#{vo.deptId},'%')
+            </if>
+        </where>
+        order by  a.sumpremium  desc ,su.id
+    </select>
+
 </mapper>

+ 17 - 0
src/main/resources/mapper/modules/esm/EsmInsCompanyMapper.xml

@@ -81,4 +81,21 @@
             ins.company_id,
             ins.inscompany
     </select>
+    <select id="getExternalAgreementCompanyList" resultType="com.ydtech.modules.esm.model.vo.res.EsmInsCompanyResVo">
+        SELECT DISTINCT
+            insurance_company_id AS id,
+            insurance_company AS NAME
+        FROM
+            ptl_agreement
+        <where>
+            is_external = '1'
+            <if test="name != null and name != ''">
+                and insurance_company like  concat('%',#{name},'%')
+            </if>
+
+        </where>
+        GROUP BY
+            insurance_company_id,
+            insurance_company
+    </select>
 </mapper>

+ 3 - 2
src/main/resources/mapper/modules/fnc/contract/ContractMapper.xml

@@ -44,8 +44,9 @@
             <if test="vo.contractStatus !=null  and  vo.contractStatus !=''  and vo.contractStatus !='all'">
                 and ic.contract_status =#{vo.contractStatus}
             </if>
-
-
+            <if test="vo.stringBufferContent !=null  and  vo.stringBufferContent !=''">
+                ${vo.stringBufferContent}
+            </if>
         </where>
     </select>
 

+ 128 - 3
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -2282,6 +2282,7 @@
         ins_area_company iac
         LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
         LEFT JOIN ins_orders  io  on  io.orderno  = iac.orderno
+        LEFT JOIN sys_user  su  on  io.userid  =su.id
         LEFT JOIN ins_fee_audit ifa  on ifa.ins_order_no =iac.id
         LEFT JOIN esm_ins_company ins ON agree.partner_companies_id = ins.id
         WHERE
@@ -2328,7 +2329,7 @@
         </if>
 
         <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
-            AND io.userid  in
+            AND su.leader_id  in
             <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
                 #{item}
             </foreach>
@@ -2379,6 +2380,7 @@
         ins_area_company iac
         LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
         LEFT JOIN ins_orders  io  on  io.orderno  = iac.orderno
+        LEFT JOIN sys_user  su  on  io.userid  =su.id
         LEFT JOIN ins_fee_audit ifa  on ifa.ins_order_no =iac.id
         WHERE
         agree.id IS NOT NULL
@@ -2424,7 +2426,7 @@
         </if>
 
         <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
-            AND io.userid  in
+            AND su.leader_id  in
             <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
                 #{item}
             </foreach>
@@ -2445,6 +2447,8 @@
         LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
         LEFT JOIN ins_orders  io  on  io.orderno  = iac.orderno
         LEFT JOIN ins_fee_audit ifa  on ifa.ins_order_no =iac.id
+        LEFT JOIN sys_user  su  on  io.userid  =su.id
+
         WHERE
         agree.id IS NOT NULL
         and  iac.orderstatus = '3'
@@ -2489,7 +2493,7 @@
         </if>
 
         <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
-            AND io.userid  in
+            AND su.leader_id  in
             <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
                 #{item}
             </foreach>
@@ -3630,6 +3634,127 @@
                 </if>
 
             </where>
+    </select>
 
+    <select id="getBusinessDataList" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
+        select
+        a.dockingPerson as "dockingPerson",
+        a.dockingPhone as "dockingPhone",
+        a.agreementType as "agreementType",
+        a.logo  as "logo",
+        a.companyId as "companyId",
+        a.insuranceCompanyName as "insuranceCompanyName",
+        a.parterCompanyId as "parterCompanyId",
+        a.partnerCompaniesName as "partnerCompaniesName",
+        sum(a.totalPremium) as  "totalPremium",
+        sum(a.qutationInsureCount) as  "qutationInsureCount",
+        sum(a.totalPremium) / sum(a.qutationInsureCount)  AS "averagePremium",
+        sum(a.totalPremium)  /   sum(a.userNumber)   as "perCapitaAmount",
+        sum(a.userNumber) as "userNumber"
+        from  (
+        select
+        a.companyId as "companyId",
+        a.insuranceCompanyName as "insuranceCompanyName",
+        a.parterCompanyId as "parterCompanyId",
+        a.partnerCompaniesName as "partnerCompaniesName",
+        a.totalPremium as "totalPremium",
+        a.qutationInsureCount as "qutationInsureCount",
+        a.userNumber as "userNumber",
+        c.docking_person as "dockingPerson",
+        c.docking_phone as "dockingPhone",
+        c.agreement_type as "agreementType",
+        b.logo  as "logo"
+        from  (
+        SELECT
+        agree.insurance_company_id AS "companyId",
+        agree.insurance_company AS "insuranceCompanyName",
+        agree.partner_companies_id AS "parterCompanyId",
+        ins.namesimple AS "partnerCompaniesName",
+        agree.id as "agreeId",
+        IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0) as "totalPremium",
+        COUNT(0 ) AS "qutationInsureCount",
+        (IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0)) / COUNT(0 )  AS "averagePremium",
+        COUNT(DISTINCT io.userId) AS "userNumber",
+        (IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0)) / COUNT(DISTINCT io.userId)  as "perCapitaAmount"
+        FROM
+        ins_area_company iac
+        LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
+        LEFT JOIN ins_orders  io  on  io.orderno  = iac.orderno
+        LEFT JOIN sys_user  su  on  io.userid  =su.id
+        LEFT JOIN ins_fee_audit ifa  on ifa.ins_order_no =iac.id
+        LEFT JOIN esm_ins_company ins ON agree.partner_companies_id = ins.id
+        WHERE
+        agree.id IS NOT NULL
+        and  iac.orderstatus = '3'
+        and  ifa.auditstatus != '2'
+        <if test="vo.companyId  != null  and  vo.companyId!='' ">
+            and  agree.insurance_company_id = #{vo.companyId}
+        </if>
+        <if test="vo.parterCompanyId  != null  and  vo.parterCompanyId!='' ">
+            and agree.partner_companies_id = #{vo.parterCompanyId}
+        </if>
+        <if test="vo.createtimeStart  != null  and  vo.createtimeStart!=''  and vo.createtimeEnd  != null  and  vo.createtimeEnd!=''">
+            AND   DATE_FORMAT( iac.signing_time, '%Y-%m-%d')   BETWEEN DATE_FORMAT( #{vo.createtimeStart}, '%Y-%m-%d')  AND DATE_FORMAT( #{vo.createtimeEnd}, '%Y-%m-%d')
+        </if>
+        <if test="vo.provinceId != null and vo.provinceId != '' and  vo.cityId == null and vo.countyId == null  and vo.houseId == null ">
+            and io.deptid like concat('%',#{vo.provinceId},'%')
+        </if>
+        <if test="vo.cityId != null and vo.cityId != '' and vo.countyId ==null and  vo.houseId ==null">
+            and io.deptid like concat('%',#{vo.cityId},'%')
+        </if>
+        <if test="vo.countyId != null and vo.countyId != '' and  vo.houseId  ==null">
+            and io.deptid like concat('%',#{vo.countyId},'%')
+        </if>
+        <if test="vo.houseId != null and vo.houseId != ''">
+            and io.deptid like concat('%',#{vo.houseId},'%')
+        </if>
+
+        <if test="vo.parterProvinceId != null and vo.parterProvinceId != '' and  vo.parterCityId == null and vo.parterCountyId == null ">
+            and agree.partner_companies_id like concat('%',#{vo.parterProvinceId},'%')
+        </if>
+        <if test="vo.parterCityId != null and vo.parterCityId != '' and vo.parterCountyId ==null ">
+            and agree.partner_companies_id like concat('%',#{vo.parterCityId},'%')
+        </if>
+        <if test="vo.parterCountyId != null and vo.parterCountyId != '' ">
+            and agree.partner_companies_id like concat('%',#{vo.parterCountyId},'%')
+        </if>
+
+        <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
+            AND io.deptid  in
+            <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+
+        <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
+            AND su.leader_id  in
+            <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        GROUP BY
+        agree.insurance_company_id,
+        agree.insurance_company,
+        agree.partner_companies_id,
+        agree.id
+        <choose>
+            <when test="vo.orderSort != null and vo.orderSort != '' and  vo.userNumberSort == null ">
+                order by
+                sum(sumpremium) ${vo.orderSort == 'asc' ? 'asc' : 'desc'}
+            </when>
+            <when test="vo.userNumberSort != null and vo.userNumberSort != '' and  vo.orderSort == null ">
+                order by
+                COUNT(DISTINCT io.userId) ${vo.userNumberSort == 'asc' ? 'asc' : 'desc'}
+            </when>
+            <when test="vo.userNumberSort != null and vo.userNumberSort != '' and  vo.orderSort != null and vo.orderSort != ''  ">
+                order by
+                COUNT(DISTINCT io.userId) ${vo.userNumberSort == 'asc' ? 'asc' : 'desc'},   sum(sumpremium) ${vo.orderSort == 'asc' ? 'asc' : 'desc'}
+            </when>
+        </choose>
+        )  a
+        left join  esm_ins_company  b on b.id =a.companyId
+        left join ptl_agreement  c on c.id =a.agreeId
+        ) a
+        group by   a.companyId,a.insuranceCompanyName,a.parterCompanyId,a.partnerCompaniesName,a.logo,a.dockingPerson,a.dockingPhone,a.agreementType
     </select>
 </mapper>