diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/form/JiMuReportFormDTO.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/form/JiMuReportFormDTO.java new file mode 100644 index 0000000000..caf58ec9a9 --- /dev/null +++ b/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 reportIds; + + /** + * 类别 + */ + private List categoryKeys; + + private String id; +} diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JiMuReportResultDTO.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/dtos/result/JiMuReportResultDTO.java new file mode 100644 index 0000000000..9f48ab6bba --- /dev/null +++ b/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; +} diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/JiMuReportOpenFeignClient.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/JiMuReportOpenFeignClient.java index 0c5dfb97ef..5317a63ca5 100644 --- a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/JiMuReportOpenFeignClient.java +++ b/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 getList(@RequestParam("pageNo") Integer pageNo,@RequestParam("pageSize") Integer pageSize, + @RequestParam("reportType") String reportType, + @RequestParam("token") String token); + + @GetMapping("jmreport/show") + Result getReport(@RequestBody JiMuReportFormDTO formDTO); + } diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/fallback/JiMuReportOpenFeignClientFallback.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/fallback/JiMuReportOpenFeignClientFallback.java index f1ca95d23d..24b5580256 100644 --- a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/fallback/JiMuReportOpenFeignClientFallback.java +++ b/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 getList(Integer pageNo, Integer pageSize, String reportType, String token) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_JM_REPORT, "getList",pageNo,pageSize,reportType, token); + } + + @Override + public Result getReport(JiMuReportFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_JM_REPORT, "getReport",formDTO); + } } diff --git a/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/fallback/JiMuReportOpenFeignClientFallbackFactory.java b/epmet-commons/epmet-commons-feignclient/src/main/java/com/epmet/commons/feignclient/feigns/fallback/JiMuReportOpenFeignClientFallbackFactory.java new file mode 100644 index 0000000000..e0274436c2 --- /dev/null +++ b/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 { + + private JiMuReportOpenFeignClientFallback fallback = new JiMuReportOpenFeignClientFallback(); + + @Override + public JiMuReportOpenFeignClientFallback create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; + } +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java index 4fe6be37da..69b9d87b97 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java @@ -443,6 +443,34 @@ public class HttpClientManager { } } + public Result sendGet(String url, Map params, Map headerMap) { + + try { + URIBuilder builder = new URIBuilder(url); + if (!CollectionUtils.isEmpty(params)) { + Set 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().error(EpmetErrorCode.SERVER_ERROR.getCode(), EpmetErrorCode.SERVER_ERROR.getMsg()); + } + } + private Result execute(HttpRequestBase httpMethod, boolean isHttps) { CloseableHttpResponse response = null; try { diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java index 62dfafccdf..f3eea5b2db 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java +++ b/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}) diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventProcessListResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventProcessListResultDTO.java index 65d28e6501..5afe520905 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventProcessListResultDTO.java +++ b/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 subProcess; + /** + * 公开答复附件 + */ + private List publicFile; + /** + * 内部备注附件 + */ + private List internalFile; /** * 协办单位类型,1社区自组织,2联建单位 */ @@ -69,4 +93,5 @@ public class IcEventProcessListResultDTO implements Serializable { */ private String actualServiceTime; + } diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportEditFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportEditFormDTO.java index d1e72f7d15..3bb7871caa 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportEditFormDTO.java +++ b/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 customerIds; + @Valid + private List customerList; - private List categoryKeys; + + @Data + public static class CustomerReportEditForm implements Serializable{ + + private static final long serialVersionUID = 8154093835160706134L; + + private List categoryKeys; + + @NotBlank(message = "customerId不能为空", groups = ReportEditForm.class) + private String customerId; + } } diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportListFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/ReportListFormDTO.java new file mode 100644 index 0000000000..4d67790aed --- /dev/null +++ b/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 categoryKeys; + + private String customerId; +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ReportResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ReportResultDTO.java index 0667a0c226..b8638c3b5c 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ReportResultDTO.java +++ b/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<>(); + } } diff --git a/epmet-module/oper-customize/oper-customize-server/pom.xml b/epmet-module/oper-customize/oper-customize-server/pom.xml index b6694d1abb..218a64eb59 100644 --- a/epmet-module/oper-customize/oper-customize-server/pom.xml +++ b/epmet-module/oper-customize/oper-customize-server/pom.xml @@ -22,6 +22,11 @@ epmet-commons-tools 2.0.0 + + com.epmet + epmet-commons-feignclient + 2.0.0 + com.epmet epmet-commons-mybatis diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/CustomerFunctionConstant.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/CustomerFunctionConstant.java index 5d41b4453c..b5cbc36f11 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/CustomerFunctionConstant.java +++ b/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"; + } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcCustomerReportController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcCustomerReportController.java index 922bf28af4..0c4cdcc0fa 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcCustomerReportController.java +++ b/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> reportIdAndName(@RequestBody ReportListFormDTO formDTO,@LoginUser TokenDto tokenDto){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result>().ok(icCustomerReportService.reportIdAndName(formDTO)); + } + } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcCustomerReportDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcCustomerReportDao.java index 52513402d2..ce9fc0334e 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcCustomerReportDao.java +++ b/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 { * @author zxc * @date 2022/8/8 10:38 */ - List reportList(); + List reportList(@Param("categoryKeys")List categoryKeys,@Param("customerId")String customerId); + + /** + * Desc: 根据客户IDs获取ids + * @param customerIds + * @author zxc + * @date 2022/8/8 15:39 + */ + List getIdsByCustomer(@Param("customerIds") List customerIds,@Param("reportId") String reportId); + + void delCustomerReport(@Param("customerIds") List customerIds); + + void delCustomerReportFun(@Param("reportIds") List reportIds); } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcCustomerReportService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcCustomerReportService.java index 372dfa5bed..b833104c97 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcCustomerReportService.java +++ b/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 reportIdAndName(ReportListFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcCustomerReportServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcCustomerReportServiceImpl.java index 02223c703d..fd1b1a2d8c 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcCustomerReportServiceImpl.java +++ b/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 implements IcCustomerReportService { @Autowired private RedisUtils redisUtils; @@ -48,6 +59,10 @@ public class IcCustomerReportServiceImpl extends BaseServiceImpl getWrapper(Map params){ @@ -67,10 +82,33 @@ public class IcCustomerReportServiceImpl extends BaseServiceImpl reportList() { - List reportList = baseDao.reportList(); - if (CollectionUtils.isEmpty(reportList)){ + Result list = jiMuReportOpenFeignClient.getList(1,10000,"datainfo", EpmetRequestHolder.getHeader("Authorization")); + Result url = getUrl(2, null); + log.info("所有jm报表"+url); + Map map = JSON.parseObject(url.getData(), Map.class); + if (!map.containsValue(true)){ + throw new EpmetException("获取所有jm报表失败"); + } + Map map2 = (Map)map.get("result"); + List> map3 = (List>) map2.get("records"); + List allReports = new ArrayList<>(); + map3.forEach(m -> { + allReports.add(ConvertUtils.mapToEntity(m,JiMuReportResultDTO.class)); + }); + if (CollectionUtils.isEmpty(allReports)){ return new ArrayList<>(); } + List allReportList = new ArrayList<>(); + allReports.forEach(r -> { + ReportResultDTO dto = new ReportResultDTO(); + dto.setReportId(r.getId()); + dto.setReportName(r.getName()); + allReportList.add(dto); + }); + List reportList = baseDao.reportList(null,null); + if (CollectionUtils.isEmpty(reportList)){ + return allReportList; + } Result> 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 reportList.stream().filter(r -> c.getId().equals(r.getCustomerId())).forEach(r -> r.setCustomerName(c.getCustomerName()))); } - // todo 报表 - List result = new ArrayList<>(); Map> 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 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 entities = new ArrayList<>(); + List 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 reportIdAndName(ReportListFormDTO formDTO) { + List reportList = baseDao.reportList(formDTO.getCategoryKeys(), formDTO.getCustomerId()); + if (CollectionUtils.isEmpty(reportList)){ + return new ArrayList<>(); + } + List recordIds = reportList.stream().map(m -> m.getReportId()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList()); + List result = new ArrayList<>(); + recordIds.forEach(r -> { + JiMuReportFormDTO form = new JiMuReportFormDTO(); + form.setId(r); + Result url = getUrl(NumConstant.ONE, r); + log.info("模板详情"+url); + Map map = JSON.parseObject(url.getData(), Map.class); + if (!map.containsValue(true)){ + throw new EpmetException("获取jm报表详情失败:"+r); + } + Map map2 = (Map)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 reportEntities,List 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 getUrl(Integer type,String id) { + String add = ""; + Result 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 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 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 params = new HashMap<>(16); + params.put("id",id); + params.put("apiUrl",""); + params.put("params",""); + Map 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; } } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcCustomerReportDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcCustomerReportDao.xml index 2336b1dc3d..689f448228 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcCustomerReportDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcCustomerReportDao.xml @@ -3,6 +3,27 @@ + + DELETE FROM ic_customer_report + + WHERE CUSTOMER_ID IN ( + + #{c} + + ) + + + + DELETE FROM ic_report_fun + + WHERE CUSTOMER_REPORT_ID IN ( + + #{r} + + ) + + + + + + \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index f958d975d3..778740a9a6 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/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>> queryListResi1(@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO) {