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

Merge branch 'test' into 2.0

# Conflicts:
#	src/main/java/com/ydtech/modules/protocol/controller/PtlAgreementController.java
#	src/main/java/com/ydtech/modules/protocol/service/PtlAgreementService.java
#	src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementServiceImpl.java
785834757 2 лет назад
Родитель
Сommit
fe8be069ef
55 измененных файлов с 1681 добавлено и 235 удалено
  1. 3 1
      src/main/java/com/ydtech/core/page/HttpResult.java
  2. 38 1
      src/main/java/com/ydtech/modules/admin/controller/SysAgencyLeaderController.java
  3. 25 2
      src/main/java/com/ydtech/modules/admin/controller/SysPartnerController.java
  4. 106 0
      src/main/java/com/ydtech/modules/admin/controller/SysUserLinkDxUserIdController.java
  5. 7 0
      src/main/java/com/ydtech/modules/admin/dao/SysAgencyLeaderMapper.java
  6. 29 0
      src/main/java/com/ydtech/modules/admin/dao/SysUserLinkDxUserIdMapper.java
  7. 0 1
      src/main/java/com/ydtech/modules/admin/dao/TaskStatisticsMapper.java
  8. 30 0
      src/main/java/com/ydtech/modules/admin/model/dto/AgencyUserInsAreaDto.java
  9. 11 0
      src/main/java/com/ydtech/modules/admin/model/dto/TaskStatisticsDto.java
  10. 104 0
      src/main/java/com/ydtech/modules/admin/model/po/SysUserLinkDxUserId.java
  11. 88 0
      src/main/java/com/ydtech/modules/admin/model/po/Uuser.java
  12. 3 0
      src/main/java/com/ydtech/modules/admin/model/report/company/CompanyQutationCountDataQueryDto.java
  13. 10 0
      src/main/java/com/ydtech/modules/admin/model/report/company/OrdersDataDto.java
  14. 48 0
      src/main/java/com/ydtech/modules/admin/model/vo/AgencyUserInsAreaVo.java
  15. 35 0
      src/main/java/com/ydtech/modules/admin/model/vo/UserQueryVo.java
  16. 6 0
      src/main/java/com/ydtech/modules/admin/service/SysAgencyLeaderService.java
  17. 4 0
      src/main/java/com/ydtech/modules/admin/service/SysPartnerService.java
  18. 47 0
      src/main/java/com/ydtech/modules/admin/service/SysUserLinkDxUserIdService.java
  19. 0 1
      src/main/java/com/ydtech/modules/admin/service/TaskStatisticsService.java
  20. 22 0
      src/main/java/com/ydtech/modules/admin/service/impl/CompanyDataReportServiceImpl.java
  21. 208 78
      src/main/java/com/ydtech/modules/admin/service/impl/SysAgencyLeaderServiceImpl.java
  22. 165 27
      src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerServiceImpl.java
  23. 202 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkDxUserIdServiceImpl.java
  24. 2 0
      src/main/java/com/ydtech/modules/admin/service/impl/TaskStatisticsServiceImpl.java
  25. 6 0
      src/main/java/com/ydtech/modules/admin/utils/DxApiConfigurationProperties.java
  26. 3 3
      src/main/java/com/ydtech/modules/customer/controller/CustomerController.java
  27. 32 0
      src/main/java/com/ydtech/modules/customer/entity/vo/ReturnMessageVo.java
  28. 3 2
      src/main/java/com/ydtech/modules/customer/service/CustomerService.java
  29. 6 8
      src/main/java/com/ydtech/modules/customer/service/impl/CustomerServiceImpl.java
  30. 4 3
      src/main/java/com/ydtech/modules/inv/controller/invAccountExcelController.java
  31. 2 0
      src/main/java/com/ydtech/modules/inv/dao/InvAccountOperateMapper.java
  32. 9 0
      src/main/java/com/ydtech/modules/inv/model/InvAccountExcel.java
  33. 6 2
      src/main/java/com/ydtech/modules/inv/model/InvAccountOperate.java
  34. 11 2
      src/main/java/com/ydtech/modules/inv/model/excel/InvDisburseExcel.java
  35. 9 0
      src/main/java/com/ydtech/modules/inv/model/vo/InvAccountOperateVo.java
  36. 1 1
      src/main/java/com/ydtech/modules/inv/service/InvAccountExcelService.java
  37. 26 9
      src/main/java/com/ydtech/modules/inv/service/impl/InvAccountExcelServiceImpl.java
  38. 16 15
      src/main/java/com/ydtech/modules/inv/utils/EasyExcelUtils.java
  39. 11 0
      src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java
  40. 2 1
      src/main/java/com/ydtech/modules/order/entity/BasePageResult.java
  41. 4 0
      src/main/java/com/ydtech/modules/protocol/controller/PtlAgreementController.java
  42. 3 1
      src/main/resources/application-pre.yml
  43. 2 1
      src/main/resources/application-prod.yml
  44. 2 1
      src/main/resources/application-test.yml
  45. 21 0
      src/main/resources/mapper/modules/admin/SysAgencyLeaderMapper.xml
  46. 10 11
      src/main/resources/mapper/modules/admin/SysDeptInternalAgentMapper.xml
  47. 33 28
      src/main/resources/mapper/modules/admin/SysTelemarketingWechatDataMapper.xml
  48. 0 1
      src/main/resources/mapper/modules/admin/SysUserLinkDeptInternalAgentMapper.xml
  49. 49 0
      src/main/resources/mapper/modules/admin/SysUserLinkDxUserIdMapper.xml
  50. 1 0
      src/main/resources/mapper/modules/admin/SysUserLinkZgdUserIdMapper.xml
  51. 1 0
      src/main/resources/mapper/modules/admin/SysUserLinkZzbUserIdMapper.xml
  52. 68 0
      src/main/resources/mapper/modules/admin/TaskStatisticsMapper.xml
  53. 11 2
      src/main/resources/mapper/modules/inv/InvAccountExcelMapper.xml
  54. 42 0
      src/main/resources/mapper/modules/inv/InvAccountOperateMapper.xml
  55. 94 33
      src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

+ 3 - 1
src/main/java/com/ydtech/core/page/HttpResult.java

@@ -4,6 +4,8 @@ package com.ydtech.core.page;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.io.Serializable;
+
 /**
  * HTTP结果封装
  *
@@ -11,7 +13,7 @@ import io.swagger.annotations.ApiModelProperty;
  * @date Jun 29, 2019
  */
 @ApiModel("HTTP结果")
-public class HttpResult<T> {
+public class HttpResult<T> implements Serializable {
 
     @ApiModelProperty("状态码")
     private int code = 200;

+ 38 - 1
src/main/java/com/ydtech/modules/admin/controller/SysAgencyLeaderController.java

@@ -1,5 +1,6 @@
 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.SysUser;
 import com.ydtech.modules.admin.model.dto.*;
@@ -142,7 +143,7 @@ public class SysAgencyLeaderController extends BaseController {
     /**
      * 查询所有机构负责人的保费抽成明细
      */
-    @PostMapping("/queryExtractFeeAll")
+    @PostMapping("/queryExtractFeeList")
     @ApiOperation(value = "查询所有机构负责人的保费抽成明细")
     public HttpResult<BasePageResult<AgencyExtractFeeVo>> queryExtractFeeAll(@RequestBody SysAgencyLeaderPageDto sysAgencyLeaderPageDto) {
         if (sysAgencyLeaderPageDto.getPageNum() == 0) {
@@ -154,6 +155,18 @@ public class SysAgencyLeaderController extends BaseController {
         return HttpResult.ok("success", this.sysAgencyLeaderService.queryExtractFeeAll(sysAgencyLeaderPageDto));
     }
 
+    @PostMapping("/queryExtractFeeAll")
+    @ApiOperation(value = "优化查询所有机构负责人的保费抽成明细")
+    public HttpResult<BasePageResult<AgencyExtractFeeVo>> queryExtractFeeList(@RequestBody SysAgencyLeaderPageDto sysAgencyLeaderPageDto) {
+        if (sysAgencyLeaderPageDto.getPageNum() == 0) {
+            sysAgencyLeaderPageDto.setPageNum(1);
+        }
+        if (sysAgencyLeaderPageDto.getPageSize() == 0) {
+            sysAgencyLeaderPageDto.setPageSize(10);
+        }
+        return HttpResult.ok("success", this.sysAgencyLeaderService.queryExtractFeeList(sysAgencyLeaderPageDto));
+    }
+
 
     /**
      * 分页查询机构下所有团队的信息
@@ -198,5 +211,29 @@ public class SysAgencyLeaderController extends BaseController {
         return HttpResult.ok("success", this.sysAgencyLeaderService.queryAgencyLeader(getUserId()));
     }
 
+    /**
+     * 查询机构下的员工
+     * @param deptId
+     * @return
+     */
+    @GetMapping("/queryAgencyUser")
+    @ApiOperation(value = "查询机构下的员工")
+    public HttpResult<List<SysUser>> queryAgencyUser(@RequestParam("deptId") String deptId){
+
+        return HttpResult.ok("success", this.sysAgencyLeaderService.queryAgencyUser(deptId));
+    }
+
+    @PostMapping("/queryAgencyUserInsAreaPage")
+    @ApiOperation(value = "查询机构下的单个员工的子订单费用")
+    public HttpResult<IPage<AgencyUserInsAreaVo>> queryAgencyUserInsAreaPage(@RequestBody AgencyUserInsAreaDto agencyUserInsAreaDto){
+        if (agencyUserInsAreaDto.getPageNum() == 0) {
+            agencyUserInsAreaDto.setPageNum(1);
+        }
+        if (agencyUserInsAreaDto.getPageSize() == 0) {
+            agencyUserInsAreaDto.setPageSize(10);
+        }
+        return HttpResult.ok("success", this.sysAgencyLeaderService.queryAgencyUserInsAreaPage(agencyUserInsAreaDto));
+    }
+
 
 }

+ 25 - 2
src/main/java/com/ydtech/modules/admin/controller/SysPartnerController.java

@@ -1,11 +1,13 @@
 package com.ydtech.modules.admin.controller;
 
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.SysAgencyLeader;
 import com.ydtech.modules.admin.model.SysPartner;
 import com.ydtech.modules.admin.model.dto.SysPartnerAPPPageDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerPageDto;
 import com.ydtech.modules.admin.model.vo.AgencyExtractFeeVo;
+import com.ydtech.modules.admin.model.vo.SysAgencyLeaderVo;
 import com.ydtech.modules.admin.model.vo.SysPartnerAPPPageVo;
 import com.ydtech.modules.admin.model.vo.SysUserPartner;
 import com.ydtech.modules.admin.service.SysPartnerService;
@@ -115,7 +117,7 @@ public class SysPartnerController extends BaseController {
     /**
      * 所有合伙人的抽层费用
      */
-    @PostMapping("/queryPartnerByPage")
+    @PostMapping("/queryPartnerByPages")
     @ApiOperation(value = "所有合伙人的抽层费用信息")
     public HttpResult<BasePageResult<AgencyExtractFeeVo>> queryPartnerByPage(@RequestBody SysPartnerPageDto sysPartnerPageDto) {
         if (sysPartnerPageDto.getPageNum() == 0) {
@@ -126,13 +128,24 @@ public class SysPartnerController extends BaseController {
         }
         return HttpResult.ok(this.sysPartnerService.queryPartnerByPage(sysPartnerPageDto));
     }
+    @PostMapping("/queryPartnerByPage")
+    @ApiOperation(value = "优化所有合伙人的抽层费用信息")
+    public HttpResult<BasePageResult<AgencyExtractFeeVo>> queryPartnerByPages(@RequestBody SysPartnerPageDto sysPartnerPageDto) {
+        if (sysPartnerPageDto.getPageNum() == 0) {
+            sysPartnerPageDto.setPageNum(1);
+        }
+        if (sysPartnerPageDto.getPageSize() == 0) {
+            sysPartnerPageDto.setPageSize(10);
+        }
+        return HttpResult.ok(this.sysPartnerService.queryPartnerByPages(sysPartnerPageDto));
+    }
 
     /**
      * 合伙人查看直接合伙人、间接合伙人分页查询
      *
      */
     @PostMapping("/querySysPartnerAPPPage")
-    @ApiOperation(value = "合伙人查看直接合伙人、间接合伙人分页查询")
+    @ApiOperation(value = "APP合伙人查看直接合伙人、间接合伙人分页查询")
     public HttpResult<BasePageResult<SysPartnerAPPPageVo>> SysPartnerAPPPage(@RequestBody SysPartnerAPPPageDto sysPartnerAPPPageDto) {
         if (sysPartnerAPPPageDto.getPageNum() == 0) {
             sysPartnerAPPPageDto.setPageNum(1);
@@ -143,6 +156,16 @@ public class SysPartnerController extends BaseController {
         return HttpResult.ok(this.sysPartnerService.SysPartnerAPPPage(sysPartnerAPPPageDto));
     }
 
+    /**
+     * 根据合伙人id查询推荐的工作室管理员
+     */
+    @GetMapping("/queryAgencyLeaderById/{userId}")
+    @ApiOperation(value = "根据合伙人id查询推荐的工作室管理员")
+    public HttpResult<List<SysAgencyLeader>> queryAgencyLeaderById(@PathVariable("userId") String userId){
+
+        return HttpResult.ok("success", this.sysPartnerService.queryAgencyLeaderById(userId));
+    }
+
 
 
 

+ 106 - 0
src/main/java/com/ydtech/modules/admin/controller/SysUserLinkDxUserIdController.java

@@ -0,0 +1,106 @@
+package com.ydtech.modules.admin.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.dto.SysUserLinkQueryUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkZzbUserIdDto;
+import com.ydtech.modules.admin.model.po.SysUserZzbOrZgd;
+import com.ydtech.modules.admin.model.po.Uuser;
+import com.ydtech.modules.admin.model.vo.SysUserLinkZzbUserIdVo;
+import com.ydtech.modules.admin.service.SysUserLinkDxUserIdService;
+import com.ydtech.modules.admin.service.SysUserLinkZzbUserIdService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.entity.BasePageResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/9/6 18:52
+ *  @Description: 电销用户关联
+ */
+@Api(tags = "系统关联用户表")
+@RequestMapping("/sysUserLinkDxUser")
+@RestController
+public class SysUserLinkDxUserIdController extends BaseController {
+
+
+    @Autowired
+    private SysUserLinkDxUserIdService sysUserLinkDxUserIdService;
+
+
+    @PostMapping("addOrUpdate")
+    @ApiOperation("添加修改")
+    public HttpResult<Object> addOrUpdate(@RequestBody SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo) {
+        if(StringUtils.isBlank(sysUserLinkZzbUserIdVo.getUserId())) {
+            return HttpResult.error("用户工号不能为空");
+        }
+        if(StringUtils.isBlank(sysUserLinkZzbUserIdVo.getLinkUserId())) {
+            return HttpResult.error("关联系统用户id不能为空");
+        }
+        try{
+            sysUserLinkDxUserIdService.addOrUpdate(sysUserLinkZzbUserIdVo);
+            return HttpResult.ok("操作成功");
+        }catch (Exception e){
+            return HttpResult.error("操作失败"+e.getMessage());
+        }
+    }
+
+    @PostMapping("delete")
+    @ApiOperation("系统关联清空")
+    public HttpResult<Object> delete(@RequestBody SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo) {
+        if(StringUtils.isBlank(sysUserLinkZzbUserIdVo.getUserId())) {
+            return HttpResult.error("用户工号不能为空");
+        }
+        try{
+            sysUserLinkDxUserIdService.deleteByUserId(sysUserLinkZzbUserIdVo);
+            return HttpResult.ok("删除成功");
+        }catch (Exception e){
+            return HttpResult.error("删除失败"+e.getMessage());
+        }
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 09:50
+     *  @Description: 查询掌中保的用户关联掌中宝的用户id
+     */
+    @PostMapping("queryUserPage")
+    @ApiOperation(value = "查询用户关联数据集合")
+    public HttpResult<BasePageResult<SysUserLinkUserDto>> queryUserPage(@RequestBody  SysUserLinkQueryUserDto sysUserLinkQueryUserDto) {
+
+        try{
+            BasePageResult<SysUserLinkUserDto> result = sysUserLinkDxUserIdService.queryUserPage(sysUserLinkQueryUserDto);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 09:50
+     *  @Description: 查询掌中保的用户
+     */
+    @PostMapping("queryUserDxPage")
+    @ApiOperation(value = "查询用户关联数据集合")
+    public HttpResult<BasePageResult<Uuser>> queryUserDxPage(@RequestBody  SysUserLinkQueryUserDto sysUserLinkQueryUserDto) {
+
+        try{
+            BasePageResult<Uuser> result = sysUserLinkDxUserIdService.queryUserDxPage(sysUserLinkQueryUserDto);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+}

+ 7 - 0
src/main/java/com/ydtech/modules/admin/dao/SysAgencyLeaderMapper.java

@@ -5,10 +5,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.admin.model.SysAgencyLeader;
 import com.ydtech.modules.admin.model.dto.DeptBalanceDto;
+import com.ydtech.modules.admin.model.dto.SysAgencyLeaderPageDto;
+import com.ydtech.modules.admin.model.vo.AgencyExtractFeeVo;
 import com.ydtech.modules.admin.model.vo.DeptBalanceVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -28,5 +32,8 @@ public interface SysAgencyLeaderMapper extends BaseMapper<SysAgencyLeader> {
      *  @Description: 分页查询机构负责人
      */
     IPage<DeptBalanceDto> queryPage(Page page, @Param("vo") DeptBalanceVo deptBalanceVo);
+
+
+    HashMap<String, BigDecimal> getBigDecimalNum(@Param("deptId") String deptId, @Param("createTime")  String createTime,@Param("beginTime") String beginTime,@Param("endTime") String endTime);
 }
 

+ 29 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserLinkDxUserIdMapper.java

@@ -0,0 +1,29 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.dto.SysUserLinkQueryUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkUserDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkDxUserId;
+import com.ydtech.modules.admin.model.po.SysUserZzbOrZgd;
+import org.apache.ibatis.annotations.Param;
+
+/**
+* @author Administrator
+* @description 针对表【sys_user(用户信息表)】的数据库操作Mapper
+* @createDate 2024-09-06 18:13:19
+* @Entity generator.domain.SysUser
+*/
+public interface SysUserLinkDxUserIdMapper extends BaseMapper<SysUserLinkDxUserId> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/10 14:39
+     *  @Description: 查询数据
+     */
+    Page<SysUserLinkUserDto> queryPage(@Param("page") Page<SysUserLinkUserDto> page, @Param("vo") SysUserLinkQueryUserDto sysUserLinkQueryUserDto);
+}
+
+
+
+

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

@@ -37,7 +37,6 @@ public interface TaskStatisticsMapper extends BaseMapper<TaskStatisticsDto> {
      * @param taskStatisticsVo
      * @return  控制台任务统计 渠道代理人详情
      */
-
     IPage<TaskStatisticsDto> channelAgentDetails(Page page, TaskStatisticsVo taskStatisticsVo);
 
 }

+ 30 - 0
src/main/java/com/ydtech/modules/admin/model/dto/AgencyUserInsAreaDto.java

@@ -0,0 +1,30 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+@Data
+@ApiModel(value = "个人分页查询子订单")
+public class AgencyUserInsAreaDto {
+
+    @ApiModelProperty(value = "页数")
+    private int pageNum;
+    @ApiModelProperty(value = "每页条数")
+    private int pageSize;
+
+    @ApiModelProperty(value = "机构ID")
+    private String deptId;
+
+    @ApiModelProperty(value = "人员ID")
+    private String userId;
+
+    @ApiModelProperty(value = "保费提层计算开始时间")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private String startTime;
+
+
+
+
+}

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

@@ -133,4 +133,15 @@ public class TaskStatisticsDto {
     @ApiModelProperty(value = "app报价")
     private String appOrderSource;
 
+
+    @ApiModelProperty(value = "管理人")
+    private String leaderName;
+
+
+    @ApiModelProperty(value = "保险公司名称")
+    private String inscompany;
+
+    @ApiModelProperty(value = "性别")
+    private String sex;
+
 }

+ 104 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysUserLinkDxUserId.java

@@ -0,0 +1,104 @@
+package com.ydtech.modules.admin.model.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 掌柜用户关联客户管理掌中宝用户关联表
+ * @TableName sys_user_link_dx_user_id
+ */
+@TableName(value ="sys_user_link_dx_user_id")
+@Data
+public class SysUserLinkDxUserId implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 掌柜系统id
+     */
+    private String userId;
+
+    /**
+     * 电销系统用户id
+     */
+    private String dxUserId;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    private String createUserId;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        SysUserLinkDxUserId other = (SysUserLinkDxUserId) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
+            && (this.getDxUserId() == null ? other.getDxUserId() == null : this.getDxUserId().equals(other.getDxUserId()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getCreateUserId() == null ? other.getCreateUserId() == null : this.getCreateUserId().equals(other.getCreateUserId()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
+        result = prime * result + ((getDxUserId() == null) ? 0 : getDxUserId().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getCreateUserId() == null) ? 0 : getCreateUserId().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", userId=").append(userId);
+        sb.append(", dxUserId=").append(dxUserId);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", createUserId=").append(createUserId);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+
+    public SysUserLinkDxUserId() {
+    }
+
+    public SysUserLinkDxUserId(Long id, String userId, String dxUserId, Date createTime, String createUserId) {
+        this.id = id;
+        this.userId = userId;
+        this.dxUserId = dxUserId;
+        this.createTime = createTime;
+        this.createUserId = createUserId;
+    }
+}

+ 88 - 0
src/main/java/com/ydtech/modules/admin/model/po/Uuser.java

@@ -0,0 +1,88 @@
+package com.ydtech.modules.admin.model.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@TableName(value ="u_user")
+@Data
+public class Uuser implements Serializable {
+
+    @TableField(value = "id")
+    private Integer id;
+
+    @TableField(value = "name")
+    private String  name;
+
+    @TableField(value = "upass")
+    private String  upass;
+
+    @TableField(value = "privid")
+    private Integer  privid;
+
+    @TableField(value = "deptid")
+    private Integer  deptid;
+
+    @TableField(value = "mobile")
+    private String  mobile;
+
+    @TableField(value = "email")
+    private String  email;
+
+    @TableField(value = "nickname")
+    private String  nickname;
+
+    @TableField(value = "sex")
+    private String  sex;
+
+    @TableField(value = "extension")
+    private Integer  extension;
+
+    @TableField(value = "openpop")
+    private Integer  openpop;
+
+    @TableField(value = "repace")
+    private Integer  repace;
+
+    @TableField(value = "status")
+    private Long  status;
+
+    @TableField(value = "hiddenphone")
+    private String  hiddenphone;
+
+    @TableField(value = "remarks")
+    private String  remarks;
+
+
+    @TableField(value = "ico")
+    private String  ico;
+
+    @TableField(value = "heart_time")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    private  Date   heartTime;
+
+    @TableField(value = "ec_name")
+    private String   ecName;
+
+    @TableField(value = "ec_num")
+    private String ecNum;
+
+    @TableField(value = "app_online")
+    private Integer   appOnline;
+
+    @TableField(value = "cfphone")
+    private String   cfphone;
+
+    @TableField(value = "tekon")
+    private String   tekon;
+
+
+    public Uuser() {
+    }
+
+
+}

+ 3 - 0
src/main/java/com/ydtech/modules/admin/model/report/company/CompanyQutationCountDataQueryDto.java

@@ -52,5 +52,8 @@ public class CompanyQutationCountDataQueryDto {
     @ApiModelProperty("员工工号")
     private String  userId;
 
+    @ApiModelProperty("部门id")
+    private String  deptId;
+
 
 }

+ 10 - 0
src/main/java/com/ydtech/modules/admin/model/report/company/OrdersDataDto.java

@@ -38,4 +38,14 @@ public class OrdersDataDto  implements Serializable {
 
     @ApiModelProperty("分组code")
     private String groupByCode;
+    /***
+     *  开始时间
+     */
+    @ApiModelProperty("开始时间")
+    private String  beginDate;
+    /***
+     *  结束时间
+     */
+    @ApiModelProperty("结束时间")
+    private String endDate;
 }

+ 48 - 0
src/main/java/com/ydtech/modules/admin/model/vo/AgencyUserInsAreaVo.java

@@ -0,0 +1,48 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel(value = "个人分页查询子订单实体")
+public class AgencyUserInsAreaVo {
+
+    @ApiModelProperty(value = "员工id")
+    private String userId;
+
+    @ApiModelProperty(value = "员工姓名")
+    private String userName;
+
+    @ApiModelProperty(value = "车牌号")
+    private String licenseno;
+
+    @ApiModelProperty(value = "子订单id")
+    private String companyId;
+
+    @ApiModelProperty(value = "交强险费用")
+    private BigDecimal jqpremium;
+
+    @ApiModelProperty(value = "商业险费用")
+    private BigDecimal sypremium;
+
+    @ApiModelProperty(value = "驾意险费用")
+    private BigDecimal jypremium;
+
+    @ApiModelProperty(value = "总保费")
+    private BigDecimal sumpremium;
+
+    @ApiModelProperty(value = "订单状态(0 报价中 1 待核保 2 已核保待缴费 3已承保 4 核保退回)")
+    private String orderstatus;
+
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    @ApiModelProperty(value = "子订单创建时间")
+    private Date createtime;
+
+
+
+}

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

@@ -0,0 +1,35 @@
+package com.ydtech.modules.admin.model.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/9/6 11:51
+ *  @Description:
+ */
+@Data
+public class UserQueryVo implements Serializable {
+
+    private   String  userName;
+
+
+    private  String mobile;
+
+
+    private int pageSize;
+
+    private int pageNum;
+
+    public UserQueryVo() {
+    }
+
+    public UserQueryVo(String userName, String mobile, int pageSize, int pageNum) {
+        this.userName = userName;
+        this.mobile = mobile;
+        this.pageSize = pageSize;
+        this.pageNum = pageNum;
+    }
+}

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

@@ -1,5 +1,6 @@
 package com.ydtech.modules.admin.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.admin.model.SysAgencyLeader;
 import com.ydtech.modules.admin.model.SysDept;
@@ -43,6 +44,7 @@ public interface SysAgencyLeaderService extends IService<SysAgencyLeader> {
     AgencyExtractFee queryExtractFee(String userId);
 
     BasePageResult<AgencyExtractFeeVo> queryExtractFeeAll(SysAgencyLeaderPageDto sysAgencyLeaderPageDto);
+    BasePageResult<AgencyExtractFeeVo> queryExtractFeeList(SysAgencyLeaderPageDto sysAgencyLeaderPageDto);
 
     BasePageResult<TeamUserInfoVo> queryTeamUser(TeamUserInfoDto teamUserInfoDto);
 
@@ -54,4 +56,8 @@ public interface SysAgencyLeaderService extends IService<SysAgencyLeader> {
     List<SysUser> getLevelUser(String id);
 
     List<SysAgencyLeader> getByUserIdList(List<String> collect);
+
+    List<SysUser> queryAgencyUser(String deptId);
+
+    IPage<AgencyUserInsAreaVo> queryAgencyUserInsAreaPage(AgencyUserInsAreaDto agencyUserInsAreaDto);
 }

+ 4 - 0
src/main/java/com/ydtech/modules/admin/service/SysPartnerService.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.admin.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysAgencyLeader;
 import com.ydtech.modules.admin.model.SysPartner;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.dto.SysPartnerAPPPageDto;
@@ -36,8 +37,11 @@ public interface SysPartnerService extends IService<SysPartner> {
     boolean deleteById(String id);
 
     BasePageResult<AgencyExtractFeeVo> queryPartnerByPage(SysPartnerPageDto sysPartnerPageDto);
+    BasePageResult<AgencyExtractFeeVo> queryPartnerByPages(SysPartnerPageDto sysPartnerPageDto);
 
     BasePageResult<SysPartnerAPPPageVo> SysPartnerAPPPage(SysPartnerAPPPageDto sysPartnerAPPPageDto);
 
     boolean edit(SysPartnerDto sysPartnerDto);
+
+    List<SysAgencyLeader> queryAgencyLeaderById(String userId);
 }

+ 47 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserLinkDxUserIdService.java

@@ -0,0 +1,47 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.dto.SysUserLinkQueryUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkZzbUserIdDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkDxUserId;
+import com.ydtech.modules.admin.model.po.SysUserZzbOrZgd;
+import com.ydtech.modules.admin.model.po.Uuser;
+import com.ydtech.modules.admin.model.vo.SysUserLinkZzbUserIdVo;
+import com.ydtech.modules.order.entity.BasePageResult;
+
+/**
+* @author Administrator
+* @description 针对表【sys_user_link_zgb_user_id(掌柜用户关联客户管理掌中宝用户关联表)】的数据库操作Service
+* @createDate 2024-09-06 18:01:18
+*/
+public interface SysUserLinkDxUserIdService extends IService<SysUserLinkDxUserId> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 19:05
+     *  @Description: 添加或者修改系統用戶id
+     */
+    void addOrUpdate(SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 19:07
+     *  @Description: 清空
+     */
+    void deleteByUserId(SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 9:59
+     *  @Description: 通过用户数据相关数据查询用户集合
+     */
+    BasePageResult<SysUserLinkUserDto> queryUserPage(SysUserLinkQueryUserDto sysUserLinkQueryUserDto);
+     /**
+      *  @version
+      *  @author: hxl
+      *  @Date: 2024/9/10 14:35
+      *  @Description:  查询掌中保用户数据
+      */
+    BasePageResult<Uuser> queryUserDxPage(SysUserLinkQueryUserDto sysUserLinkQueryUserDto);
+}

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

@@ -96,6 +96,5 @@ public interface TaskStatisticsService {
      * @param taskStatisticsVo
      * @return  控制台任务统计 渠道代理人详情
      */
-
     IPage<TaskStatisticsDto> channelAgentDetails(TaskStatisticsVo taskStatisticsVo);
 }

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

@@ -138,6 +138,28 @@ public class CompanyDataReportServiceImpl implements CompanyDataReportService {
         ordersDataVo.setBeginDate(dateMapByType.get("startDate"));
         ordersDataVo.setEndDate(dateMapByType.get("endDate"));
         Page<OrdersDataDto> resultSubOrder = insAreaCompanyMapper.querOrdersDataPage(ordersDataVo, page);
+        List<OrdersDataDto> records = resultSubOrder.getRecords();
+        if(!records.isEmpty()){
+            OrdersDataDto ordersDataDto = new OrdersDataDto();
+            ordersDataDto.setBeginDate(dateMapByType.get("startDate"));
+            ordersDataDto.setEndDate(dateMapByType.get("endDate"));
+            for (OrdersDataDto record : records) {
+                String licenseno = record.getLicenseno();  //车牌号
+                String frameno = record.getFrameno();   //车牌号
+                ordersDataDto.setLicenseno(licenseno);
+                ordersDataDto.setFrameno(frameno);
+                OrdersDataDto dto = insAreaCompanyMapper.getSumBigOrderCount(ordersDataDto);
+                String orderNumber = dto.getOrderNumber();
+                BigDecimal num1 = new BigDecimal(orderNumber);
+                BigDecimal num2 = new BigDecimal(record.getOrderNumber());
+                BigDecimal result = num1.divide(num2, 2, RoundingMode.HALF_UP);
+                record.setCloseRate(result.toString());
+                record.setNamesimple(dto.getNamesimple());
+
+            }
+
+
+        }
         return new BasePageResult<>(ordersDataVo.getPageNum(), page.getSize(), resultSubOrder.getTotal(), page.getPages(),
                 resultSubOrder.getRecords());
     }

+ 208 - 78
src/main/java/com/ydtech/modules/admin/service/impl/SysAgencyLeaderServiceImpl.java

@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+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.aop.exception.DescribeException;
@@ -30,10 +31,8 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.text.SimpleDateFormat;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -130,7 +129,7 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                     sysRelationPerson1.setSuggestId(sysRelation.getSuggestId());
                     sysRelationPerson1.setSource(1);
                     sysRelationPerson1.setType(1);
-                    b =sysRelationPersonMapper.insert(sysRelationPerson1)>0;
+                    b = sysRelationPersonMapper.insert(sysRelationPerson1) > 0;
                 }
 
             }
@@ -162,12 +161,12 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
 
         //工作室管理员: 已是管理员不能再成为管理员,已是合伙人的也不能设置为管理员
         List<SysPartner> sysPartnerList = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>().eq(SysPartner::getDelFlag, 1));
-        if (sysPartnerList.size()>0) {
+        if (sysPartnerList.size() > 0) {
             List<String> stringList = sysPartnerList.stream().map(SysPartner::getUserId).collect(Collectors.toList());
             sysUserList = sysUserList.stream().filter(SysUser -> !stringList.contains(SysUser.getId())).collect(Collectors.toList());
         }
         List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>().eq(SysAgencyLeader::getDelFlag, 1));
-        if (sysAgencyLeaders.size()>0) {
+        if (sysAgencyLeaders.size() > 0) {
             List<String> stringList = sysAgencyLeaders.stream().map(SysAgencyLeader::getUserId).collect(Collectors.toList());
             sysUserList = sysUserList.stream().filter(SysUser -> !stringList.contains(SysUser.getId())).collect(Collectors.toList());
         }
@@ -217,7 +216,7 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
             sysAgencyLeader.setUpdateTime(new Date());
             sysAgencyLeader.setUpdateBy(loginId);
             sysAgencyLeaderMapper.updateById(sysAgencyLeader);
-            if (!sysAgencyLeaderDto.getSuggestId().isEmpty()){
+            if (!sysAgencyLeaderDto.getSuggestId().isEmpty()) {
                 //sysRelationPerson1为空是无上级
                 SysRelationPerson sysRelationPerson = new SysRelationPerson();
                 sysRelationPerson.setAgencyLeaderId(sysAgencyLeader.getUserId());
@@ -241,19 +240,19 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                         sysRelationPerson1.setSuggestId(sysRelation.getSuggestId());
                         sysRelationPerson1.setSource(1);
                         sysRelationPerson1.setType(1);
-                        b = sysRelationPersonMapper.insert(sysRelationPerson1)>0;
+                        b = sysRelationPersonMapper.insert(sysRelationPerson1) > 0;
                     }
 
                 }
             }
 
 
-        }else {
+        } else {
             if (StringUtils.isNullOrEmpty(sysAgencyLeader1.getSuggestId()) && !sysAgencyLeaderDto.getSuggestId().isEmpty()) {
                 //之前推荐人为空。可以修改
                 SysAgencyLeader sysAgencyLeader = BeanUtil.copyProperties(sysAgencyLeaderDto, SysAgencyLeader.class);
                 sysAgencyLeader.setUpdateBy(loginId);
-                b = sysAgencyLeaderMapper.updateById(sysAgencyLeader)>0;
+                b = sysAgencyLeaderMapper.updateById(sysAgencyLeader) > 0;
 
                 //sysRelationPerson1为空是无上级
                 SysRelationPerson sysRelationPerson = new SysRelationPerson();
@@ -278,18 +277,18 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                         sysRelationPerson1.setSuggestId(sysRelation.getSuggestId());
                         sysRelationPerson1.setSource(1);
                         sysRelationPerson1.setType(1);
-                        b = sysRelationPersonMapper.insert(sysRelationPerson1)>0;
+                        b = sysRelationPersonMapper.insert(sysRelationPerson1) > 0;
                     }
 
                 }
 
-            }else {
+            } else {
 
                 SysAgencyLeader sysAgencyLeader = new SysAgencyLeader();
                 sysAgencyLeader.setId(sysAgencyLeaderDto.getId());
                 sysAgencyLeader.setProportional(sysAgencyLeaderDto.getProportional());
                 sysAgencyLeader.setUpdateBy(loginId);
-                b = sysAgencyLeaderMapper.updateById(sysAgencyLeader)>0;
+                b = sysAgencyLeaderMapper.updateById(sysAgencyLeader) > 0;
             }
 
         }
@@ -320,7 +319,7 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
     @Override
     public List<SysAgencyLeaderVo> queryInfo(String id) {
         List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
-                .eq(SysAgencyLeader::getDelFlag, 1).likeRight(StringUtils.isNotEmpty(id),SysAgencyLeader::getDeptId,id));
+                .eq(SysAgencyLeader::getDelFlag, 1).likeRight(StringUtils.isNotEmpty(id), SysAgencyLeader::getDeptId, id));
 
         return BeanUtil.copyToList(sysAgencyLeaders, SysAgencyLeaderVo.class);
     }
@@ -383,7 +382,7 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
             BigDecimal historyFee = new BigDecimal("0.00");
             //合伙人信息
             SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
-                    .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag,1));
+                    .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1));
             //填充查询人的姓名和机构
             agencyExtractFee.setUserId(sysPartner.getUserId());
             agencyExtractFee.setUserName(sysPartner.getUserName());
@@ -405,36 +404,52 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                             .eq(SysAgencyLeader::getDelFlag, 1));
                     if (sysAgencyLeaders != null) {
                         agencyExtractFee.setProportional(sysPartner.getProportional());
-                        List<InsOrders> insOrderList;
                         //筛选订单,选择时间
                         Date updateTime = sysAgencyLeaders.getUpdateTime();
-                        if (updateTime == null) {
-                            //机构下所有订单
-                            insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
-                                    .likeRight(StringUtils.isNotEmpty(sysAgencyLeaders.getDeptId()), InsOrders::getDeptid, sysAgencyLeaders.getDeptId())
-                                    .ge(InsOrders::getCreatetime, sysAgencyLeaders.getCreateTime()));
-                            agencyExtractFee.setStartTime(sysAgencyLeaders.getCreateTime());
-                        } else {
-                            insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
-                                    .likeRight(StringUtils.isNotEmpty(sysAgencyLeaders.getDeptId()), InsOrders::getDeptid, sysAgencyLeaders.getDeptId())
-                                    .ge(InsOrders::getCreatetime, updateTime));
+                        Date createTime = sysAgencyLeaders.getCreateTime();
+                        String dateStr = "";
+                        if (updateTime != null) {
+                            dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(updateTime);
                             agencyExtractFee.setStartTime(updateTime);
+                        } else {
+                            dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createTime);
+                            agencyExtractFee.setStartTime(createTime);
                         }
-                        if (insOrderList.size() > 0) {
-                            List<String> collect = insOrderList.stream().map(InsOrders::getOrderno).collect(Collectors.toList());
-                            //查询订单下的所有子订单
-                            List<InsAreaCompany> insAreaCompanies = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>()
-                                    .in(InsAreaCompany::getOrderno, collect)
-                                    .eq(InsAreaCompany::getOrderstatus, 3));
-                            if (insAreaCompanies.size() > 0) {
-                                //累加每一个子订单的交强险费用+商业险费用+驾意险费用
-                                BigDecimal jqpremium = insAreaCompanies.stream().map(InsAreaCompany::getJqpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
-                                BigDecimal sypremium = insAreaCompanies.stream().map(InsAreaCompany::getSypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
-                                BigDecimal jypremium = insAreaCompanies.stream().map(InsAreaCompany::getJypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
-
-                                bigDecimal = jqpremium.add(sypremium).add(jypremium);
-                            }
+                        HashMap<String, BigDecimal> map = baseMapper.getBigDecimalNum(sysAgencyLeaders.getDeptId(), dateStr,null,null);
+                        if (CollectionUtil.isNotEmpty(map)) {
+                            bigDecimal = bigDecimal.add(map.get("bigDecimal") == null ? BigDecimal.ZERO : map.get("bigDecimal"));
                         }
+
+//                        List<InsOrders> insOrderList;
+//                        //筛选订单,选择时间
+//                        Date updateTime = sysAgencyLeaders.getUpdateTime();
+//                        if (updateTime == null) {
+//                            //机构下所有订单
+//                            insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
+//                                    .likeRight(StringUtils.isNotEmpty(sysAgencyLeaders.getDeptId()), InsOrders::getDeptid, sysAgencyLeaders.getDeptId())
+//                                    .ge(InsOrders::getCreatetime, sysAgencyLeaders.getCreateTime()));
+//                            agencyExtractFee.setStartTime(sysAgencyLeaders.getCreateTime());
+//                        } else {
+//                            insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
+//                                    .likeRight(StringUtils.isNotEmpty(sysAgencyLeaders.getDeptId()), InsOrders::getDeptid, sysAgencyLeaders.getDeptId())
+//                                    .ge(InsOrders::getCreatetime, updateTime));
+//                            agencyExtractFee.setStartTime(updateTime);
+//                        }
+//                        if (insOrderList.size() > 0) {
+//                            List<String> collect = insOrderList.stream().map(InsOrders::getOrderno).collect(Collectors.toList());
+//                            //查询订单下的所有子订单
+//                            List<InsAreaCompany> insAreaCompanies = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>()
+//                                    .in(InsAreaCompany::getOrderno, collect)
+//                                    .eq(InsAreaCompany::getOrderstatus, 3));
+//                            if (insAreaCompanies.size() > 0) {
+//                                //累加每一个子订单的交强险费用+商业险费用+驾意险费用
+//                                BigDecimal jqpremium = insAreaCompanies.stream().map(InsAreaCompany::getJqpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+//                                BigDecimal sypremium = insAreaCompanies.stream().map(InsAreaCompany::getSypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+//                                BigDecimal jypremium = insAreaCompanies.stream().map(InsAreaCompany::getJypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+//
+//                                bigDecimal = jqpremium.add(sypremium).add(jypremium);
+//                            }
+//                        }
                     }
                 }
                 agencyExtractFee.setSumpremium(bigDecimal);
@@ -486,35 +501,52 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                 BigDecimal historyFee = new BigDecimal("0.00");
 
                 agencyExtractFee.setProportional(sysAgencyLeaders.getProportional());
-                List<InsOrders> insOrderList;
+
                 //筛选订单,选择时间
                 Date updateTime = sysAgencyLeaders.getUpdateTime();
-                if (updateTime == null) {
-                    //机构下所有订单
-                    insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
-                            .likeRight(StringUtils.isNotEmpty(sysAgencyLeaders.getDeptId()), InsOrders::getDeptid, sysAgencyLeaders.getDeptId())
-                            .ge(InsOrders::getCreatetime, sysAgencyLeaders.getCreateTime()));
-                    agencyExtractFee.setStartTime(sysAgencyLeaders.getCreateTime());
-                } else {
-                    insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
-                            .likeRight(StringUtils.isNotEmpty(sysAgencyLeaders.getDeptId()), InsOrders::getDeptid, sysAgencyLeaders.getDeptId())
-                            .ge(InsOrders::getCreatetime, updateTime));
+                Date createTime = sysAgencyLeaders.getCreateTime();
+                String dateStr = "";
+                if (updateTime != null) {
+                    dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(updateTime);
                     agencyExtractFee.setStartTime(updateTime);
+                } else {
+                    dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createTime);
+                    agencyExtractFee.setStartTime(createTime);
                 }
-                if (insOrderList.size() > 0) {
-                    List<String> collect = insOrderList.stream().map(InsOrders::getOrderno).collect(Collectors.toList());
-                    //查询订单下的所有子订单
-                    List<InsAreaCompany> insAreaCompanies = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>()
-                            .in(InsAreaCompany::getOrderno, collect)
-                            .eq(InsAreaCompany::getOrderstatus, 3));
-                    if (insAreaCompanies.size() > 0) {
-                        BigDecimal jqpremium = insAreaCompanies.stream().map(InsAreaCompany::getJqpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
-                        BigDecimal sypremium = insAreaCompanies.stream().map(InsAreaCompany::getSypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
-                        BigDecimal jypremium = insAreaCompanies.stream().map(InsAreaCompany::getJypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
-
-                        bigDecimal = jqpremium.add(sypremium).add(jypremium);
-                    }
+                HashMap<String, BigDecimal> map = baseMapper.getBigDecimalNum(sysAgencyLeaders.getDeptId(), dateStr,null,null);
+                if (CollectionUtil.isNotEmpty(map)) {
+                    bigDecimal = bigDecimal.add(map.get("bigDecimal") == null ? BigDecimal.ZERO : map.get("bigDecimal"));
                 }
+
+//                List<InsOrders> insOrderList;
+//                //筛选订单,选择时间
+//                Date updateTime = sysAgencyLeaders.getUpdateTime();
+//                if (updateTime == null) {
+//                    //机构下所有订单
+//                    insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
+//                            .likeRight(StringUtils.isNotEmpty(sysAgencyLeaders.getDeptId()), InsOrders::getDeptid, sysAgencyLeaders.getDeptId())
+//                            .ge(InsOrders::getCreatetime, sysAgencyLeaders.getCreateTime()));
+//                    agencyExtractFee.setStartTime(sysAgencyLeaders.getCreateTime());
+//                } else {
+//                    insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
+//                            .likeRight(StringUtils.isNotEmpty(sysAgencyLeaders.getDeptId()), InsOrders::getDeptid, sysAgencyLeaders.getDeptId())
+//                            .ge(InsOrders::getCreatetime, updateTime));
+//                    agencyExtractFee.setStartTime(updateTime);
+//                }
+//                if (insOrderList.size() > 0) {
+//                    List<String> collect = insOrderList.stream().map(InsOrders::getOrderno).collect(Collectors.toList());
+//                    //查询订单下的所有子订单
+//                    List<InsAreaCompany> insAreaCompanies = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>()
+//                            .in(InsAreaCompany::getOrderno, collect)
+//                            .eq(InsAreaCompany::getOrderstatus, 3));
+//                    if (insAreaCompanies.size() > 0) {
+//                        BigDecimal jqpremium = insAreaCompanies.stream().map(InsAreaCompany::getJqpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+//                        BigDecimal sypremium = insAreaCompanies.stream().map(InsAreaCompany::getSypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+//                        BigDecimal jypremium = insAreaCompanies.stream().map(InsAreaCompany::getJypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+//
+//                        bigDecimal = jqpremium.add(sypremium).add(jypremium);
+//                    }
+//                }
                 agencyExtractFee.setSumpremium(bigDecimal);
                 BigDecimal multiply = bigDecimal.multiply(new BigDecimal(agencyExtractFee.getProportional())
                         .divide(new BigDecimal("100"))).setScale(2, RoundingMode.DOWN);
@@ -634,6 +666,81 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                 agencyExtractFeeList);
     }
 
+    @Override
+    public BasePageResult<AgencyExtractFeeVo> queryExtractFeeList(SysAgencyLeaderPageDto sysAgencyLeaderPageDto) {
+        List<AgencyExtractFeeVo> agencyExtractFeeList = new ArrayList<>();
+
+        Page<SysAgencyLeader> page = new Page<>(sysAgencyLeaderPageDto.getPageNum(), sysAgencyLeaderPageDto.getPageSize());
+        LambdaQueryWrapper<SysAgencyLeader> wrapper = new LambdaQueryWrapper<>();
+        wrapper.like(StringUtils.isNotEmpty(sysAgencyLeaderPageDto.getUserId()), SysAgencyLeader::getUserId, sysAgencyLeaderPageDto.getUserId());
+        wrapper.like(StringUtils.isNotEmpty(sysAgencyLeaderPageDto.getUserName()), SysAgencyLeader::getUserName, sysAgencyLeaderPageDto.getUserName());
+        wrapper.eq(SysAgencyLeader::getDelFlag, 1);
+        wrapper.orderByDesc(SysAgencyLeader::getId);
+
+        Page<SysAgencyLeader> insOrdersPage = page(page, wrapper);
+        List<SysAgencyLeader> records = insOrdersPage.getRecords();
+        if (records.size() > 0) {
+            for (SysAgencyLeader sysAgencyLeaders : records) {
+                AgencyExtractFeeVo agencyExtractFee = new AgencyExtractFeeVo();
+                //总保费
+                BigDecimal bigDecimal = BigDecimal.ZERO;
+                //已提现抽成费用
+                BigDecimal historyFee = BigDecimal.ZERO;
+
+                agencyExtractFee.setUserId(sysAgencyLeaders.getUserId());
+                agencyExtractFee.setUserName(sysAgencyLeaders.getUserName());
+                agencyExtractFee.setDeptId(sysAgencyLeaders.getDeptId());
+                agencyExtractFee.setDeptName(sysAgencyLeaders.getDeptName());
+                agencyExtractFee.setProportional(sysAgencyLeaders.getProportional());
+                //筛选订单,选择时间
+                Date updateTime = sysAgencyLeaders.getUpdateTime();
+                Date createTime = sysAgencyLeaders.getCreateTime();
+                String dateStr = "";
+                if (updateTime != null) {
+                    dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(updateTime);
+                    agencyExtractFee.setStartTime(updateTime);
+                } else {
+                    dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createTime);
+                    agencyExtractFee.setStartTime(createTime);
+                }
+                HashMap<String, BigDecimal> map = baseMapper.getBigDecimalNum(sysAgencyLeaders.getDeptId(), dateStr,null,null);
+                if (CollectionUtil.isNotEmpty(map)) {
+
+                    bigDecimal = bigDecimal.add(map.get("bigDecimal") == null ? BigDecimal.ZERO : map.get("bigDecimal"));
+                }
+                agencyExtractFee.setSumpremium(bigDecimal);
+                BigDecimal multiply = bigDecimal.multiply(new BigDecimal(agencyExtractFee.getProportional())
+                        .divide(new BigDecimal("100"))).setScale(2, RoundingMode.DOWN);
+                agencyExtractFee.setExtractFee(multiply);
+                // 填充 已提现抽成费用和可提现抽成费用
+                List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
+                        .eq(SysAgencyFeeApproval::getUserId, sysAgencyLeaders.getUserId())
+                        .eq(SysAgencyFeeApproval::getStatus, 1));
+                if (sysAgencyFeeApprovals.size() > 0) {
+                    for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
+                        historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
+                    }
+                }
+
+                if (!bigDecimal.equals(BigDecimal.ZERO)) {
+                    //已提现
+                    agencyExtractFee.setHistoryFee(historyFee);
+                    //可提现 = 总抽成-已提现
+                    agencyExtractFee.setCashFee(multiply.subtract(historyFee));
+                } else {
+                    agencyExtractFee.setHistoryFee(BigDecimal.ZERO);
+                    agencyExtractFee.setCashFee(multiply.subtract(BigDecimal.ZERO));
+                }
+                agencyExtractFeeList.add(agencyExtractFee);
+
+            }
+
+        }
+
+        return new BasePageResult<>(sysAgencyLeaderPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
+                agencyExtractFeeList);
+    }
+
 
     @Override
     public BasePageResult<TeamInformation> queryTeamInfoPage(TeamInformationDto teamInformationDto) {
@@ -689,19 +796,19 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                 }
 
                 if (insOrderList.size() > 0) {
-                        List<String> collect = insOrderList.stream().map(InsOrders::getOrderno).collect(Collectors.toList());
-                        //查询订单下的所有子订单
-                        List<InsAreaCompany> insAreaCompanies = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>()
-                                .in(InsAreaCompany::getOrderno, collect)
-                                .eq(InsAreaCompany::getOrderstatus, 3));
-                        if (insAreaCompanies.size() > 0) {
-                                //累加每一个子订单的交强险费用+商业险费用+驾意险费用
-                                BigDecimal jqpremium = insAreaCompanies.stream().map(InsAreaCompany::getJqpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
-                                BigDecimal sypremium = insAreaCompanies.stream().map(InsAreaCompany::getSypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
-                                BigDecimal jypremium = insAreaCompanies.stream().map(InsAreaCompany::getJypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+                    List<String> collect = insOrderList.stream().map(InsOrders::getOrderno).collect(Collectors.toList());
+                    //查询订单下的所有子订单
+                    List<InsAreaCompany> insAreaCompanies = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>()
+                            .in(InsAreaCompany::getOrderno, collect)
+                            .eq(InsAreaCompany::getOrderstatus, 3));
+                    if (insAreaCompanies.size() > 0) {
+                        //累加每一个子订单的交强险费用+商业险费用+驾意险费用
+                        BigDecimal jqpremium = insAreaCompanies.stream().map(InsAreaCompany::getJqpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+                        BigDecimal sypremium = insAreaCompanies.stream().map(InsAreaCompany::getSypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+                        BigDecimal jypremium = insAreaCompanies.stream().map(InsAreaCompany::getJypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
 
-                                bigDecimal = jqpremium.add(sypremium).add(jypremium);
-                        }
+                        bigDecimal = jqpremium.add(sypremium).add(jypremium);
+                    }
 
                 }
                 teamInformation.setSumpremium(bigDecimal);
@@ -829,7 +936,7 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                         BigDecimal multiply = bigDecimal.multiply(new BigDecimal(sysAgencyLeader.getProportional())
                                 .divide(new BigDecimal("100"))).setScale(2, RoundingMode.DOWN);
                         agencyTeamVo.setExtractFee(multiply);
-                    }else {
+                    } else {
                         agencyTeamVo.setExtractFee(new BigDecimal("0.00"));
                     }
                     agencyTeamVoList.add(agencyTeamVo);
@@ -932,5 +1039,28 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                 teamUserInfoVoList);
     }
 
+    @Override
+    public List<SysUser> queryAgencyUser(String deptId) {
+
+        return sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                .eq(SysUser::getStatus, 1)
+                .likeRight(StringUtils.isNotEmpty(deptId), SysUser::getId, deptId));
+    }
+
+    @Override
+    public IPage<AgencyUserInsAreaVo> queryAgencyUserInsAreaPage(AgencyUserInsAreaDto agencyUserInsAreaDto) {
+        Page page = new Page(agencyUserInsAreaDto.getPageNum(), agencyUserInsAreaDto.getPageSize());
+
+        IPage<AgencyUserInsAreaVo> agencyUserInsAreaVoIPage = insAreaCompanyMapper.queryAgencyUserInsAreaPage(page, agencyUserInsAreaDto);
+        List<AgencyUserInsAreaVo> records = agencyUserInsAreaVoIPage.getRecords();
+        if (records.size() > 0) {
+            for (AgencyUserInsAreaVo record : records) {
+                record.setSumpremium(record.getJqpremium().add(record.getJypremium()).add(record.getSypremium()));
+            }
+        }
+
+        return agencyUserInsAreaVoIPage;
+    }
+
 
 }

+ 165 - 27
src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerServiceImpl.java

@@ -15,6 +15,7 @@ import com.ydtech.modules.admin.model.dto.SysPartnerAPPPageDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerPageDto;
 import com.ydtech.modules.admin.model.vo.AgencyExtractFeeVo;
+import com.ydtech.modules.admin.model.vo.SysAgencyLeaderVo;
 import com.ydtech.modules.admin.model.vo.SysPartnerAPPPageVo;
 import com.ydtech.modules.admin.model.vo.SysUserPartner;
 import com.ydtech.modules.admin.service.SysPartnerService;
@@ -32,8 +33,10 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -360,6 +363,109 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         return new BasePageResult<>(sysPartnerPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
                 agencyExtractFeeList);
 
+    }
+    @Override
+    public BasePageResult<AgencyExtractFeeVo> queryPartnerByPages(SysPartnerPageDto sysPartnerPageDto) {
+        List<AgencyExtractFeeVo> agencyExtractFeeList = new ArrayList<>();
+
+        Page<SysPartner> page = new Page<>(sysPartnerPageDto.getPageNum(), sysPartnerPageDto.getPageSize());
+        LambdaQueryWrapper<SysPartner> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SysPartner::getDelFlag, 1);
+        wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserId()), SysPartner::getUserId, sysPartnerPageDto.getUserId());
+        wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserName()), SysPartner::getUserName, sysPartnerPageDto.getUserName());
+        wrapper.orderByDesc(SysPartner::getId);
+
+        Page<SysPartner> insOrdersPage = page(page, wrapper);
+        List<SysPartner> sysPartnerList = insOrdersPage.getRecords();
+        if (sysPartnerList.size() > 0) {
+            for (SysPartner sysPartner : sysPartnerList) {
+                AgencyExtractFeeVo agencyExtractFee = new AgencyExtractFeeVo();
+                //总保费
+                BigDecimal bigDecimal = BigDecimal.ZERO;
+                BigDecimal extractFee = BigDecimal.ZERO;
+                //已提现抽成费用
+                BigDecimal historyFee = BigDecimal.ZERO;
+                //填充查询人的姓名和机构
+                agencyExtractFee.setProportional(sysPartner.getProportional());
+                agencyExtractFee.setUserId(sysPartner.getUserId());
+                agencyExtractFee.setUserName(sysPartner.getUserName());
+                SysUser sysUser = sysUserMapper.selectOne(new LambdaQueryWrapper<SysUser>()
+                        .eq(SysUser::getId, sysPartner.getUserId())
+                        .eq(SysUser::getStatus, 1));
+                agencyExtractFee.setDeptId(sysUser.getDeptId());
+                SysDept sysDept = sysDeptMapper.selectOne(new LambdaQueryWrapper<SysDept>()
+                        .eq(SysDept::getId, sysUser.getDeptId()).eq(SysDept::getDelFlag, 0));
+                agencyExtractFee.setDeptName(sysDept.getName());
+                //查询所有推荐的机构负责人核算总保费
+                List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                        .eq(SysRelationPerson::getSuggestId, sysPartner.getUserId()).eq(SysRelationPerson::getType, 1));
+                if (sysRelationPeople.size() > 0) {
+                    List<String> agencyLeaderIds = sysRelationPeople.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+                    for (String agencyLeaderId : agencyLeaderIds) {
+
+                        SysAgencyLeader sysAgencyLeaders = sysAgencyLeaderMapper.selectOne(new LambdaQueryWrapper<SysAgencyLeader>()
+                                .eq(SysAgencyLeader::getUserId, agencyLeaderId)
+                                .eq(SysAgencyLeader::getDelFlag, 1));
+                        if (sysAgencyLeaders != null) {
+                            agencyExtractFee.setProportional(sysPartner.getProportional());
+
+                            //筛选订单,选择时间
+                            Date updateTime = sysAgencyLeaders.getUpdateTime();
+                            Date createTime = sysAgencyLeaders.getCreateTime();
+                            String dateStr = "";
+                            if (updateTime != null) {
+                                dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(updateTime);
+                                agencyExtractFee.setStartTime(updateTime);
+                            } else {
+                                dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createTime);
+                                agencyExtractFee.setStartTime(createTime);
+                            }
+                            HashMap<String, BigDecimal> map = sysAgencyLeaderMapper.getBigDecimalNum(sysAgencyLeaders.getDeptId(), dateStr,null,null);
+                            if (CollectionUtil.isNotEmpty(map)) {
+                                bigDecimal = bigDecimal.add(map.get("bigDecimal") == null ? BigDecimal.ZERO : map.get("bigDecimal"));
+                            }
+                        }
+                    }
+                    // 填充 已提现抽成费用和可提现抽成费用
+                    List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
+                            .eq(SysAgencyFeeApproval::getUserId, sysPartner.getUserId())
+                            .eq(SysAgencyFeeApproval::getStatus, 1));
+                    if (sysAgencyFeeApprovals.size() > 0) {
+                        for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
+                            historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
+                        }
+                    }
+                    agencyExtractFee.setSumpremium(bigDecimal);
+                    if (!bigDecimal.equals(BigDecimal.ZERO)) {
+
+                        BigDecimal multiply = bigDecimal.multiply(new BigDecimal(agencyExtractFee.getProportional())
+                                .divide(new BigDecimal("100"))).setScale(2, RoundingMode.DOWN);
+                        agencyExtractFee.setExtractFee(multiply);
+                        //已提现
+                        agencyExtractFee.setHistoryFee(historyFee);
+                        extractFee = agencyExtractFee.getExtractFee();
+                        //可提现 = 总抽成-已提现
+                        agencyExtractFee.setCashFee(extractFee.subtract(historyFee));
+                    } else {
+                        agencyExtractFee.setExtractFee(BigDecimal.ZERO);
+                        agencyExtractFee.setHistoryFee(BigDecimal.ZERO);
+                        agencyExtractFee.setCashFee(extractFee);
+                    }
+
+                } else {
+                    agencyExtractFee.setSumpremium(BigDecimal.ZERO);
+                    agencyExtractFee.setExtractFee(BigDecimal.ZERO);
+                    agencyExtractFee.setHistoryFee(BigDecimal.ZERO);
+                    agencyExtractFee.setCashFee(BigDecimal.ZERO);
+                }
+                agencyExtractFeeList.add(agencyExtractFee);
+
+            }
+        }
+
+        return new BasePageResult<>(sysPartnerPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
+                agencyExtractFeeList);
+
     }
 
     @Override
@@ -432,38 +538,52 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
 
                                 for (SysDept sysDept1 : sysDeptList) {
 
-                                    List<InsOrders> insOrderList;
+//                                    List<InsOrders> insOrderList;
+//                                    //筛选订单,选择时间
+//                                    Date updateTime = sysAgencyLeader.getUpdateTime();
+//                                    if (updateTime == null) {
+//                                        //机构下所有订单
+//                                        insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
+//                                                .likeRight(InsOrders::getDeptid, sysDept1.getId())
+//                                                .ge(InsOrders::getCreatetime, sysAgencyLeader.getCreateTime()));
+//                                        sysPartnerAPPPageVo.setStartTime(sysAgencyLeader.getCreateTime());
+//
+//                                    } else {
+//                                        insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
+//                                                .likeRight(InsOrders::getDeptid, sysDept1.getId())
+//                                                .ge(InsOrders::getCreatetime, updateTime));
+//                                        sysPartnerAPPPageVo.setStartTime(updateTime);
+//                                    }
+//
+//                                    if (insOrderList.size() > 0) {
+//                                        List<String> collect = insOrderList.stream().map(InsOrders::getOrderno).collect(Collectors.toList());
+//                                        //查询订单下的所有子订单
+//                                        List<InsAreaCompany> insAreaCompanies = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>()
+//                                                .in(InsAreaCompany::getOrderno, collect)
+//                                                .eq(InsAreaCompany::getOrderstatus, 3));
+//                                        if (insAreaCompanies.size() > 0) {
+//                                            BigDecimal jqpremium = insAreaCompanies.stream().map(InsAreaCompany::getJqpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+//                                            BigDecimal sypremium = insAreaCompanies.stream().map(InsAreaCompany::getSypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+//                                            BigDecimal jypremium = insAreaCompanies.stream().map(InsAreaCompany::getJypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+//
+//                                            bigDecimal = jqpremium.add(sypremium).add(jypremium);
+//                                        }
+//                                    }
                                     //筛选订单,选择时间
                                     Date updateTime = sysAgencyLeader.getUpdateTime();
-                                    if (updateTime == null) {
-                                        //机构下所有订单
-                                        insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
-                                                .likeRight(InsOrders::getDeptid, sysDept1.getId())
-                                                .ge(InsOrders::getCreatetime, sysAgencyLeader.getCreateTime()));
-                                        sysPartnerAPPPageVo.setStartTime(sysAgencyLeader.getCreateTime());
-
-                                    } else {
-                                        insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
-                                                .likeRight(InsOrders::getDeptid, sysDept1.getId())
-                                                .ge(InsOrders::getCreatetime, updateTime));
+                                    Date createTime = sysAgencyLeader.getCreateTime();
+                                    String dateStr = "";
+                                    if (updateTime != null) {
+                                        dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(updateTime);
                                         sysPartnerAPPPageVo.setStartTime(updateTime);
+                                    } else {
+                                        dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createTime);
+                                        sysPartnerAPPPageVo.setStartTime(createTime);
                                     }
-
-                                    if (insOrderList.size() > 0) {
-                                        List<String> collect = insOrderList.stream().map(InsOrders::getOrderno).collect(Collectors.toList());
-                                        //查询订单下的所有子订单
-                                        List<InsAreaCompany> insAreaCompanies = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>()
-                                                .in(InsAreaCompany::getOrderno, collect)
-                                                .eq(InsAreaCompany::getOrderstatus, 3));
-                                        if (insAreaCompanies.size() > 0) {
-                                            BigDecimal jqpremium = insAreaCompanies.stream().map(InsAreaCompany::getJqpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
-                                            BigDecimal sypremium = insAreaCompanies.stream().map(InsAreaCompany::getSypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
-                                            BigDecimal jypremium = insAreaCompanies.stream().map(InsAreaCompany::getJypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
-
-                                            bigDecimal = jqpremium.add(sypremium).add(jypremium);
-                                        }
+                                    HashMap<String, BigDecimal> map = sysAgencyLeaderMapper.getBigDecimalNum(sysDept1.getId(), dateStr,null,null);
+                                    if (CollectionUtil.isNotEmpty(map)) {
+                                        bigDecimal = bigDecimal.add(map.get("bigDecimal") == null ? BigDecimal.ZERO : map.get("bigDecimal"));
                                     }
-
                                 }
                             }
                         }
@@ -544,5 +664,23 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         return b;
     }
 
+    @Override
+    public List<SysAgencyLeader> queryAgencyLeaderById(String userId) {
+        List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                .eq(SysRelationPerson::getSuggestId, userId).eq(SysRelationPerson::getType, 1));
+
+            //获取所有推荐的机构负责人id
+            List<String> agencyLeaderIds = sysRelationPeople.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+
+            //获取机构负责人信息
+            List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
+                    .in(SysAgencyLeader::getUserId, agencyLeaderIds)
+                    .eq(SysAgencyLeader::getDelFlag, 1)
+                    .orderByDesc(SysAgencyLeader::getId));
+
+            return sysAgencyLeaders;
+
+    }
+
 
 }

+ 202 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkDxUserIdServiceImpl.java

@@ -0,0 +1,202 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.dao.SysUserLinkDxUserIdMapper;
+import com.ydtech.modules.admin.model.dto.*;
+import com.ydtech.modules.admin.model.po.SysUserLinkDxUserId;
+import com.ydtech.modules.admin.model.po.Uuser;
+import com.ydtech.modules.admin.model.vo.DxDataVo;
+import com.ydtech.modules.admin.model.vo.SysUserLinkZzbUserIdVo;
+import com.ydtech.modules.admin.model.vo.UserQueryVo;
+import com.ydtech.modules.admin.service.SysUserLinkDxUserIdService;
+import com.ydtech.modules.admin.utils.DxApiConfigurationProperties;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.entity.BasePageResult;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.ParameterizedTypeReference;
+import org.springframework.http.*;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author Administrator
+ * @description 针对表【sys_user(用户信息表)】的数据库操作Service实现
+ * @createDate 2024-09-06 18:13:19
+ */
+@Service
+public class SysUserLinkDxUserIdServiceImpl extends ServiceImpl<SysUserLinkDxUserIdMapper, SysUserLinkDxUserId>
+        implements SysUserLinkDxUserIdService {
+
+    @Autowired
+    private SysUserLinkDxUserIdMapper sysUserLinkDxUserIdMapper;
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Autowired
+    private DxApiConfigurationProperties dxApiConfigurationProperties;
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 19:47
+     *  @Description:  添加掌柜鼎的绑定的用户id
+     */
+    @Override
+    public void addOrUpdate(SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo) {
+        LambdaQueryWrapper<SysUserLinkDxUserId> lqw = new LambdaQueryWrapper<>();
+        lqw.eq( SysUserLinkDxUserId::getUserId, sysUserLinkZzbUserIdVo.getUserId());
+        SysUserLinkDxUserId one = this.getOne(lqw);
+        if(one!=null){
+            one.setDxUserId(sysUserLinkZzbUserIdVo.getLinkUserId());
+            one.setCreateTime(new Date());
+            one.setCreateUserId(new BaseController().getUserId());
+            this.updateById(one);
+        }else{
+            SysUserLinkDxUserId sysUserLinkDxUserId =new SysUserLinkDxUserId(null,sysUserLinkZzbUserIdVo.getUserId(), sysUserLinkZzbUserIdVo.getLinkUserId(), new Date(), new BaseController().getUserId());
+            this.save(sysUserLinkDxUserId);
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 19:46
+     *  @Description: 通过用户id删除数据
+     */
+    @Override
+    public void deleteByUserId(SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo) {
+        LambdaQueryWrapper<SysUserLinkDxUserId> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(SysUserLinkDxUserId::getUserId, sysUserLinkZzbUserIdVo.getUserId());
+        int rows = this.baseMapper.delete(lqw);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 8:54
+     *  @Description:  通过用户关联数据查询返回用户集合
+     */
+    @Override
+    public BasePageResult<SysUserLinkUserDto> queryUserPage(SysUserLinkQueryUserDto sysUserLinkQueryUserDto) {
+        Page<SysUserLinkUserDto> page = new Page<>(sysUserLinkQueryUserDto.getPageNum(), sysUserLinkQueryUserDto.getPageSize());
+        Page<SysUserLinkUserDto> sysUserLinkUserDtoBasePageResult = sysUserLinkDxUserIdMapper.queryPage(page, sysUserLinkQueryUserDto);
+        List<SysUserLinkUserDto> records = sysUserLinkUserDtoBasePageResult.getRecords();
+        List<SysUserLinkUserDto> newRecords =  new ArrayList<>();
+        if(records!=null && records.size()>0){
+            for(SysUserLinkUserDto  sysUserLinkUserDto : records){
+                if(StringUtils.isBlank(sysUserLinkUserDto.getLinkUserId())){
+                    sysUserLinkUserDto.setLinkUserName("");
+                }else{
+                    Uuser uuser = getDataByGet(sysUserLinkUserDto.getLinkUserId(), dxApiConfigurationProperties.getFindUserById());
+                    sysUserLinkUserDto.setLinkUserName(uuser ==null? "":uuser.getNickname());
+                }
+                newRecords.add(sysUserLinkUserDto);
+            }
+        }
+        sysUserLinkUserDtoBasePageResult.setRecords(newRecords);
+        return  new BasePageResult<>(sysUserLinkQueryUserDto.getPageNum(), page.getSize(), sysUserLinkUserDtoBasePageResult.getTotal(), page.getPages(),
+                sysUserLinkUserDtoBasePageResult.getRecords());
+    }
+    /**
+     * @version
+     * @author: hxl
+     * @Date: 2024/9/10 14:53
+     * @Description: 查询掌柜鼎数据
+     */
+    @Override
+    public BasePageResult<Uuser> queryUserDxPage(SysUserLinkQueryUserDto sysUserLinkQueryUserDto) {
+        Page<Uuser> page = new Page<>(sysUserLinkQueryUserDto.getPageNum(),
+                sysUserLinkQueryUserDto.getPageSize());
+        UserQueryVo  userQueryVo =new  UserQueryVo(sysUserLinkQueryUserDto.getUserName(),sysUserLinkQueryUserDto.getMobile(),sysUserLinkQueryUserDto.getPageSize(), sysUserLinkQueryUserDto.getPageNum());
+        BasePageResult<Uuser> result = getDataByPost(userQueryVo, dxApiConfigurationProperties.getFindUserListByPage());
+        if(result!=null ){
+            return result;
+        }
+        return  new BasePageResult<>(sysUserLinkQueryUserDto.getPageNum(), page.getSize(), 0, page.getPages(),
+                new ArrayList<Uuser>());
+    }
+
+
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 14:43
+     *  @Description:  分页查询电销用户数据
+     */
+    public  BasePageResult<Uuser> getDataByPost(UserQueryVo userQueryVo, String  url){
+        HttpHeaders httpHeaders = new HttpHeaders();
+        httpHeaders.setContentType(MediaType.APPLICATION_JSON);
+        HttpEntity<UserQueryVo> requestEntity = new HttpEntity<>(userQueryVo,httpHeaders);
+        ParameterizedTypeReference<HttpResult<BasePageResult<Uuser>>> responseType =
+                new ParameterizedTypeReference<HttpResult<BasePageResult<Uuser>>>() {};
+        ResponseEntity<HttpResult<BasePageResult<Uuser>>> response = restTemplate.exchange(
+                url,
+                HttpMethod.POST,
+                requestEntity,
+                responseType
+        );
+        if(response!=null) {
+            HttpResult<BasePageResult<Uuser>> body =  response.getBody();
+            if (body.getCode() == 200) {
+                BasePageResult<Uuser> data = body.getData();
+                return data;
+            }
+        }
+        return  null;
+    }
+
+    public DxDataDto getDataByPost(DxDataVo dxDataVo, String  url){
+        HttpHeaders httpHeaders = new HttpHeaders();
+        httpHeaders.setContentType(MediaType.APPLICATION_JSON);
+        HttpEntity<DxDataVo> requestEntity = new HttpEntity<>(dxDataVo,httpHeaders);
+        ResponseEntity<HttpResult<DxDataDto>> response =null;
+        ParameterizedTypeReference<HttpResult<DxDataDto>> typeRef = new ParameterizedTypeReference<HttpResult<DxDataDto>>() {};
+        try{
+            response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, typeRef);
+        }catch(Exception e){
+
+        }
+        if(response!=null) {
+            HttpResult<DxDataDto> body =  response.getBody();
+            if (body.getCode() == 200) {
+                DxDataDto data = body.getData();
+                return new DxDataDto(dxDataVo.getDateTime(),data.getExhaleDuration(), data.getOutgoingCallsNumber(), data.getConnectionsNumber(), data.getCallSuccessRate());
+            }
+        }
+        return  new DxDataDto(dxDataVo.getDateTime(),"-", "-", "-", "-");
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 14:43
+     *  @Description:  根据用户id查询用户数据
+     */
+    public Uuser getDataByGet(String userId, String  url){
+        url = url + "?userId=" + userId;
+        ResponseEntity<HttpResult<Uuser>> response =null;
+        ParameterizedTypeReference<HttpResult<Uuser>> typeRef = new ParameterizedTypeReference<HttpResult<Uuser>>() {};
+        try{
+            response = restTemplate.exchange(url, HttpMethod.GET, null, typeRef);
+        }catch(Exception e){
+
+        }
+        if(response!=null) {
+            HttpResult<Uuser> body =  response.getBody();
+            if (body.getCode() == 200) {
+                Uuser data = body.getData();
+                return data;
+            }
+        }
+        return  new Uuser();
+    }
+}

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

@@ -269,6 +269,8 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
                 taskStatisticsVo.setDateType("2");
             } else if ("30".equals(taskStatisticsVo.getDays())) {
                 taskStatisticsVo.setDateType("3");
+            } else {
+                taskStatisticsVo.setDateType("1");
             }
         }
         HashMap<String, String> dateMapByType = getDateMapByTypeNew(taskStatisticsVo.getDateType(), taskStatisticsVo.getCreatetimeStart(), taskStatisticsVo.getCreatetimeEnd());

+ 6 - 0
src/main/java/com/ydtech/modules/admin/utils/DxApiConfigurationProperties.java

@@ -19,4 +19,10 @@ public class DxApiConfigurationProperties {
 
     //通过用户id和当天日期查询数据
     private String findDataUserIdAndDayUrl;
+
+    //通过用户id查询电销数据
+    private String findUserById;
+
+    //电销用户数据分页
+    private String findUserListByPage;
 }

+ 3 - 3
src/main/java/com/ydtech/modules/customer/controller/CustomerController.java

@@ -4,6 +4,7 @@ package com.ydtech.modules.customer.controller;
 import com.ydtech.aop.request.RequestSingleParam;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.customer.entity.po.CusChatMessages;
+import com.ydtech.modules.customer.entity.vo.ReturnMessageVo;
 import com.ydtech.modules.customer.service.CustomerService;
 import io.swagger.annotations.Api;
 import lombok.RequiredArgsConstructor;
@@ -22,12 +23,11 @@ public class CustomerController {
     private final CustomerService customerService;
 
     @PostMapping("/ai/sendMessage")
-    public HttpResult<String> sendMessage(@RequestSingleParam(value = "message") String message) {
-        String resultMessage = customerService.sendMessage(message);
+    public HttpResult<ReturnMessageVo> sendMessage(@RequestSingleParam(value = "message") String message) {
+        ReturnMessageVo resultMessage = customerService.sendMessage(message);
         return HttpResult.ok(resultMessage);
     }
 
-
     @PostMapping("/ai/queryMessage")
     public HttpResult<List<CusChatMessages>> queryMessage() {
         List<CusChatMessages> list = customerService.queryMessage();

+ 32 - 0
src/main/java/com/ydtech/modules/customer/entity/vo/ReturnMessageVo.java

@@ -0,0 +1,32 @@
+package com.ydtech.modules.customer.entity.vo;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ReturnMessageVo implements Serializable {
+
+    private static final long serialVersionUID = -2521321774624902217L;
+
+    @ApiModelProperty(value = "消息")
+    private String message;
+
+    @ApiModelProperty(value = "时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date date;
+
+    public ReturnMessageVo(String message) {
+        this.message = message;
+        this.date = new Date();
+    }
+}

+ 3 - 2
src/main/java/com/ydtech/modules/customer/service/CustomerService.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.customer.service;
 
 import com.ydtech.modules.customer.entity.po.CusChatMessages;
+import com.ydtech.modules.customer.entity.vo.ReturnMessageVo;
 
 import java.util.List;
 
@@ -12,10 +13,10 @@ public interface CustomerService {
      * @param message 消息
      * @return
      */
-    String sendMessage(String message);
+    ReturnMessageVo sendMessage(String message);
 
     /**
-     * 获取
+     * 获取消息
      * @return
      */
     List<CusChatMessages> queryMessage();

+ 6 - 8
src/main/java/com/ydtech/modules/customer/service/impl/CustomerServiceImpl.java

@@ -1,12 +1,14 @@
 package com.ydtech.modules.customer.service.impl;
 
-import cn.hutool.core.util.ArrayUtil;
+
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.constants.GroupType;
 import com.ydtech.modules.customer.components.CustomerComponents;
 import com.ydtech.modules.customer.entity.po.CusChatMessages;
 import com.ydtech.modules.customer.service.CusChatMessagesService;
 import com.ydtech.modules.customer.service.CustomerService;
+import com.ydtech.modules.customer.entity.vo.ReturnMessageVo;
+
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -25,7 +27,7 @@ public class CustomerServiceImpl implements CustomerService {
 
     @Override
     @Transactional
-    public String sendMessage(String message) {
+    public ReturnMessageVo sendMessage(String message) {
         String userId = BaseController.getUserId();
         List<CusChatMessages> list = new ArrayList<>();
         CusChatMessages toMessage = CusChatMessages.toAiMessage(userId, message);
@@ -33,18 +35,14 @@ public class CustomerServiceImpl implements CustomerService {
         CusChatMessages receptionMessages = CusChatMessages.receptionAiMessage(userId, message);
         Collections.addAll(list, toMessage, receptionMessages);
         cusChatMessagesService.saveBatch(list);
-        return s;
+        return new ReturnMessageVo(s);
     }
 
 
     @Override
     public List<CusChatMessages> queryMessage() {
         String userId = BaseController.getUserId();
-        cusChatMessagesService
-                .lambdaQuery()
-                .eq(CusChatMessages::getGroupType, GroupType.GT_1.getCode())
-                .and(x -> x.eq(CusChatMessages::getToUserId, userId).or().eq(CusChatMessages::getFromUserId, userId))
-                .orderByDesc(CusChatMessages::getCreatedAt);
+        cusChatMessagesService.lambdaQuery().eq(CusChatMessages::getGroupType, GroupType.GT_1.getCode()).and(x -> x.eq(CusChatMessages::getToUserId, userId).or().eq(CusChatMessages::getFromUserId, userId)).orderByDesc(CusChatMessages::getCreatedAt);
         return Collections.emptyList();
     }
 }

+ 4 - 3
src/main/java/com/ydtech/modules/inv/controller/invAccountExcelController.java

@@ -61,7 +61,7 @@ public class invAccountExcelController {
     @PostMapping("deriveReport")
     @ApiOperation("导出支出报表")
     public HttpResult deriveReport(@RequestBody List<String> idList) throws IOException {
-        List<InvAccountOperate> insAccountExcels = invAccountOperateMapper.selectBatchIds(idList);
+        List<InvAccountOperate> insAccountExcels = invAccountOperateMapper.selectIds(idList);
         String uploadPath = this.uploadPath + "/excel/";
         Path path = Paths.get(uploadPath);
         if (!Files.exists(path)) {
@@ -94,6 +94,7 @@ public class invAccountExcelController {
         }
         invAccountExcel.setTransferFlag("1"); //默认新增时未转帐状态
         invAccountExcel.setExcelAccountOperateId(String.valueOf(new Date().getTime()));
+        invAccountExcel.setPayoutAmount("0");
 
         if (invAccountExcelService.save(invAccountExcel)) {
             return HttpResult.ok("", "新增成功");
@@ -179,10 +180,10 @@ public class invAccountExcelController {
 
     @ApiOperation("修改转账状态")
     @GetMapping("updateTransferFlag")
-    public HttpResult updateTransferFlag(@RequestParam("excelAccountOperateId") String excelAccountOperateId) {
+    public HttpResult updateTransferFlag(@RequestParam("excelAccountOperateId") String excelAccountOperateId,@RequestParam("payOutAmount") String payOutAmount) {
         if (excelAccountOperateId == null) {
             return HttpResult.error("id不能为空");
         }
-        return invAccountExcelService.updateTransferFlag(excelAccountOperateId);
+        return invAccountExcelService.updateTransferFlag(excelAccountOperateId,payOutAmount);
     }
 }

+ 2 - 0
src/main/java/com/ydtech/modules/inv/dao/InvAccountOperateMapper.java

@@ -21,6 +21,8 @@ public interface InvAccountOperateMapper extends BaseMapper<InvAccountOperate> {
 
     List<InvAccountOperate> selectOperateList(List<String> cardNumList);
 
+    List<InvAccountOperate> selectIds(List<String> idList);
+
     /**
      * 删除方法
      * @param invAccountIncoiceId

+ 9 - 0
src/main/java/com/ydtech/modules/inv/model/InvAccountExcel.java

@@ -125,6 +125,15 @@ public class InvAccountExcel implements Serializable {
     @NotBlank
     private String applyAmount;
 
+
+    /**
+     * 已转金额
+     */
+    @ApiModelProperty(value = "已转金额")
+    @NotBlank
+    private String payoutAmount;
+
+
     /**
      * 大写金额
      */

+ 6 - 2
src/main/java/com/ydtech/modules/inv/model/InvAccountOperate.java

@@ -39,9 +39,9 @@ public class InvAccountOperate implements Serializable {
     private String accountOperateId;
 
 
-    @ApiModelProperty(value = "创建时间")
+    @ApiModelProperty(value = "交易时间")
 //    @JsonFormat(pattern = "yyyy-MM-dd")
-    @ExcelProperty("支出时间")
+    @ExcelProperty("交易时间")
     @TableField(value = "create_time",fill = FieldFill.INSERT_UPDATE)
     private String createTime;
 
@@ -68,6 +68,7 @@ public class InvAccountOperate implements Serializable {
      * 申请时间
      */
     @ApiModelProperty(value = "申请时间")
+    @ExcelProperty("申请时间")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date applyTime;
 
@@ -197,6 +198,9 @@ public class InvAccountOperate implements Serializable {
     @TableField(exist = false)
     private int pageSize;
 
+    @TableField(exist = false)
+    private String label;
+
 
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;

+ 11 - 2
src/main/java/com/ydtech/modules/inv/model/excel/InvDisburseExcel.java

@@ -10,11 +10,20 @@ import java.util.Date;
 
 @Data
 public class InvDisburseExcel implements Serializable {
-    @ExcelProperty("转账日期")
-    @ApiModelProperty(value = "转账日期")
+    @ExcelProperty("转账时间")
+    @ApiModelProperty(value = "转账时间")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private String createTime;
 
+    @ExcelProperty("申请时间")
+    @ApiModelProperty(value = "申请时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date applyTime;
+
+    @ExcelProperty("成本分类")
+    @ApiModelProperty(value = "成本分类")
+    private String label;
+
     @ExcelProperty("费用类型")
     @ApiModelProperty(value = "资金用途")
     private String fundUse;

+ 9 - 0
src/main/java/com/ydtech/modules/inv/model/vo/InvAccountOperateVo.java

@@ -19,6 +19,10 @@ public class InvAccountOperateVo implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date createTime;
 
+    @ExcelProperty("申请时间")
+    @ApiModelProperty(value = "申请时间")
+    private Date applyTime;
+
     @ExcelProperty("费用类型")
     @ApiModelProperty(value = "资金用途")
     private String fundUse;
@@ -60,7 +64,12 @@ public class InvAccountOperateVo implements Serializable {
     @TableField(exist = false)
     private String createTimeEnd;
 
+    @TableField(exist = false)
+    private String label;
+
+    @TableField(exist = false)
     private int pageNum;
 
+    @TableField(exist = false)
     private int PageSize;
 }

+ 1 - 1
src/main/java/com/ydtech/modules/inv/service/InvAccountExcelService.java

@@ -20,6 +20,6 @@ public interface InvAccountExcelService extends IService<InvAccountExcel> {
 
     HttpResult selectDisburse(InvAccountOperateVo invAccountOperateVo);
 
-    HttpResult updateTransferFlag(String excelAccountOperateId);
+    HttpResult updateTransferFlag(String excelAccountOperateId,String payOutAmount);
 
 }

+ 26 - 9
src/main/java/com/ydtech/modules/inv/service/impl/InvAccountExcelServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.inv.service.impl;
 
 
+import com.alibaba.excel.EasyExcel;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -18,7 +19,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
+import java.io.*;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -115,26 +117,25 @@ public class InvAccountExcelServiceImpl extends ServiceImpl<InvAccountExcelMappe
      * @return
      */
     @Override
-    public HttpResult updateTransferFlag(String excelAccountOperateId) {
+    public HttpResult updateTransferFlag(String excelAccountOperateId, String payOutAmount) {
         InvAccountExcel invAccountExcel = insAccountExcelMapper.selectById(excelAccountOperateId);
         if (invAccountExcel == null) {
-            throw new RuntimeException("该记录不存在");
+            HttpResult.error("该记录不存在");
+        }
+        if ((payOutAmount + invAccountExcel.getPayoutAmount()).compareTo(invAccountExcel.getApplyAmount()) > 0) {
+           HttpResult.error("已转金额不能大于申请金额");
         }
 
         InvAccountCard outAccountCard = invAccountCardService.getById(invAccountExcel.getOutCardNum());
         InvAccountCard enterAccountCard = invAccountCardService.getById(invAccountExcel.getEnterCardNum());
         InvAccount outAccount = insAccountService.getById(outAccountCard.getAccountId());
         InvAccount enterAccount = insAccountService.getById(enterAccountCard.getAccountId());
-        //操作金额
-        String applyAmount = invAccountExcel.getApplyAmount();
 
-        //修改转账状态
-        invAccountExcel.setTransferFlag("0");
 
         //判断是转账给内部还是外部
         if (invAccountExcel.getOutFlag().equals("0")) {
             //如果转账失败就返回错误
-            List<InvAccountCard> insAccountCards = insideTransfer(outAccountCard, outAccount, enterAccountCard, enterAccount, applyAmount);
+            List<InvAccountCard> insAccountCards = insideTransfer(outAccountCard, outAccount, enterAccountCard, enterAccount, payOutAmount);
             if (insAccountCards.isEmpty()) {
                 throw new RuntimeException("转账失败");
             }
@@ -173,9 +174,17 @@ public class InvAccountExcelServiceImpl extends ServiceImpl<InvAccountExcelMappe
             outJsonUtil(outProfit, outAccount, outAccountCard,invAccountOperate.getAccountOperateId());
             entJsonUtil(entProfit, enterAccount, enterAccountCard, invAccountOperate1.getAccountOperateId());
 
+            if (invAccountExcel.getApplyAmount().equals(payOutAmount)) {
+                invAccountExcel.setTransferFlag("0");
+                invAccountExcel.setPayoutAmount(String.valueOf(Integer.parseInt(payOutAmount) + Integer.parseInt(invAccountExcel.getPayoutAmount())));
+            } else {
+                invAccountExcel.setTransferFlag("1");
+                invAccountExcel.setPayoutAmount(String.valueOf(Integer.parseInt(payOutAmount) + Integer.parseInt(invAccountExcel.getPayoutAmount())));
+            }
+
         } else {
             //内转外部转账
-            List<InvAccountCard> invAccounts = enterDeTransfer(outAccountCard, outAccount, enterAccountCard, enterAccount, applyAmount);
+            List<InvAccountCard> invAccounts = enterDeTransfer(outAccountCard, outAccount, enterAccountCard, enterAccount, payOutAmount);
             if (!invAccountCardService.saveBatch(invAccounts)) {
                 throw new RuntimeException("添加转账信息失败");
             }
@@ -185,6 +194,14 @@ public class InvAccountExcelServiceImpl extends ServiceImpl<InvAccountExcelMappe
             insAccountOperateService.save(invAccountOperate);
             JSONObject outProfit = invAccountExcel.getOutProfit();
             outJsonUtil(outProfit, outAccount, outAccountCard,invAccountOperate.getAccountOperateId());
+
+            if (invAccountExcel.getApplyAmount().equals(payOutAmount)) {
+                invAccountExcel.setTransferFlag("0");
+                invAccountExcel.setPayoutAmount(String.valueOf(Integer.parseInt(payOutAmount) + Integer.parseInt(invAccountExcel.getPayoutAmount())));
+            } else {
+                invAccountExcel.setTransferFlag("1");
+                invAccountExcel.setPayoutAmount(String.valueOf(Integer.parseInt(payOutAmount) + Integer.parseInt(invAccountExcel.getPayoutAmount())));
+            }
         }
         return HttpResult.ok("", insAccountExcelMapper.updateById(invAccountExcel));
     }

+ 16 - 15
src/main/java/com/ydtech/modules/inv/utils/EasyExcelUtils.java

@@ -22,10 +22,7 @@ import java.io.InputStream;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import static com.ydtech.modules.inv.utils.ZipMultiFile.zipFiles;
@@ -130,23 +127,25 @@ public class EasyExcelUtils {
     private static List<List<String>> operateHead(List<InvAccountProfit> invAccountProfitList) {
         List<List<String>> list = new ArrayList<>(7 + invAccountProfitList.size());
         List<String> head = ListUtils.newArrayList();
-        head.add("支出时间");
+        head.add("申请时间");
         List<String> head1 = ListUtils.newArrayList();
-        head1.add("部门");
+        head1.add("交易时间");
         List<String> head2 = ListUtils.newArrayList();
-        head2.add("支出方");
+        head2.add("部门");
         List<String> head3 = ListUtils.newArrayList();
-        head3.add("收入方");
+        head3.add("支出方");
         List<String> head4 = ListUtils.newArrayList();
-        head4.add("支出项目");
+        head4.add("收入方");
         List<String> head5 = ListUtils.newArrayList();
-        head5.add("分项");
+        head5.add("支出项目");
         List<String> head6 = ListUtils.newArrayList();
-        head6.add("支出金额");
+        head6.add("分项");
         List<String> head7 = ListUtils.newArrayList();
-        head7.add("转账类型");
+        head7.add("支出金额");
         List<String> head8 = ListUtils.newArrayList();
-        head8.add("备注");
+        head8.add("转账类型");
+        List<String> head9 = ListUtils.newArrayList();
+        head9.add("备注");
 
         list.add(0, head);
         list.add(1, head1);
@@ -157,6 +156,7 @@ public class EasyExcelUtils {
         list.add(6, head6);
         list.add(7, head7);
         list.add(8, head8);
+        list.add(9, head9);
         invAccountProfitList.forEach(invAccountProfit -> {
             List<String> head0 = ListUtils.newArrayList();
             head0.add(invAccountProfit.getProfitName());
@@ -171,6 +171,7 @@ public class EasyExcelUtils {
         List<List<Object>> list = ListUtils.newArrayList();
         invAccountOperates.forEach(invAccountOperate -> {
             List<Object> data = ListUtils.newArrayList();
+            data.add(invAccountOperate.getApplyTime());
             data.add(invAccountOperate.getCreateTime());
             data.add(invAccountOperate.getApplySector());
             data.add(invAccountOperate.getFundFlow().substring(0, invAccountOperate.getFundFlow().indexOf("→")));
@@ -242,7 +243,7 @@ public class EasyExcelUtils {
         // 加载模板
         InputStream inputStream = getClass().getResourceAsStream("/template/资金申请单模板.xlsx");
 
-        byte[] bytes = saveaIns(inputStream);
+        byte[] bytes = saveIns(inputStream);
 
         if (inputStream != null) {
             inputStream.close();
@@ -334,7 +335,7 @@ public class EasyExcelUtils {
 
 
     //保存流对象(输入流在第二次使用的时候会失效)
-    public byte[] saveaIns(InputStream ins){
+    public byte[] saveIns(InputStream ins){
         byte[] buf = null;
         try {
             if(ins!=null){

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

@@ -3,12 +3,14 @@ package com.ydtech.modules.order.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.SysUser;
 import com.ydtech.modules.admin.model.dto.*;
 import com.ydtech.modules.admin.model.report.company.*;
 import com.ydtech.modules.admin.model.report.opetationData.BusinessDataDto;
 import com.ydtech.modules.admin.model.report.opetationData.BusinessDataQueryDto;
 import com.ydtech.modules.admin.model.report.opetationData.QuotationCountDataDto;
 import com.ydtech.modules.admin.model.report.opetationData.QuotationCountQueryDto;
+import com.ydtech.modules.admin.model.vo.AgencyUserInsAreaVo;
 import com.ydtech.modules.admin.model.vo.OrdersDataVo;
 import com.ydtech.modules.admin.model.vo.SubOrder;
 import com.ydtech.modules.admin.model.vo.TaskStatisticsVo;
@@ -297,6 +299,15 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
      * @date: 2024/9/9
      **/
     List<InsuranceCompanyExcel> insuranceCompanyExcel(@Param("taskStatisticsVo") TaskStatisticsVo taskStatisticsVo);
+
+    IPage<AgencyUserInsAreaVo> queryAgencyUserInsAreaPage(Page page, @Param("dto")AgencyUserInsAreaDto agencyUserInsAreaDto);
+
+    /** 通过 车牌号车架号获取小定单已承保数据
+     *
+     * @param ordersDataDto
+     * @return
+     */
+    OrdersDataDto getSumBigOrderCount(@Param("vo") OrdersDataDto ordersDataDto);
 }
 
 

+ 2 - 1
src/main/java/com/ydtech/modules/order/entity/BasePageResult.java

@@ -4,12 +4,13 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.io.Serializable;
 import java.util.List;
 
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
-public class BasePageResult<T> {
+public class BasePageResult<T> implements Serializable {
     /**
      * 当前页码
      */

+ 4 - 0
src/main/java/com/ydtech/modules/protocol/controller/PtlAgreementController.java

@@ -79,9 +79,13 @@ public class PtlAgreementController extends BaseController {
         return ptlAgreementService.listAgreement(ptlAgreementPageVo);
     }
 
+
     @PostMapping("/listInternal")
     @ApiOperation("根据保险公司查询协议列表")
     public HttpResult<List<PtlAgreement>> listInternal(@RequestBody PtlAgreementPageVo ptlAgreementPageVo) {
+        ptlAgreementPageVo.setIsExternal(0);
+        ptlAgreementPageVo.setAuditStatus(0);
+        ptlAgreementPageVo.setValidStatus("1");
         return ptlAgreementService.listAgreementInternal(ptlAgreementPageVo);
     }
 

+ 3 - 1
src/main/resources/application-pre.yml

@@ -111,7 +111,9 @@ resp_json: '{"status":"Z00001","msg":"success","data":{"invoiceType":[],"payWayL
 dx:
   api:
     findDataUserIdUrl: http://172.24.144.220:8008/dxData/listByUserId
-    findDataUserIdAndDayUrl: http://172.24.144.220:8008/dxData/listByUserIdByDay
+    findDataUserIdAndDayUrl: http://172.24.144.220:8088/dxData/listByUserIdByDay
+    findUserById: http://172.24.144.220:8008/uuser/findByUserId
+    findUserListByPage: http://172.24.144.220:8008/uuser/queryUserPage
 
 spring:
   datasource:

+ 2 - 1
src/main/resources/application-prod.yml

@@ -112,7 +112,8 @@ dx:
   api:
     findDataUserIdUrl: http://172.24.144.220:8008/dxData/listByUserId
     findDataUserIdAndDayUrl: http://172.24.144.220:8008/dxData/listByUserIdByDay
-
+    findUserById: http://172.24.144.220:8008/uuser/findByUserId
+    findUserListByPage: http://172.24.144.220:8008/uuser/queryUserPage
 spring:
   datasource:
     dynamic:

+ 2 - 1
src/main/resources/application-test.yml

@@ -126,7 +126,8 @@ dx:
   api:
     findDataUserIdUrl: http://172.24.144.218:8008/dxData/listByUserId
     findDataUserIdAndDayUrl: http://172.24.144.218:8008/dxData/listByUserIdByDay
-
+    findUserById: http://172.24.144.218:8008/uuser/findByUserId
+    findUserListByPage: http://172.24.144.218:8008/uuser/queryUserPage
 spring:
   datasource:
     dynamic:

+ 21 - 0
src/main/resources/mapper/modules/admin/SysAgencyLeaderMapper.xml

@@ -69,5 +69,26 @@
         </where>
     </select>
 
+    <select id="getBigDecimalNum" resultType="java.util.HashMap">
+        SELECT
+        sum(IFNULL(iac.jqpremium,0) + IFNULL(iac.sypremium,0) + IFNULL(iac.jypremium,0))  as bigDecimal
+        FROM
+        ins_area_company iac
+        left join ins_orders io on iac.orderno = io.orderno
+        <where>
+            iac.orderstatus ='3'
+            <if test="deptId  != null  and  deptId !=''">
+                and io.deptid like CONCAT( #{deptId}, '%' )
+            </if>
+            <if test="createTime  != null  and  createTime !=''">
+                and io.createtime >= #{createTime}
+            </if>
+            <if test="beginTime !=null and beginTime != '' and endTime !=null and endTime != ''">
+                AND  io.createtime  BETWEEN  #{beginTime}  AND  #{endTime}
+            </if>
+        </where>
+
+    </select>
+
 </mapper>
 

+ 10 - 11
src/main/resources/mapper/modules/admin/SysDeptInternalAgentMapper.xml

@@ -38,21 +38,20 @@
     </select>
 
     <select id="queryGroupListByDeptId" resultType="com.ydtech.modules.admin.model.dto.GroupDto">
-        select
-            p.id AS deptId,
-            CONCAT( dept.NAME, "-", ppp.NAME, "-", p.NAME ) AS deptName
-       from
-           sys_dept_internal_agent p
-           LEFT JOIN sys_dept_internal_agent pp ON p.parent_id = pp.id
-           LEFT JOIN sys_dept_internal_agent ppp ON pp.parent_id = ppp.id
-           LEFT JOIN sys_dept dept ON ppp.bind_dept_id = dept.id
+        SELECT
+            t4.id AS deptId,
+            t4.NAME  AS deptName
+        FROM
+        sys_dept_internal_agent t3
+        LEFT JOIN sys_dept_internal_agent t4 ON t4.parent_id = t3.id
+        LEFT JOIN  sys_dept  dept  on t3.bind_dept_id = dept.id
         <where>
-             dept.id  is not null
+            t3.bind_dept_id  is not null
             <if test="comtype != null and comtype != ''">
-                AND p.comtype = #{comtype}
+                AND t4.comtype = #{comtype}
             </if>
             <if test="deptId != null and deptId != ''">
-                AND dept.id  like concat(#{deptId},'%')
+                AND t3.bind_dept_id  like concat(#{deptId},'%')
             </if>
         </where>
     </select>

+ 33 - 28
src/main/resources/mapper/modules/admin/SysTelemarketingWechatDataMapper.xml

@@ -24,21 +24,24 @@
             t1.mobile AS mobile,
             t2.id AS deptId,
             t2.`name` AS deptName,
-            t3.NAME AS groupName,
-            t3.id AS groupId,
+            t5.NAME AS groupName,
+            t5.id AS groupId,
             zgd.zgd_user_id AS zgdUserId,
             zzb.zzb_user_id AS zzdUserId,
-            dx.dial_username AS  dxUserId
+            dx.dial_username AS dxUserId
         FROM
-        sys_user t1
+            sys_user t1
         LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
-        LEFT JOIN sys_user_is_dial  dx  ON t1.id =dx.user_id
+        LEFT JOIN sys_user_is_dial dx ON t1.id = dx.user_id
         LEFT JOIN sys_user_link_dept_internal_agent t4 ON t4.user_id = t1.id
-        LEFT JOIN sys_dept_internal_agent t3 ON t2.id = t3.bind_dept_id
         LEFT JOIN sys_user_link_zgd_user_id zgd ON t2.id = zgd.user_id
         LEFT JOIN sys_user_link_zzb_user_id zzb ON t2.id = zzb.user_id
+        LEFT JOIN
+        (select t3.bind_dept_id,t4.id,t4.name from  sys_dept_internal_agent t3   left join sys_dept_internal_agent t4  on t4.parent_id =t3.id ) t5
+        ON t2.parent_id = t5.bind_dept_id
         WHERE
-        t1.`status` = 1
+         t1.`status` = 1
+          and  t2.management_source = 3
         <if test='vo !=null  '>
             <if test='vo.userName !=null and vo.userName!="" '>
                 and t1.name like CONCAT('%', #{vo.userName}, '%')
@@ -53,7 +56,7 @@
                 and t1.mobile = #{vo.mobile}
             </if>
             <if test='vo.groupId !=null and vo.groupId!=""  '>
-                and t3.id like CONCAT('', #{vo.groupId}, '%')
+                and t5.id like CONCAT('', #{vo.groupId}, '%')
             </if>
         </if>
         order by t1.id
@@ -93,26 +96,28 @@
 
     <select id="findDataByUserId" resultType="com.ydtech.modules.admin.model.dto.DxReportDataDto">
         SELECT
-        t1.id AS userId,
-        t1.NAME AS userName,
-        t1.mobile AS mobile,
-        t2.id AS deptId,
-        t2.`name` AS deptName,
-        t3.NAME AS groupName,
-        t3.id AS groupId,
-        zgd.zgd_user_id AS zgdUserId,
-        zzb.zzb_user_id AS zzdUserId,
-        dx.dial_username AS  dxUserId
+            t1.id AS userId,
+            t1.NAME AS userName,
+            t1.mobile AS mobile,
+            t2.id AS deptId,
+            t2.`name` AS deptName,
+            t5.NAME AS groupName,
+            t5.id AS groupId,
+            zgd.zgd_user_id AS zgdUserId,
+            zzb.zzb_user_id AS zzdUserId,
+            dx.dial_username AS dxUserId
         FROM
-        sys_user t1
-        LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
-        LEFT JOIN sys_user_is_dial  dx  ON t1.id =dx.user_id
-        LEFT JOIN sys_user_link_dept_internal_agent t4 ON t4.user_id = t1.id
-        LEFT JOIN sys_dept_internal_agent t3 ON t2.id = t3.bind_dept_id
-        LEFT JOIN sys_user_link_zgd_user_id zgd ON t2.id = zgd.user_id
-        LEFT JOIN sys_user_link_zzb_user_id zzb ON t2.id = zzb.user_id
-        WHERE
-        t1.`status` = 1
-        and t1.id = #{userId}
+            sys_user t1
+                LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
+                LEFT JOIN sys_user_is_dial dx ON t1.id = dx.user_id
+                LEFT JOIN sys_user_link_dept_internal_agent t4 ON t4.user_id = t1.id
+                LEFT JOIN sys_user_link_zgd_user_id zgd ON t2.id = zgd.user_id
+                LEFT JOIN sys_user_link_zzb_user_id zzb ON t2.id = zzb.user_id
+                LEFT JOIN
+            (select t3.bind_dept_id,t4.id,t4.name from  sys_dept_internal_agent t3   left join sys_dept_internal_agent t4  on t4.parent_id =t3.id ) t5
+            ON t2.parent_id = t5.bind_dept_id
+         WHERE
+            t1.`status` = 1
+           and t1.id = #{userId}
     </select>
 </mapper>

+ 0 - 1
src/main/resources/mapper/modules/admin/SysUserLinkDeptInternalAgentMapper.xml

@@ -69,7 +69,6 @@
         LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
         WHERE
         t1.`status` = 1
-        AND t1.id NOT LIKE '%M%'
         <if test='user !=null  '>
             <if test='user.name !=null and user.name!="" '>
                 and t1.name like CONCAT('%', #{user.name}, '%')

+ 49 - 0
src/main/resources/mapper/modules/admin/SysUserLinkDxUserIdMapper.xml

@@ -0,0 +1,49 @@
+<?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.SysUserLinkDxUserIdMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.po.SysUserLinkDxUserId">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="userId" column="user_id" jdbcType="VARCHAR"/>
+            <result property="dxUserId" column="dx_user_id" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,user_id,dx_user_id,
+        create_time,create_user_id
+    </sql>
+    <select id="queryPage" resultType="com.ydtech.modules.admin.model.dto.SysUserLinkUserDto">
+        SELECT
+            su.id as userId,
+            su.NAME as userName,
+            su.dept_id as  deptId,
+            dept.NAME AS deptName,
+            dx.dx_user_id AS linkUserId,
+            su.mobile  as  mobile
+        FROM
+            sys_user su
+                LEFT JOIN sys_dept dept ON su.dept_id = dept.id
+                LEFT JOIN sys_user_link_dx_user_id  dx ON dx.user_id = su.id
+        <where>
+            su.`status`=1
+            and  dept.management_source = 3
+            <if test="vo.userName != null and vo.userName != ''">
+                AND su.NAME like CONCAT('%', #{vo.userName}, '%')
+            </if>
+            <if test="vo.mobile != null and vo.mobile != ''">
+                AND su.mobile  = #{vo.mobile }
+            </if>
+            <if test="vo.userId != null and vo.userId != ''">
+                AND su.id = #{vo.userId}
+            </if>
+            <if test="vo.deptId != null and vo.deptId != ''">
+                AND su.dept_id like CONCAT('%', #{vo.deptId}, '%')
+            </if>
+        </where>
+          order by su.id
+    </select>
+</mapper>

+ 1 - 0
src/main/resources/mapper/modules/admin/SysUserLinkZgdUserIdMapper.xml

@@ -30,6 +30,7 @@
                 LEFT JOIN sys_user_link_zgd_user_id  zgd ON zgd.user_id = su.id
         <where>
             su.`status`=1
+            and  dept.management_source = 3
             <if test="vo.userName != null and vo.userName != ''">
                 AND su.NAME like CONCAT('%', #{vo.userName}, '%')
             </if>

+ 1 - 0
src/main/resources/mapper/modules/admin/SysUserLinkZzbUserIdMapper.xml

@@ -30,6 +30,7 @@
         LEFT JOIN sys_user_link_zzb_user_id  zzb ON zzb.user_id = su.id
         <where>
             su.`status`=1
+            and  dept.management_source = 3
             <if test="vo.userName != null and vo.userName != ''">
                 AND su.NAME like CONCAT('%', #{vo.userName}, '%')
             </if>

+ 68 - 0
src/main/resources/mapper/modules/admin/TaskStatisticsMapper.xml

@@ -262,8 +262,76 @@
     </select>
 
     <select id="channelAgentDetails" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
+        SELECT
+        iac.inscompany,
+        COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) AS qutationCount,
+        COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
+        COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
+        COUNT( CASE WHEN iac.orderstatus = 4 THEN 1 END ) AS underwritingReturn,
+        COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) / COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) AS "passingRate",
+        COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) / COUNT( iac.orderstatus ) AS "closeRate",
+        (COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) + COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ))/ COUNT(
+        iac.orderstatus ) AS "contributionRate",
+        COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) / COUNT( iac.orderstatus ) AS "quotationRate",
+        COUNT(CASE WHEN io.order_source = 0 and iac.orderstatus = 0 THEN 1 END) as "pcOrderSource",
+        COUNT(CASE WHEN io.order_source = 1 and iac.orderstatus = 0 THEN 1 END) as "appOrderSource",
+        COUNT( CASE WHEN iac.orderstatus = 1 THEN 1 END ) AS "auditOrder"
+        FROM
+        ins_area_company iac
+        LEFT JOIN ins_orders io ON io.orderno = iac.orderno
+        LEFT JOIN sys_dept sd ON sd.id = io.deptid
+        <where>
+            1=1
+            <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
+                and io.deptid like "${taskStatisticsVo.provinceId}%"
+            </if>
+            <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
+                and io.deptid like "${taskStatisticsVo.cityId}%"
+            </if>
+            <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
+                and io.deptid like "${taskStatisticsVo.countyId}%"
+            </if>
+            <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
+                and io.deptid like "${taskStatisticsVo.houseId}%"
+            </if>
+            <if test="taskStatisticsVo.userId != null and taskStatisticsVo.userId != ''">
+                and io.userid =#{taskStatisticsVo.userId}
+            </if>
 
+            <if test="taskStatisticsVo.managementSource != null and taskStatisticsVo.managementSource != ''">
+                and sd.management_source =#{taskStatisticsVo.managementSource}
+            </if>
 
+            <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
+                AND DATE_FORMAT( io.createtime, '%Y-%m-%d') BETWEEN #{taskStatisticsVo.createtimeStart} AND
+                #{taskStatisticsVo.createtimeEnd}
+            </if>
+            <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
+                AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate},
+                '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
+            </if>
+            <if test="taskStatisticsVo.days !=null  and taskStatisticsVo.days !='' ">
+                and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
+            </if>
+
+            <if test="taskStatisticsVo.days !=null  and taskStatisticsVo.days !='' ">
+                <choose>
+                    <when test="taskStatisticsVo.days =='1'">
+                        and io.createtime >= DATE_SUB(NOW(), INTERVAL 1 DAY)
+                    </when>
+
+                    <when test="taskStatisticsVo.days =='7'">
+                        and io.createtime >= DATE_SUB(NOW(), INTERVAL 7 DAY)
+                    </when>
+
+                    <when test="taskStatisticsVo.days =='30'">
+                        and io.createtime >= DATE_SUB(NOW(), INTERVAL 30 DAY)
+                    </when>
+                </choose>
+            </if>
+        </where>
+        GROUP BY
+        iac.inscompany
     </select>
 
 

+ 11 - 2
src/main/resources/mapper/modules/inv/InvAccountExcelMapper.xml

@@ -39,7 +39,7 @@
         excel_account_operate_id,company,applicant,
         apply_time,apply_sector,collection_message,
         fund_flow,fund_use,
-        apply_amount,big_apply_amount,uplode_path,
+        apply_amount,payout_amount,big_apply_amount,uplode_path,
         update_by,update_time,create_by,
         create_time,enter_card_num,out_card_num,
         del_flag,out_flag,out_account_quality,transfer_flag,pay_method,out_profit,ent_profit,fund_fen,remark
@@ -129,6 +129,7 @@
         <result property="applyAmount" column="apply_amount" jdbcType="VARCHAR"/>
         <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
         <result property="remark" column="remark" jdbcType="VARCHAR"/>
+        <result property="label" column="label" jdbcType="VARCHAR"/>
     </resultMap>
 
 
@@ -142,10 +143,15 @@
             a.apply_sector,
             a.company,
             a.collection_message,
-            a.create_time
+            a.create_time,
+            c.label as label
+
         from inv_account_operate a
             LEFT JOIN inv_account_expenses b ON a.fund_fen = b.category
+            Left join sys_dict c on b.expenditure_details = c.value
         WHERE
+            c.itemname = 'cost_type'
+        AND
             a.fund_use != '往来款'
 	    AND collection_message LIKE '外部用户%'
         and a.revenue_outlay = '1'
@@ -171,6 +177,9 @@
         <if test="inAccountOperateVo.applyAmount!= null and inAccountOperateVo.applyAmount!= ''">
             and a.apply_amount = #{inAccountOperateVo.applyAmount}
         </if>
+        <if test="inAccountOperateVo.label!= null and inAccountOperateVo.label!= ''">
+            and c.label = #{inAccountOperateVo.label}
+        </if>
         order by a.create_time desc
     </select>
 

+ 42 - 0
src/main/resources/mapper/modules/inv/InvAccountOperateMapper.xml

@@ -111,6 +111,9 @@
         <if test="insAccountOperate.createTime != null and insAccountOperate.createTime != ''">
             and create_time like concat('%',#{insAccountOperate.createTime},'%')
         </if>
+        <if test="insAccountOperate.applyTime != null and insAccountOperate.applyTime != ''">
+            and applyTime like concat('%',#{insAccountOperate.applyTime},'%')
+        </if>
         order by create_time
         desc
     </select>
@@ -132,4 +135,43 @@
         </foreach>
         )
     </select>
+
+    <resultMap id="InvAccountOperateVoResultMap" type="com.ydtech.modules.inv.model.InvAccountOperate">
+        <id property="accountOperateId" column="account_operate_id" jdbcType="VARCHAR"/>
+        <result property="company" column="company" jdbcType="VARCHAR"/>
+        <result property="applySector" column="apply_sector" jdbcType="VARCHAR"/>
+        <result property="collectionMessage" column="collection_message" jdbcType="VARCHAR"/>
+        <result property="fundUse" column="fund_use" jdbcType="VARCHAR"/>
+        <result property="applyAmount" column="apply_amount" jdbcType="VARCHAR"/>
+        <result property="createTime" column="create_time" jdbcType="VARCHAR"/>
+        <result property="applyTime"  column="apply_time" jdbcType="VARCHAR"/>
+        <result property="remark" column="remark" jdbcType="VARCHAR"/>
+        <result property="label" column="label" jdbcType="VARCHAR"/>
+    </resultMap>
+
+
+    <select id="selectIds" resultMap="InvAccountOperateVoResultMap">
+        SELECT
+        a.create_time,
+        a.apply_time,
+        a.fund_use,
+        a.remark,
+        a.apply_amount,
+        a.apply_sector,
+        a.company,
+        a.collection_message,
+        c.label as label
+
+        from inv_account_operate a
+        LEFT JOIN inv_account_expenses b ON a.fund_fen = b.category
+        Left join sys_dict c on b.expenditure_details = c.value
+        WHERE
+        c.itemname = 'cost_type'
+        AND
+        a.account_operate_id in
+        <foreach item="item" index="index" collection="list"
+                 open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
 </mapper>

+ 94 - 33
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -887,6 +887,9 @@
         <if test="vo.userId  != null  and vo.userId !=''">
             AND  io.userid  =#{vo.userId}
         </if>
+        <if test="vo.deptId  != null  and vo.deptId !=''">
+            AND  io.deptId  like concat('%',#{vo.leaderName},'%')
+        </if>
         GROUP BY
         agree.insurance_company,
         iac.company_id,
@@ -946,6 +949,9 @@
         <if test="vo.userId  != null  and vo.userId !=''">
             AND  io.userid  =#{vo.userId}
         </if>
+        <if test="vo.deptId  != null  and vo.deptId !=''">
+            AND  io.deptId  like concat('%',#{vo.leaderName},'%')
+        </if>
         GROUP BY
         agree.partner_companies_id
         ) a
@@ -983,7 +989,10 @@
     </select>
 
     <select id="queryPageTaskStatistics"  resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
-        select a.*,(select name  from sys_user  where id =a.userId) as "userName"
+        select a.*, su.name  as "userName",
+        inf.url  as "logo",
+        sui.sex as "sex",
+        su.leader_name as "leaderName"
         from (
         SELECT
         sd.NAME AS "deptName",
@@ -1054,6 +1063,10 @@
         sd.NAME,
         sd.id
         ) a
+        left  join  sys_user su  on su.id =a.userId
+        LEFT JOIN  ins_upload_files   inf on  su.head_sculpture  =inf.id
+        LEFT JOIN sys_user_info  sui  on  sui .id =su.id
+
     </select>
     <select id="queryPageTaskStatisticsTotal"  resultType="java.lang.Long">
         select count(0) from (
@@ -1138,19 +1151,23 @@
         ins_area_company iac
         LEFT JOIN ins_fee_audit ifa ON ifa.ins_order_no = iac.id
         LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
+        LEFT JOIN ins_orders io ON io.orderno = iac.orderno
         <where>
             pa.insurance_company_id IS NOT NULL
             <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
-                and io.deptid like "${taskStatisticsVo.provinceId}%"
+                and io.deptid like concat('%', #{taskStatisticsVo.provinceId}, '%')
+
             </if>
             <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
-                and io.deptid like "${taskStatisticsVo.cityId}%"
+                and io.deptid like concat('%', #{taskStatisticsVo.cityId}, '%')
+
             </if>
             <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
-                and io.deptid like "${taskStatisticsVo.countyId}%"
+                and io.deptid like concat('%', #{taskStatisticsVo.countyId}, '%')
+
             </if>
             <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
-                and io.deptid like "${taskStatisticsVo.houseId}%"
+                and io.deptid like concat('%', #{taskStatisticsVo.houseId}, '%')
             </if>
             <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
                 AND   DATE_FORMAT( io.createtime, '%Y-%m-%d')   BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
@@ -1186,19 +1203,23 @@
         ins_area_company iac
         LEFT JOIN ins_fee_audit ifa ON ifa.ins_order_no = iac.id
         LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
+        LEFT JOIN ins_orders io ON io.orderno = iac.orderno
         <where>
             pa.insurance_company_id IS NOT NULL
             <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
-                and io.deptid like "${taskStatisticsVo.provinceId}%"
+                and io.deptid like concat('%', #{taskStatisticsVo.provinceId}, '%')
+
             </if>
             <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
-                and io.deptid like "${taskStatisticsVo.cityId}%"
+                and io.deptid like concat('%', #{taskStatisticsVo.cityId}, '%')
+
             </if>
             <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
-                and io.deptid like "${taskStatisticsVo.countyId}%"
+                and io.deptid like concat('%', #{taskStatisticsVo.countyId}, '%')
+
             </if>
             <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
-                and io.deptid like "${taskStatisticsVo.houseId}%"
+                and io.deptid like concat('%', #{taskStatisticsVo.houseId}, '%')
             </if>
             <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
                 AND   io.createtime   BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
@@ -1318,6 +1339,10 @@
                 AND   DATE_FORMAT( iac.createtime, '%Y-%m-%d')   BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d')  AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
             </if>
 
+            <if test="taskStatisticsVo.userId !=null  and  taskStatisticsVo.userId!='' ">
+                and io.userid =#{taskStatisticsVo.userId}
+            </if>
+
             <if test="taskStatisticsVo.days !=null  and taskStatisticsVo.days !='' ">
                 and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
             </if>
@@ -1723,31 +1748,14 @@
     <select id="querOrdersDataPage"  resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">
         SELECT
         count( 0 ) AS "orderNumber",
-        SUM( CASE WHEN orderstatus = '3' THEN 1 ELSE 0 END ) / count( 0 )  AS "closeRate",
         b.licenseno as "licenseno",
-        b.frameno as "frameno",
-        b.inscompany as "namesimple"
+        b.frameno as "frameno"
         FROM
         (
         SELECT
         io.orderstatus AS orderstatus,
         io.frameno AS frameno,
-        ifnull(io.licenseno, '') AS licenseno,
-        ifnull(
-        (
-        SELECT
-        ifnull( inscompany, '' )
-        FROM
-        ins_area_company
-        WHERE
-        orderno = io.orderno
-        AND io.orderstatus = 3
-        AND orderstatus = 3
-        ORDER BY
-        createtime DESC
-        LIMIT 1
-        ), ''
-        ) AS inscompany
+        ifnull(io.licenseno, '') AS licenseno
         FROM
         ins_orders io
         LEFT JOIN sys_user  su  on io.userid=su.id
@@ -1774,7 +1782,7 @@
             </if>
 
             <if test="vo.frameno  != null  and  vo.frameno!=''  ">
-                AND su.frameno =#{vo.frameno}
+                AND io.frameno =#{vo.frameno}
             </if>
             <if test="vo.deptId  != null  and  vo.deptId!=''  ">
                 and io.deptid like concat('%', #{vo.deptId}, '%')
@@ -1783,9 +1791,7 @@
         ) b
         GROUP  BY
         b.licenseno,
-        b.frameno,
-        b.inscompany,
-        b.orderstatus
+        b.frameno
     </select>
 
     <select id="getOrdersGroupByLicenseno"  resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">
@@ -1887,7 +1893,7 @@
             </if>
 
             <if test="vo.frameno  != null  and  vo.frameno!=''  ">
-                AND su.frameno =#{vo.frameno}
+                AND io.frameno =#{vo.frameno}
             </if>
             <if test="vo.deptId  != null  and  vo.deptId!=''  ">
                 and io.deptid like concat('%', #{vo.deptId}, '%')
@@ -2112,4 +2118,59 @@
 
 
     </select>
+
+
+    <select id="getSumBigOrderCount" resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">
+        select count(0) as "orderNumber",
+        GROUP_CONCAT(inscompany ORDER BY inscompany SEPARATOR ',') as "namesimple"
+        from ins_area_company iac
+        left join ins_orders io on io.orderno = iac.orderno
+        <where>
+            1=1
+            and  iac.orderstatus ='3'
+            and io.orderstatus ='3'
+            <if test="vo.licenseno !=null  and vo.licenseno!=''">
+                AND io.licenseno =#{vo.licenseno}
+            </if>
+            <if test="vo.frameno !=null  and vo.frameno!=''">
+                AND io.frameno =#{vo.frameno}
+            </if>
+            <if test="vo.beginDate  != null  and  vo.beginDate!=''  and vo.endDate  != null  and  vo.endDate!=''">
+                AND io.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
+            </if>
+        </where>
+    </select>
+    <select id="queryAgencyUserInsAreaPage" resultType="com.ydtech.modules.admin.model.vo.AgencyUserInsAreaVo">
+        select
+            io.userid as userId,
+            io.username as userName,
+            io.licenseno as licenseno,
+            iac.id as companyId,
+            iac.jqpremium as jqpremium,
+            iac.sypremium as sypremium,
+            iac.jypremium as jypremium,
+            iac.createtime as createtime,
+            iac.orderstatus as orderstatus
+
+        from ins_area_company iac
+        left join ins_orders io on io.orderno = iac.orderno
+        <where>
+            iac.orderstatus=3
+            <if test="dto.userId !=null  and  dto.userId !=''">
+                and io.userid = #{dto.userId}
+            </if>
+            <if test="dto.deptId !=null  and  dto.deptId !=''">
+                and io.deptid = #{dto.deptId}
+            </if>
+            <if test="dto.startTime !=null  and  dto.startTime !=''">
+                and io.createtime >= #{dto.startTime}
+            </if>
+
+        </where>
+        ORDER BY iac.createtime
+
+    </select>
+
+
+
 </mapper>