Procházet zdrojové kódy

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

Qchen před 2 roky
rodič
revize
9c0ac964c6
22 změnil soubory, kde provedl 1012 přidání a 32 odebrání
  1. 96 0
      src/main/java/com/ydtech/modules/admin/controller/OperationDataReportConroller.java
  2. 9 0
      src/main/java/com/ydtech/modules/admin/dao/SysUserLinkDeptInternalAgentMapper.java
  3. 44 14
      src/main/java/com/ydtech/modules/admin/model/report/opetationData/BusinessDataDto.java
  4. 58 0
      src/main/java/com/ydtech/modules/admin/model/report/opetationData/BusinessDataQueryDto.java
  5. 65 0
      src/main/java/com/ydtech/modules/admin/model/report/opetationData/OperationsPersonnelDataDto.java
  6. 58 0
      src/main/java/com/ydtech/modules/admin/model/report/opetationData/OperationsPersonnelQueryDto.java
  7. 106 0
      src/main/java/com/ydtech/modules/admin/model/report/opetationData/QuotationCountDataDto.java
  8. 58 0
      src/main/java/com/ydtech/modules/admin/model/report/opetationData/QuotationCountQueryDto.java
  9. 68 0
      src/main/java/com/ydtech/modules/admin/model/report/opetationData/TelemarketingDataDto.java
  10. 58 0
      src/main/java/com/ydtech/modules/admin/model/report/opetationData/TelemarketingDataQueryDto.java
  11. 46 0
      src/main/java/com/ydtech/modules/admin/service/OperationDataReportService.java
  12. 7 1
      src/main/java/com/ydtech/modules/admin/service/SysUserLinkDeptInternalAgentService.java
  13. 195 0
      src/main/java/com/ydtech/modules/admin/service/impl/OperationDataReportServiceImpl.java
  14. 15 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkDeptInternalAgentServiceImpl.java
  15. 13 8
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java
  16. 25 0
      src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java
  17. 2 0
      src/main/java/com/ydtech/modules/order/entity/vo/OrderQueryVo.java
  18. 2 3
      src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java
  19. 5 5
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java
  20. 1 1
      src/main/resources/application-prod.yml
  21. 13 0
      src/main/resources/mapper/modules/admin/SysUserLinkDeptInternalAgentMapper.xml
  22. 68 0
      src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

+ 96 - 0
src/main/java/com/ydtech/modules/admin/controller/OperationDataReportConroller.java

@@ -0,0 +1,96 @@
+package com.ydtech.modules.admin.controller;
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.report.opetationData.*;
+import com.ydtech.modules.admin.service.OperationDataReportService;
+import com.ydtech.modules.order.entity.BasePageResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/1 11:31
+ *  @Description:  控制台  运营数据统计
+ */
+@Api(tags = "运营数据统计")
+@RequestMapping("/operationDataReport")
+@RestController
+public class OperationDataReportConroller {
+
+    @Autowired
+    private OperationDataReportService operationDataReportService;
+
+   /**
+    *  @version
+    *  @author: hxl
+    *  @Date: 2024/7/1 11:37
+    *  @Description: 查询业务数据
+    */
+    @PostMapping("queryBusinessDataPage")
+    @ApiOperation(value = "查询运营数据")
+    public HttpResult<BasePageResult<BusinessDataDto>> queryBusinessDataPage(@RequestBody BusinessDataQueryDto businessDataQueryDto) {
+        try{
+            BasePageResult<BusinessDataDto> result = operationDataReportService.queryBusinessDataPage(businessDataQueryDto);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 11:17
+     *  @Description: 查询报价次数数据
+     */
+    @PostMapping("queryQuotationCountDataPage")
+    @ApiOperation(value = "查询报价次数数据")
+    public HttpResult<BasePageResult<QuotationCountDataDto>> queryQuotationCountDataPage(@RequestBody QuotationCountQueryDto quotationCountQueryDto) {
+        try{
+            BasePageResult<QuotationCountDataDto> result = operationDataReportService.queryQuotationCountDataPage(quotationCountQueryDto);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 11:17
+     *  @Description: 查询运营人员数据
+     */
+    @PostMapping("queryOperationsPersonnelDataPage")
+    @ApiOperation(value = "查询运营人员数据")
+    public HttpResult<BasePageResult<OperationsPersonnelDataDto>> queryOperationsPersonnelDataPage(@RequestBody QuotationCountQueryDto quotationCountQueryDto) {
+        try{
+            BasePageResult<OperationsPersonnelDataDto> result = operationDataReportService.queryOperationsPersonnelDataPage(quotationCountQueryDto);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 11:17
+     *  @Description: 查询电销数据
+     */
+    @PostMapping("queryTelemarketingDataDtoCountDataPage")
+    @ApiOperation(value = "查询运营人员数据")
+    public HttpResult<BasePageResult<TelemarketingDataDto>> queryTelemarketingDataDtoCountDataPage(@RequestBody TelemarketingDataQueryDto telemarketingDataQueryDto) {
+        try{
+            BasePageResult<TelemarketingDataDto> result = operationDataReportService.queryTelemarketingDataDtoCountDataPage(telemarketingDataQueryDto);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+
+}

+ 9 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserLinkDeptInternalAgentMapper.java

@@ -10,6 +10,8 @@ import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
 import com.ydtech.modules.admin.model.vo.SysUserLinkDeptInternalAgentQueryVo;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
 * @author Administrator
 * @description 针对表【sys_user_link_dept_internal_agent(后线人员配置内部机构表)】的数据库操作Mapper
@@ -40,6 +42,13 @@ public interface SysUserLinkDeptInternalAgentMapper extends BaseMapper<SysUserLi
      *  @Description: 查询后线人员+回显
      */
     Page<SysUserBaseVO> findUserListByDeptPage(@Param("page") Page<SysUserBaseVO> page, @Param("user") SysUserDto sysUserDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 9:31
+     *  @Description:  通过机构ids模糊查询下级的用户
+     */
+    List<String> getUserIdListByDeptPrentIds(@Param("parentIds") String parentIds);
 }
 
 

+ 44 - 14
src/main/java/com/ydtech/modules/admin/model/report/opetationData/BusinessDataDto.java

@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 /**
  *  @version
  *  @author: hxl
@@ -11,30 +13,58 @@ import lombok.Data;
  *  @Description: 运营查询数据
  */
 @Data
-@ApiModel("运营查询数据")
+@ApiModel("运营业务数据对象")
 public class BusinessDataDto {
-
     /***
-     * 内部机构id
+     * 签单保费金额
      */
-    @ApiModelProperty("内部机构id")
-    private String deptId;
-
+    @ApiModelProperty("签单保费金额")
+    private BigDecimal signeSumPremiumAmount;
     /***
-     * 开始时间
+     * 交强险保费金额
      */
-    @ApiModelProperty("开始时间")
-    private String startDate;
-
+    @ApiModelProperty(value = "交强险保费金额")
+    private BigDecimal jqPremiumAmount;
     /***
-     *  结束时间
+     * 商业险保费金额
      */
-    @ApiModelProperty("endData")
+    @ApiModelProperty(value = "商业险保费金额")
+    private BigDecimal syPremiumAmount;
+    /***
+     *  商业险保费金额
+     */
+    @ApiModelProperty("商业险保费金额")
     private String endData;
 
+    /***
+     *  车船税金额
+     */
+    @ApiModelProperty("车船税金额")
+    private BigDecimal taxAmount;
+
+    /***
+     *  非车险保费金额
+     */
+    @ApiModelProperty("非车险保费金额")
+    private String fcFeeAmount;
+    /***
+     *  部门Id
+     */
+    @ApiModelProperty("部门Id")
+    private String  deptId;
     /***
      *  用户id
      */
-    @ApiModelProperty("userId")
-    private String userId;
+    @ApiModelProperty("用户id")
+    private String  userId;
+    /***
+     *  用户名称
+     */
+    @ApiModelProperty("用户名称")
+    private String  userName;
+    /***
+     *  部门名称
+     */
+    @ApiModelProperty("部门名称")
+    private String  deptName;
 }

+ 58 - 0
src/main/java/com/ydtech/modules/admin/model/report/opetationData/BusinessDataQueryDto.java

@@ -0,0 +1,58 @@
+package com.ydtech.modules.admin.model.report.opetationData;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/2 10:48
+ *  @Description: 运营业务数据对象
+ */
+@Data
+@ApiModel("运营查询数据")
+public class BusinessDataQueryDto {
+
+    /***
+     * 内部机构id
+     */
+    @ApiModelProperty("内部机构id")
+    private String deptId;
+
+    /***
+     * 开始时间
+     */
+    @ApiModelProperty("开始时间")
+    private String startDate;
+
+    /***
+     *  结束时间
+     */
+    @ApiModelProperty("endData")
+    private String endData;
+
+    /***
+     *  内部机构父级id
+     */
+    @ApiModelProperty("内部机构父级id")
+    private String parentId;
+    /***
+     *  机构类型  1. 机构  2.部长  3. 组长 4.组员  5.渠道 6. 代理人
+     */
+    @ApiModelProperty("机构类型")
+    private String deptType;
+
+    /***
+     *  用户id
+     */
+    @ApiModelProperty("用户id")
+    private String userId;
+
+    @ApiModelProperty("页码")
+    private int pageNum;
+
+    @ApiModelProperty("页数")
+    private int pageSize;
+
+}

+ 65 - 0
src/main/java/com/ydtech/modules/admin/model/report/opetationData/OperationsPersonnelDataDto.java

@@ -0,0 +1,65 @@
+package com.ydtech.modules.admin.model.report.opetationData;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/1 11:59
+ *  @Description: 报价次数数据
+ */
+@Data
+@ApiModel("运营人员数据对象")
+public class OperationsPersonnelDataDto {
+    /***
+     * 区域位置"
+     */
+    @ApiModelProperty("区域位置")
+    private String areaCode;
+    /***
+     * 数量
+     */
+    @ApiModelProperty(value = "数量")
+    private int sumCount;
+    /***
+     * 承保数/报价数=成交率
+     */
+    @ApiModelProperty(value = "类型")
+    private String personType;
+    /***
+     *  部门Id
+     */
+    @ApiModelProperty("部门Id")
+    private String  deptId;
+    /***
+     *  用户id
+     */
+    @ApiModelProperty("用户id")
+    private String  userId;
+    /***
+     *  用户名称
+     */
+    @ApiModelProperty("用户名称")
+    private String  userName;
+    /***
+     *  部门名称
+     */
+    @ApiModelProperty("部门名称")
+    private String  deptName;
+
+
+    public OperationsPersonnelDataDto() {
+    }
+
+    public OperationsPersonnelDataDto(String areaCode, int sumCount, String personType, String deptId, String userId, String userName, String deptName) {
+        this.areaCode = areaCode;
+        this.sumCount = sumCount;
+        this.personType = personType;
+        this.deptId = deptId;
+        this.userId = userId;
+        this.userName = userName;
+        this.deptName = deptName;
+    }
+}

+ 58 - 0
src/main/java/com/ydtech/modules/admin/model/report/opetationData/OperationsPersonnelQueryDto.java

@@ -0,0 +1,58 @@
+package com.ydtech.modules.admin.model.report.opetationData;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/2 10:48
+ *  @Description: 报价次数查询对象
+ */
+@Data
+@ApiModel("运营人员数据查询对象")
+public class OperationsPersonnelQueryDto {
+
+    /***
+     * 内部机构id
+     */
+    @ApiModelProperty("内部机构id")
+    private String deptId;
+
+    /***
+     * 开始时间
+     */
+    @ApiModelProperty("开始时间")
+    private String startDate;
+
+    /***
+     *  结束时间
+     */
+    @ApiModelProperty("结束时间")
+    private String endData;
+
+    /***
+     *  内部机构父级id
+     */
+    @ApiModelProperty("内部机构父级id")
+    private String parentId;
+    /***
+     *  机构类型  1. 机构  2.部长  3. 组长 4.组员  5.渠道 6. 代理人
+     */
+    @ApiModelProperty("机构类型")
+    private String deptType;
+
+    /***
+     *  用户id
+     */
+    @ApiModelProperty("用户id")
+    private String userId;
+
+    @ApiModelProperty("页码")
+    private int pageNum;
+
+    @ApiModelProperty("页数")
+    private int pageSize;
+
+}

+ 106 - 0
src/main/java/com/ydtech/modules/admin/model/report/opetationData/QuotationCountDataDto.java

@@ -0,0 +1,106 @@
+package com.ydtech.modules.admin.model.report.opetationData;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/1 11:59
+ *  @Description: 报价次数数据
+ */
+@Data
+@ApiModel("报价次数数据对象")
+public class QuotationCountDataDto {
+    /***
+     * 签单保费金额
+     */
+    @ApiModelProperty("大订单报价数")
+    private int insOrderQutationCount;
+    /***
+     * 交强险保费金额
+     */
+    @ApiModelProperty(value = "大订单承保数")
+    private int insOrderQutationInsureCount;
+    /***
+     * 承保数/报价数=成交率
+     */
+    @ApiModelProperty(value = "大订单成交率")
+    private BigDecimal insOrderCloseRate;
+    /***
+     *  小订单报价数
+     */
+    @ApiModelProperty("小订单报价数")
+    private int subOrderQutationCount;
+    /***
+     *  小订单核保数
+     */
+    @ApiModelProperty("小订单核保数")
+    private int subOrderUnderwritingCount;
+    /***
+     *  小订单承保数
+     */
+    @ApiModelProperty("小订单承保数")
+    private int subOrderQutationInsureCount;
+    /***
+     *  核保数/报价数=通过率
+     */
+    @ApiModelProperty("小订单通过率")
+    private BigDecimal subOrderPassRate;
+
+    /***
+     *  承保数/核保书=缴费率
+     */
+    @ApiModelProperty("小订单缴费率")
+    private BigDecimal subOrderContributionRate;
+
+    /***
+     *  承保数/报价数=成交率
+     */
+    @ApiModelProperty("小订单成交率")
+    private BigDecimal subOrderCloseRate;
+
+    /***
+     *  部门Id
+     */
+    @ApiModelProperty("部门Id")
+    private String  deptId;
+    /***
+     *  用户id
+     */
+    @ApiModelProperty("用户id")
+    private String  userId;
+    /***
+     *  用户名称
+     */
+    @ApiModelProperty("用户名称")
+    private String  userName;
+    /***
+     *  部门名称
+     */
+    @ApiModelProperty("部门名称")
+    private String  deptName;
+
+
+    public QuotationCountDataDto() {
+    }
+
+    public QuotationCountDataDto(int insOrderQutationCount, int insOrderQutationInsureCount, BigDecimal insOrderCloseRate, int subOrderQutationCount, int subOrderUnderwritingCount, int subOrderQutationInsureCount, BigDecimal subOrderPassRate, BigDecimal subOrderContributionRate, BigDecimal subOrderCloseRate, String deptId, String userId, String userName, String deptName) {
+        this.insOrderQutationCount = insOrderQutationCount;
+        this.insOrderQutationInsureCount = insOrderQutationInsureCount;
+        this.insOrderCloseRate = insOrderCloseRate;
+        this.subOrderQutationCount = subOrderQutationCount;
+        this.subOrderUnderwritingCount = subOrderUnderwritingCount;
+        this.subOrderQutationInsureCount = subOrderQutationInsureCount;
+        this.subOrderPassRate = subOrderPassRate;
+        this.subOrderContributionRate = subOrderContributionRate;
+        this.subOrderCloseRate = subOrderCloseRate;
+        this.deptId = deptId;
+        this.userId = userId;
+        this.userName = userName;
+        this.deptName = deptName;
+    }
+}

+ 58 - 0
src/main/java/com/ydtech/modules/admin/model/report/opetationData/QuotationCountQueryDto.java

@@ -0,0 +1,58 @@
+package com.ydtech.modules.admin.model.report.opetationData;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/2 10:48
+ *  @Description: 报价次数查询对象
+ */
+@Data
+@ApiModel("报价次数查询对象")
+public class QuotationCountQueryDto {
+
+    /***
+     * 内部机构id
+     */
+    @ApiModelProperty("内部机构id")
+    private String deptId;
+
+    /***
+     * 开始时间
+     */
+    @ApiModelProperty("开始时间")
+    private String startDate;
+
+    /***
+     *  结束时间
+     */
+    @ApiModelProperty("结束时间")
+    private String endData;
+
+    /***
+     *  内部机构父级id
+     */
+    @ApiModelProperty("内部机构父级id")
+    private String parentId;
+    /***
+     *  机构类型  1. 机构  2.部长  3. 组长 4.组员  5.渠道 6. 代理人
+     */
+    @ApiModelProperty("机构类型")
+    private String deptType;
+
+    /***
+     *  用户id
+     */
+    @ApiModelProperty("用户id")
+    private String userId;
+
+    @ApiModelProperty("页码")
+    private int pageNum;
+
+    @ApiModelProperty("页数")
+    private int pageSize;
+
+}

+ 68 - 0
src/main/java/com/ydtech/modules/admin/model/report/opetationData/TelemarketingDataDto.java

@@ -0,0 +1,68 @@
+package com.ydtech.modules.admin.model.report.opetationData;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/2 10:48
+ *  @Description: 电销数据对象
+ */
+@Data
+@ApiModel("电销数据对象")
+public class TelemarketingDataDto {
+
+    /***
+     * 呼出时长
+     */
+    @ApiModelProperty("呼出时长")
+    private int outboundDuration;
+
+    /***
+     * 开始时间
+     */
+    @ApiModelProperty("呼出次数")
+    private int outgoingCallsCount;
+
+    /***
+     *  结束时间
+     */
+    @ApiModelProperty("接通次数")
+    private String connectionsCount;
+
+    /***
+     *  内部机构父级id
+     */
+    @ApiModelProperty("呼出成功率")
+    private String outboundSuccessRate;
+    /***
+     *  企业微信新增人数
+     */
+    @ApiModelProperty("企业微信新增人数")
+    private int weChatAddPersonCount;
+
+
+    /***
+     *  部门Id
+     */
+    @ApiModelProperty("部门Id")
+    private String  deptId;
+    /***
+     *  用户id
+     */
+    @ApiModelProperty("用户id")
+    private String  userId;
+    /***
+     *  用户名称
+     */
+    @ApiModelProperty("用户名称")
+    private String  userName;
+    /***
+     *  部门名称
+     */
+    @ApiModelProperty("部门名称")
+    private String  deptName;
+
+}

+ 58 - 0
src/main/java/com/ydtech/modules/admin/model/report/opetationData/TelemarketingDataQueryDto.java

@@ -0,0 +1,58 @@
+package com.ydtech.modules.admin.model.report.opetationData;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/2 10:48
+ *  @Description: 电销数据对象查询对象
+ */
+@Data
+@ApiModel("电销数据对象查询对象")
+public class TelemarketingDataQueryDto {
+
+    /***
+     * 内部机构id
+     */
+    @ApiModelProperty("内部机构id")
+    private String deptId;
+
+    /***
+     * 开始时间
+     */
+    @ApiModelProperty("开始时间")
+    private String startDate;
+
+    /***
+     *  结束时间
+     */
+    @ApiModelProperty("结束时间")
+    private String endData;
+
+    /***
+     *  内部机构父级id
+     */
+    @ApiModelProperty("内部机构父级id")
+    private String parentId;
+    /***
+     *  机构类型  1. 机构  2.部长  3. 组长 4.组员  5.渠道 6. 代理人
+     */
+    @ApiModelProperty("机构类型")
+    private String deptType;
+
+    /***
+     *  用户id
+     */
+    @ApiModelProperty("用户id")
+    private String userId;
+
+    @ApiModelProperty("页码")
+    private int pageNum;
+
+    @ApiModelProperty("页数")
+    private int pageSize;
+
+}

+ 46 - 0
src/main/java/com/ydtech/modules/admin/service/OperationDataReportService.java

@@ -0,0 +1,46 @@
+package com.ydtech.modules.admin.service;
+
+
+import com.ydtech.modules.admin.model.report.opetationData.*;
+import com.ydtech.modules.order.entity.BasePageResult;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/1 11:35
+ *  @Description:  控制台之运营数据
+ */
+public interface OperationDataReportService {
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 8:51
+     *  @Description:  查询控制台值运营数据列表
+     */
+    BasePageResult<BusinessDataDto> queryBusinessDataPage(BusinessDataQueryDto businessDataQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 11:19
+     *  @Description: 查询报价次数数据列表
+     */
+    BasePageResult<QuotationCountDataDto> queryQuotationCountDataPage(QuotationCountQueryDto quotationCountQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 11:48
+     *  @Description: 查询运营人员数据
+     */
+    BasePageResult<OperationsPersonnelDataDto> queryOperationsPersonnelDataPage(QuotationCountQueryDto quotationCountQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 11:58
+     *  @Description: 查询电销数据
+     */
+    BasePageResult<TelemarketingDataDto> queryTelemarketingDataDtoCountDataPage(TelemarketingDataQueryDto telemarketingDataQueryDto);
+}
+
+
+

+ 7 - 1
src/main/java/com/ydtech/modules/admin/service/SysUserLinkDeptInternalAgentService.java

@@ -61,5 +61,11 @@ public interface SysUserLinkDeptInternalAgentService extends IService<SysUserLin
      */
     BasePageResult<SysUserBaseVO> findUserListByPage(SysUserDto sysUserDto);
 
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 9:42
+     *  @Description: 根据内部机构id查询管理的用户
+     */
+    List<String> getUserIdListByDeptId(String deptId);
 }

+ 195 - 0
src/main/java/com/ydtech/modules/admin/service/impl/OperationDataReportServiceImpl.java

@@ -0,0 +1,195 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.exception.SystemException;
+import com.ydtech.modules.admin.dao.SysDeptInternalAgentMapper;
+import com.ydtech.modules.admin.dao.SysUserLinkAreaMapper;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.report.opetationData.*;
+import com.ydtech.modules.admin.service.OperationDataReportService;
+import com.ydtech.modules.admin.service.SysUserLinkDeptInternalAgentService;
+import com.ydtech.modules.admin.service.SysUserService;
+import com.ydtech.modules.order.dao.InsAreaCompanyMapper;
+import com.ydtech.modules.order.entity.BasePageResult;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/1 11:36
+ *  @Description: 控制台-运营数据
+ */
+@Service
+public class OperationDataReportServiceImpl implements OperationDataReportService {
+
+
+
+    @Autowired
+    private SysDeptInternalAgentMapper sysDeptInternalAgentMapper;
+
+    @Autowired
+    private SysUserLinkDeptInternalAgentService sysUserLinkDeptInternalAgentService;
+
+    @Autowired
+    private SysUserService sysUserService;
+
+    @Autowired
+    private SysUserLinkAreaMapper sysUserLinkAreaMapper;
+    @Autowired
+    private InsAreaCompanyMapper   insAreaCompanyMapper;
+
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 8:52
+     *  @Description:  查询控制台的运营数据  分   1. 机构   运营部    2. 运营组   3. 组长  4. 组员   5.渠道  6.代理人
+     */
+    @Override
+    public BasePageResult<BusinessDataDto> queryBusinessDataPage(BusinessDataQueryDto businessDataQueryDto) {
+        if(StringUtils.isBlank(businessDataQueryDto.getDeptId())){
+            throw new SystemException("机构id不能为空");
+        }
+        Result resultData = new Result().getRestData(businessDataQueryDto.getDeptId(), businessDataQueryDto.getDeptType());
+        if(resultData.userIds ==null || resultData.userIds.size()==0){
+             return  new BasePageResult<BusinessDataDto>();
+        }else{
+            Page<BusinessDataDto> page = new Page<>(businessDataQueryDto.getPageNum(), businessDataQueryDto.getPageSize());
+            Page<BusinessDataDto> result = insAreaCompanyMapper.queryBusinessDataPage(businessDataQueryDto, page, resultData.userIds, resultData.flag);
+            return new BasePageResult<>(businessDataQueryDto.getPageNum(), page.getSize(), result.getTotal(), page.getPages(),
+                    result.getRecords());
+
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 11:27
+     *  @Description:  参数数据封装
+     */
+    private class Result {
+        private  List<String> userIds;
+        private  String flag;
+
+        public Result() {
+        }
+
+        public Result(List<String> userIds, String flag) {
+            this.userIds = userIds;
+            this.flag = flag;
+        }
+
+        public  Result getRestData(String deptId,String deptType){
+            List<String>  userIds=new ArrayList<>();
+            //通过传过来的机构id查询数据类型
+            String flag=null;
+            if("1".equals(deptType) || "2".equals(deptType)  || "3".equals(deptType)  || "4".equals(deptType) ){
+                //机构parentIds查询下面管理的人
+                userIds= sysUserLinkDeptInternalAgentService.getUserIdListByDeptId(deptId);
+                if("3".equals(deptType)  || "4".equals(deptType)){
+                    flag="1";
+                }
+            }else if("5".equals(deptType) ){
+                //通过用户id查询管理的渠道
+                //渠道
+                userIds = sysUserService.getUserIdsByLeaderId(deptId);
+                flag="1";
+
+            }else if("6".equals(deptType)){
+                //通过用户id查询管理的代理人
+                List<String> areaCodes = sysUserLinkAreaMapper.findAreaCodeByUserId(deptId);
+                if(areaCodes!=null && !areaCodes.isEmpty()){
+                    userIds =sysUserLinkAreaMapper.findAreaIdsByAgentUserId(deptId,areaCodes);
+                }
+                flag="1";
+            }
+            return new Result(userIds, flag);
+        }
+    }
+
+    /**
+     *  @version 
+     *  @author: hxl
+     *  @Date: 2024/7/3 11:19
+     *  @Description:  查询报价次数数据
+     */ 
+    @Override
+    public BasePageResult<QuotationCountDataDto> queryQuotationCountDataPage(QuotationCountQueryDto quotationCountQueryDto) {
+        if(StringUtils.isBlank(quotationCountQueryDto.getDeptId())){
+            throw new SystemException("机构id不能为空");
+        }
+        Result resultData = new Result().getRestData(quotationCountQueryDto.getDeptId(),quotationCountQueryDto.getDeptType());
+        if(resultData.userIds ==null || resultData.userIds.size()==0){
+            return  new BasePageResult<QuotationCountDataDto>();
+        }else{
+            Page<QuotationCountDataDto> page = new Page<>(quotationCountQueryDto.getPageNum(), quotationCountQueryDto.getPageSize());
+            Page<QuotationCountDataDto> resultInsOrder = insAreaCompanyMapper.queryQuotationOrderCountDataPage(quotationCountQueryDto, page, resultData.userIds, resultData.flag);
+            //合并到一起
+            Page<QuotationCountDataDto> resultSubOrder = insAreaCompanyMapper.queryQuotationSubOrderCountDataPage(quotationCountQueryDto, page, resultData.userIds, resultData.flag);
+            return new BasePageResult<>(quotationCountQueryDto.getPageNum(), page.getSize(), resultInsOrder.getTotal(), page.getPages(),
+                    resultInsOrder.getRecords());
+
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 11:59
+     *  @Description: 查询代理人渠道数据
+     */
+    @Override
+    public BasePageResult<OperationsPersonnelDataDto> queryOperationsPersonnelDataPage(QuotationCountQueryDto quotationCountQueryDto) {
+        if(StringUtils.isBlank(quotationCountQueryDto.getDeptId())){
+            throw new SystemException("机构id不能为空");
+        }
+        List<String> userIds= sysUserLinkDeptInternalAgentService.getUserIdListByDeptId(quotationCountQueryDto.getDeptId());
+        //渠道用户数据
+        List<SysUser> qdUserList=new ArrayList<SysUser>();
+        //代理人用户数据
+        List<SysUser> dLUserList=new ArrayList<SysUser>();
+        if(userIds!=null && userIds.size()==0){
+            List<String> allUserIds=new ArrayList<String>();
+            for(String userId :userIds){
+                List<String> userIds_qd = sysUserService.getUserIdsByLeaderId(userId);
+                allUserIds.addAll(userIds_qd);
+            }
+            if(allUserIds!=null && allUserIds.size()>0){
+                qdUserList = sysUserService.getByIds(allUserIds);
+            }
+
+        }
+        if(userIds!=null && userIds.size()==0){
+            List<String> allUserIds=new ArrayList<String>();
+            for(String userId :userIds){
+                List<String> areaCodes = sysUserLinkAreaMapper.findAreaCodeByUserId(userId);
+                if(areaCodes!=null && !areaCodes.isEmpty()){
+                    List<String>  userIds_dl =sysUserLinkAreaMapper.findAreaIdsByAgentUserId(userId,areaCodes);
+                    allUserIds.addAll(userIds_dl);
+                }
+            }
+            if(allUserIds!=null && allUserIds.size()>0){
+                dLUserList = sysUserService.getByIds(allUserIds);
+            }
+        }
+        return null;
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 11:59
+     *  @Description:  查询电销数据
+     */
+    @Override
+    public BasePageResult<TelemarketingDataDto> queryTelemarketingDataDtoCountDataPage(TelemarketingDataQueryDto telemarketingDataQueryDto) {
+        return null;
+    }
+}
+
+
+

+ 15 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkDeptInternalAgentServiceImpl.java

@@ -147,6 +147,21 @@ public class SysUserLinkDeptInternalAgentServiceImpl extends ServiceImpl<SysUser
         return  new BasePageResult<>(sysUserDto.getPageNum(), page.getSize(), userPageResult.getTotal(), page.getPages(),
                 userPageResult.getRecords());
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 9:25
+     *  @Description: 根据内部机构id查询管理的用户
+     */
+    public List<String> getUserIdListByDeptId(String deptId) {
+        SysDeptInternalAgent sysDeptInternalAgent = sysDeptInternalAgentMapper.selectById(deptId);
+        if(sysDeptInternalAgent==null){
+            return new ArrayList<String>();
+        }
+        return  sysUserLinkDeptInternalAgentMapper.getUserIdListByDeptPrentIds(sysDeptInternalAgent.getParentIds());
+    }
+
+
 }
 
 

+ 13 - 8
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -672,12 +672,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         SysUser sysUser = sysUserVo.getSysUser();
 
         //修改用户不能修改密码
-        if (StringUtils.isNotEmpty(sysUser.getPassword())) {
-            String salt = PasswordUtils.getSalt();
-            String pwd = PasswordUtils.encode(sysUser.getPassword(), salt);
-            sysUser.setPassword(pwd);
-            sysUser.setSalt(salt);
-        } else {
+        if (StringUtils.isEmpty(sysUser.getPassword())) {
             return HttpResult.error("密码不能为空");
         }
 
@@ -690,8 +685,18 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             return HttpResult.error("状态不能为空");
         }
         SysUser sysUser_org = findByUserId(sysUser.getId());
-        sysUser.setPassword(sysUser_org.getPassword());
-        sysUser.setSalt(sysUser_org.getSalt());
+
+        // 修改密码数据库相同不做修改
+        if (!sysUser_org.getPassword().equals(sysUser.getPassword())) {
+            String salt = PasswordUtils.getSalt();
+            String pwd = PasswordUtils.encode(sysUser.getPassword(), salt);
+            sysUser.setPassword(pwd);
+            sysUser.setSalt(salt);
+        }else {
+            sysUser.setPassword(sysUser_org.getPassword());
+            sysUser.setSalt(sysUser_org.getSalt());
+        }
+
         if ("19".equals(sysUser.getRoleId())) {//19 出单员 校验机构和业务员机构是否一致
             return checkChuDanUser(sysUser);
         }

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

@@ -4,6 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.admin.model.dto.AllpremiumDto;
 import com.ydtech.modules.admin.model.dto.PremiumReportDto;
+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.SubOrder;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
@@ -129,6 +133,27 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
      * @return
      */
     Page<InsAreaCompany> getRejectOrder(Page page,@Param("userId") String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 10:44
+     *  @Description:  查询控制台页面业务数据
+     */
+    Page<BusinessDataDto> queryBusinessDataPage(@Param("vo") BusinessDataQueryDto businessDataQueryDto, @Param("page") Page<BusinessDataDto> page,@Param("userList") List<String> userList,@Param("flag") String flag);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 11:29
+     *  @Description: 查询报价次数大订单的数据
+     */
+    Page<QuotationCountDataDto> queryQuotationOrderCountDataPage(@Param("vo") QuotationCountQueryDto quotationCountQueryDto, @Param("page") Page<QuotationCountDataDto> page, @Param("userList") List<String> userIds, @Param("flag") String flag);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/7/3 11:34
+     *  @Description: 查询报价次数小订单的数据
+     */
+    Page<QuotationCountDataDto> queryQuotationSubOrderCountDataPage(QuotationCountQueryDto quotationCountQueryDto, Page<QuotationCountDataDto> page, List<String> userIds, String flag);
 }
 
 

+ 2 - 0
src/main/java/com/ydtech/modules/order/entity/vo/OrderQueryVo.java

@@ -142,6 +142,8 @@ public class OrderQueryVo {
     @ApiModelProperty(value = "是否外部订单")
     private String isExternal;
 
+    @ApiModelProperty(value = "是否疑问订单")
+    private String problemOrder;
 
     public LocalDate getEndDatePlusOneDay() {
         if(ObjectUtils.isEmpty(endDate)){

+ 2 - 3
src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java

@@ -199,7 +199,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
             }
         }
         List<BoHaiQuoteAccidentVo> accidentalDrivingVo = quoteVo.getAccidentalDrivingVo();
-        InsAreaCompanyAccidentalDriving insAreaCompanyAccidentalDriving = new InsAreaCompanyAccidentalDriving();
+//        InsAreaCompanyAccidentalDriving insAreaCompanyAccidentalDriving = new InsAreaCompanyAccidentalDriving();
 //        insAreaCompanyAccidentalDriving.setQuantity(quoteVo.getAccidentalDrivingVo());
         return getQuoteRespVo(response, quoteInfoVo, vehicleModelsDTO, ptlAgreementAttribution, orderNo, accidentalDrivingVo);
     }
@@ -659,7 +659,6 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
             insAreaCompanyAccidentalDriving.setRideRiskName(insAreaCompanyAccidentalDriving.getRideRiskName());
             insAreaCompanyAccidentalDrivings.add(insAreaCompanyAccidentalDriving);
         });
-        insAreaCompanyService.insertCompanyAndOrders(insAreaCompany,insAreaCompanyAccidentalDrivings);
 
         // 渤海业务id
         String busUniqueId = response.getData().getBusUniqueId();
@@ -676,7 +675,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
 
         List<TaxArrears> taxArrearsList = Collections.singletonList(taxArrears);
         insAreaCompany.setTaxArrears(JSON.parseArray(JSON.toJSONString(taxArrearsList)));
-        insAreaCompanyService.insertCompanyAndOrders(insAreaCompany);
+        insAreaCompanyService.insertCompanyAndOrders(insAreaCompany, insAreaCompanyAccidentalDrivings);
         quoteRespVo.setCompanyId(orderId);
         return HttpResult.ok("报价成功", quoteRespVo);
     }

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

@@ -285,12 +285,12 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
                 daikeFlag = true;
             }
         }
-        if(quoteInfoVo.getIsExternal() == null) {
-            //添加后线人员不能报价的验证
-            if (!"admin".equals(realUserId) && !realUserId.contains("M")) {
-                throw new SystemException("后线人员不允许报价!!");
-            }
+
+        //添加后线人员不能报价的验证
+        if (!"admin".equals(realUserId) && !realUserId.contains("M")) {
+            throw new SystemException("后线人员不允许报价!!");
         }
+
         // 1. 验证订单参数
         orderComponents.checkEmpty(quoteInfoVo);
         SysUser user = sysUserService.getById(realUserId);

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

@@ -246,7 +246,7 @@ agreement:
 huatai:
   api:
     sourceCode: '016'
-    baseUrl: https://cross.pc.ehuatai.com/interFaces/common/AutoInsuranceQuotation.do
+    baseUrl: https://gears.pc.ehuatai.com:9003/interFaces/common/AutoInsuranceQuotation.do
     selfPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCYUuKVmeF5N66v6MQmOR8pt4o33yrio/ZrDf2ehk/kHJ2BYdI+xE9dLrZW5dm0y8yPpIHN39JaLuYOlWz5DVsWJTSPj9eaq0hOiY9BGAHJ3yMHdX3wygpcD11BVc5v4wbX/kyAhmatK69sb4zzAtEve1NS/YwZVuGch0CrkGw3YQIDAQAB
     selfPrivateKey: MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAJhS4pWZ4Xk3rq/oxCY5Hym3ijffKuKj9msN/Z6GT+QcnYFh0j7ET10utlbl2bTLzI+kgc3f0lou5g6VbPkNWxYlNI+P15qrSE6Jj0EYAcnfIwd1ffDKClwPXUFVzm/jBtf+TICGZq0rr2xvjPMC0S97U1L9jBlW4ZyHQKuQbDdhAgMBAAECgYAktOyXYoK8RFfbWjtSfrdsxScQub3K6foq6C8y8Wj1LpQiJqGUsJfze5tDK5agA/CiuODy7LnzM5QK9aVSCw7k0r8EeGpHcYRdLYZM0vXVFK2gIQctFemK4c6sg5p0Bn1LNRbJG7rgMMEA/OxcF6vyQahhFtPVtAQwc+dT0PV51QJBANd66rfTuxSRvIC/RE4W6iqzed2YZtx+0kd7KiN78Y4X6spposFCH4ALf4jUeRRXZAm+Qu71cq21m2GsQZ8bZdMCQQC096ilZXEjmEuvopQR3JvPbgAF+MtItusyDDsMR1CWwXq9XGMmxi6GhFY7r7C8b40j1IchVAEY5BcwxJwfjql7AkAp5QYZs5reBu/FgGqBXEcvAjIheW4WVLoBl9q7h2+RlujZbexs8rQ5KwMi0VyxLcSPeGR/HU2spHCPbvRbQPJtAkBANK4tIHSnwFz6D6ChRbgyPEDd3YuiXOPNefFpRdQd6L93d9Pl6eKP71v5CTiXYqyczcaz2G4bOrHPp7IMsD0JAkBO/q3ZMT+Nj2jdMn2AR1h+ngn38JnK46PznU0WoRPx72YoWbLxvaGWpu8scZAhpYeq/n+52NHFfu8ayDRNWjP2
     huaTaiPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCYyF2SBNzLOP5N5fFW2T2eQ5+iaI5wVpsedu+UY290TVuG152tkdtSuTXsx+8BKnd79/PF966/2aSP4EUm7vD9kvQUnX2EDUiMooorGvDTRxoHNXFGqOtxdMiUOuqx19HwNb4gOXZ1WdjWJwSmqC6ZP6OgxKIotCHJwe826Q/w8wIDAQAB

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

@@ -86,4 +86,17 @@
         </if>
         order by flag desc
     </select>
+
+    <select id="getUserIdListByDeptPrentIds" resultType="java.lang.String">
+        SELECT
+           link.user_id
+        FROM
+        sys_user_link_dept_internal_agent link
+        LEFT JOIN sys_dept_internal_agent sd ON link.sys_dept_internal_agent_id = sd.id
+        <where>
+            <if test="parentIds != null and parentIds != ''">
+                AND sd.parent_ids  like concat(#{parentIds},'%')
+            </if>
+        </where>
+    </select>
 </mapper>

+ 68 - 0
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -230,6 +230,9 @@
         <if test="params.provinceId != null and params.provinceId != ''">
             and io.deptid like "${params.provinceId}%"
         </if>
+        <if test="params.problemOrder != null and params.problemOrder != ''">
+            and iac.problem_order like "${params.problemOrder}%"
+        </if>
         <if test="params.cityId != null and params.cityId != ''">
             and io.deptid like "${params.cityId}%"
         </if>
@@ -661,4 +664,69 @@
         AND
             ifa.auditstatus = 2
     </select>
+
+    <select id="queryBusinessDataPage"
+            resultType="com.ydtech.modules.admin.model.report.opetationData.BusinessDataDto">
+        SELECT
+        <if test="flag  != null  and  flag!='' and flag='1'">
+            o.userid   as userId,
+            o.username as userName,
+        </if>
+        sum(iac.sumpremium),
+        sum(iac.jqpremium),
+        sum(iac.sypremium),
+        sum(iac.taxamount),
+        sum(ion.no_premium)
+        FROM
+        ins_area_company iac
+        LEFT JOIN ins_orders o ON iac.orderno = o.orderno
+        LEFT JOIN ins_fee_order_new ion ON iac.id = ion.ins_order_no
+        where iac.orderstatus = 3  and ion.id is not null
+        and o.userid IN
+        <foreach item="item"  collection="userList" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+        <if test="flag  != null  and  flag!='' and flag='1'">
+            group by o.userid,o.username
+        </if>
+    </select>
+    <select id="queryQuotationSubOrderCountDataPage"
+            resultType="com.ydtech.modules.admin.model.report.opetationData.QuotationCountDataDto">
+        SELECT
+        <if test="flag  != null  and  flag!='' and flag='1'">
+            o.userid   as userId,
+            o.username as userName,
+        </if>
+        iac.orderstatus as orderStatus
+        FROM
+        ins_area_company iac
+        LEFT JOIN ins_orders o ON iac.orderno = o.orderno
+        where (iac.orderstatus = 0 or iac.orderstatus = 2  or iac.orderstatus = 3 )
+        and o.userid IN
+        <foreach item="item"  collection="userList" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+        <if test="flag  != null  and  flag!='' and flag='1'">
+            group by o.userid,o.username,iac.orderstatus
+        </if>
+    </select>
+    <select id="queryQuotationOrderCountDataPage"
+            resultType="com.ydtech.modules.admin.model.report.opetationData.QuotationCountDataDto">
+        SELECT
+        <if test="flag  != null  and  flag!='' and flag='1'">
+            o.userid   as userId,
+            o.username as userName,
+        </if>
+        o.orderstatus
+        FROM
+        ins_orders o
+        where  (o.orderstatus = 0  or o.orderstatus = 3 )
+        and o.userid IN
+        <foreach item="item"  collection="userList" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+        <if test="flag  != null  and  flag!='' and flag='1'">
+            group by o.userid,o.username,o.orderstatus
+        </if>
+    </select>
 </mapper>