Răsfoiți Sursa

1.人员电销导出
2.业务数据-代理人、报价次数,小订单
机构树隐藏渠道的工作室和团队

wuhp 1 an în urmă
părinte
comite
263709f316

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

@@ -63,6 +63,8 @@ public interface SysDeptMapper extends BaseMapper<SysDept> {
     List<SysDept> getFiveLevelDept(@Param("vo") SysDeptVo sysDeptVo);
 
     List<SysDept> queryFiveLevelDept(@Param("vo") SysDeptVo sysDeptVo);
+
+    List<SysDept> getListByIdsByKzt(List<String> deptIds);
 }
 
 

+ 13 - 0
src/main/java/com/ydtech/modules/admin/model/vo/BusinessAgentData.java

@@ -80,4 +80,17 @@ public class BusinessAgentData {
     @ApiModelProperty(value = "单三订单数")
     private String riskCodeDsan;
 
+
+    @ApiModelProperty(value = "毛利润")
+    private BigDecimal distributionAmount;
+
+    @ApiModelProperty(value = "毛利润占比")
+    private BigDecimal distributionAmountRate;
+
+    @ApiModelProperty(value = "入口金额")
+    private BigDecimal entranceAllFee;
+
+    @ApiModelProperty(value = "出口金额")
+    private BigDecimal exportAllFee;
+
 }

+ 1 - 3
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptServiceImpl.java

@@ -686,7 +686,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
         String name = BaseController.getUser().getName();
         List<SysDept> result = new ArrayList<>();
         if(!deptIds.isEmpty()){
-            List<SysDept> deptList = sysDeptMapper.getListByIds(deptIds);
+            List<SysDept> deptList = sysDeptMapper.getListByIdsByKzt(deptIds);
             // 使用一个Map来快速查找部门节点
             Map<String, SysDept> deptMap = new HashMap<>();
             for (SysDept dept : deptList) {
@@ -927,8 +927,6 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
         }else {
             return  new ArrayList<SysDeptTreeVo>();
         }
-
-
     }
 
     private void buildDeptTreeKzt(SysDept dept, Map<String, SysDept> deptMap) {

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

@@ -815,6 +815,16 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
         }else {
             result.setSumPremiumProportion(BigDecimal.ZERO);
         }
+        BigDecimal entranceAllFee = result.getEntranceAllFee() != null ? result.getEntranceAllFee() : BigDecimal.ZERO;
+        BigDecimal exportAllFee = result.getExportAllFee() != null ? result.getExportAllFee() : BigDecimal.ZERO;
+        BigDecimal subtract = entranceAllFee.subtract(exportAllFee);
+        result.setDistributionAmount(subtract); //毛利润
+        if(subtract.compareTo(BigDecimal.ZERO)>0){
+            BigDecimal resultDivided = subtract.divide(sumPremium, 2, RoundingMode.HALF_UP); //人均产能
+            result.setDistributionAmountRate(resultDivided);
+        }else {
+            result.setDistributionAmountRate(BigDecimal.ZERO);
+        }
         return result;
     }
     /**

+ 1 - 1
src/main/java/com/ydtech/modules/admin/service/impl/UserReportServiceImpl.java

@@ -429,7 +429,7 @@ public class UserReportServiceImpl implements UserReportService {
                 e.printStackTrace();
             }
         }
-        String fileName = EasyExcelUtils.downExcel(uploadPath, qxFrontlineAgentVo.getManagementSource() .equals("1") ? "人员渠道导出":"人员代理人导出", QxFrontlineAgentExcel.class, resultList);
+        String fileName = EasyExcelUtils.downExcel(uploadPath, qxFrontlineAgentVo.getManagementSource().equals("1") ? "人员渠道导出" : qxFrontlineAgentVo.getManagementSource().equals("3") ? "电销导出" :  "人员代理人导出", QxFrontlineAgentExcel.class, resultList);
         return HttpResult.ok("", uploadUrl + "excel/" + fileName);
     }
 

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

@@ -147,6 +147,7 @@
             sd.del_flag ='0'
             AND sd.id LIKE concat('%','9','%')
             AND sd.comlevel is not null
+            and  (sd.management_source != '1' or sd.management_source is null)
             <if test="vo.deptIds !=null and  vo.deptIds!=''  and  vo.deptIds.size()>0">
                 AND sd.id  in
                 <foreach collection="vo.deptIds" item="item" open="(" close=")" separator=",">
@@ -172,4 +173,22 @@
         </where>
     </select>
 
+    <select id="getListByIdsByKzt" resultType="com.ydtech.modules.admin.model.SysDept">
+        SELECT sd.id        AS id,
+        sd.NAME      AS NAME,
+        sd.parent_id  AS parentId,
+        sd.comlevel  AS comlevel
+        FROM sys_dept sd
+        <where>
+            (sd.management_source != '1' or sd.management_source is null)
+
+            <if test="ids!=null  and  ids !=''  and ids.size()>0">
+                sd.id  in
+                <foreach collection="ids" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
 </mapper>

+ 17 - 3
src/main/resources/mapper/modules/admin/TaskStatisticsMapper.xml

@@ -20,7 +20,9 @@
         IFNULL(a.riskCodeJshang,0) as "riskCodeJshang",
         IFNULL(a.riskCodeDs,0) as "riskCodeDs",
         IFNULL(a.riskCodeDsan,0) as "riskCodeDsan",
-        sd.management_source as "managementSource"
+        sd.management_source as "managementSource",
+        IFNULL(IFNULL(a.entranceAllFee,0) -IFNULL(a.exportAllFee,0),0)  as  "distributionAmount",
+        (IFNULL(IFNULL(a.entranceAllFee,0) -IFNULL(a.exportAllFee,0),0)) / a.sumpremium as "distributionAmountRate"
         from sys_user su
         left join sys_dept sd on sd.id =su.dept_id
         LEFT JOIN sys_user_role sur ON sur.user_id = su.id
@@ -36,10 +38,16 @@
         COUNT( CASE WHEN iac.product = '单交'  THEN 1 END ) AS "riskCodeDj",
         COUNT( CASE WHEN iac.product = '交商'  THEN 1 END ) AS "riskCodeJshang",
         COUNT( CASE WHEN iac.product = '单商'  THEN 1 END ) AS "riskCodeDs",
-        COUNT( CASE WHEN iac.product = '单三'  THEN 1 END ) AS "riskCodeDsan"
+        COUNT( CASE WHEN iac.product = '单三'  THEN 1 END ) AS "riskCodeDsan",
+        ROUND(sum(IFNULL(ifon.jq_costs_premiums,0) + IFNULL(ifon.sy_costs_premiums,0) + IFNULL
+        (ifon.no_costs_premiums,0)),2) as "entranceAllFee",
+        ROUND(sum(IFNULL(jq_export_other_costs_premiums,0) + IFNULL(jq_export_supervise_costs_premiums,0)
+        +IFNULL(sy_export_other_costs_premiums,0) +IFNULL(sy_export_supervise_costs_premiums,0)
+        +IFNULL(no_export_other_costs_premiums,0)+IFNULL(no_export_supervise_costs_premiums,0) ),2) as "exportAllFee"
         from ins_area_company iac
         left join ins_orders io on io.orderno =iac.orderno
         left join  sys_user  su  on su.id =io.userid
+        LEFT JOIN ins_fee_order_new ifon ON iac.id = ifon.ins_order_no
         <where>
             iac.orderstatus = '3'
             <if test="vo.createtimeStart  != null  and  vo.createtimeStart!=''  and vo.createtimeEnd  != null  and  vo.createtimeEnd!=''">
@@ -158,11 +166,17 @@
             IFNULL(sum(jqpremium),0) as "jqpremium",
             IFNULL(sum(sypremium),0) as "sypremium",
             IFNULL(sum(taxamount),0) as "taxamount",
-            IFNULL(sum(jypremium),0) as "jypremium"
+            IFNULL(sum(jypremium),0) as "jypremium",
+            ROUND(sum(IFNULL(ifon.jq_costs_premiums,0) + IFNULL(ifon.sy_costs_premiums,0) + IFNULL
+            (ifon.no_costs_premiums,0)),2) as "entranceAllFee",
+            ROUND(sum(IFNULL(jq_export_other_costs_premiums,0) + IFNULL(jq_export_supervise_costs_premiums,0)
+            +IFNULL(sy_export_other_costs_premiums,0) +IFNULL(sy_export_supervise_costs_premiums,0)
+            +IFNULL(no_export_other_costs_premiums,0)+IFNULL(no_export_supervise_costs_premiums,0) ),2) as "exportAllFee"
         from ins_area_company iac
                  left join ins_orders io on io.orderno =iac.orderno
                  left join sys_user su on io.userid =su.id
                  left join sys_dept sd on sd.id =su.dept_id
+                 LEFT JOIN ins_fee_order_new ifon ON iac.id = ifon.ins_order_no
         <where>
         iac.orderstatus = '3'
             <if test="vo.createtimeStart  != null  and  vo.createtimeStart!=''  and vo.createtimeEnd  != null  and  vo.createtimeEnd!=''">