Răsfoiți Sursa

1.业务数据代理人渠道 电销 都显示所有人 然后添加管理人
2.任务-供应商 当天和29号数据不一样

wuhp 1 an în urmă
părinte
comite
83672fea94

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

@@ -147,6 +147,17 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
             taskStatisticsVo.setCountyId(countyId);
         }
 
+        if(StringUtils.isNotEmpty(taskStatisticsVo.getDays())){
+            if("7".equals(taskStatisticsVo.getDays())){
+                taskStatisticsVo.setDays("2");
+            } else if ("30".equals(taskStatisticsVo.getDays())) {
+                taskStatisticsVo.setDays("3");
+            }
+        }
+        HashMap<String, String> dateMapByType = getDateMapByTypeNew(taskStatisticsVo.getDays(), taskStatisticsVo.getCreatetimeStart(), taskStatisticsVo.getCreatetimeEnd());
+        taskStatisticsVo.setCreatetimeStart(dateMapByType.get("startDate"));
+        taskStatisticsVo.setCreatetimeEnd(dateMapByType.get("endDate"));
+
         PageVo<TaskStatisticsVo> pageVo = new PageVo<>();
         Page page = new Page(taskStatisticsVo.getPageNum(), taskStatisticsVo.getPageSize());
         page.setSearchCount(false).setOptimizeCountSql(false);//关闭count查询
@@ -556,8 +567,8 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
         result.setTotalNumber(total.toString());
         BigDecimal sumPremium = result.getSumPremium();
         BusinessAgentData allsumPremium = this.taskStatisticsMapper.getAllsumPremium(taskStatisticsVo);
-        BigDecimal sumPremium1 = allsumPremium.getSumPremium();
         if(ObjectUtils.isNotEmpty(sumPremium)){
+            BigDecimal sumPremium1 = allsumPremium.getSumPremium();
             if(sumPremium.compareTo(BigDecimal.ZERO) ==1){
                 BigDecimal multiply = sumPremium.divide(sumPremium1, 2, BigDecimal.ROUND_DOWN);
                 result.setSumPremiumProportion(multiply);

+ 40 - 65
src/main/resources/mapper/modules/admin/TaskStatisticsMapper.xml

@@ -6,42 +6,36 @@
 
     <select id="getBusinessAgentData" resultType="com.ydtech.modules.admin.model.vo.BusinessAgentData">
         select
-        io.userid as "userId",
+        su.id as "userId",
         su.name as "userName",
         sd.id as "deptId",
+        IFNULL(a.sumpremium,0) as "sumpremium",
+        IFNULL(a.jqpremium,0) as "jqpremium",
+        IFNULL(a.sypremium,0) as "sypremium",
+        IFNULL(a.taxamount,0) as "taxamount",
+        IFNULL(a.jypremium,0) as "jypremium",
+        sd.management_source as "managementSource"
+        from sys_user su
+        left join sys_dept sd on sd.id =su.dept_id
+        left join (
+        select
+        io.userid as "userId",
         sum(IFNULL(jqpremium, 0) + IFNULL(sypremium, 0)+ IFNULL(jypremium, 0)) as "sumpremium",
         IFNULL(sum(jqpremium),0) as "jqpremium",
         IFNULL(sum(sypremium),0) as "sypremium",
         IFNULL(sum(taxamount),0) as "taxamount",
-        IFNULL(sum(jypremium),0) as "jypremium",
-        sd.management_source as "managementSource"
+        IFNULL(sum(jypremium),0) as "jypremium"
         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
         <where>
             iac.orderstatus = '3'
             <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')
+                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.userId !=null  and vo.userId!=''">
-                and su.id=#{vo.userId}
-            </if>
-
-            <if test="vo.managementSource !=null  and vo.managementSource!=''">
-                and sd.management_source=#{vo.managementSource}
-            </if>
-
-            <if test="vo.userIds  !=null  and vo.userIds!=''  and vo.userIds.size()>0">
-                and su.id in
-                <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
-            </if>
             <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
-                AND io.deptid  in
+                AND io.deptid in
                 <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
                     #{item}
                 </foreach>
@@ -50,74 +44,55 @@
             <if test="vo.deptId !=null  and vo.deptId!=''">
                 and io.deptid like concat('%',#{vo.deptId},'%')
             </if>
-
+        </where>
+        group by io.userid
+        ) a  on  a.userId  =su.id
+        <where>
+            1=1
+            <if test="vo.userId !=null  and vo.userId!=''">
+                and su.id=#{vo.userId}
+            </if>
+            <if test="vo.userIds  !=null  and vo.userIds!=''  and vo.userIds.size()>0">
+                and su.id in
+                <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
             <if test="vo.userName !=null  and vo.userName!=''">
                 and su.name=#{vo.userName}
             </if>
+
+            <if test="vo.managementSource !=null  and vo.managementSource!=''">
+                and sd.management_source=#{vo.managementSource}
+            </if>
         </where>
-        group by io.userid,su.name,sd.management_source,sd.id
+        order by  a.sumpremium  desc
     </select>
 
     <select id="getBusinessAgentDataTotal" resultType="java.lang.Long">
         select
-            count(0)
-        from  (
-        select
-        io.userid
-        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
+        COUNT(0)
+        from sys_user su
         left join sys_dept sd on sd.id =su.dept_id
-
         <where>
-            iac.orderstatus = '3'
-            <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.days !=null  and vo.days !=''  and vo.days != 0 ">
-                and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{vo.days} DAY)
-            </if>
-
-            <if test="vo.userName !=null  and vo.userName!=''">
-                and su.name=#{vo.userName}
-            </if>
-
+            1=1
             <if test="vo.userId !=null  and vo.userId!=''">
                 and su.id=#{vo.userId}
             </if>
-
             <if test="vo.userIds  !=null  and vo.userIds!=''  and vo.userIds.size()>0">
                 and su.id in
                 <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
                     #{item}
                 </foreach>
             </if>
-
-            <if test="vo.deptId !=null  and vo.deptId!=''">
-                and io.deptid like concat('%',#{vo.deptId},'%')
+            <if test="vo.userName !=null  and vo.userName!=''">
+                and su.name=#{vo.userName}
             </if>
 
             <if test="vo.managementSource !=null  and vo.managementSource!=''">
                 and sd.management_source=#{vo.managementSource}
             </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>
         </where>
-        group by io.userid
-              ) a
     </select>
 
     <select id="getBusinessAgentDataTotalAdd" resultType="com.ydtech.modules.admin.model.vo.BusinessAgentData">

+ 1 - 7
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -1276,9 +1276,6 @@
                 AND  iac.company_id =#{taskStatisticsVo.companyId}
             </if>
 
-            <if test="taskStatisticsVo.days !=null  and taskStatisticsVo.days !='' ">
-                and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
-            </if>
             <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
                 AND io.deptid  in
                 <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
@@ -1330,15 +1327,12 @@
                 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}
+                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   iac.signing_time   BETWEEN #{taskStatisticsVo.beginDate} AND #{taskStatisticsVo.endDate}
             </if>
 
-            <if test="taskStatisticsVo.days !=null  and taskStatisticsVo.days !='' ">
-                and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
-            </if>
             <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
                 AND io.deptid  in
                 <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">