Browse Source

暂提

master
zxc 3 years ago
parent
commit
a36655d7bc
  1. 2
      epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/form/JiMuReportFormDTO.java
  2. 2
      epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JiMuReportResultDTO.java
  3. 20
      epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/JiMuReportOpenFeignClient.java
  4. 15
      epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/fallback/JiMuReportOpenFeignClientFallback.java
  5. 24
      epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/fallback/JiMuReportOpenFeignClientFallbackFactory.java
  6. 28
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java
  7. 7
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ReportResultDTO.java
  8. 2
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcCustomerReportDao.java
  9. 113
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcCustomerReportServiceImpl.java
  10. 13
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcCustomerReportDao.xml

2
epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/form/JiMuReportFormDTO.java

@ -28,4 +28,6 @@ public class JiMuReportFormDTO implements Serializable {
* 类别
*/
private List<String> categoryKeys;
private String id;
}

2
epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JiMuReportResultDTO.java

@ -19,4 +19,6 @@ public class JiMuReportResultDTO implements Serializable {
private String name;
private String id;
private String reportId;
private String reportName;
}

20
epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/JiMuReportOpenFeignClient.java

@ -1,14 +1,30 @@
package com.epmet.commons.feignclient.feigns;
import com.epmet.commons.feignclient.feigns.fallback.JiMuReportOpenFeignClientFallback;
import com.epmet.commons.feignclient.dtos.form.JiMuReportFormDTO;
import com.epmet.commons.feignclient.dtos.result.JiMuReportResultDTO;
import com.epmet.commons.feignclient.feigns.fallback.JiMuReportOpenFeignClientFallbackFactory;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @Author zxc
* @DateTime 2022/8/8 13:52
* @DESC
*/
@FeignClient(name = ServiceConstant.EPMET_JM_REPORT, fallbackFactory = JiMuReportOpenFeignClientFallback.class)
//@FeignClient(name = ServiceConstant.EPMET_JM_REPORT, fallbackFactory = JiMuReportOpenFeignClientFallbackFactory.class)
@FeignClient(name = ServiceConstant.EPMET_JM_REPORT, fallbackFactory = JiMuReportOpenFeignClientFallbackFactory.class, url = "localhost:8118")
public interface JiMuReportOpenFeignClient {
@GetMapping("jmreport/excelQuery")
Result<String> getList(@RequestParam("pageNo") Integer pageNo,@RequestParam("pageSize") Integer pageSize,
@RequestParam("reportType") String reportType,
@RequestParam("token") String token);
@GetMapping("jmreport/show")
Result<JiMuReportResultDTO> getReport(@RequestBody JiMuReportFormDTO formDTO);
}

15
epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/fallback/JiMuReportOpenFeignClientFallback.java

@ -1,6 +1,11 @@
package com.epmet.commons.feignclient.feigns.fallback;
import com.epmet.commons.feignclient.dtos.form.JiMuReportFormDTO;
import com.epmet.commons.feignclient.dtos.result.JiMuReportResultDTO;
import com.epmet.commons.feignclient.feigns.JiMuReportOpenFeignClient;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
/**
* @Author zxc
@ -8,4 +13,14 @@ import com.epmet.commons.feignclient.feigns.JiMuReportOpenFeignClient;
* @DESC
*/
public class JiMuReportOpenFeignClientFallback implements JiMuReportOpenFeignClient {
@Override
public Result<String> getList(Integer pageNo, Integer pageSize, String reportType, String token) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_JM_REPORT, "getList",pageNo,pageSize,reportType, token);
}
@Override
public Result<JiMuReportResultDTO> getReport(JiMuReportFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_JM_REPORT, "getReport",formDTO);
}
}

24
epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/fallback/JiMuReportOpenFeignClientFallbackFactory.java

@ -0,0 +1,24 @@
package com.epmet.commons.feignclient.feigns.fallback;
import com.epmet.commons.tools.exception.ExceptionUtils;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* @Author zxc
* @DateTime 2022/8/9 13:27
* @DESC
*/
@Slf4j
@Component
public class JiMuReportOpenFeignClientFallbackFactory implements FallbackFactory<JiMuReportOpenFeignClientFallback> {
private JiMuReportOpenFeignClientFallback fallback = new JiMuReportOpenFeignClientFallback();
@Override
public JiMuReportOpenFeignClientFallback create(Throwable cause) {
log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause)));
return fallback;
}
}

28
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java

@ -443,6 +443,34 @@ public class HttpClientManager {
}
}
public Result<String> sendGet(String url, Map<String, Object> params, Map<String, Object> headerMap) {
try {
URIBuilder builder = new URIBuilder(url);
if (!CollectionUtils.isEmpty(params)) {
Set<String> set = params.keySet();
for (String key : set) {
builder.setParameter(key, params.get(key) == null ? "" : String.valueOf(params.get(key)));
}
}
System.out.println(builder.getPath());
HttpGet httpGet = new HttpGet(builder.build());
httpGet.setConfig(requestConfig);
if (null != headerMap){
headerMap.forEach((k,v) -> {
if (StringUtils.isNotBlank(k)) {
httpGet.addHeader(k, v == null ? null : v.toString());
}
});
}
return execute(httpGet,false);
} catch (Exception e) {
log.error("sendGet exception", e);
return new Result<String>().error(EpmetErrorCode.SERVER_ERROR.getCode(), EpmetErrorCode.SERVER_ERROR.getMsg());
}
}
private Result<String> execute(HttpRequestBase httpMethod, boolean isHttps) {
CloseableHttpResponse response = null;
try {

7
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ReportResultDTO.java

@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
@ -81,4 +82,10 @@ public class ReportResultDTO implements Serializable {
*/
private String categoryKey;
}
public ReportResultDTO() {
this.reportName = "";
this.reportId = "";
this.customerList = new ArrayList<>();
}
}

2
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcCustomerReportDao.java

@ -23,7 +23,7 @@ public interface IcCustomerReportDao extends BaseDao<IcCustomerReportEntity> {
* @author zxc
* @date 2022/8/8 10:38
*/
List<ReportResultDTO> reportList();
List<ReportResultDTO> reportList(@Param("categoryKeys")List<String> categoryKeys);
/**
* Desc: 根据客户IDs获取ids

113
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcCustomerReportServiceImpl.java

@ -1,8 +1,11 @@
package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.epmet.commons.feignclient.dtos.form.JiMuReportFormDTO;
import com.epmet.commons.feignclient.dtos.result.JiMuReportResultDTO;
import com.epmet.commons.feignclient.feigns.JiMuReportOpenFeignClient;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
@ -12,6 +15,8 @@ import com.epmet.commons.tools.dto.result.DictListResultDTO;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.EpmetRequestHolder;
import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.CustomerFunctionConstant;
import com.epmet.dao.IcCustomerReportDao;
@ -27,16 +32,15 @@ import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.feign.OperCrmOpenFeignClient;
import com.epmet.service.IcCustomerReportService;
import com.epmet.service.IcReportFunService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.net.InetAddress;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -46,6 +50,7 @@ import java.util.stream.Collectors;
* @since v1.0.0 2022-08-08
*/
@Service
@Slf4j
public class IcCustomerReportServiceImpl extends BaseServiceImpl<IcCustomerReportDao, IcCustomerReportEntity> implements IcCustomerReportService {
@Autowired
private RedisUtils redisUtils;
@ -56,6 +61,8 @@ public class IcCustomerReportServiceImpl extends BaseServiceImpl<IcCustomerRepor
private OperCrmOpenFeignClient operCrmOpenFeignClient;
@Autowired
private IcReportFunService reportFunService;
@Autowired
private JiMuReportOpenFeignClient jiMuReportOpenFeignClient;
private QueryWrapper<IcCustomerReportEntity> getWrapper(Map<String, Object> params){
@ -75,10 +82,30 @@ public class IcCustomerReportServiceImpl extends BaseServiceImpl<IcCustomerRepor
*/
@Override
public List<ReportResultDTO> reportList() {
List<ReportResultDTO> reportList = baseDao.reportList();
if (CollectionUtils.isEmpty(reportList)){
Result<String> list = jiMuReportOpenFeignClient.getList(1,10000,"datainfo", EpmetRequestHolder.getHeader("Authorization"));
Result<String> url = getUrl(2, null);
log.info(url.toString());
Map<String,Object> map = JSON.parseObject(url.getData(), Map.class);
Map<String,Object> map2 = (Map<String,Object>)map.get("result");
List<Map<String,Object>> map3 = (List<Map<String,Object>>) map2.get("records");
List<JiMuReportResultDTO> allReports = new ArrayList<>();
map3.forEach(m -> {
allReports.add(ConvertUtils.mapToEntity(m,JiMuReportResultDTO.class));
});
if (CollectionUtils.isEmpty(allReports)){
return new ArrayList<>();
}
List<ReportResultDTO> allReportList = new ArrayList<>();
allReports.forEach(r -> {
ReportResultDTO dto = new ReportResultDTO();
dto.setReportId(r.getId());
dto.setReportName(r.getName());
allReportList.add(dto);
});
List<ReportResultDTO> reportList = baseDao.reportList(null);
if (CollectionUtils.isEmpty(reportList)){
return allReportList;
}
Result<List<DictListResultDTO>> dictList = adminOpenFeignClient.dictList(new DictListFormDTO(CustomerFunctionConstant.REPORT_CATEGORY));
if (!dictList.success()){
throw new EpmetException("查询字典信息失败:" + CustomerFunctionConstant.REPORT_CATEGORY);
@ -93,17 +120,9 @@ public class IcCustomerReportServiceImpl extends BaseServiceImpl<IcCustomerRepor
if (CollectionUtils.isNotEmpty(allCustomerList.getData())){
allCustomerList.getData().forEach(c -> reportList.stream().filter(r -> c.getId().equals(r.getCustomerId())).forEach(r -> r.setCustomerName(c.getCustomerName())));
}
// todo 报表
List<ReportResultDTO> result = new ArrayList<>();
Map<String, List<ReportResultDTO>> groupByReport = reportList.stream().collect(Collectors.groupingBy(ReportResultDTO::getReportId));
groupByReport.forEach((reportId,l) -> {
ReportResultDTO dto = new ReportResultDTO();
dto.setReportId(reportId);
dto.setReportName(l.get(NumConstant.ZERO).getReportName());
dto.setCustomerList(ConvertUtils.sourceToTarget(l, ReportResultDTO.CustomerList.class));
result.add(dto);
});
return result;
groupByReport.forEach((reportId,l) -> allReportList.stream().filter(a -> a.getReportId().equals(reportId)).forEach(a -> a.setCustomerList(ConvertUtils.sourceToTarget(l, ReportResultDTO.CustomerList.class))));
return allReportList;
}
/**
@ -173,7 +192,25 @@ public class IcCustomerReportServiceImpl extends BaseServiceImpl<IcCustomerRepor
*/
@Override
public List<JiMuReportResultDTO> reportIdAndName(ReportListFormDTO formDTO) {
return null;
List<ReportResultDTO> reportList = baseDao.reportList(formDTO.getCategoryKeys());
if (CollectionUtils.isEmpty(reportList)){
return new ArrayList<>();
}
List<String> recordIds = reportList.stream().map(m -> m.getReportId()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
List<JiMuReportResultDTO> result = new ArrayList<>();
recordIds.forEach(r -> {
JiMuReportFormDTO form = new JiMuReportFormDTO();
form.setId(r);
// Result<String> url = getUrl(NumConstant.ONE, r);
// if (!report.success()){
// throw new EpmetException("查询报表失败:"+r);
// }
// JiMuReportResultDTO data = report.getData();
// data.setReportId(data.getId());
// data.setReportName(data.getReportName());
// result.add(data);
});
return result;
}
@Transactional(rollbackFor = Exception.class)
@ -186,4 +223,46 @@ public class IcCustomerReportServiceImpl extends BaseServiceImpl<IcCustomerRepor
}
}
/**
* Desc:
* @param type 1:代表根据ID查询2查询全部
* @author zxc
* @date 2022/8/9 10:14
*/
public Result<String> getUrl(Integer type,String id) {
String add = "";
Result<String> result;
try {
InetAddress localHost = InetAddress.getLocalHost();
// add = localHost.getHostAddress();
add = "http://192.168.1.141:8118";
System.out.println(add);
}catch (Exception e){
log.warn("获取url失败");
}
if (type.compareTo(NumConstant.TWO) == NumConstant.ZERO){
add = add.concat("/jmreport/excelQuery");
Map<String,Object> params = new HashMap<>(16);
params.put("pageNo",1);
params.put("pageSize",10000);
params.put("reportType","datainfo");
params.put("name","");
params.put("token", EpmetRequestHolder.getHeader("Authorization"));
Map<String,Object> headers = new HashMap<>(16);
headers.put("token", EpmetRequestHolder.getHeader("Authorization"));
headers.put("X-Access-Token", EpmetRequestHolder.getHeader("Authorization"));
headers.put("Accept", "application/json, text/plain, */*");
headers.put("Content-Type", "application/json;charset=utf-8");
result = HttpClientManager.getInstance().sendGet(add, params, headers);
}else {
add.concat("/jmreport/show");
Map<String,Object> params = new HashMap<>(16);
params.put("id",id);
Map<String,String> headers = new HashMap<>(16);
headers.put("token", EpmetRequestHolder.getHeader("Authorization"));
result = HttpClientManager.getInstance().sendPostAndHeader(add, params, headers);
}
return result;
}
}

13
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcCustomerReportDao.xml

@ -5,7 +5,7 @@
<delete id="delCustomerReport">
DELETE FROM ic_customer_report
<if test="null != customerIds">
<if test="null != customerIds and customerIds.size() > 0">
WHERE CUSTOMER_ID IN (
<foreach collection="customerIds" item="c" separator=",">
#{c}
@ -15,7 +15,7 @@
</delete>
<delete id="delCustomerReportFun">
DELETE FROM ic_report_fun
<if test="null != reportIds">
<if test="null != reportIds and reportIds.size() > 0">
WHERE CUSTOMER_REPORT_ID IN (
<foreach collection="reportIds" item="r" separator=",">
#{r}
@ -31,8 +31,15 @@
cr.CUSTOMER_ID,
rf.FUN_CATEGORY_KEY AS categoryKey
FROM ic_customer_report cr
INNER JOIN ic_report_fun rf ON rf.CUSTOMER_REPORT_ID = cr.REPORT_ID AND rf.DEL_FLAG = 0
INNER JOIN ic_report_fun rf ON rf.CUSTOMER_REPORT_ID = cr.ID AND rf.DEL_FLAG = 0
WHERE cr.DEL_FLAG = 0
<if test="null != categoryKeys and categoryKeys.size() > 0">
AND rf.FUN_CATEGORY_KEY in (
<foreach collection="categoryKeys" item="r" separator=",">
#{r}
</foreach>
)
</if>
ORDER BY cr.CREATED_TIME DESC
</select>

Loading…
Cancel
Save