Browse Source

党员统计,定时任务

dev_shibei_match
zxc 5 years ago
parent
commit
ccb6c9c9ce
  1. 2
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/StatsConstant.java
  2. 1
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/CustomerIdAndDateIdFormDTO.java
  3. 9
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java
  4. 6
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java
  5. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DimController.java
  6. 7
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimCustomerDao.java
  7. 7
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimCustomerService.java
  8. 41
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerPartymemberServiceImpl.java
  9. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerServiceImpl.java
  10. 5
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerDao.xml
  11. 13
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/DimPartyMemberService.java
  12. 27
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/DimPartyMemberServiceImpl.java
  13. 30
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/DimPartyMemberTask.java

2
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/StatsConstant.java

@ -8,4 +8,6 @@ public interface StatsConstant {
String PARTY_INFO_LIST = "查询党员信息集合为空......";
String CUSTOMER_INFO_NULL = "查询所有客户ID为空";
}

1
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/CustomerIdAndDateIdFormDTO.java

@ -17,7 +17,6 @@ public class CustomerIdAndDateIdFormDTO implements Serializable {
public interface CustomerIdAndDateId extends CustomerClientShowGroup{}
@NotBlank(message = "客户ID不能为空",groups = CustomerIdAndDateId.class)
private String customerId;
@NotBlank(message = "日期Id不能为空",groups = CustomerIdAndDateId.class)

9
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java

@ -5,6 +5,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.StatsFormDTO;
import com.epmet.dto.group.form.GroupStatsFormDTO;
import com.epmet.dto.issue.form.IssueJobFromDTO;
import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO;
import com.epmet.feign.impl.DataStatisticalOpenFeignClientFallBack;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
@ -173,4 +174,12 @@ public interface DataStatisticalOpenFeignClient {
@PostMapping("/data/stats/statstopic/execute")
Result execTopicStatistical(@RequestParam(value = "date",required = false) String date);
/**
* @Description 统计党员
* @param customerIdAndDateIdFormDTO
* @author zxc
* @date 2020/9/17 3:10 下午
*/
@PostMapping("/data/stats/dim/statsparty")
Result getPartyInfo(@RequestBody CustomerIdAndDateIdFormDTO customerIdAndDateIdFormDTO);
}

6
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java

@ -6,6 +6,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.StatsFormDTO;
import com.epmet.dto.group.form.GroupStatsFormDTO;
import com.epmet.dto.issue.form.IssueJobFromDTO;
import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO;
import com.epmet.feign.DataStatisticalOpenFeignClient;
import org.springframework.stereotype.Component;
@ -170,4 +171,9 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp
public Result execTopicStatistical(String date) {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "execTopicStatistical",date);
}
@Override
public Result getPartyInfo(CustomerIdAndDateIdFormDTO customerIdAndDateIdFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "getPartyInfo",customerIdAndDateIdFormDTO);
}
}

4
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DimController.java

@ -262,9 +262,9 @@ public class DimController {
* @date 2020/9/17 3:01 下午
*/
@PostMapping("statsparty")
public Result<Boolean> getPartyInfo(@RequestBody CustomerIdAndDateIdFormDTO customerIdAndDateIdFormDTO) {
public Result getPartyInfo(@RequestBody CustomerIdAndDateIdFormDTO customerIdAndDateIdFormDTO) {
ValidatorUtils.validateEntity(customerIdAndDateIdFormDTO, CustomerIdAndDateIdFormDTO.CustomerIdAndDateId.class);
return new Result<Boolean>().ok(partyMemberService.statsPartyMember(customerIdAndDateIdFormDTO));
return new Result().ok(partyMemberService.statsPartyMember(customerIdAndDateIdFormDTO));
}
}

7
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimCustomerDao.java

@ -49,4 +49,11 @@ public interface DimCustomerDao extends BaseDao<DimCustomerEntity> {
DimCustomerEntity getLatestCreatedDimEntity();
DimCustomerEntity getLatestUpdatedDimEntity();
/**
* @Description 查询所有客户ID
* @author zxc
* @date 2020/9/17 3:30 下午
*/
List<String> getAllCustomerId();
}

7
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimCustomerService.java

@ -116,4 +116,11 @@ public interface DimCustomerService extends BaseService<DimCustomerEntity> {
DimCustomerEntity getLatestCreatedDimEntity();
DimCustomerEntity getLatestUpdatedDimEntity();
/**
* @Description 查询所有客户ID
* @author zxc
* @date 2020/9/17 3:30 下午
*/
List<String> getAllCustomerId();
}

41
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerPartymemberServiceImpl.java

@ -35,6 +35,7 @@ import com.epmet.dto.stats.result.GridBelongAgencyResultDTO;
import com.epmet.entity.stats.DimCustomerPartymemberEntity;
import com.epmet.service.partymember.PartyMemberService;
import com.epmet.service.stats.DimCustomerPartymemberService;
import com.epmet.service.stats.DimCustomerService;
import com.epmet.service.stats.DimGridService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
@ -63,6 +64,8 @@ public class DimCustomerPartymemberServiceImpl extends BaseServiceImpl<DimCustom
private PartyMemberService partyMemberService;
@Autowired
private DimGridService dimGridService;
@Autowired
private DimCustomerService dimCustomerService;
@Override
public PageData<DimCustomerPartymemberDTO> page(Map<String, Object> params) {
@ -124,25 +127,31 @@ public class DimCustomerPartymemberServiceImpl extends BaseServiceImpl<DimCustom
*/
@Override
public Boolean statsPartyMember(CustomerIdAndDateIdFormDTO customerIdAndDateIdFormDTO) {
String customerId = customerIdAndDateIdFormDTO.getCustomerId();
String dateId = customerIdAndDateIdFormDTO.getDateId();
List<DimCustomerPartyMemberFormDTO> partyMemberList = partyMemberService.selectPartyMemberInfo(customerId, dateId);
if (CollectionUtils.isEmpty(partyMemberList)){
throw new RenException(StatsConstant.PARTY_INFO_LIST);
List<String> allCustomerId = dimCustomerService.getAllCustomerId();
if (CollectionUtils.isEmpty(allCustomerId)){
throw new RenException(StatsConstant.CUSTOMER_INFO_NULL);
}
List<String> gridIds = partyMemberList.stream().map(party -> party.getGridId()).distinct().collect(Collectors.toList());
List<GridBelongAgencyResultDTO> agencyInfos = dimGridService.selectGridBelongAgencyInfo(gridIds);
TimeListResultDTO timeList = DateUtils.getTimeList(dateId);
partyMemberList.forEach(party -> {
BeanUtils.copyProperties(timeList,party);
agencyInfos.forEach(agency -> {
if (party.getGridId().equals(agency.getGridId())){
party.setAgencyId(agency.getAgencyId());
party.setParentId(agency.getParentId());
}
allCustomerId.forEach(customerId -> {
String dateId = customerIdAndDateIdFormDTO.getDateId();
List<DimCustomerPartyMemberFormDTO> partyMemberList = partyMemberService.selectPartyMemberInfo(customerId, dateId);
if (CollectionUtils.isEmpty(partyMemberList)){
throw new RenException(StatsConstant.PARTY_INFO_LIST);
}
List<String> gridIds = partyMemberList.stream().map(party -> party.getGridId()).distinct().collect(Collectors.toList());
List<GridBelongAgencyResultDTO> agencyInfos = dimGridService.selectGridBelongAgencyInfo(gridIds);
TimeListResultDTO timeList = DateUtils.getTimeList(dateId);
partyMemberList.forEach(party -> {
BeanUtils.copyProperties(timeList,party);
agencyInfos.forEach(agency -> {
if (party.getGridId().equals(agency.getGridId())){
party.setAgencyId(agency.getAgencyId());
party.setParentId(agency.getParentId());
}
});
});
delAndInsertParty(partyMemberList,customerId,dateId);
});
delAndInsertParty(partyMemberList,customerId,dateId);
return true;
}

10
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerServiceImpl.java

@ -156,4 +156,14 @@ public class DimCustomerServiceImpl extends BaseServiceImpl<DimCustomerDao, DimC
public DimCustomerEntity getLatestUpdatedDimEntity() {
return baseDao.getLatestUpdatedDimEntity();
}
/**
* @Description 查询所有客户ID
* @author zxc
* @date 2020/9/17 3:30 下午
*/
@Override
public List<String> getAllCustomerId() {
return baseDao.getAllCustomerId();
}
}

5
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerDao.xml

@ -40,4 +40,9 @@
order by UPDATED_TIME desc
limit 1;
</select>
<!-- 查询所有客户ID -->
<select id="getAllCustomerId" resultType="java.lang.String">
SELECT ID FROM dim_customer WHERE DEL_FLAG = '0'
</select>
</mapper>

13
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/DimPartyMemberService.java

@ -0,0 +1,13 @@
package com.epmet.service;
import com.epmet.commons.tools.utils.Result;
/**
* @Author zxc
* @DateTime 2020/9/17 3:05 下午
*/
public interface DimPartyMemberService {
Result getPartyInfo(String date);
}

27
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/DimPartyMemberServiceImpl.java

@ -0,0 +1,27 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO;
import com.epmet.feign.DataStatisticalOpenFeignClient;
import com.epmet.service.DimPartyMemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @Author zxc
* @DateTime 2020/9/17 3:06 下午
*/
@Service
public class DimPartyMemberServiceImpl implements DimPartyMemberService {
@Autowired
private DataStatisticalOpenFeignClient statsFeignClient;
@Override
public Result getPartyInfo(String dateId) {
CustomerIdAndDateIdFormDTO c = new CustomerIdAndDateIdFormDTO();
c.setDateId(dateId);
return statsFeignClient.getPartyInfo(c);
}
}

30
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/DimPartyMemberTask.java

@ -0,0 +1,30 @@
package com.epmet.task;
import com.epmet.commons.tools.utils.Result;
import com.epmet.service.DimPartyMemberService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @Author zxc
* @DateTime 2020/9/17 3:04 下午
*/
@Slf4j
@Component("dimPartyMemberTask")
public class DimPartyMemberTask implements ITask{
@Autowired
private DimPartyMemberService dimPartyMemberService;
@Override
public void run(String params) {
log.info("dimPartyMemberTask定时任务正在执行,参数为:{}", params);
Result result = dimPartyMemberService.getPartyInfo(params);
if (result.success()){
log.info("dimPartyMemberTask定时任务执行成功");
}else {
log.error("dimPartyMemberTask定时任务执行失败:" + result.getMsg());
}
}
}
Loading…
Cancel
Save