Browse Source

新增个人呼叫统计

anderx 1 year ago
parent
commit
f0ad293027

+ 18 - 0
src/main/java/com/goafanti/admin/bo/AdminStatisticsBo.java

@@ -21,6 +21,24 @@ public class AdminStatisticsBo {
     private Integer rangeOrderSum;
     private Integer projectStopSum;
     private Integer projectCheckSum;
+    private Integer callSum;
+    private BigDecimal callDurationSum;
+
+    public Integer getCallSum() {
+        return callSum;
+    }
+
+    public void setCallSum(Integer callSum) {
+        this.callSum = callSum;
+    }
+
+    public BigDecimal getCallDurationSum() {
+        return callDurationSum;
+    }
+
+    public void setCallDurationSum(BigDecimal callDurationSum) {
+        this.callDurationSum = callDurationSum;
+    }
 
     public BigDecimal getReceivables() {
         return receivables;

+ 8 - 0
src/main/java/com/goafanti/admin/service/impl/AdminStatisticsServiceImpl.java

@@ -7,6 +7,7 @@ import com.goafanti.admin.bo.OutFinanceCount;
 import com.goafanti.admin.service.AdminStatisticsService;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.dao.AdminMapper;
+import com.goafanti.common.dao.CallLogMapper;
 import com.goafanti.common.dao.FinanceCountMapper;
 import com.goafanti.common.dao.PublicReleaseMapper;
 import com.goafanti.common.model.AdminUserCount;
@@ -15,6 +16,7 @@ import com.goafanti.core.shiro.token.TokenManager;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.*;
 
@@ -29,6 +31,8 @@ public class AdminStatisticsServiceImpl implements AdminStatisticsService {
     private PublicReleaseMapper publicReleaseMapper;
     @Autowired
     private FinanceCountMapper financeCountMapper;
+    @Resource
+    private CallLogMapper callLogMapper;
 
 
     @Override
@@ -57,6 +61,10 @@ public class AdminStatisticsServiceImpl implements AdminStatisticsService {
         adminStatisticsBo.setRangePublicReleaseSum(rangePublicReleaseSum);
         BigDecimal rangeReceivables=adminMapper.addAdminContactsRangeReceivables(aid,startTime,endTime);
         adminStatisticsBo.setRangeReceivables(rangeReceivables);
+        //添加外呼数据
+        AdminStatisticsBo as=callLogMapper.selectAdminCallSum(aid,startTime,endTime);
+        if (as.getCallSum()!=null)adminStatisticsBo.setCallSum(as.getCallSum());
+        if (as.getCallDurationSum()!=null)adminStatisticsBo.setCallDurationSum(as.getCallDurationSum());
         return adminStatisticsBo;
     }
 

+ 4 - 0
src/main/java/com/goafanti/common/dao/CallLogMapper.java

@@ -1,5 +1,6 @@
 package com.goafanti.common.dao;
 
+import com.goafanti.admin.bo.AdminStatisticsBo;
 import com.goafanti.common.model.CallLog;
 import org.apache.ibatis.annotations.Param;
 
@@ -80,5 +81,8 @@ public interface CallLogMapper {
     int deleteById(Integer id);
 
     List<CallLog> selectByUid(String uid);
+
+
+    AdminStatisticsBo selectAdminCallSum(@Param("aid") String aid, @Param("startTime") String startTime, @Param("endTime") String endTime);
 }
 

+ 19 - 0
src/main/java/com/goafanti/common/mapper/CallLogMapper.xml

@@ -144,6 +144,7 @@
         create_time = values(create_time)
     </insert>
 
+
     <!--通过主键修改数据-->
     <update id="update">
         update call_log
@@ -192,5 +193,23 @@
         from call_log
         where uid = #{uid}
     </select>
+    <select id="selectAdminCallSum" resultType="com.goafanti.admin.bo.AdminStatisticsBo">
+        SELECT x.id,sum(x.duration) callDurationSum,count(*)counts callSum
+        from (SELECT a.id,b.duration ,b.create_time
+              from admin a  left join call_log b on a.id =b.aid
+              where  b.duration >0
+        <if test="aid ==null">
+            and   a.call_no >0
+        </if>
+        <if test="aid ==null">
+            and a.id= #{aid}
+        </if>
+        <if test="startTime !=null">
+            and   b.create_time BETWEEN #{startTime} and #{endTime}
+        </if>
+                )x group by x.id
+    </select>
+
+
 </mapper>