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

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

Qchen 2 лет назад
Родитель
Сommit
590a8eee43

+ 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);
 
 }

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

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

+ 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);
 }

+ 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());

+ 68 - 0
src/main/java/com/ydtech/modules/fee/dto/vo/RuleAttrMappingVo.java

@@ -7,6 +7,7 @@ import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
 import com.ydtech.modules.ins.model.vo.KindInfoVo;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.entity.api.bohai.constants.VehicleUsage;
 import com.ydtech.modules.order.entity.api.dajia.constants.TypeVehicleMapping;
 import com.ydtech.modules.protocol.entity.po.PtlNewCarJudgeRules;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttr;
@@ -275,6 +276,73 @@ public class RuleAttrMappingVo {
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("JqNumberOfClaims", insAreaCompany.getJqClaims() == null ? "0" : insAreaCompany.getJqClaims()));
         // 商业出险次数
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("SyNumberOfClaims", insAreaCompany.getSyClaims() == null ? "0" : insAreaCompany.getSyClaims()));
+        // 车牌地区
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("LicenseArea", insAreaCompany.getLicenseno().substring(0,1)));
+        // 系数
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("Coefficient", getCoefficient(carInfo,insAreaCompany).toString()));
         return ruleAttrMappingVoList;
     }
+
+    private static Float getCoefficient(CarInfoVo carInfo,InsAreaCompany insAreaCompany){
+        Integer seatCount = Integer.parseInt(carInfo.getSeatCount());
+        Float coefficient = 1.00f;
+
+        //        ruleAttrMappingVoList.add(new RuleAttrMappingVo())
+        //家庭自用车
+        if(carInfo.getCimodelclass().equals(VehicleType.VT_A0.getCode()) &&
+                carInfo.getVehicleUse().equals(TypeVehicleMapping.TM_05.getCode())){
+            //2-5座
+            if(seatCount >= 2 && seatCount <=5) {
+                coefficient = Float.parseFloat(insAreaCompany.getJqpremium().toString()) / 950;
+            }
+            //6-9座
+            if(seatCount >= 6 && seatCount <=9){
+                coefficient = Float.parseFloat(insAreaCompany.getJqpremium().toString()) / 1100;
+            }
+        }else
+            //非营业机关、企业
+            if(carInfo.getCimodelclass().equals(VehicleType.VT_A0.getCode()) &&
+                    (carInfo.getVehicleUse().equals(TypeVehicleMapping.TM_06.getCode()) ||
+                            carInfo.getVehicleUse().equals(TypeVehicleMapping.TM_07.getCode()))){
+                //2-5座
+                if(seatCount >= 2 && seatCount <=5) {
+                    coefficient = Float.parseFloat(insAreaCompany.getJqpremium().toString()) / 1000;
+                }
+                //6-9座
+                if(seatCount >= 6 && seatCount <=9){
+                    coefficient = Float.parseFloat(insAreaCompany.getJqpremium().toString()) / 1130;
+                }
+            }
+            else
+                //货车
+                if(carInfo.getCimodelclass().equals(VehicleType.VT_A1.getCode()))
+                {
+                    //营业货运 2吨
+                    if(carInfo.getVehicleUse().equals(TypeVehicleMapping.TM_04.getCode()) &&
+                            Integer.parseInt(carInfo.getLimitLoad()) < 2000){
+                        coefficient = Float.parseFloat(insAreaCompany.getJqpremium().toString()) / 1850;
+                    }
+
+                    //非营业货运 2吨
+                    if(carInfo.getVehicleUse().equals(TypeVehicleMapping.TM_08.getCode()) &&
+                            Integer.parseInt(carInfo.getLimitLoad()) < 2000){
+                        coefficient = Float.parseFloat(insAreaCompany.getJqpremium().toString()) / 1200;
+                    }
+
+                    //大吨位
+                    if(Integer.parseInt(carInfo.getLimitLoad()) > 2000){
+                        coefficient = Float.parseFloat(insAreaCompany.getJqpremium().toString()) / 4480;
+                    }
+                }
+                else
+                    //出租车 网约车
+                    if(carInfo.getCimodelclass().equals(VehicleType.VT_A0.getCode()) &&
+                            carInfo.getVehicleUse().equals(TypeVehicleMapping.TM_01.getCode())){
+                        coefficient = Float.parseFloat(insAreaCompany.getJqpremium().toString()) / 1800;
+                    }
+
+                    return coefficient;
+    }
+
 }
+

+ 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}, '%')

+ 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>
 
 

+ 25 - 11
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -983,7 +983,8 @@
     </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.*,(select name  from sys_user  where id =a.userId) as "userName",
+        su.leader_name as "leaderName"
         from (
         SELECT
         sd.NAME AS "deptName",
@@ -1054,6 +1055,7 @@
         sd.NAME,
         sd.id
         ) a
+        left  join  sys_user su  on su.id =a.userId
     </select>
     <select id="queryPageTaskStatisticsTotal"  resultType="java.lang.Long">
         select count(0) from (
@@ -1138,19 +1140,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 +1192,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 +1328,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>
@@ -1774,7 +1788,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}, '%')
@@ -1887,7 +1901,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}, '%')