Browse Source

1.控制台业务数据添加统计

wuhp 1 year ago
parent
commit
e31b6d541d

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

@@ -319,6 +319,31 @@ public class TaskStatisticsController {
         }
     }
 
+    /**
+     * @description:   控制台-业务数据-统计
+     * @author: whp
+     * @date: 2024/10/12
+     **/
+    @PostMapping("getCountBusinessData")
+    @ApiOperation(value = "控制台-业务数据")
+    public HttpResult<TaskStatisticsDto> getCountBusinessData(@RequestBody TaskStatisticsVo taskStatisticsVo, HttpServletRequest httpServerRequest) {
+        try{
+            KztGetDeptUtils kztGetDeptUtils = new KztGetDeptUtils();
+            KztGetDeptUtilsDto kztGetDeptUtilsDto = kztGetDeptUtils.KztGetDeptIds(httpServerRequest.getRequestURL().toString());
+            if(ObjectUtils.isNotEmpty(kztGetDeptUtilsDto)){
+                if("1".equals(kztGetDeptUtilsDto.getType())){
+                    taskStatisticsVo.setDeptIds(kztGetDeptUtilsDto.getIds());
+                } else if ("2".equals(kztGetDeptUtilsDto.getType())) {
+                    taskStatisticsVo.setUserIds(kztGetDeptUtilsDto.getIds());
+                }
+            }
+            TaskStatisticsDto result = taskStatisticsService.getCountBusinessData(taskStatisticsVo);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+
     /**
      * @description:   控制台-业务数据 - 保险分布
      * @author: whp

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

@@ -129,5 +129,10 @@ public interface TaskStatisticsService {
      * @date: 2024/10/11
      **/
     IPage<TaskStatisticsDto> queryPageElectric(TaskStatisticsVo taskStatisticsVo);
-
+    /**
+     * @description:   控制台-业务数据-统计
+     * @author: whp
+     * @date: 2024/10/12
+     **/
+    TaskStatisticsDto getCountBusinessData(TaskStatisticsVo taskStatisticsVo);
 }

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

@@ -429,6 +429,31 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
         IPage<TaskStatisticsDto> list = this.insAreaCompanyMapper.getBusinessData(page,taskStatisticsVo);
         return list;
     }
+
+    /**
+     * @description:   控制台-业务数据-统计
+     * @author: whp
+     * @date: 2024/10/12
+     **/
+    @Override
+    public TaskStatisticsDto getCountBusinessData(TaskStatisticsVo taskStatisticsVo) {
+        if(StringUtils.isNotEmpty(taskStatisticsVo.getDays())){
+            if("7".equals(taskStatisticsVo.getDays())){
+                taskStatisticsVo.setDateType("2");
+            } else if ("30".equals(taskStatisticsVo.getDays())) {
+                taskStatisticsVo.setDateType("3");
+            } else if ("1".equals(taskStatisticsVo.getDays())){
+                taskStatisticsVo.setDateType("1");
+            }
+        }
+        HashMap<String, String> dateMapByType = getDateMapByTypeNew(taskStatisticsVo.getDateType(), taskStatisticsVo.getCreatetimeStart(), taskStatisticsVo.getCreatetimeEnd());
+        taskStatisticsVo.setCreatetimeStart(dateMapByType.get("startDate"));
+        taskStatisticsVo.setCreatetimeEnd(dateMapByType.get("endDate"));
+        TaskStatisticsDto result = this.insAreaCompanyMapper.getCountBusinessData(taskStatisticsVo);
+
+
+        return result;
+    }
     /**
      * @description:   控制台-业务数据 - 保险分布
      * @author: whp

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

@@ -374,6 +374,12 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
      * @return 电销合计
      */
     Long queryPageElectricTotal(@Param("taskStatisticsVo") TaskStatisticsVo taskStatisticsVo);
+    /**
+     * @description:   控制台-业务数据-统计
+     * @author: whp
+     * @date: 2024/10/12
+     **/
+    TaskStatisticsDto getCountBusinessData(@Param("vo") TaskStatisticsVo taskStatisticsVo);
 
 }
 

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

@@ -2337,6 +2337,67 @@
     </select>
 
 
+
+    <select id="getCountBusinessData" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
+        select
+            a.totalPremium as "totalPremium",
+            a.qutationInsureCount as "qutationInsureCount",
+            ROUND(a.averagePremium, 2)  as "averagePremium",
+            a.userNumber as "userNumber",
+            ROUND(a.perCapitaAmount, 2) as "perCapitaAmount"
+        from  (
+        SELECT
+        IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0) as "totalPremium",
+        COUNT(0 ) AS "qutationInsureCount",
+        (IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0)) / COUNT(0 )  AS "averagePremium",
+        COUNT(DISTINCT io.userId) AS "userNumber",
+        (IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0)) / COUNT(DISTINCT io.userId)  as "perCapitaAmount"
+        FROM
+        ins_area_company iac
+        LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
+        LEFT JOIN ins_orders  io  on  io.orderno  = iac.orderno
+        WHERE
+        agree.id IS NOT NULL
+        and  iac.orderstatus = '3'
+        <if test="vo.companyId  != null  and  vo.companyId!='' ">
+            and  agree.insurance_company_id = #{vo.companyId}
+        </if>
+        <if test="vo.parterCompanyId  != null  and  vo.parterCompanyId!='' ">
+            and agree.partner_companies_id = #{vo.parterCompanyId}
+        </if>
+        <if test="vo.createtimeStart  != null  and  vo.createtimeStart!=''  and vo.createtimeEnd  != null  and  vo.createtimeEnd!=''">
+            AND   DATE_FORMAT( iac.signing_time, '%Y-%m-%d')   BETWEEN DATE_FORMAT( #{vo.createtimeStart}, '%Y-%m-%d')  AND DATE_FORMAT( #{vo.createtimeEnd}, '%Y-%m-%d')
+        </if>
+        <if test="vo.provinceId != null and vo.provinceId != '' and  vo.cityId == null and vo.countyId == null  and vo.houseId == null ">
+            and io.deptid like "${vo.provinceId}%"
+        </if>
+        <if test="vo.cityId != null and vo.cityId != '' and vo.countyId ==null and  vo.houseId ==null">
+            and io.deptid like "${vo.cityId}%"
+        </if>
+        <if test="vo.countyId != null and vo.countyId != '' and  vo.houseId  ==null">
+            and io.deptid like "${vo.countyId}%"
+        </if>
+        <if test="vo.houseId != null and vo.houseId != ''">
+            and io.deptid like "${vo.houseId}%"
+        </if>
+        <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
+            AND io.deptid  in
+            <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+
+        <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
+            AND io.userid  in
+            <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        )  a
+
+    </select>
+
+
     <select id="getDistribution" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
         SELECT
         agree.insurance_company_id AS "companyId",