8 changed files with 232 additions and 0 deletions
			
			
		@ -0,0 +1,35 @@ | 
				
			|||
package com.epmet.controller; | 
				
			|||
 | 
				
			|||
import com.epmet.commons.tools.utils.Result; | 
				
			|||
import com.epmet.dto.extract.form.ExtractFormDTO; | 
				
			|||
import com.epmet.service.evaluationindex.extract.toscreen.ScreenExtractDailyService; | 
				
			|||
import org.springframework.beans.factory.annotation.Autowired; | 
				
			|||
import org.springframework.web.bind.annotation.PostMapping; | 
				
			|||
import org.springframework.web.bind.annotation.RequestBody; | 
				
			|||
import org.springframework.web.bind.annotation.RequestMapping; | 
				
			|||
import org.springframework.web.bind.annotation.RestController; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * @Author zxc | 
				
			|||
 * @DateTime 2020/9/24 9:42 上午 | 
				
			|||
 */ | 
				
			|||
@RestController | 
				
			|||
@RequestMapping("screenextract") | 
				
			|||
public class ScreenExtractDailyController { | 
				
			|||
 | 
				
			|||
    @Autowired | 
				
			|||
    private ScreenExtractDailyService screenExtractDailyService; | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * @Description  抽取数据到大屏【天】 | 
				
			|||
     * @param extractFormDTO | 
				
			|||
     * @author zxc | 
				
			|||
     * @date 2020/9/24 10:15 上午 | 
				
			|||
     */ | 
				
			|||
    @PostMapping("extractdailyall") | 
				
			|||
    public Result screenExtractDaily(@RequestBody ExtractFormDTO extractFormDTO){ | 
				
			|||
        screenExtractDailyService.extractAll(extractFormDTO); | 
				
			|||
        return new Result(); | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
} | 
				
			|||
@ -0,0 +1,19 @@ | 
				
			|||
package com.epmet.service.evaluationindex.extract.toscreen; | 
				
			|||
 | 
				
			|||
import com.epmet.dto.extract.form.ExtractFormDTO; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * @Author zxc | 
				
			|||
 * @DateTime 2020/9/24 9:57 上午 | 
				
			|||
 */ | 
				
			|||
public interface ScreenExtractDailyService { | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * @Description  抽取数据到大屏【天】 | 
				
			|||
     * @param extractFormDTO | 
				
			|||
     * @author zxc | 
				
			|||
     * @date 2020/9/24 10:15 上午 | 
				
			|||
     */ | 
				
			|||
    void extractAll(ExtractFormDTO extractFormDTO); | 
				
			|||
 | 
				
			|||
} | 
				
			|||
@ -0,0 +1,85 @@ | 
				
			|||
package com.epmet.service.evaluationindex.extract.toscreen.impl; | 
				
			|||
 | 
				
			|||
import com.epmet.commons.tools.constant.NumConstant; | 
				
			|||
import com.epmet.commons.tools.utils.DateUtils; | 
				
			|||
import com.epmet.dto.extract.form.ExtractFormDTO; | 
				
			|||
import com.epmet.service.evaluationindex.extract.toscreen.PartyBaseInfoService; | 
				
			|||
import com.epmet.service.evaluationindex.extract.toscreen.PioneerDataExtractService; | 
				
			|||
import com.epmet.service.evaluationindex.extract.toscreen.ScreenExtractDailyService; | 
				
			|||
import com.epmet.service.stats.DimCustomerService; | 
				
			|||
import lombok.extern.slf4j.Slf4j; | 
				
			|||
import org.apache.commons.lang3.StringUtils; | 
				
			|||
import org.springframework.beans.factory.annotation.Autowired; | 
				
			|||
import org.springframework.stereotype.Service; | 
				
			|||
import org.springframework.util.CollectionUtils; | 
				
			|||
 | 
				
			|||
import java.time.LocalDate; | 
				
			|||
import java.util.ArrayList; | 
				
			|||
import java.util.List; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * @Author zxc | 
				
			|||
 * @DateTime 2020/9/24 9:57 上午 | 
				
			|||
 */ | 
				
			|||
@Service | 
				
			|||
@Slf4j | 
				
			|||
public class ScreenExtractDailyServiceImpl implements ScreenExtractDailyService { | 
				
			|||
 | 
				
			|||
    @Autowired | 
				
			|||
    private DimCustomerService dimCustomerService; | 
				
			|||
    @Autowired | 
				
			|||
    private PartyBaseInfoService partyBaseInfoService; | 
				
			|||
    @Autowired | 
				
			|||
    private PioneerDataExtractService pioneerDataExtractService; | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * @Description  抽取数据到大屏【天】 | 
				
			|||
     * @param extractFormDTO | 
				
			|||
     * @author zxc | 
				
			|||
     * @date 2020/9/24 10:15 上午 | 
				
			|||
     */ | 
				
			|||
    @Override | 
				
			|||
    public void extractAll(ExtractFormDTO extractFormDTO) { | 
				
			|||
        List<String> customerIds = new ArrayList<>(); | 
				
			|||
        if (StringUtils.isNotBlank(extractFormDTO.getCustomerId())){ | 
				
			|||
            customerIds.add(extractFormDTO.getCustomerId()); | 
				
			|||
        }else { | 
				
			|||
            int pageNo = NumConstant.ONE; | 
				
			|||
            int pageSize = NumConstant.ONE_HUNDRED; | 
				
			|||
            customerIds = dimCustomerService.selectCustomerIdPage(pageNo, pageSize); | 
				
			|||
        } | 
				
			|||
        if (!CollectionUtils.isEmpty(customerIds)){ | 
				
			|||
            customerIds.forEach(customerId -> { | 
				
			|||
                if (StringUtils.isNotBlank(extractFormDTO.getStartDate()) && StringUtils.isNotBlank(extractFormDTO.getEndDate())){ | 
				
			|||
                    List<String> daysBetween = DateUtils.getDaysBetween(extractFormDTO.getStartDate(), extractFormDTO.getEndDate()); | 
				
			|||
                    daysBetween.forEach(dateId -> { | 
				
			|||
                        extractDaily(customerId,dateId); | 
				
			|||
                    }); | 
				
			|||
                }else if (StringUtils.isNotBlank(extractFormDTO.getDateId())){ | 
				
			|||
                    extractDaily(customerId,extractFormDTO.getDateId()); | 
				
			|||
                }else { | 
				
			|||
                    String dateId = LocalDate.now().minusDays(NumConstant.ONE).toString().replace("-", ""); | 
				
			|||
                    extractDaily(customerId,dateId); | 
				
			|||
                } | 
				
			|||
            }); | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    /** | 
				
			|||
     * @Description  按天计算 | 
				
			|||
     * @param customerId | 
				
			|||
     * @param dateId | 
				
			|||
     * @author zxc | 
				
			|||
     * @date 2020/9/24 10:16 上午 | 
				
			|||
     */ | 
				
			|||
    public void extractDaily(String customerId,String dateId){ | 
				
			|||
        partyBaseInfoService.statsPartyMemberBaseInfoToScreen(customerId,dateId); | 
				
			|||
        pioneerDataExtractService.extractGridPioneerData(customerId,dateId); | 
				
			|||
        pioneerDataExtractService.extractCommunityPioneerData(customerId,dateId); | 
				
			|||
        pioneerDataExtractService.extractStreetPioneerData(customerId,dateId); | 
				
			|||
        pioneerDataExtractService.extractDistrictPioneerData(customerId,dateId); | 
				
			|||
        pioneerDataExtractService.extractCityPioneerData(customerId,dateId); | 
				
			|||
        pioneerDataExtractService.extractProvincePioneerData(customerId,dateId); | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,13 @@ | 
				
			|||
package com.epmet.service; | 
				
			|||
 | 
				
			|||
import com.epmet.commons.tools.utils.Result; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * @Author zxc | 
				
			|||
 * @DateTime 2020/9/24 10:21 上午 | 
				
			|||
 */ | 
				
			|||
public interface ScreenExtractTaskService { | 
				
			|||
 | 
				
			|||
    Result screenExtractDaily(String params); | 
				
			|||
 | 
				
			|||
} | 
				
			|||
@ -0,0 +1,33 @@ | 
				
			|||
package com.epmet.service.impl; | 
				
			|||
 | 
				
			|||
import com.alibaba.fastjson.JSON; | 
				
			|||
import com.epmet.commons.tools.utils.Result; | 
				
			|||
import com.epmet.dto.extract.form.ExtractFormDTO; | 
				
			|||
import com.epmet.feign.DataStatisticalOpenFeignClient; | 
				
			|||
import com.epmet.service.ScreenExtractTaskService; | 
				
			|||
import lombok.extern.slf4j.Slf4j; | 
				
			|||
import org.apache.commons.lang3.StringUtils; | 
				
			|||
import org.springframework.beans.factory.annotation.Autowired; | 
				
			|||
import org.springframework.stereotype.Service; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * @Author zxc | 
				
			|||
 * @DateTime 2020/9/24 10:22 上午 | 
				
			|||
 */ | 
				
			|||
@Service | 
				
			|||
@Slf4j | 
				
			|||
public class ScreenExtractTaskServiceImpl implements ScreenExtractTaskService { | 
				
			|||
 | 
				
			|||
    @Autowired | 
				
			|||
    private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient; | 
				
			|||
 | 
				
			|||
 | 
				
			|||
    @Override | 
				
			|||
    public Result screenExtractDaily(String params) { | 
				
			|||
        ExtractFormDTO extractFormDTO = new ExtractFormDTO(); | 
				
			|||
        if (StringUtils.isNotBlank(params)) { | 
				
			|||
            extractFormDTO = JSON.parseObject(params, ExtractFormDTO.class); | 
				
			|||
        } | 
				
			|||
        return dataStatisticalOpenFeignClient.extractDailyAll(extractFormDTO); | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,33 @@ | 
				
			|||
package com.epmet.task; | 
				
			|||
 | 
				
			|||
import com.epmet.commons.tools.utils.Result; | 
				
			|||
import com.epmet.service.ScreenExtractTaskService; | 
				
			|||
import org.slf4j.Logger; | 
				
			|||
import org.slf4j.LoggerFactory; | 
				
			|||
import org.springframework.beans.factory.annotation.Autowired; | 
				
			|||
import org.springframework.stereotype.Component; | 
				
			|||
 | 
				
			|||
/** | 
				
			|||
 * @Author zxc | 
				
			|||
 * @DateTime 2020/9/24 10:26 上午 | 
				
			|||
 */ | 
				
			|||
@Component("screenExtractDailyTask") | 
				
			|||
public class ScreenExtractDailyTask implements ITask{ | 
				
			|||
 | 
				
			|||
    @Autowired | 
				
			|||
    private ScreenExtractTaskService screenExtractTaskService; | 
				
			|||
 | 
				
			|||
    private Logger logger = LoggerFactory.getLogger(getClass()); | 
				
			|||
 | 
				
			|||
 | 
				
			|||
    @Override | 
				
			|||
    public void run(String params) { | 
				
			|||
        logger.info("ScreenExtractDailyTask定时任务正在执行,参数为:{}", params); | 
				
			|||
        Result result = screenExtractTaskService.screenExtractDaily(params); | 
				
			|||
        if (result.success()){ | 
				
			|||
            logger.info("ScreenExtractDailyTask定时任务执行成功"); | 
				
			|||
        }else { | 
				
			|||
            logger.error("ScreenExtractDailyTask定时任务执行失败:" + result.getMsg()); | 
				
			|||
        } | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
					Loading…
					
					
				
		Reference in new issue