|
@@ -4,7 +4,6 @@ import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
|
|
import com.fjhx.common.constant.SourceConstant;
|
|
|
import com.fjhx.customer.service.customer.CustomerService;
|
|
|
-import com.fjhx.form.entity.EmailCount;
|
|
|
import com.fjhx.form.entity.EmployeeProductivity;
|
|
|
import com.fjhx.form.mapper.EmployeeProductivityMapper;
|
|
|
import com.fjhx.form.service.EmployeeProductivityService;
|
|
@@ -17,6 +16,7 @@ import org.springframework.stereotype.Service;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
@@ -42,35 +42,33 @@ public class EmployeeProductivityServiceImpl implements EmployeeProductivityServ
|
|
|
}
|
|
|
List<Long> userIds = salesmanList.stream().map(EmployeeProductivity::getUserId).collect(Collectors.toList());
|
|
|
|
|
|
- //获取收邮件数列表
|
|
|
+ //获取邮件数列表
|
|
|
DynamicDataSourceContextHolder.push(SourceConstant.MAIL);
|
|
|
- List<EmailCount> receiveEmailCount = employeeProductivityMapper.getUserEmailCount(IWrapper.getWrapper()
|
|
|
- .in("t1.user_id", userIds)
|
|
|
- .ge("t1.send_date", dto.getBeginTime())
|
|
|
- .le("t1.send_date", dto.getEndTime())
|
|
|
- .apply("t1.from_email != t1.mail_user")
|
|
|
- .groupBy("t1.user_id")
|
|
|
- );
|
|
|
- //获取发邮件数列表
|
|
|
- List<EmailCount> sendEmailCount = employeeProductivityMapper.getUserEmailCount(IWrapper.getWrapper()
|
|
|
- .in("t1.user_id", userIds)
|
|
|
- .ge("t1.send_date", dto.getBeginTime())
|
|
|
- .le("t1.send_date", dto.getEndTime())
|
|
|
- .apply("t1.from_email = t1.mail_user")
|
|
|
- .groupBy("t1.user_id")
|
|
|
+ List<EmployeeProductivity> emailCountList = employeeProductivityMapper.getUserEmailCount(IWrapper.getWrapper()
|
|
|
+ .in("emb.user_id", userIds)
|
|
|
+ .ge("em.send_date", dto.getBeginTime())
|
|
|
+ .le("em.send_date", dto.getEndTime())
|
|
|
+ .groupBy("emb.user_id")
|
|
|
);
|
|
|
DynamicDataSourceContextHolder.poll();
|
|
|
|
|
|
- Map<Long, Integer> receiveEmailCountMap = receiveEmailCount.stream().collect(Collectors.toMap(EmailCount::getUserId, EmailCount::getCount));
|
|
|
- Map<Long, Integer> sendEmailCountMap = sendEmailCount.stream().collect(Collectors.toMap(EmailCount::getUserId, EmailCount::getCount));
|
|
|
+ Map<Long, EmployeeProductivity> emailCountMap = emailCountList.stream().collect(Collectors.toMap(EmployeeProductivity::getUserId, Function.identity()));
|
|
|
|
|
|
//赋值数据
|
|
|
for (EmployeeProductivity employeeProductivity : salesmanList) {
|
|
|
Long userId = employeeProductivity.getUserId();
|
|
|
- //赋值发件数
|
|
|
- employeeProductivity.setSendEmailCount(sendEmailCountMap.getOrDefault(userId, 0));
|
|
|
- //赋值收件数
|
|
|
- employeeProductivity.setReceiveEmailCount(receiveEmailCountMap.getOrDefault(userId, 0));
|
|
|
+
|
|
|
+ //初始默认0
|
|
|
+ employeeProductivity.setSendEmailCount(0);
|
|
|
+ employeeProductivity.setReceiveEmailCount(0);
|
|
|
+
|
|
|
+ EmployeeProductivity emailCount = emailCountMap.get(userId);
|
|
|
+ if (ObjectUtil.isNotEmpty(emailCount)) {
|
|
|
+ //赋值发件数
|
|
|
+ employeeProductivity.setSendEmailCount(emailCount.getSendEmailCount());
|
|
|
+ //赋值收件数
|
|
|
+ employeeProductivity.setReceiveEmailCount(emailCount.getReceiveEmailCount());
|
|
|
+ }
|
|
|
}
|
|
|
return salesmanList;
|
|
|
}
|