Преглед изворни кода

新增统计日周月年客户与面谈

anderx пре 7 месеци
родитељ
комит
35b43015be

+ 106 - 0
src/main/java/com/goafanti/admin/bo/selectAllUserDataBo.java

@@ -0,0 +1,106 @@
+package com.goafanti.admin.bo;
+
+import com.goafanti.common.utils.excel.Excel;
+
+public class selectAllUserDataBo {
+    @Excel(name = "部门名称")
+    private String depName;
+    @Excel(name = "管理员名称")
+    private String name;
+    @Excel(name = "日客户")
+    private Integer dayCustomer;
+    @Excel(name = "日面谈")
+    private Integer dayMeet;
+    @Excel(name = "周客户")
+    private Integer weekCustomer;
+    @Excel(name = "周面谈")
+    private Integer weekMeet;
+    @Excel(name = "月客户")
+    private Integer monthCustomer;
+    @Excel(name = "月面谈")
+    private Integer monthMeet;
+    @Excel(name = "年客户")
+    private Integer yearCustomer;
+    @Excel(name = "年面谈")
+    private Integer yearMeet;
+
+    public String getDepName() {
+        return depName;
+    }
+
+    public void setDepName(String depName) {
+        this.depName = depName;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getDayCustomer() {
+        return dayCustomer;
+    }
+
+    public void setDayCustomer(Integer dayCustomer) {
+        this.dayCustomer = dayCustomer;
+    }
+
+    public Integer getDayMeet() {
+        return dayMeet;
+    }
+
+    public void setDayMeet(Integer dayMeet) {
+        this.dayMeet = dayMeet;
+    }
+
+    public Integer getWeekCustomer() {
+        return weekCustomer;
+    }
+
+    public void setWeekCustomer(Integer weekCustomer) {
+        this.weekCustomer = weekCustomer;
+    }
+
+    public Integer getWeekMeet() {
+        return weekMeet;
+    }
+
+    public void setWeekMeet(Integer weekMeet) {
+        this.weekMeet = weekMeet;
+    }
+
+    public Integer getMonthCustomer() {
+        return monthCustomer;
+    }
+
+    public void setMonthCustomer(Integer monthCustomer) {
+        this.monthCustomer = monthCustomer;
+    }
+
+    public Integer getMonthMeet() {
+        return monthMeet;
+    }
+
+    public void setMonthMeet(Integer monthMeet) {
+        this.monthMeet = monthMeet;
+    }
+
+    public Integer getYearCustomer() {
+        return yearCustomer;
+    }
+
+    public void setYearCustomer(Integer yearCustomer) {
+        this.yearCustomer = yearCustomer;
+    }
+
+    public Integer getYearMeet() {
+        return yearMeet;
+    }
+
+    public void setYearMeet(Integer yearMeet) {
+        this.yearMeet = yearMeet;
+    }
+}

+ 14 - 0
src/main/java/com/goafanti/admin/controller/AdminStatisticsController.java

@@ -2,6 +2,7 @@ package com.goafanti.admin.controller;
 
 import com.goafanti.admin.bo.AdminPublicDuration;
 import com.goafanti.admin.bo.AdminPublicDurationCount;
+import com.goafanti.admin.bo.selectAllUserDataBo;
 import com.goafanti.admin.service.AdminStatisticsService;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.controller.CertifyApiController;
@@ -13,6 +14,7 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -174,4 +176,16 @@ public class AdminStatisticsController extends CertifyApiController {
         }
     }
 
+
+    /**
+     * 统计日周月年客户与面谈
+     */
+    @RequestMapping(value = "/AllDataExport", method = RequestMethod.GET)
+    public Result AllDataExport( HttpServletResponse response) {
+        List<selectAllUserDataBo> list = adminStatisticsService.AllDataExport();
+        NewExcelUtil<selectAllUserDataBo> newExcelUtil=new NewExcelUtil<>(selectAllUserDataBo.class);
+        return newExcelUtil.exportExcel(list,"统计所有用户数据",response);
+
+    }
+
 }

+ 5 - 0
src/main/java/com/goafanti/admin/service/AdminStatisticsService.java

@@ -1,5 +1,8 @@
 package com.goafanti.admin.service;
 
+import com.goafanti.admin.bo.selectAllUserDataBo;
+
+import java.util.List;
 import java.util.Map;
 
 public interface AdminStatisticsService {
@@ -20,4 +23,6 @@ public interface AdminStatisticsService {
     Object salesTeamClean();
 
     Map<String,Object> monthData(String month);
+
+    List<selectAllUserDataBo> AllDataExport();
 }

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

@@ -610,6 +610,54 @@ public class AdminStatisticsServiceImpl implements AdminStatisticsService {
         return map;
     }
 
+    @Override
+    public List<selectAllUserDataBo> AllDataExport() {
+        // 获取今天,明天,本周第一天,下周第一天,本月第一天,下月第一天,本年第一天,下年第一天
+        Date today = new Date();
+        //获取明天
+        Calendar md = Calendar.getInstance();
+        md.setTime(today);
+        md.add(Calendar.DATE, 1);
+        Date tomorrow = md.getTime();
+        //获取本周的第一天
+        Date firstDayOfWeek = DateUtils.getFirstDayOfWeek(today);
+        //获取下周的第一天
+        Calendar c = Calendar.getInstance();
+        c.setTime(firstDayOfWeek);
+        c.add(Calendar.DATE, 7);
+        Date firstDayOfNextWeek = c.getTime();
+        //获取本月的第一天
+        Date firstDayOfMonth = DateUtils.getFirstDayOfMonth(today);
+        //获取下月的第一天
+        Calendar c2 = Calendar.getInstance();
+        c2.setTime(firstDayOfMonth);
+        c2.add(Calendar.MONTH, 1);
+        Date firstDayOfNextMonth = c2.getTime();
+        //获取本年的第一天
+        Calendar c3 = Calendar.getInstance();
+        c3.setTime(today);
+        c3.set(Calendar.DAY_OF_YEAR, 1);
+        c3.set(Calendar.HOUR_OF_DAY, 0);
+        Date firstDayOfYear = c3.getTime();
+        //获取下年的第一天
+        Calendar c4 = Calendar.getInstance();
+        c4.setTime(firstDayOfYear);
+        c4.add(Calendar.YEAR, 1);
+        Date firstDayOfNextYear = c4.getTime();
+        // 将日期转换为字符串
+        String d1 = DateUtils.formatDate(today, AFTConstants.YYYYMMDD);
+        String d2 = DateUtils.formatDate(tomorrow, AFTConstants.YYYYMMDD);
+        String w1 = DateUtils.formatDate(firstDayOfWeek, AFTConstants.YYYYMMDD);
+        String w2 = DateUtils.formatDate(firstDayOfNextWeek, AFTConstants.YYYYMMDD);
+        String m1 = DateUtils.formatDate(firstDayOfMonth, AFTConstants.YYYYMMDD);
+        String m2 = DateUtils.formatDate(firstDayOfNextMonth, AFTConstants.YYYYMMDD);
+        String y1 = DateUtils.formatDate(firstDayOfYear, AFTConstants.YYYYMMDD);
+        String y2 = DateUtils.formatDate(firstDayOfNextYear, AFTConstants.YYYYMMDD);
+
+        List<selectAllUserDataBo> list = adminMapper.selectAllUserData(d1, d2, w1, w2, m1, m2, y1, y2);
+
+        return list;
+    }
 
 
     private void pushAdminNameAndProvince(String aid, AdminPublicDuration a) {

+ 2 - 0
src/main/java/com/goafanti/common/dao/AdminMapper.java

@@ -284,6 +284,8 @@ public interface AdminMapper {
     AdminStatisticsBo selectUserCount(@Param("aid") String aid, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
     void updateManagerId(Admin ad);
+
+    List<selectAllUserDataBo> selectAllUserData(@Param("d1") String d1, @Param("d2") String d2, @Param("w1") String w1, @Param("w2") String w2, @Param("m1") String m1, @Param("m2") String m2, @Param("y1") String y1, @Param("y2") String y2);
 }
 
 

+ 44 - 0
src/main/java/com/goafanti/common/mapper/AdminMapper.xml

@@ -1332,5 +1332,49 @@
         AND aid = #{aid}
         group by aid
     </select>
+    <select id="selectAllUserData" resultType="com.goafanti.admin.bo.selectAllUserDataBo">
+        select dep.name depName,a.name ,ifnull(b.counts,0) dayCustomer,ifnull(c.counts,0) dayMeet,ifnull(b1.counts,0) weekCustomer,ifnull(c1.counts,0) weekMeet,
+               ifnull(b2.counts,0) monthCustomer,ifnull(c2.counts,0) monthMeet,ifnull(b3.counts,0) yearCustomer,ifnull(c3.counts,0) yearMeet
+        from admin a
+                 left join (select aid ,count(*)counts  from user
+                            where share_type in (0,2)and source in (1,2)
+                              and transfer_time BETWEEN #{d1} and #{d2}
+                            group by aid) b on a.id =b.aid
+                 left join (SELECT a.aid,count(*) counts
+                            from public_release a left join public_release_details b on a.id =b.prid
+                            where a.status =2 and b.clock_in =1
+                              and  a.release_start BETWEEN #{d1} and #{d2}
+                            group by a.aid)c on a.id=c.aid
+                 left join (select aid ,count(*)counts  from user
+                            where share_type in (0,2)and source in (1,2)
+                              and transfer_time BETWEEN #{w1} and #{w2}
+                            group by aid) b1 on a.id =b1.aid
+                 left join (SELECT a.aid,count(*) counts
+                            from public_release a left join public_release_details b on a.id =b.prid
+                            where a.status =2 and b.clock_in =1
+                              and  a.release_start BETWEEN #{w1} and #{w2}
+                            group by a.aid)c1 on a.id=c1.aid
+                 left join (select aid ,count(*)counts  from user
+                            where share_type in (0,2)and source in (1,2)
+                              and transfer_time BETWEEN #{m1} and #{m2}
+                            group by aid) b2 on a.id =b2.aid
+                 left join (SELECT a.aid,count(*) counts
+                            from public_release a left join public_release_details b on a.id =b.prid
+                            where a.status =2 and b.clock_in =1
+                              and  a.release_start BETWEEN #{m1} and #{m2}
+                            group by a.aid)c2 on a.id=c2.aid
+                 left join (select aid ,count(*)counts  from user
+                            where share_type in (0,2)and source in (1,2)
+                              and transfer_time BETWEEN #{y1} and #{y2}
+                            group by aid) b3 on a.id =b3.aid
+                 left join (SELECT a.aid,count(*) counts
+                            from public_release a left join public_release_details b on a.id =b.prid
+                            where a.status =2 and b.clock_in =1
+                              and  a.release_start BETWEEN  #{y1} and #{y2}
+                            group by a.aid)c3 on a.id=c3.aid
+                 left join user_role d on a.id =d.uid left join `role` e on d.rid =e.id
+                 left join department dep on a.department_id =dep.id
+        where a.status ='0' and e.role_type in ('96','996')
+    </select>
 </mapper>
 

+ 1 - 0
src/main/java/com/goafanti/common/utils/DateUtils.java

@@ -144,6 +144,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
 		calendar.setFirstDayOfWeek(Calendar.SUNDAY);
 		calendar.setTime(date);
 		calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek()); // Sunday
+		calendar.add(Calendar.DATE, 1);
 		setMidnight(calendar);
 		return calendar.getTime();
 	}