Browse Source

Merge branch 'dev_jmreport' of http://git.elinkit.com.cn:7070/r/epmet-cloud into dev_jmreport

feature/evaluate
wangxianzhang 3 years ago
parent
commit
cbe9aaa794
  1. 33
      epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/form/JiMuReportFormDTO.java
  2. 24
      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. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
  8. 25
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventProcessListResultDTO.java
  9. 16
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportEditFormDTO.java
  10. 21
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportListFormDTO.java
  11. 7
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ReportResultDTO.java
  12. 5
      epmet-module/oper-customize/oper-customize-server/pom.xml
  13. 3
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/CustomerFunctionConstant.java
  14. 14
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcCustomerReportController.java
  15. 15
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcCustomerReportDao.java
  16. 14
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcCustomerReportService.java
  17. 183
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcCustomerReportServiceImpl.java
  18. 45
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcCustomerReportDao.xml
  19. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java

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

@ -0,0 +1,33 @@
package com.epmet.commons.feignclient.dtos.form;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @Author zxc
* @DateTime 2022/8/8 15:08
* @DESC
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class JiMuReportFormDTO implements Serializable {
private static final long serialVersionUID = 3590609549416867701L;
/**
* 报表IDs
*/
private List<String> reportIds;
/**
* 类别
*/
private List<String> categoryKeys;
private String id;
}

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

@ -0,0 +1,24 @@
package com.epmet.commons.feignclient.dtos.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/8/8 15:10
* @DESC
*/
@Data
public class JiMuReportResultDTO implements Serializable {
private static final long serialVersionUID = -4048477731892329569L;
private String code;
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 {

2
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java

@ -27,6 +27,7 @@ import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.annotation.MaskResponse;
import com.epmet.commons.tools.annotation.ReportRequest;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.ServiceConstant;
@ -105,6 +106,7 @@ public class HouseController implements ResultDataResolver {
@Autowired
private IcHouseDao icHouseDao;
@ReportRequest
@PostMapping("houselist")
@MaskResponse(fieldNames = {"ownerIdCard", "ownerPhone"},
fieldsMaskType = {MaskResponse.MASK_TYPE_ID_CARD, MaskResponse.MASK_TYPE_MOBILE})

25
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventProcessListResultDTO.java

@ -16,6 +16,10 @@ public class IcEventProcessListResultDTO implements Serializable {
private static final long serialVersionUID = 5762152044573235897L;
/**
* 项目ID
*/
private String projectId;
/**
* 进展Id
*/
@ -39,6 +43,26 @@ public class IcEventProcessListResultDTO implements Serializable {
* 公开答复
*/
private String publicReply;
/**
* 是否发送到外部系统 0否 1是
*/
private Integer isSend;
/**
* 内部备注
*/
private String internalRemark;
/**
* 子节点
*/
private List<SubProcessDTO> subProcess;
/**
* 公开答复附件
*/
private List<PublicAndInternalFileResultDTO> publicFile;
/**
* 内部备注附件
*/
private List<PublicAndInternalFileResultDTO> internalFile;
/**
* 协办单位类型1社区自组织2联建单位
*/
@ -69,4 +93,5 @@ public class IcEventProcessListResultDTO implements Serializable {
*/
private String actualServiceTime;
}

16
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportEditFormDTO.java

@ -2,6 +2,7 @@ package com.epmet.dto.form;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
@ -27,7 +28,18 @@ public class ReportEditFormDTO implements Serializable {
@NotBlank(message = "reportId不能为空", groups = ReportEditForm.class)
private String reportId;
private List<String> customerIds;
@Valid
private List<CustomerReportEditForm> customerList;
private List<String> categoryKeys;
@Data
public static class CustomerReportEditForm implements Serializable{
private static final long serialVersionUID = 8154093835160706134L;
private List<String> categoryKeys;
@NotBlank(message = "customerId不能为空", groups = ReportEditForm.class)
private String customerId;
}
}

21
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportListFormDTO.java

@ -0,0 +1,21 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Author zxc
* @DateTime 2022/8/8 15:16
* @DESC
*/
@Data
public class ReportListFormDTO implements Serializable {
private static final long serialVersionUID = -4459838228433571457L;
private List<String> categoryKeys;
private String customerId;
}

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<>();
}
}

5
epmet-module/oper-customize/oper-customize-server/pom.xml

@ -22,6 +22,11 @@
<artifactId>epmet-commons-tools</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-commons-feignclient</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-commons-mybatis</artifactId>

3
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/CustomerFunctionConstant.java

@ -25,5 +25,8 @@ public interface CustomerFunctionConstant {
String REPORT_CATEGORY = "jmreport_category";
String REPORT_EDIT = "edit";
String REPORT_ADD = "add";
}

14
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcCustomerReportController.java

@ -1,11 +1,13 @@
package com.epmet.controller;
import com.epmet.commons.feignclient.dtos.result.JiMuReportResultDTO;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.PreviewReportFormDTO;
import com.epmet.dto.form.ReportEditFormDTO;
import com.epmet.dto.form.ReportListFormDTO;
import com.epmet.dto.result.PreviewReportResDTO;
import com.epmet.dto.result.ReportResultDTO;
import com.epmet.service.IcCustomerReportService;
@ -70,4 +72,16 @@ public class IcCustomerReportController {
return new Result();
}
/**
* Desc: 居民信息/房屋信息-查询报表
* @param formDTO
* @author zxc
* @date 2022/8/8 15:20
*/
@PostMapping("report-list")
public Result<List<JiMuReportResultDTO>> reportIdAndName(@RequestBody ReportListFormDTO formDTO,@LoginUser TokenDto tokenDto){
formDTO.setCustomerId(tokenDto.getCustomerId());
return new Result<List<JiMuReportResultDTO>>().ok(icCustomerReportService.reportIdAndName(formDTO));
}
}

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

@ -4,6 +4,7 @@ import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.ReportResultDTO;
import com.epmet.entity.IcCustomerReportEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -22,6 +23,18 @@ 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,@Param("customerId")String customerId);
/**
* Desc: 根据客户IDs获取ids
* @param customerIds
* @author zxc
* @date 2022/8/8 15:39
*/
List<String> getIdsByCustomer(@Param("customerIds") List<String> customerIds,@Param("reportId") String reportId);
void delCustomerReport(@Param("customerIds") List<String> customerIds);
void delCustomerReportFun(@Param("reportIds") List<String> reportIds);
}

14
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcCustomerReportService.java

@ -1,11 +1,11 @@
package com.epmet.service;
import com.epmet.commons.feignclient.dtos.result.JiMuReportResultDTO;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.dto.form.PreviewReportFormDTO;
import com.epmet.dto.result.PreviewReportResDTO;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcCustomerReportDTO;
import com.epmet.dto.form.ReportEditFormDTO;
import com.epmet.dto.form.ReportListFormDTO;
import com.epmet.dto.result.PreviewReportResDTO;
import com.epmet.dto.result.ReportResultDTO;
import com.epmet.entity.IcCustomerReportEntity;
@ -41,4 +41,12 @@ public interface IcCustomerReportService extends BaseService<IcCustomerReportEnt
* @date 2022/8/8 14:09
*/
void reportEdit(ReportEditFormDTO formDTO);
/**
* Desc: 居民信息/房屋信息-查询报表
* @param formDTO
* @author zxc
* @date 2022/8/8 15:20
*/
List<JiMuReportResultDTO> reportIdAndName(ReportListFormDTO formDTO);
}

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

@ -1,6 +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;
@ -10,27 +15,32 @@ 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;
import com.epmet.dto.CustomerDTO;
import com.epmet.dto.form.PreviewReportFormDTO;
import com.epmet.dto.result.PreviewReportResDTO;
import com.epmet.dto.IcCustomerReportDTO;
import com.epmet.dto.form.ReportEditFormDTO;
import com.epmet.dto.form.ReportListFormDTO;
import com.epmet.dto.result.PreviewReportResDTO;
import com.epmet.dto.result.ReportResultDTO;
import com.epmet.entity.IcCustomerReportEntity;
import com.epmet.entity.IcReportFunEntity;
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.List;
import java.util.Map;
import java.net.InetAddress;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -40,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;
@ -48,6 +59,10 @@ public class IcCustomerReportServiceImpl extends BaseServiceImpl<IcCustomerRepor
private EpmetAdminOpenFeignClient adminOpenFeignClient;
@Autowired
private OperCrmOpenFeignClient operCrmOpenFeignClient;
@Autowired
private IcReportFunService reportFunService;
@Autowired
private JiMuReportOpenFeignClient jiMuReportOpenFeignClient;
private QueryWrapper<IcCustomerReportEntity> getWrapper(Map<String, Object> params){
@ -67,10 +82,33 @@ 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("所有jm报表"+url);
Map<String,Object> map = JSON.parseObject(url.getData(), Map.class);
if (!map.containsValue(true)){
throw new EpmetException("获取所有jm报表失败");
}
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,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);
@ -85,17 +123,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;
}
/**
@ -111,6 +141,7 @@ public class IcCustomerReportServiceImpl extends BaseServiceImpl<IcCustomerRepor
reportResDTO.setReportId(formDTO.getReportId());
String key = formDTO.getCustomerId().concat(StrConstant.COLON).concat(formDTO.getReportId()).concat(StrConstant.COLON).concat(formDTO.getCategoryKey()).concat(StrConstant.COLON).concat(formDTO.getStaffId());
redisUtils.hMSet(key, formDTO.getParamMap(), RedisUtils.DEFAULT_EXPIRE);
reportResDTO.setParamKey(key);
return reportResDTO;
}
@ -123,7 +154,125 @@ public class IcCustomerReportServiceImpl extends BaseServiceImpl<IcCustomerRepor
@Transactional(rollbackFor = Exception.class)
@Override
public void reportEdit(ReportEditFormDTO formDTO) {
List<String> reportIds = new ArrayList<>();
if (CollectionUtils.isNotEmpty(formDTO.getCustomerList())){
reportIds = baseDao.getIdsByCustomer(formDTO.getCustomerList().stream().map(m -> m.getCustomerId()).collect(Collectors.toList()), formDTO.getReportId());
}
if (formDTO.getType().equals(CustomerFunctionConstant.REPORT_EDIT)){
// 单个编辑
baseDao.delCustomerReport(Arrays.asList(formDTO.getCustomerList().get(NumConstant.ZERO).getCustomerId()));
}else if (formDTO.getType().equals(CustomerFunctionConstant.REPORT_ADD)){
baseDao.delCustomerReport(null);
}
baseDao.delCustomerReportFun(reportIds);
if (CollectionUtils.isNotEmpty(formDTO.getCustomerList())){
List<IcCustomerReportEntity> entities = new ArrayList<>();
List<IcReportFunEntity> funEntities = new ArrayList<>();
formDTO.getCustomerList().forEach(c -> {
IcCustomerReportEntity reportEntity = new IcCustomerReportEntity();
reportEntity.setReportId(formDTO.getReportId());
reportEntity.setCustomerId(c.getCustomerId());
reportEntity.setId(IdWorker.getIdStr());
if (CollectionUtils.isNotEmpty(c.getCategoryKeys())){
c.getCategoryKeys().forEach(key -> {
IcReportFunEntity funEntity = new IcReportFunEntity();
funEntity.setCustomerReportId(reportEntity.getId());
funEntity.setFunCategoryKey(key);
funEntities.add(funEntity);
});
}
entities.add(reportEntity);
});
insetCustomerReportAndFun(entities,funEntities);
}
}
/**
* Desc: 居民信息/房屋信息-查询报表
* @param formDTO
* @author zxc
* @date 2022/8/8 15:20
*/
@Override
public List<JiMuReportResultDTO> reportIdAndName(ReportListFormDTO formDTO) {
List<ReportResultDTO> reportList = baseDao.reportList(formDTO.getCategoryKeys(), formDTO.getCustomerId());
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);
log.info("模板详情"+url);
Map<String,Object> map = JSON.parseObject(url.getData(), Map.class);
if (!map.containsValue(true)){
throw new EpmetException("获取jm报表详情失败:"+r);
}
Map<String,Object> map2 = (Map<String,Object>)map.get("result");
JiMuReportResultDTO data = ConvertUtils.mapToEntity(map2, JiMuReportResultDTO.class);
data.setReportId(data.getId());
data.setReportName(data.getName());
result.add(data);
});
return result;
}
@Transactional(rollbackFor = Exception.class)
public void insetCustomerReportAndFun(List<IcCustomerReportEntity> reportEntities,List<IcReportFunEntity> funEntities){
if (CollectionUtils.isNotEmpty(reportEntities)){
insertBatch(reportEntities);
}
if (CollectionUtils.isNotEmpty(funEntities)){
reportFunService.insertBatch(funEntities);
}
}
/**
* 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 = "http://"+localHost.getHostAddress()+":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 = add.concat("/jmreport/show");
Map<String,Object> params = new HashMap<>(16);
params.put("id",id);
params.put("apiUrl","");
params.put("params","");
Map<String,String> 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().sendPostByJSONAndHeader(add, JSON.toJSONString(params), headers);
}
return result;
}
}

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

@ -3,6 +3,27 @@
<mapper namespace="com.epmet.dao.IcCustomerReportDao">
<delete id="delCustomerReport">
DELETE FROM ic_customer_report
<if test="null != customerIds and customerIds.size() > 0">
WHERE CUSTOMER_ID IN (
<foreach collection="customerIds" item="c" separator=",">
#{c}
</foreach>
)
</if>
</delete>
<delete id="delCustomerReportFun">
DELETE FROM ic_report_fun
<if test="null != reportIds and reportIds.size() > 0">
WHERE CUSTOMER_REPORT_ID IN (
<foreach collection="reportIds" item="r" separator=",">
#{r}
</foreach>
)
</if>
</delete>
<!-- 报表集合 -->
<select id="reportList" resultType="com.epmet.dto.result.ReportResultDTO">
SELECT
@ -10,8 +31,30 @@
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>
<if test='customerId != null and customerId != ""'>
AND cr.CUSTOMER_ID = #{customerId}
</if>
ORDER BY cr.CREATED_TIME DESC
</select>
<!-- 根据客户IDs获取ids -->
<select id="getIdsByCustomer" resultType="java.lang.String">
SELECT ID FROM ic_customer_report
WHERE DEL_FLAG = 0
AND REPORT_ID = #{reportId}
AND CUSTOMER_ID IN (
<foreach collection="customerIds" item="c" separator=",">
#{c}
</foreach>
)
</select>
</mapper>

2
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java

@ -25,6 +25,7 @@ import com.alibaba.fastjson.JSON;
import com.epmet.commons.rocketmq.messages.IcResiUserAddMQMsg;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.annotation.MaskResponse;
import com.epmet.commons.tools.annotation.ReportRequest;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.Constant;
@ -368,6 +369,7 @@ public class IcResiUserController implements ResultDataResolver {
return new Result<>();
}
@ReportRequest
@PostMapping("listresi")
@MaskResponse(fieldNames = {"MOBILE", "ID_CARD"}, fieldsMaskType = {MaskResponse.MASK_TYPE_MOBILE, MaskResponse.MASK_TYPE_ID_CARD})
public Result<PageData<Map<String, Object>>> queryListResi1(@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO) {

Loading…
Cancel
Save