@ -27,9 +27,11 @@ import com.baiye.module.entity.Task;
import com.baiye.module.entity.TurnoverRecord ;
import com.baiye.module.entity.TurnoverRecord ;
import com.baiye.module.entity.dto.ReportTokerDTO ;
import com.baiye.module.entity.dto.ReportTokerDTO ;
import com.baiye.module.entity.dto.UploadCrmDTO ;
import com.baiye.module.entity.dto.UploadCrmDTO ;
import com.baiye.module.entity.dto.UploadCrmTurnoverDTO ;
import com.baiye.module.entity.dto.UploadTokerDTO ;
import com.baiye.module.entity.dto.UploadTokerDTO ;
import com.baiye.module.service.ReportCrmService ;
import com.baiye.module.service.ReportCrmService ;
import com.baiye.util.ExportExcelUtil ;
import com.baiye.util.ExportExcelUtil ;
import com.baiye.util.SecurityUtils ;
import lombok.RequiredArgsConstructor ;
import lombok.RequiredArgsConstructor ;
import lombok.extern.slf4j.Slf4j ;
import lombok.extern.slf4j.Slf4j ;
import org.springframework.cache.annotation.Cacheable ;
import org.springframework.cache.annotation.Cacheable ;
@ -205,7 +207,7 @@ public class ReportCrmServiceImpl implements ReportCrmService {
dealTime ( reportTokerDTO , DefaultNumberConstants . ONE_NUMBER ) ;
dealTime ( reportTokerDTO , DefaultNumberConstants . ONE_NUMBER ) ;
//如果任务id为空 ,默认查询5个任务
//如果任务id为空 ,默认查询5个任务
if ( CollUtil . isEmpty ( reportTokerDTO . getTaskIds ( ) ) ) {
if ( CollUtil . isEmpty ( reportTokerDTO . getTaskIds ( ) ) ) {
List < Long > taskIds = getTaskIds ( reportTokerDTO. getMemb erId( ) , DefaultNumberConstants . THREE_NUMBER ) ;
List < Long > taskIds = getTaskIds ( SecurityUtils. getCurrentUs erId( ) , DefaultNumberConstants . THREE_NUMBER ) ;
reportTokerDTO . setTaskIds ( taskIds ) ;
reportTokerDTO . setTaskIds ( taskIds ) ;
}
}
List < ClueMiddle > clueMiddles = clueMiddleRepository . reportClueByTaskIdAndStage ( reportTokerDTO . getTaskIds ( ) , reportTokerDTO . getBeginTime ( ) , reportTokerDTO . getEndTime ( ) , null ) ;
List < ClueMiddle > clueMiddles = clueMiddleRepository . reportClueByTaskIdAndStage ( reportTokerDTO . getTaskIds ( ) , reportTokerDTO . getBeginTime ( ) , reportTokerDTO . getEndTime ( ) , null ) ;
@ -238,6 +240,37 @@ public class ReportCrmServiceImpl implements ReportCrmService {
ExportExcelUtil . downloadEasyExcel ( response , UploadCrmDTO . class , list , "crm-task" ) ;
ExportExcelUtil . downloadEasyExcel ( response , UploadCrmDTO . class , list , "crm-task" ) ;
}
}
@Override
public void downLoadCrmTurnover ( HttpServletResponse response , ReportTokerDTO reportTokerDTO ) {
dealTime ( reportTokerDTO , DefaultNumberConstants . ONE_NUMBER ) ;
List < TurnoverRecord > byUserIdAndTime = turnoverRecordRepository . findByUserIdAndTime ( reportTokerDTO . getBeginTime ( ) , reportTokerDTO . getEndTime ( ) , SecurityUtils . getCurrentUserId ( ) ) ;
if ( CollUtil . isEmpty ( byUserIdAndTime ) ) {
throw new BadRequestException ( "无数据导出" ) ;
}
//按人员分组
Map < Long , List < TurnoverRecord > > collect = byUserIdAndTime . stream ( ) . collect ( Collectors . groupingBy ( TurnoverRecord : : getMemberId , Collectors . toList ( ) ) ) ;
List < UploadCrmTurnoverDTO > uploadCrmTurnoverDTOS = new ArrayList < > ( ) ;
for ( Long key : collect . keySet ( ) ) {
List < TurnoverRecord > turnoverRecords = collect . get ( key ) ;
//人员名称
String memberName = turnoverRecords . get ( 0 ) . getMemberName ( ) ;
Double turnoverAmount = 0.00 ;
Double actualAmount = 0.00 ;
for ( TurnoverRecord turnoverRecord : turnoverRecords ) {
NumberUtil . add ( turnoverAmount , turnoverRecord . getTurnoverAmount ( ) ) ;
NumberUtil . add ( actualAmount , turnoverRecord . getActualAmount ( ) ) ;
}
UploadCrmTurnoverDTO uploadCrmTurnoverDTO = new UploadCrmTurnoverDTO ( ) ;
uploadCrmTurnoverDTO . setMemberName ( memberName ) ;
uploadCrmTurnoverDTO . setBeginTime ( reportTokerDTO . getBeginTime ( ) ) ;
uploadCrmTurnoverDTO . setEndTime ( reportTokerDTO . getEndTime ( ) ) ;
uploadCrmTurnoverDTO . setTurnoverAmount ( turnoverAmount ) ;
uploadCrmTurnoverDTO . setActualAmount ( actualAmount ) ;
uploadCrmTurnoverDTOS . add ( uploadCrmTurnoverDTO ) ;
}
ExportExcelUtil . downloadEasyExcel ( response , UploadCrmTurnoverDTO . class , uploadCrmTurnoverDTOS , "crm-turnover" ) ;
}
private List < HashMap < String , Object > > getOrganizeInfo ( String startTime , String endTime , List < Long > organizeIds ) {
private List < HashMap < String , Object > > getOrganizeInfo ( String startTime , String endTime , List < Long > organizeIds ) {
//通过组id查询组员
//通过组id查询组员
Map < Long , Map < String , Object > > memberIdByOrganizeIds = organizeClient . findMemberIdByOrganizeIds ( organizeIds ) ;
Map < Long , Map < String , Object > > memberIdByOrganizeIds = organizeClient . findMemberIdByOrganizeIds ( organizeIds ) ;