|
@@ -0,0 +1,634 @@
|
|
|
|
+package com.fs.company.controller;
|
|
|
|
+
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
|
+import com.fs.common.core.controller.BaseController;
|
|
|
|
+import com.fs.common.core.domain.AjaxResult;
|
|
|
|
+import com.fs.common.core.domain.R;
|
|
|
|
+import com.fs.common.utils.StringUtils;
|
|
|
|
+import com.fs.common.utils.TimeUtils;
|
|
|
|
+import com.fs.common.utils.poi.ExcelUtil;
|
|
|
|
+import com.fs.company.domain.CompanyUser;
|
|
|
|
+import com.fs.company.param.CompanyStatisticsParam;
|
|
|
|
+import com.fs.company.param.FsStoreStatisticsParam;
|
|
|
|
+import com.fs.company.service.ICompanySmsLogsService;
|
|
|
|
+import com.fs.company.service.ICompanyUserService;
|
|
|
|
+import com.fs.company.service.ICompanyVoiceLogsService;
|
|
|
|
+import com.fs.company.vo.CompanySmsLogsStatisticsVO;
|
|
|
|
+import com.fs.company.vo.CompanyVoiceLogsStatisticsVO;
|
|
|
|
+import com.fs.company.vo.FsStoreOrderStatisticsVO;
|
|
|
|
+import com.fs.company.vo.FsStorePaymentStatisticsVO;
|
|
|
|
+import com.fs.crm.param.CrmCustomerStatisticsParam;
|
|
|
|
+import com.fs.crm.service.ICrmCustomerService;
|
|
|
|
+import com.fs.crm.service.ICrmCustomerVisitService;
|
|
|
|
+import com.fs.crm.vo.CrmCustomerStatisticsVO;
|
|
|
|
+import com.fs.crm.vo.CrmCustomerVisitStatisticsVO;
|
|
|
|
+import com.fs.his.service.IFsStoreOrderService;
|
|
|
|
+import com.fs.his.service.IFsStorePaymentService;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
|
+import org.springframework.web.bind.annotation.GetMapping;
|
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
|
+
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * 统计
|
|
|
|
+ *
|
|
|
|
+ * @author fs
|
|
|
|
+ * @date 2021-03-22
|
|
|
|
+ */
|
|
|
|
+@RestController
|
|
|
|
+@RequestMapping("/company/statistics")
|
|
|
|
+public class CompanyStatisticsController extends BaseController
|
|
|
|
+{
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ICompanyUserService userService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private IFsStoreOrderService storeOrderService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private IFsStorePaymentService storePaymentService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ICompanyVoiceLogsService voiceLogsService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ICompanySmsLogsService smsLogsService;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ICrmCustomerService crmCustomerService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ICrmCustomerVisitService crmCustomerVisitService;
|
|
|
|
+ @GetMapping("/storeOrder")
|
|
|
|
+ public R storeOrder(FsStoreStatisticsParam param)
|
|
|
|
+ {
|
|
|
|
+ if(StringUtils.isNotEmpty(param.getUserIds())){
|
|
|
|
+ String[] userIds=param.getUserIds().split(",");
|
|
|
|
+ Long[] ids=new Long[userIds.length];
|
|
|
|
+ for(int i=0;i<ids.length; i++){
|
|
|
|
+ ids[i]=Long.parseLong(userIds[i]);
|
|
|
|
+ }
|
|
|
|
+ param.setUsers(ids);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //获取部门下的所有用户
|
|
|
|
+ CompanyUser usermap=new CompanyUser();
|
|
|
|
+ usermap.setDeptId(param.getDeptId());
|
|
|
|
+ List<CompanyUser> users = userService.getUserListByDeptId(usermap);
|
|
|
|
+ List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
|
|
|
|
+ param.setUsers(userIds.toArray(new Long[userIds.size()]));
|
|
|
|
+ }
|
|
|
|
+ if(param.getUsers()!=null&¶m.getUsers().length>0){
|
|
|
|
+ List<FsStoreOrderStatisticsVO> list= storeOrderService.selectFsStoreOrderStatisticsList(param);
|
|
|
|
+
|
|
|
|
+ TimeUtils.TimeEntity timeEntity= TimeUtils.parseTime(param.getType().toString(),param.getStartTime(),param.getEndTime());
|
|
|
|
+ timeEntity.setUserIds(param.getUsers());
|
|
|
|
+ Integer cycleNum = timeEntity.getCycleNum();
|
|
|
|
+ Integer beginTime = timeEntity.getBeginTime();
|
|
|
|
+ List<Integer> timeList = new ArrayList<>();
|
|
|
|
+ for (int i = 1; i <= cycleNum; i++) {
|
|
|
|
+ timeList.add(beginTime);
|
|
|
|
+ beginTime = TimeUtils.formatTime(beginTime);
|
|
|
|
+ }
|
|
|
|
+ List<JSONObject> jsonObjectList = storeOrderService.selectFsStoreOrderCounts(timeEntity.toMap());
|
|
|
|
+ List<String> dates = jsonObjectList.stream().map(jsonObject -> jsonObject.getString("type")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> orderCount = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("orderCount")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> payPrice = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("payPrice")).collect(Collectors.toList());
|
|
|
|
+ return R.ok().put("list",list).put("dates",dates).put("orderCount",orderCount).put("payPrice",payPrice);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ return R.ok("未查找到数据");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @GetMapping("/packageOrder")
|
|
|
|
+ public R storePackageOrder(FsStoreStatisticsParam param)
|
|
|
|
+ {
|
|
|
|
+ if(StringUtils.isNotEmpty(param.getUserIds())){
|
|
|
|
+ String[] userIds=param.getUserIds().split(",");
|
|
|
|
+ Long[] ids=new Long[userIds.length];
|
|
|
|
+ for(int i=0;i<ids.length; i++){
|
|
|
|
+ ids[i]=Long.parseLong(userIds[i]);
|
|
|
|
+ }
|
|
|
|
+ param.setUsers(ids);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //获取部门下的所有用户
|
|
|
|
+ CompanyUser usermap=new CompanyUser();
|
|
|
|
+ usermap.setDeptId(param.getDeptId());
|
|
|
|
+ List<CompanyUser> users = userService.getUserListByDeptId(usermap);
|
|
|
|
+ List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
|
|
|
|
+ param.setUsers(userIds.toArray(new Long[userIds.size()]));
|
|
|
|
+ }
|
|
|
|
+ if(param.getUsers()!=null&¶m.getUsers().length>0){
|
|
|
|
+ List<FsStoreOrderStatisticsVO> list= storeOrderService.selectFsPackageOrderStatisticsList(param);
|
|
|
|
+
|
|
|
|
+ TimeUtils.TimeEntity timeEntity= TimeUtils.parseTime(param.getType().toString(),param.getStartTime(),param.getEndTime());
|
|
|
|
+ timeEntity.setUserIds(param.getUsers());
|
|
|
|
+ Integer cycleNum = timeEntity.getCycleNum();
|
|
|
|
+ Integer beginTime = timeEntity.getBeginTime();
|
|
|
|
+ List<Integer> timeList = new ArrayList<>();
|
|
|
|
+ for (int i = 1; i <= cycleNum; i++) {
|
|
|
|
+ timeList.add(beginTime);
|
|
|
|
+ beginTime = TimeUtils.formatTime(beginTime);
|
|
|
|
+ }
|
|
|
|
+ List<JSONObject> jsonObjectList = storeOrderService.selectFsPackageOrderCounts(timeEntity.toMap());
|
|
|
|
+ List<String> dates = jsonObjectList.stream().map(jsonObject -> jsonObject.getString("type")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> orderCount = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("orderCount")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> payPrice = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("payPrice")).collect(Collectors.toList());
|
|
|
|
+ return R.ok().put("list",list).put("dates",dates).put("orderCount",orderCount).put("payPrice",payPrice);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ return R.ok("未查找到数据");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @GetMapping("/inquiryOrder")
|
|
|
|
+ public R storeInquiryOrder(FsStoreStatisticsParam param)
|
|
|
|
+ {
|
|
|
|
+ if(StringUtils.isNotEmpty(param.getUserIds())){
|
|
|
|
+ String[] userIds=param.getUserIds().split(",");
|
|
|
|
+ Long[] ids=new Long[userIds.length];
|
|
|
|
+ for(int i=0;i<ids.length; i++){
|
|
|
|
+ ids[i]=Long.parseLong(userIds[i]);
|
|
|
|
+ }
|
|
|
|
+ param.setUsers(ids);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //获取部门下的所有用户
|
|
|
|
+ CompanyUser usermap=new CompanyUser();
|
|
|
|
+ usermap.setDeptId(param.getDeptId());
|
|
|
|
+ List<CompanyUser> users = userService.getUserListByDeptId(usermap);
|
|
|
|
+ List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
|
|
|
|
+ param.setUsers(userIds.toArray(new Long[userIds.size()]));
|
|
|
|
+ }
|
|
|
|
+ if(param.getUsers()!=null&¶m.getUsers().length>0){
|
|
|
|
+ List<FsStoreOrderStatisticsVO> list= storeOrderService.selectFsInquiryOrderStatisticsList(param);
|
|
|
|
+
|
|
|
|
+ TimeUtils.TimeEntity timeEntity= TimeUtils.parseTime(param.getType().toString(),param.getStartTime(),param.getEndTime());
|
|
|
|
+ timeEntity.setUserIds(param.getUsers());
|
|
|
|
+ Integer cycleNum = timeEntity.getCycleNum();
|
|
|
|
+ Integer beginTime = timeEntity.getBeginTime();
|
|
|
|
+ List<Integer> timeList = new ArrayList<>();
|
|
|
|
+ for (int i = 1; i <= cycleNum; i++) {
|
|
|
|
+ timeList.add(beginTime);
|
|
|
|
+ beginTime = TimeUtils.formatTime(beginTime);
|
|
|
|
+ }
|
|
|
|
+ List<JSONObject> jsonObjectList = storeOrderService.selectFsInquiryOrderCounts(timeEntity.toMap());
|
|
|
|
+ List<String> dates = jsonObjectList.stream().map(jsonObject -> jsonObject.getString("type")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> orderCount = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("orderCount")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> payPrice = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("payPrice")).collect(Collectors.toList());
|
|
|
|
+ return R.ok().put("list",list).put("dates",dates).put("orderCount",orderCount).put("payPrice",payPrice);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ return R.ok("未查找到数据");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @GetMapping("/exportStoreOrder")
|
|
|
|
+ public AjaxResult exportStoreOrder(FsStoreStatisticsParam param)
|
|
|
|
+ {
|
|
|
|
+ if(StringUtils.isNotEmpty(param.getUserIds())){
|
|
|
|
+ String[] userIds=param.getUserIds().split(",");
|
|
|
|
+ Long[] ids=new Long[userIds.length];
|
|
|
|
+ for(int i=0;i<ids.length; i++){
|
|
|
|
+ ids[i]=Long.parseLong(userIds[i]);
|
|
|
|
+ }
|
|
|
|
+ param.setUsers(ids);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //获取所有员工
|
|
|
|
+ CompanyUser usermap=new CompanyUser();
|
|
|
|
+ usermap.setDeptId(param.getDeptId());
|
|
|
|
+ List<CompanyUser> users = userService.getUserListByDeptId(usermap);
|
|
|
|
+ List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
|
|
|
|
+ param.setUsers(userIds.toArray(new Long[userIds.size()]));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<FsStoreOrderStatisticsVO> list= storeOrderService.selectFsStoreOrderStatisticsList(param);
|
|
|
|
+
|
|
|
|
+ ExcelUtil<FsStoreOrderStatisticsVO> util = new ExcelUtil<FsStoreOrderStatisticsVO>(FsStoreOrderStatisticsVO.class);
|
|
|
|
+ return util.exportExcel(list, "orderLogs");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @GetMapping("/exportPackageOrder")
|
|
|
|
+ public AjaxResult exportPackageOrder(FsStoreStatisticsParam param)
|
|
|
|
+ {
|
|
|
|
+ if(StringUtils.isNotEmpty(param.getUserIds())){
|
|
|
|
+ String[] userIds=param.getUserIds().split(",");
|
|
|
|
+ Long[] ids=new Long[userIds.length];
|
|
|
|
+ for(int i=0;i<ids.length; i++){
|
|
|
|
+ ids[i]=Long.parseLong(userIds[i]);
|
|
|
|
+ }
|
|
|
|
+ param.setUsers(ids);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //获取所有员工
|
|
|
|
+ CompanyUser usermap=new CompanyUser();
|
|
|
|
+ usermap.setDeptId(param.getDeptId());
|
|
|
|
+ List<CompanyUser> users = userService.getUserListByDeptId(usermap);
|
|
|
|
+ List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
|
|
|
|
+ param.setUsers(userIds.toArray(new Long[userIds.size()]));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<FsStoreOrderStatisticsVO> list= storeOrderService.selectFsPackageOrderStatisticsList(param);
|
|
|
|
+
|
|
|
|
+ ExcelUtil<FsStoreOrderStatisticsVO> util = new ExcelUtil<FsStoreOrderStatisticsVO>(FsStoreOrderStatisticsVO.class);
|
|
|
|
+ return util.exportExcel(list, "orderLogs");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @GetMapping("/exportInquiryOrder")
|
|
|
|
+ public AjaxResult exportInquiryOrder(FsStoreStatisticsParam param)
|
|
|
|
+ {
|
|
|
|
+ if(StringUtils.isNotEmpty(param.getUserIds())){
|
|
|
|
+ String[] userIds=param.getUserIds().split(",");
|
|
|
|
+ Long[] ids=new Long[userIds.length];
|
|
|
|
+ for(int i=0;i<ids.length; i++){
|
|
|
|
+ ids[i]=Long.parseLong(userIds[i]);
|
|
|
|
+ }
|
|
|
|
+ param.setUsers(ids);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //获取所有员工
|
|
|
|
+ CompanyUser usermap=new CompanyUser();
|
|
|
|
+ usermap.setDeptId(param.getDeptId());
|
|
|
|
+ List<CompanyUser> users = userService.getUserListByDeptId(usermap);
|
|
|
|
+ List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
|
|
|
|
+ param.setUsers(userIds.toArray(new Long[userIds.size()]));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<FsStoreOrderStatisticsVO> list= storeOrderService.selectFsInquiryOrderStatisticsList(param);
|
|
|
|
+
|
|
|
|
+ ExcelUtil<FsStoreOrderStatisticsVO> util = new ExcelUtil<FsStoreOrderStatisticsVO>(FsStoreOrderStatisticsVO.class);
|
|
|
|
+ return util.exportExcel(list, "orderLogs");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @GetMapping("/storePayment")
|
|
|
|
+ public R storePayment(FsStoreStatisticsParam param)
|
|
|
|
+ {
|
|
|
|
+ if(StringUtils.isNotEmpty(param.getUserIds())){
|
|
|
|
+ String[] userIds=param.getUserIds().split(",");
|
|
|
|
+ Long[] ids=new Long[userIds.length];
|
|
|
|
+ for(int i=0;i<ids.length; i++){
|
|
|
|
+ ids[i]=Long.parseLong(userIds[i]);
|
|
|
|
+ }
|
|
|
|
+ param.setUsers(ids);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //获取部门下的所有用户
|
|
|
|
+ CompanyUser usermap=new CompanyUser();
|
|
|
|
+ usermap.setDeptId(param.getDeptId());
|
|
|
|
+ List<CompanyUser> users = userService.getUserListByDeptId(usermap);
|
|
|
|
+ List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
|
|
|
|
+ param.setUsers(userIds.toArray(new Long[userIds.size()]));
|
|
|
|
+ }
|
|
|
|
+ if(param.getUsers()!=null&¶m.getUsers().length>0){
|
|
|
|
+ List<FsStorePaymentStatisticsVO> list= storePaymentService.selectFsStorePaymentStatisticsList(param);
|
|
|
|
+ TimeUtils.TimeEntity timeEntity= TimeUtils.parseTime(param.getType().toString(),param.getStartTime(),param.getEndTime());
|
|
|
|
+ timeEntity.setUserIds(param.getUsers());
|
|
|
|
+ Integer cycleNum = timeEntity.getCycleNum();
|
|
|
|
+ Integer beginTime = timeEntity.getBeginTime();
|
|
|
|
+ List<Integer> timeList = new ArrayList<>();
|
|
|
|
+ for (int i = 1; i <= cycleNum; i++) {
|
|
|
|
+ timeList.add(beginTime);
|
|
|
|
+ beginTime = TimeUtils.formatTime(beginTime);
|
|
|
|
+ }
|
|
|
|
+ List<JSONObject> jsonObjectList = storePaymentService.selectFsStorePaymentCounts(timeEntity.toMap());
|
|
|
|
+ List<String> dates = jsonObjectList.stream().map(jsonObject -> jsonObject.getString("type")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> orderCount = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("orderCount")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> payMoney = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("payMoney")).collect(Collectors.toList());
|
|
|
|
+ return R.ok().put("list",list).put("dates",dates).put("orderCount",orderCount).put("payMoney",payMoney);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ return R.ok("未查找到数据");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @GetMapping("/exportStorePayment")
|
|
|
|
+ public AjaxResult exportStorePayment(FsStoreStatisticsParam param)
|
|
|
|
+ {
|
|
|
|
+ if(StringUtils.isNotEmpty(param.getUserIds())){
|
|
|
|
+ String[] userIds=param.getUserIds().split(",");
|
|
|
|
+ Long[] ids=new Long[userIds.length];
|
|
|
|
+ for(int i=0;i<ids.length; i++){
|
|
|
|
+ ids[i]=Long.parseLong(userIds[i]);
|
|
|
|
+ }
|
|
|
|
+ param.setUsers(ids);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //获取所有员工
|
|
|
|
+ CompanyUser usermap=new CompanyUser();
|
|
|
|
+ usermap.setDeptId(param.getDeptId());
|
|
|
|
+ List<CompanyUser> users = userService.selectCompanyUserList(usermap);
|
|
|
|
+ List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
|
|
|
|
+ param.setUsers(userIds.toArray(new Long[userIds.size()]));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<FsStorePaymentStatisticsVO> list= storePaymentService.selectFsStorePaymentStatisticsList(param);
|
|
|
|
+
|
|
|
|
+ ExcelUtil<FsStorePaymentStatisticsVO> util = new ExcelUtil<FsStorePaymentStatisticsVO>(FsStorePaymentStatisticsVO.class);
|
|
|
|
+ return util.exportExcel(list, "paymentLogs");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+//分割
|
|
|
|
+
|
|
|
|
+ @GetMapping("/voiceLogs")
|
|
|
|
+ public R voiceLogs(CompanyStatisticsParam param)
|
|
|
|
+ {
|
|
|
|
+ if(StringUtils.isNotEmpty(param.getUserIds())){
|
|
|
|
+ String[] userIds=param.getUserIds().split(",");
|
|
|
|
+ Long[] ids=new Long[userIds.length];
|
|
|
|
+ for(int i=0;i<ids.length; i++){
|
|
|
|
+ ids[i]=Long.parseLong(userIds[i]);
|
|
|
|
+ }
|
|
|
|
+ param.setUsers(ids);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //获取部门下的所有用户
|
|
|
|
+ CompanyUser usermap=new CompanyUser();
|
|
|
|
+ usermap.setDeptId(param.getDeptId());
|
|
|
|
+ List<CompanyUser> users = userService.getUserListByDeptId(usermap);
|
|
|
|
+ List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
|
|
|
|
+ param.setUsers(userIds.toArray(new Long[userIds.size()]));
|
|
|
|
+ }
|
|
|
|
+ if(param.getUsers()!=null&¶m.getUsers().length>0){
|
|
|
|
+ List<CompanyVoiceLogsStatisticsVO> list= voiceLogsService.selectVoiceLogsStatisticsList(param);
|
|
|
|
+ if(list!=null){
|
|
|
|
+ for(CompanyVoiceLogsStatisticsVO vo:list){
|
|
|
|
+ double f1 = new BigDecimal((float)vo.getCallSuccessCount()/vo.getCallCount()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()*100;
|
|
|
|
+ vo.setCallRate(f1);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ TimeUtils.TimeEntity timeEntity= TimeUtils.parseTime(param.getType().toString(),param.getStartTime(),param.getEndTime());
|
|
|
|
+ timeEntity.setUserIds(param.getUsers());
|
|
|
|
+ Integer cycleNum = timeEntity.getCycleNum();
|
|
|
|
+ Integer beginTime = timeEntity.getBeginTime();
|
|
|
|
+ List<Integer> timeList = new ArrayList<>();
|
|
|
|
+ for (int i = 1; i <= cycleNum; i++) {
|
|
|
|
+ timeList.add(beginTime);
|
|
|
|
+ beginTime = TimeUtils.formatTime(beginTime);
|
|
|
|
+ }
|
|
|
|
+ List<JSONObject> jsonObjectList = voiceLogsService.selectVoiceLogsTotalCount(timeEntity.toMap());
|
|
|
|
+ List<String> dates = jsonObjectList.stream().map(jsonObject -> jsonObject.getString("type")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> callCount = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("callCount")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> callSuccessCount = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("callSuccessCount")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> times = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("times")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> billingTime = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("billingTime")).collect(Collectors.toList());
|
|
|
|
+ return R.ok().put("list",list).put("dates",dates).put("callCount",callCount).put("callSuccessCount",callSuccessCount).put("times",times).put("billingTime",billingTime);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ return R.ok("未查找到数据");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @GetMapping("/exportVoiceLogs")
|
|
|
|
+ public AjaxResult exportVoiceLogs(CompanyStatisticsParam param)
|
|
|
|
+ {
|
|
|
|
+ if(StringUtils.isNotEmpty(param.getUserIds())){
|
|
|
|
+ String[] userIds=param.getUserIds().split(",");
|
|
|
|
+ Long[] ids=new Long[userIds.length];
|
|
|
|
+ for(int i=0;i<ids.length; i++){
|
|
|
|
+ ids[i]=Long.parseLong(userIds[i]);
|
|
|
|
+ }
|
|
|
|
+ param.setUsers(ids);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //获取所有员工
|
|
|
|
+ CompanyUser usermap=new CompanyUser();
|
|
|
|
+ usermap.setDeptId(param.getDeptId());
|
|
|
|
+ List<CompanyUser> users = userService.getUserListByDeptId(usermap);
|
|
|
|
+ List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
|
|
|
|
+ param.setUsers(userIds.toArray(new Long[userIds.size()]));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<CompanyVoiceLogsStatisticsVO> list= voiceLogsService.selectVoiceLogsStatisticsList(param);
|
|
|
|
+ if(list!=null){
|
|
|
|
+ for(CompanyVoiceLogsStatisticsVO vo:list){
|
|
|
|
+ double f1 = new BigDecimal((float)vo.getCallSuccessCount()/vo.getCallCount()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()*100;
|
|
|
|
+ vo.setCallRate(f1);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ ExcelUtil<CompanyVoiceLogsStatisticsVO> util = new ExcelUtil<CompanyVoiceLogsStatisticsVO>(CompanyVoiceLogsStatisticsVO.class);
|
|
|
|
+ return util.exportExcel(list, "voiceLogs");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @GetMapping("/smsLogs")
|
|
|
|
+ public R smsLogs(CompanyStatisticsParam param)
|
|
|
|
+ {
|
|
|
|
+ if(StringUtils.isNotEmpty(param.getUserIds())){
|
|
|
|
+ String[] userIds=param.getUserIds().split(",");
|
|
|
|
+ Long[] ids=new Long[userIds.length];
|
|
|
|
+ for(int i=0;i<ids.length; i++){
|
|
|
|
+ ids[i]=Long.parseLong(userIds[i]);
|
|
|
|
+ }
|
|
|
|
+ param.setUsers(ids);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //获取部门下的所有用户
|
|
|
|
+ CompanyUser usermap=new CompanyUser();
|
|
|
|
+ usermap.setDeptId(param.getDeptId());
|
|
|
|
+ List<CompanyUser> users = userService.getUserListByDeptId(usermap);
|
|
|
|
+ List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
|
|
|
|
+ param.setUsers(userIds.toArray(new Long[userIds.size()]));
|
|
|
|
+ }
|
|
|
|
+ if(param.getUsers()!=null&¶m.getUsers().length>0){
|
|
|
|
+ List<CompanySmsLogsStatisticsVO> list= smsLogsService.selectSmsLogsStatisticsList(param);
|
|
|
|
+ TimeUtils.TimeEntity timeEntity= TimeUtils.parseTime(param.getType().toString(),param.getStartTime(),param.getEndTime());
|
|
|
|
+ timeEntity.setUserIds(param.getUsers());
|
|
|
|
+ Integer cycleNum = timeEntity.getCycleNum();
|
|
|
|
+ Integer beginTime = timeEntity.getBeginTime();
|
|
|
|
+ List<Integer> timeList = new ArrayList<>();
|
|
|
|
+ for (int i = 1; i <= cycleNum; i++) {
|
|
|
|
+ timeList.add(beginTime);
|
|
|
|
+ beginTime = TimeUtils.formatTime(beginTime);
|
|
|
|
+ }
|
|
|
|
+ List<JSONObject> jsonObjectList = smsLogsService.selectSmsLogsCounts(timeEntity.toMap());
|
|
|
|
+ List<String> dates = jsonObjectList.stream().map(jsonObject -> jsonObject.getString("type")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> smsCount = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("smsCount")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> successCount = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("successCount")).collect(Collectors.toList());
|
|
|
|
+ return R.ok().put("list",list).put("dates",dates).put("smsCount",smsCount).put("successCount",successCount);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ return R.ok("未查找到数据");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @GetMapping("/exportSmsLogs")
|
|
|
|
+ public AjaxResult exportSmsLogs(CompanyStatisticsParam param)
|
|
|
|
+ {
|
|
|
|
+ if(StringUtils.isNotEmpty(param.getUserIds())){
|
|
|
|
+ String[] userIds=param.getUserIds().split(",");
|
|
|
|
+ Long[] ids=new Long[userIds.length];
|
|
|
|
+ for(int i=0;i<ids.length; i++){
|
|
|
|
+ ids[i]=Long.parseLong(userIds[i]);
|
|
|
|
+ }
|
|
|
|
+ param.setUsers(ids);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //获取所有员工
|
|
|
|
+ CompanyUser usermap=new CompanyUser();
|
|
|
|
+ usermap.setDeptId(param.getDeptId());
|
|
|
|
+ List<CompanyUser> users = userService.getUserListByDeptId(usermap);
|
|
|
|
+ List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
|
|
|
|
+ param.setUsers(userIds.toArray(new Long[userIds.size()]));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<CompanySmsLogsStatisticsVO> list= smsLogsService.selectSmsLogsStatisticsList(param);
|
|
|
|
+
|
|
|
|
+ ExcelUtil<CompanySmsLogsStatisticsVO> util = new ExcelUtil<CompanySmsLogsStatisticsVO>(CompanySmsLogsStatisticsVO.class);
|
|
|
|
+ return util.exportExcel(list, "voiceLogs");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @GetMapping("/customer")
|
|
|
|
+ public R customer(CrmCustomerStatisticsParam param)
|
|
|
|
+ {
|
|
|
|
+ if(StringUtils.isNotEmpty(param.getUserIds())){
|
|
|
|
+ String[] userIds=param.getUserIds().split(",");
|
|
|
|
+ Long[] ids=new Long[userIds.length];
|
|
|
|
+ for(int i=0;i<ids.length; i++){
|
|
|
|
+ ids[i]=Long.parseLong(userIds[i]);
|
|
|
|
+ }
|
|
|
|
+ param.setUsers(ids);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //获取部门下的所有用户
|
|
|
|
+ CompanyUser usermap=new CompanyUser();
|
|
|
|
+ usermap.setDeptId(param.getDeptId());
|
|
|
|
+ List<CompanyUser> users = userService.getUserListByDeptId(usermap);
|
|
|
|
+ List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
|
|
|
|
+ param.setUsers(userIds.toArray(new Long[userIds.size()]));
|
|
|
|
+ }
|
|
|
|
+ if(param.getUsers()!=null&¶m.getUsers().length>0){
|
|
|
|
+ List<CrmCustomerStatisticsVO> list= crmCustomerService.selectCrmCustomerStatisticsList(param);
|
|
|
|
+
|
|
|
|
+ TimeUtils.TimeEntity timeEntity= TimeUtils.parseTime(param.getType().toString(),param.getStartTime(),param.getEndTime());
|
|
|
|
+ timeEntity.setUserIds(param.getUsers());
|
|
|
|
+ Integer cycleNum = timeEntity.getCycleNum();
|
|
|
|
+ Integer beginTime = timeEntity.getBeginTime();
|
|
|
|
+ List<Integer> timeList = new ArrayList<>();
|
|
|
|
+ for (int i = 1; i <= cycleNum; i++) {
|
|
|
|
+ timeList.add(beginTime);
|
|
|
|
+ beginTime = TimeUtils.formatTime(beginTime);
|
|
|
|
+ }
|
|
|
|
+ List<JSONObject> jsonObjectList = crmCustomerService.selectCrmCustomerCounts(timeEntity.toMap());
|
|
|
|
+ List<String> dates = jsonObjectList.stream().map(jsonObject -> jsonObject.getString("type")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> receiveCount = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("receiveCount")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> poolCount = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("poolCount")).collect(Collectors.toList());
|
|
|
|
+ return R.ok().put("list",list).put("dates",dates).put("receiveCount",receiveCount).put("poolCount",poolCount);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ return R.ok("未查找到数据");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @GetMapping("/exportCustomer")
|
|
|
|
+ public AjaxResult exportCustomer(CrmCustomerStatisticsParam param)
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ if(StringUtils.isNotEmpty(param.getUserIds())){
|
|
|
|
+ String[] userIds=param.getUserIds().split(",");
|
|
|
|
+ Long[] ids=new Long[userIds.length];
|
|
|
|
+ for(int i=0;i<ids.length; i++){
|
|
|
|
+ ids[i]=Long.parseLong(userIds[i]);
|
|
|
|
+ }
|
|
|
|
+ param.setUsers(ids);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //获取所有员工
|
|
|
|
+ CompanyUser usermap=new CompanyUser();
|
|
|
|
+ usermap.setDeptId(param.getDeptId());
|
|
|
|
+ List<CompanyUser> users = userService.getUserListByDeptId(usermap);
|
|
|
|
+ List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
|
|
|
|
+ param.setUsers(userIds.toArray(new Long[userIds.size()]));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<CrmCustomerStatisticsVO> list= crmCustomerService.selectCrmCustomerStatisticsList(param);
|
|
|
|
+ ExcelUtil<CrmCustomerStatisticsVO> util = new ExcelUtil<CrmCustomerStatisticsVO>(CrmCustomerStatisticsVO.class);
|
|
|
|
+ return util.exportExcel(list, "customer");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @GetMapping("/customerVisit")
|
|
|
|
+ public R customerVisit(CrmCustomerStatisticsParam param)
|
|
|
|
+ {
|
|
|
|
+ if(StringUtils.isNotEmpty(param.getUserIds())){
|
|
|
|
+ String[] userIds=param.getUserIds().split(",");
|
|
|
|
+ Long[] ids=new Long[userIds.length];
|
|
|
|
+ for(int i=0;i<ids.length; i++){
|
|
|
|
+ ids[i]=Long.parseLong(userIds[i]);
|
|
|
|
+ }
|
|
|
|
+ param.setUsers(ids);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //获取部门下的所有用户
|
|
|
|
+ CompanyUser usermap=new CompanyUser();
|
|
|
|
+ usermap.setDeptId(param.getDeptId());
|
|
|
|
+ List<CompanyUser> users = userService.getUserListByDeptId(usermap);
|
|
|
|
+ List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
|
|
|
|
+ param.setUsers(userIds.toArray(new Long[userIds.size()]));
|
|
|
|
+ }
|
|
|
|
+ if(param.getUsers()!=null&¶m.getUsers().length>0){
|
|
|
|
+ List<CrmCustomerVisitStatisticsVO> list= crmCustomerVisitService.selectCrmCustomerVisitStatisticsList(param);
|
|
|
|
+
|
|
|
|
+ TimeUtils.TimeEntity timeEntity= TimeUtils.parseTime(param.getType().toString(),param.getStartTime(),param.getEndTime());
|
|
|
|
+ timeEntity.setUserIds(param.getUsers());
|
|
|
|
+ Integer cycleNum = timeEntity.getCycleNum();
|
|
|
|
+ Integer beginTime = timeEntity.getBeginTime();
|
|
|
|
+ List<Integer> timeList = new ArrayList<>();
|
|
|
|
+ for (int i = 1; i <= cycleNum; i++) {
|
|
|
|
+ timeList.add(beginTime);
|
|
|
|
+ beginTime = TimeUtils.formatTime(beginTime);
|
|
|
|
+ }
|
|
|
|
+ List<JSONObject> jsonObjectList = crmCustomerVisitService.selectCrmCustomerVisitCounts(timeEntity.toMap());
|
|
|
|
+ List<String> dates = jsonObjectList.stream().map(jsonObject -> jsonObject.getString("type")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> customerCount = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("customerCount")).collect(Collectors.toList());
|
|
|
|
+ List<Integer> visitCount = jsonObjectList.stream().map(jsonObject -> jsonObject.getInteger("visitCount")).collect(Collectors.toList());
|
|
|
|
+ return R.ok().put("list",list).put("dates",dates).put("customerCount",customerCount).put("visitCount",visitCount);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ return R.ok("未查找到数据");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @GetMapping("/exportCustomerVisit")
|
|
|
|
+ public AjaxResult exportCustomerVisit(CrmCustomerStatisticsParam param)
|
|
|
|
+ {
|
|
|
|
+ if(StringUtils.isNotEmpty(param.getUserIds())){
|
|
|
|
+ String[] userIds=param.getUserIds().split(",");
|
|
|
|
+ Long[] ids=new Long[userIds.length];
|
|
|
|
+ for(int i=0;i<ids.length; i++){
|
|
|
|
+ ids[i]=Long.parseLong(userIds[i]);
|
|
|
|
+ }
|
|
|
|
+ param.setUsers(ids);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //获取所有员工
|
|
|
|
+ CompanyUser usermap=new CompanyUser();
|
|
|
|
+ usermap.setDeptId(param.getDeptId());
|
|
|
|
+ List<CompanyUser> users = userService.getUserListByDeptId(usermap);
|
|
|
|
+ List<Long> userIds = users.stream().map(element -> element.getUserId()).collect(Collectors.toList());
|
|
|
|
+ param.setUsers(userIds.toArray(new Long[userIds.size()]));
|
|
|
|
+ }
|
|
|
|
+ List<CrmCustomerVisitStatisticsVO> list= crmCustomerVisitService.selectCrmCustomerVisitStatisticsList(param);
|
|
|
|
+ ExcelUtil<CrmCustomerVisitStatisticsVO> util = new ExcelUtil<CrmCustomerVisitStatisticsVO>(CrmCustomerVisitStatisticsVO.class);
|
|
|
|
+ return util.exportExcel(list, "visit");
|
|
|
|
+ }
|
|
|
|
+}
|