拓客统计

master
wujingtao 2 years ago
parent 3f36dcbf51
commit 519739cdbe

@ -5,9 +5,10 @@ package com.baiye.constant;
*/
public class ClueTypeConstants {
public ClueTypeConstants(){
public ClueTypeConstants() {
}
public static final Integer[] SCREEN_TYPE= new Integer[]{0, 1, 2, 3, 6, 7};
public static final Integer[] SCREEN_TYPE = new Integer[]{0, 1, 2, 3, 6, 7};
public static final Integer[] TOKER_TYPE = new Integer[]{4, 5};
}

@ -123,7 +123,10 @@ public class DefaultNumberConstants {
* 90
*/
public static final int NINETY = 90;
/**
* 90
*/
public static final int NINETY_NINE = 99;
/**
* 100
*/

@ -0,0 +1,13 @@
package com.baiye.constant;
/**
* @author jt
*/
public class SourceLabelConstants {
public static final String INTENTION = "有意向";
public static final String NOT_INTENTION = "无意向";
public static final String NOT_TURN_ON = "未接通";
}

@ -53,7 +53,9 @@ public class BaseClueMiddle implements Serializable {
@Convert(converter = JpaConverterListJson.class)
private List<String> sourceLabel;
@ApiModelProperty(value = "打标时间")
@Column(name = "label_time")
private Date labelTime;
@ApiModelProperty(value = "创建时间")
@Column(name = "create_time")
@CreationTimestamp

@ -147,6 +147,7 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
.antMatchers("/api/organize/queryAll").permitAll()
.antMatchers("/api/organize/findNameById").permitAll()
.antMatchers("/api/organize/findOrganizeIdByMember").permitAll()
.antMatchers("/api/organize/getLabel").permitAll()
.antMatchers("/api/back/cdrUrl").permitAll()
.antMatchers("/api/back/status").permitAll()
.antMatchers("/api/roll/cdrUrl").permitAll()

@ -31,6 +31,7 @@ public class TaskDto implements Serializable {
private Integer taskType;
@ApiModelProperty(value = "关联的标签组id")
@JsonSerialize(using= ToStringSerializer.class)
private Long labelOrganizeId;
private Long createBy;

@ -68,9 +68,15 @@ public class TaskServiceImpl implements TaskService {
@Transactional(rollbackOn = Exception.class)
public void saveTask(Task task) {
Long labelOrganizeId = task.getLabelOrganizeId();
if (task.getId() == null) task.setId(IdUtil.getSnowflake(workerId, datacenterId).nextId());
if (CollUtil.isNotEmpty(task.getOrganizeList())) task.setOrganizeList(task.getOrganizeList());
if (task.getCreateBy() == null) task.setCreateBy(SecurityUtils.getCurrentUserId());
if (task.getId() == null) {
task.setId(IdUtil.getSnowflake(workerId, datacenterId).nextId());
}
if (CollUtil.isNotEmpty(task.getOrganizeList())) {
task.setOrganizeList(task.getOrganizeList());
}
if (task.getCreateBy() == null) {
task.setCreateBy(SecurityUtils.getCurrentUserId());
}
if (task.getIsForm() == DefaultNumberConstants.FIVE_NUMBER) {
List<String> labelList = new ArrayList<>();
labelList.add("有意向");
@ -79,7 +85,9 @@ public class TaskServiceImpl implements TaskService {
task.setBaseLabel(labelList);
} else {
List<String> labelList = labelService.findLabelList(labelOrganizeId);
if (CollUtil.isNotEmpty(labelList)) task.setBaseLabel(labelList);
if (CollUtil.isNotEmpty(labelList)) {
task.setBaseLabel(labelList);
}
}
task.setIsDistribution(DefaultNumberConstants.ZERO_NUMBER);
taskRepository.save(task);
@ -119,8 +127,6 @@ public class TaskServiceImpl implements TaskService {
// task.setBaseLabel(labelList);
// }
// }
task.setBaseLabel(Collections.singletonList("有意向,无意向,未接通"));
task.setLabelOrganizeId(labelOrganizeId);
task.setRemark(remake);
Task save = taskRepository.save(task);
return save.getId();
@ -131,10 +137,16 @@ public class TaskServiceImpl implements TaskService {
*/
@Override
public Object queryAll(TaskQueryCriteria taskQueryCriteria, Pageable pageable) {
//这个地方 4为dmp,5为拓客
//isfrom为空 查crm
if (taskQueryCriteria.getIsForm() == null) {
taskQueryCriteria.setIsForms(Arrays.asList(ClueTypeConstants.SCREEN_TYPE));
}
//isfrom为99 前后端约定,为拓客 投流
else if (taskQueryCriteria.getIsForm() == DefaultNumberConstants.NINETY_NINE) {
taskQueryCriteria.setIsForm(null);
taskQueryCriteria.setIsForms(Arrays.asList(ClueTypeConstants.TOKER_TYPE));
}
PageRequest pageRequest = PageRequest.of(pageable.getPageNumber(), pageable.getPageSize(), Sort.by(Sort.Direction.DESC, "isForm", "updateTime"));
taskQueryCriteria.setCreateBy(SecurityUtils.getCurrentUserId());
Page<Task> taskRepositoryAll = taskRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, taskQueryCriteria, criteriaBuilder), pageRequest);

@ -0,0 +1,44 @@
package com.baiye.module.controller;
import com.baiye.module.entity.dto.ReportTokerDTO;
import com.baiye.module.service.ReportTokerService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
/**
* @author jt
*/
@RequiredArgsConstructor
@RestController
@Api(tags = "拓客任务的统计")
@RequestMapping("/source/report")
@Slf4j
public class ReportTokerController {
private final ReportTokerService reportTokerService;
@ApiOperation("拓客的折线图")
@PostMapping("/toker/broken")
public ResponseEntity<Object> reportTokerBroken(@RequestBody ReportTokerDTO reportTokerDTO) {
return new ResponseEntity<>(reportTokerService.reportTokerBroken(reportTokerDTO), HttpStatus.OK);
}
@PostMapping("/toker/download")
@ApiOperation("拓客统计导出")
public void downloadReportToker(HttpServletResponse response, @RequestBody ReportTokerDTO reportTokerDTO) {
reportTokerService.downloadReportToker(response, reportTokerDTO);
}
@ApiOperation("拓客的饼图")
@PostMapping("/toker/pie")
public ResponseEntity<Object> reportTokerPie(@RequestBody ReportTokerDTO reportTokerDTO) {
return new ResponseEntity<>(reportTokerService.reportTokerPie(reportTokerDTO), HttpStatus.OK);
}
}

@ -197,4 +197,15 @@ public interface ClueMiddleRepository extends JpaRepository<ClueMiddle, Long>, J
@Query(value = "select d.task_id from tb_clue_middle d where d.member_status = ?1 and d.task_id in ?2", nativeQuery = true)
List<Long> selectClueMiddleByMember(Integer memberStatus, Set<Long> taskIds);
/**
* 线线
*
* @param startTime
* @param endTime
* @param clueType 线
* @return
*/
@Query(value = " select * from tb_clue_middle as t where t.label_time >= ?1 and t.label_time< ?2 and t.clue_stage in ?3", nativeQuery = true)
List<ClueMiddle> queryClueByClueType(String startTime, String endTime, List<Integer> clueType);
}

@ -0,0 +1,39 @@
package com.baiye.module.dao;
import com.baiye.module.entity.ReportToker;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author jt
*/
@Repository
public interface ReportTokerRepository extends JpaRepository<ReportToker, Long>, JpaSpecificationExecutor<ReportToker> {
/**
* 线
*
* @param beginTime
* @param endTime
* @param taskId
* @param memberId
* @return
*/
@Query(value = "select * from tb_report_toker where (create_time between ?1 and ?2) and task_id =?3 and (coalesce (?4,null) is null or member_id = ?4)", nativeQuery = true)
List<ReportToker> queryAllByTimeAndTaskId(String beginTime, String endTime, Long taskId, Long memberId);
/**
*
*
* @param beginTime
* @param endTime
* @param taskIds
* @return
*/
@Query(value = "select * from tb_report_toker where (create_time between ?1 and ?2) and task_id in (?3)", nativeQuery = true)
List<ReportToker> queryAllByTimeAndTaskIds(String beginTime, String endTime, List<Long> taskIds);
}

@ -0,0 +1,64 @@
package com.baiye.module.entity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
/**
* @author jt
*/
@Setter
@Getter
@Entity
@Table(name = "tb_report_toker")
@EntityListeners(AuditingEntityListener.class)
public class ReportToker implements Serializable {
@Id
@ApiModelProperty(value = "主键id自动递增")
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@LastModifiedDate
@Column(name = "create_time")
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "操作人id")
@Column(name = "member_id")
@JsonSerialize(using = ToStringSerializer.class)
private Long memberId;
@ApiModelProperty(value = "任务id")
@Column(name = "task_id")
@JsonSerialize(using = ToStringSerializer.class)
private Long taskId;
@ApiModelProperty(value = "操作人名称")
@Column(name = "member_name")
private String memberName;
@ApiModelProperty(value = "有意向")
@Column(name = "intention")
private Integer intention;
@ApiModelProperty(value = "无意向")
@Column(name = "not_intention")
private Integer notIntention;
@ApiModelProperty(value = "未接通")
@Column(name = "not_turn_on")
private Integer notTurnOn;
@ApiModelProperty(value = "业务管理员")
@Column(name = "manager_id")
@JsonSerialize(using = ToStringSerializer.class)
private Long managerId;
}

@ -0,0 +1,29 @@
package com.baiye.module.entity.dto;
import lombok.Data;
import java.util.List;
/**
* @author jt
*/
@Data
public class ReportTokerDTO {
/**
*
*/
private String beginTime;
/**
*
*/
private String endTime;
private List<Long> taskIds;
/**
* id
*/
private Long taskId;
private Long memberId;
}

@ -0,0 +1,26 @@
package com.baiye.module.entity.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
/**
* @author jt
*/
@Data
public class UploadTokerDTO {
@ExcelProperty(value = "时间", index = 0)
private String createTime;
@ExcelProperty(value = "任务", index = 1)
private String taskName;
@ExcelProperty(value = "业务员", index = 2)
private String userName;
@ExcelProperty(value = "有意向", index = 3)
private Integer intention;
@ExcelProperty(value = "无意向", index = 4)
private Integer notIntention;
@ExcelProperty(value = "未接通", index = 5)
private Integer notTurnOn;
}

@ -0,0 +1,20 @@
package com.baiye.module.service;
import com.baiye.module.entity.dto.ReportTokerDTO;
import org.springframework.web.bind.annotation.RequestBody;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author jt
*/
public interface ReportTokerService {
Map<String, Object> reportTokerBroken(ReportTokerDTO reportTokerDTO);
void downloadReportToker(HttpServletResponse response, ReportTokerDTO reportTokerDTO);
List<HashMap<String, Object>> reportTokerPie(ReportTokerDTO reportTokerDTO);
}

@ -52,7 +52,6 @@ public class ClueServiceImpl implements ClueService {
private final ClueRecordRepository clueRecordRepository;
private final ClueRecordMapper clueRecordMapper;
private final ClueMiddleRepository clueMiddleRepository;
private final ClueFailRecordRepository clueFailRecordRepository;
private final ClueJpa clueJpa;
private final OrganizeClient organizeClient;
private final RedisUtils redisUtils;
@ -63,6 +62,7 @@ public class ClueServiceImpl implements ClueService {
private final OceanEngineClient oceanEngineClient;
private final WeChatAddFriendClient weChatAddFriendClient;
private final OceanEngineClueIdRepository oceanEngineClueIdRepository;
private final ClueFailRecordRepository clueFailRecordRepository;
private static SimpleDateFormat timeOne = new SimpleDateFormat("yyyyMMddHHmmssSSS");
@ -961,12 +961,10 @@ public class ClueServiceImpl implements ClueService {
String taskNameKey = "task:name:" + taskId;
String str = (String) redisUtils.get(taskNameKey);
if (str == null || "null".equals(str) || StringUtils.isBlank(str)) {
//设置空,取值判断空
ClueDto clueDto = new ClueDto();
clueDto.setIsRedis(1);
clueDto.setTaskId(taskId);
Map<String, List<String>> nameMap = organizeClient.getLabel(clueDto).getBody();
str = nameMap.get("taskName").get(0);
Task body = taskClient.queryDetails(taskId).getBody();
if (ObjectUtil.isNotEmpty(body)) {
return body.getTaskName();
}
}
return str;
}

@ -0,0 +1,199 @@
package com.baiye.module.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.exception.BadRequestException;
import com.baiye.feign.TaskClient;
import com.baiye.feign.UserClient;
import com.baiye.module.dao.ReportTokerRepository;
import com.baiye.module.entity.ReportToker;
import com.baiye.module.entity.Task;
import com.baiye.module.entity.dto.ReportTokerDTO;
import com.baiye.module.entity.dto.UploadTokerDTO;
import com.baiye.module.service.ReportTokerService;
import com.baiye.task.ReportSync;
import com.baiye.util.ExportExcelUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author jt
*/
@Service
@Slf4j
@RequiredArgsConstructor
public class ReportTokerServiceImpl implements ReportTokerService {
private final ReportTokerRepository reportTokerRepository;
private final TaskClient taskClient;
private final UserClient userClient;
private final ReportSync reportSync;
@Override
public Map<String, Object> reportTokerBroken(ReportTokerDTO reportTokerDTO) {
dealTime(reportTokerDTO);
String beginTime = reportTokerDTO.getBeginTime();
String endTime = reportTokerDTO.getEndTime();
if (reportTokerDTO.getTaskId() == null) {
throw new BadRequestException("请选择任务");
}
List<ReportToker> reportTokers = reportTokerRepository.queryAllByTimeAndTaskId(beginTime, endTime, reportTokerDTO.getTaskId(), reportTokerDTO.getMemberId());
long between = DateUtil.between(DateUtil.parseDate(endTime), DateUtil.parseDate(DateUtil.today()), DateUnit.DAY);
//TODO 需要实时查询当天的统计
if (between == DefaultNumberConstants.ZERO_NUMBER) {
List<ReportToker> tokers = reportSync.dealData(beginTime, endTime);
reportTokers.addAll(tokers);
}
return dealReportData(beginTime, endTime, reportTokerDTO.getTaskId(), reportTokerDTO.getMemberId(), reportTokers);
}
@Override
public void downloadReportToker(HttpServletResponse response, ReportTokerDTO reportTokerDTO) {
dealTime(reportTokerDTO);
if (reportTokerDTO.getTaskId() == null) {
throw new BadRequestException("请选择任务");
}
List<ReportToker> reportTokers = reportTokerRepository.queryAllByTimeAndTaskId(reportTokerDTO.getBeginTime(), reportTokerDTO.getEndTime(), reportTokerDTO.getTaskId(), null);
List<UploadTokerDTO> list = new ArrayList<>();
for (ReportToker reportToker : reportTokers) {
UploadTokerDTO uploadTokerDTO = new UploadTokerDTO();
uploadTokerDTO.setIntention(reportToker.getIntention());
uploadTokerDTO.setNotIntention(reportToker.getNotIntention());
uploadTokerDTO.setNotTurnOn(reportToker.getNotTurnOn());
uploadTokerDTO.setCreateTime(DateUtil.format(reportToker.getCreateTime(), "yyyy-MM-dd"));
uploadTokerDTO.setTaskName(findByTaskId(reportToker.getTaskId()));
uploadTokerDTO.setUserName(reportToker.getMemberName());
list.add(uploadTokerDTO);
}
ExportExcelUtil.downloadEasyExcel(response, UploadTokerDTO.class, list);
}
private void dealTime(ReportTokerDTO reportTokerDTO) {
String beginTime = reportTokerDTO.getBeginTime();
String endTime = reportTokerDTO.getEndTime();
if (StrUtil.isBlank(beginTime) || StrUtil.isBlank(endTime)) {
reportTokerDTO.setBeginTime(DateUtil.today());
reportTokerDTO.setEndTime(DateUtil.today());
} else {
reportTokerDTO.setBeginTime(DateUtil.format(DateUtil.parseDate(beginTime), "yyyy-MM-dd"));
reportTokerDTO.setEndTime(DateUtil.format(DateUtil.parseDate(endTime), "yyyy-MM-dd"));
}
}
/**
*
*
* @param beginTime
* @param endTime
* @param reportTokers
* @return
*/
private Map<String, Object> dealReportData(String beginTime, String endTime, Long taskId, Long memberId, List<ReportToker> reportTokers) {
Date start = DateUtil.parseDate(beginTime);
Date end = DateUtil.parseDate(endTime);
int between = (int) DateUtil.between(start, end, DateUnit.DAY);
// Map<Date, List<ReportToker>> collect = reportTokers.stream().collect(Collectors.groupingBy(ReportToker::getCreateTime, Collectors.toList()));
List<HashMap<String, Object>> list = new ArrayList<>();
Map<String, Object> map = new HashMap<>();
String userName = null;
if (CollUtil.isNotEmpty(reportTokers)) {
userName = reportTokers.get(0).getMemberName();
}
for (int i = 0; i <= between; i++) {
Date date = DateUtil.offsetDay(start, i);
HashMap<String, Object> dataMap = new HashMap<>();
int intention = 0;
int notIntention = 0;
int notTurnOn = 0;
if (CollUtil.isNotEmpty(reportTokers)) {
for (ReportToker reportToker : reportTokers) {
Date time = reportToker.getCreateTime();
if (Objects.equals(DateUtil.formatDate(date), DateUtil.formatDate(time))) {
intention += reportToker.getIntention();
notIntention += reportToker.getNotIntention();
notTurnOn += reportToker.getNotTurnOn();
}
}
}
dataMap.put("time", DateUtil.format(date, "yyyy-MM-dd"));
dataMap.put("intention", intention);
dataMap.put("notIntention", notIntention);
dataMap.put("notTurnOn", notTurnOn);
list.add(dataMap);
}
if (memberId != null) {
if (StrUtil.isBlank(userName)) {
Set<Long> set = new HashSet<>();
set.add(memberId);
Map<Long, String> userNameList = userClient.findById(set);
map.put("name", userNameList.get(memberId));
} else {
map.put("name", userName);
}
} else {
map.put("name", findByTaskId(taskId));
}
map.put("data", list);
return map;
}
@Cacheable(value = "taskName", key = "'task:name:' + #p0")
public String findByTaskId(Long taskId) {
Task body = taskClient.queryDetails(taskId).getBody();
if (ObjectUtil.isNotEmpty(body)) {
return body.getTaskName();
}
return null;
}
@Override
public List<HashMap<String, Object>> reportTokerPie(ReportTokerDTO reportTokerDTO) {
dealTime(reportTokerDTO);
if (CollUtil.isEmpty(reportTokerDTO.getTaskIds())) {
throw new BadRequestException("请选择任务");
}
List<HashMap<String, Object>> list = new ArrayList<>();
List<ReportToker> tokers = reportTokerRepository.queryAllByTimeAndTaskIds(reportTokerDTO.getBeginTime(), reportTokerDTO.getEndTime(), reportTokerDTO.getTaskIds());
Map<Long, List<ReportToker>> tokerByTaskId = tokers.stream().collect(Collectors.groupingBy(ReportToker::getTaskId, Collectors.toList()));
HashMap<String, Object> map = new HashMap<>();
for (Long taskId : tokerByTaskId.keySet()) {
String taskName = findByTaskId(taskId);
List<ReportToker> tokerByTaskIdList = tokerByTaskId.get(taskId);
int intention = 0;
int notIntention = 0;
int notTurnOn = 0;
for (ReportToker reportToker : tokerByTaskIdList) {
intention += reportToker.getIntention();
notIntention += reportToker.getNotIntention();
notTurnOn += reportToker.getNotTurnOn();
}
map.put("intention", intention);
map.put("notIntention", notIntention);
map.put("notTurnOn", notTurnOn);
map.put("taskId", taskId);
map.put("taskName", taskName);
list.add(map);
}
return list;
}
}

@ -43,7 +43,7 @@ public class OceanEngineSync {
private final ClueRepository clueRepository;
private final ClueMiddleRepository clueMiddleRepository;
// @Scheduled(cron = "0 0/15 * * * ?")
@Scheduled(cron = "0 0/15 * * * ?")
public void getFeiYuSource() {
List<OceanEngineToken> oceanEngineTokens = oceanEngineClient.queryByStatus(1).getBody();
if (CollUtil.isEmpty(oceanEngineTokens)) {

@ -0,0 +1,85 @@
package com.baiye.task;
import cn.hutool.core.date.DateUtil;
import com.baiye.constant.ClueTypeConstants;
import com.baiye.constant.SourceLabelConstants;
import com.baiye.feign.UserClient;
import com.baiye.module.dao.ClueMiddleRepository;
import com.baiye.module.dao.ReportTokerRepository;
import com.baiye.module.entity.ClueMiddle;
import com.baiye.module.entity.ReportToker;
import lombok.RequiredArgsConstructor;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author jt
*/
@RequiredArgsConstructor
@Component
public class ReportSync {
private final ClueMiddleRepository clueMiddleRepository;
private final UserClient userClient;
private final ReportTokerRepository reportTokerRepository;
/**
* 23
*/
@Scheduled(cron = "0 0 23 * * ? ")
// @Scheduled(cron = "0 0/1 * * * ? ")
public void reportToker() {
//当前时间
String beginOfDay = DateUtil.formatDateTime(DateUtil.yesterday());
String endOfDay = DateUtil.formatDateTime(DateUtil.date());
List<ReportToker> list = dealData(beginOfDay, endOfDay);
reportTokerRepository.saveAll(list);
}
public List<ReportToker> dealData(String beginOfDay, String endOfDay) {
//只统计拓客和投流的 clueTypes 为 4和5 的
List<Integer> clueTypes = Arrays.asList(ClueTypeConstants.TOKER_TYPE);
List<ClueMiddle> clueMiddles = clueMiddleRepository.queryClueByClueType(beginOfDay, endOfDay, clueTypes);
List<ReportToker> list = new ArrayList<>();
int intention = 0;
int notIntention = 0;
int notTurnOn = 0;
//按人员id分组
HashMap<Long, List<ClueMiddle>> mapByUserId = new HashMap<>(clueMiddles.stream().collect(Collectors.groupingBy(ClueMiddle::getMemberId, Collectors.toList())));
Set<Long> userIds = mapByUserId.keySet();
Map<Long, String> userNameList = userClient.findById(userIds);
for (Long memberId : mapByUserId.keySet()) {
List<ClueMiddle> clueMiddlesByUserId = mapByUserId.get(memberId);
for (ClueMiddle clueMiddle : clueMiddlesByUserId) {
//标签
String sourceLabel = clueMiddle.getSourceLabel().get(0);
switch (sourceLabel) {
case SourceLabelConstants.INTENTION:
intention += 1;
break;
case SourceLabelConstants.NOT_INTENTION:
notIntention += 1;
break;
case SourceLabelConstants.NOT_TURN_ON:
notTurnOn += 1;
break;
default:
break;
}
ReportToker reportToker = new ReportToker();
reportToker.setIntention(intention);
reportToker.setNotIntention(notIntention);
reportToker.setNotTurnOn(notTurnOn);
reportToker.setCreateTime(DateUtil.date());
reportToker.setMemberId(memberId);
reportToker.setMemberName(userNameList.get(memberId));
reportToker.setTaskId(clueMiddle.getTaskId());
list.add(reportToker);
}
}
return list;
}
}
Loading…
Cancel
Save