diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java index 0e2b93e4d3..9497f1bed8 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java @@ -36,6 +36,6 @@ public interface EpmetThirdOpenFeignClient { * @date 2021/3/18 11:08 */ @PostMapping("third/project/apply-assist") - Result applyAssist(@RequestBody ProjectApplyAssistFormDTO formDTO); + Result applyAssist(@RequestBody ProjectApplyAssistFormDTO formDTO); } diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java index 10abcf6992..05c0d52fd7 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java @@ -32,7 +32,7 @@ public class EpmetThirdOpenFeignClientFallback implements EpmetThirdOpenFeignCli * @date 2021/3/18 11:08 */ @Override - public Result applyAssist(ProjectApplyAssistFormDTO formDTO) { + public Result applyAssist(ProjectApplyAssistFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "applyAssist", formDTO); } } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/ApiService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/ApiService.java index 7aff23fd7a..ef54d00d93 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/ApiService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/ApiService.java @@ -1,12 +1,12 @@ package com.epmet.apiservice; +import com.alibaba.fastjson.JSON; +import com.epmet.apiservice.result.LZGridPlatformBaseResult; import com.epmet.dto.result.ProjectAssistResult; import com.epmet.commons.tools.exception.RenException; -import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.SpringContextUtils; -import com.epmet.constant.ThirdPlatformActions; import com.epmet.dao.ThirdplatformActionDao; import com.epmet.dao.ThirdplatformCustomerRegisterDao; import com.epmet.dao.ThirdplatformDao; @@ -15,8 +15,6 @@ import com.epmet.dto.form.TPFDemoFormDTO; import com.epmet.entity.ThirdplatformActionEntity; import com.epmet.entity.ThirdplatformCustomerRegisterEntity; import com.epmet.entity.ThirdplatformEntity; -import org.apache.commons.lang3.StringUtils; -import org.springframework.data.redis.core.RedisTemplate; import java.util.HashMap; import java.util.Map; @@ -77,7 +75,8 @@ public abstract class ApiService { if (result.success()) { throw new RenException("请求第三方平台,获取AccessToken失败。"); } - judgeResultSuccess(result.getData()); + LZGridPlatformBaseResult platformResult = JSON.parseObject(result.getData(), LZGridPlatformBaseResult.class); + judgeResultSuccess(platformResult); return result.getData(); } @@ -110,12 +109,14 @@ public abstract class ApiService { headers); if (result == null) { - throw new RenException("请求第三方平台,获取AccessToken失败。result为null"); + throw new RenException("请求第三方平台,发送Post请求失败。result为null"); } - if (result.success()) { - throw new RenException("请求第三方平台,获取AccessToken失败。"); + if (!result.success()) { + throw new RenException("请求第三方平台,发送Post请求失败。错误信息:" + result.getMsg()); } - judgeResultSuccess(result.getData()); + + LZGridPlatformBaseResult platformResult = JSON.parseObject(result.getData(), LZGridPlatformBaseResult.class); + judgeResultSuccess(platformResult); return result.getData(); } @@ -165,5 +166,5 @@ public abstract class ApiService { * @author wxz * @date 2021.03.22 10:32 */ - public abstract void judgeResultSuccess(String stringData); + public abstract void judgeResultSuccess(LZGridPlatformBaseResult result); } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/impl/DemoApiService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/impl/DemoApiService.java index 1a1e00cd4e..63f718a0d5 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/impl/DemoApiService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/impl/DemoApiService.java @@ -1,6 +1,7 @@ package com.epmet.apiservice.impl; import com.epmet.apiservice.ApiService; +import com.epmet.apiservice.result.LZGridPlatformBaseResult; import com.epmet.dto.result.ProjectAssistResult; import com.epmet.dto.form.ProjectApplyAssistFormDTO; import com.epmet.feign.OperCrmOpenFeignClient; @@ -17,9 +18,6 @@ public class DemoApiService extends ApiService { Logger logger = LoggerFactory.getLogger(DemoApiService.class); - @Autowired - private OperCrmOpenFeignClient operCrmOpenFeignClient; - @Override public String getAccessToken(String platformId) { return null; @@ -32,7 +30,7 @@ public class DemoApiService extends ApiService { } @Override - public void judgeResultSuccess(String stringData) { + public void judgeResultSuccess(LZGridPlatformBaseResult result) { } } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/impl/LuzhouGridPlatformApiService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/impl/LuzhouGridPlatformApiService.java index 026b40654d..25586f743a 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/impl/LuzhouGridPlatformApiService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/impl/LuzhouGridPlatformApiService.java @@ -45,14 +45,19 @@ public class LuzhouGridPlatformApiService extends ApiService { params.put("appKey", platformKey); params.put("appSecret", platformSecret); Result result = HttpClientManager.getInstance().sendGet(baseUrl.concat(actionEntity.getApiUrl()), params); + if (result == null) { throw new RenException("请求第三方平台,获取AccessToken失败。result为null"); } + if (!result.success()) { throw new RenException("请求第三方平台,获取AccessToken失败。"); } - judgeResultSuccess(result.getData()); - token = result.getData(); + + LZGridPlatformBaseResult platformResult = JSON.parseObject(result.getData(), LZGridPlatformBaseResult.class); + judgeResultSuccess(platformResult); + + token = platformResult.getResult(); rt.opsForValue().set(RedisKeys.getThirdPlatformAccessTokenKey(platformId), token); } return token; @@ -63,28 +68,28 @@ public class LuzhouGridPlatformApiService extends ApiService { String platformId = formDTO.getPlatformId(); // 正式调用第三方平台 - //String result1 = sendPostRequest(platformId, ThirdPlatformActions.PROJECT_ASSIST, "{}", null); + String argsStr = JSON.toJSONString(formDTO); + String result = sendPostRequest(platformId, ThirdPlatformActions.PROJECT_ASSIST, argsStr, null); // 开发阶段临时写死 - String result = "{\"eventId\":\"test-task-id\"}"; + //String result = "{\"eventId\":\"test-task-id\"}"; ProjectAssistResult projectAssistResult = new ProjectAssistResult(); if (!StringUtils.isBlank(result)) { // 此处要经过一系列业务处理,将第三方平台返回的数据进行解析,等处理最后转换成ProjectAssistResult类型,返回。ProjectAssistResult这个类型是 // 所有apiService的projectAssist方法返回值的统一类型,是我们的epmet-cloud所需要的数据的实体, // 所有apiService都要想办法转化成这个类型。 - LZGridPlatformProjectAssistResult lzResult = JSON.parseObject(result, LZGridPlatformProjectAssistResult.class); + LZGridPlatformBaseResult lzResult = JSON.parseObject(result, LZGridPlatformBaseResult.class); // 此处设置为第三方系统返回的唯一id - projectAssistResult.setTaskId(lzResult.getEventId()); + projectAssistResult.setTaskId(lzResult.getResult()); } System.out.println("泸州网格化平台项目协助发送成功"); return projectAssistResult; } @Override - public void judgeResultSuccess(String stringData) { + public void judgeResultSuccess(LZGridPlatformBaseResult result) { //LZGridPlatformBaseResult; - LZGridPlatformBaseResult result = JSON.parseObject(stringData, LZGridPlatformBaseResult.class); if (!"200".equalsIgnoreCase(result.getCode())) { throw new RenException("泸州网格化平台:返回失败结果,错误码:" + result.getCode()); } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/ProjectController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/ProjectController.java index 0b32b9c2dd..699f70ec34 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/ProjectController.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/ProjectController.java @@ -44,10 +44,10 @@ public class ProjectController { * @date 2021.03.15 21:13 */ @PostMapping("apply-assist") - public Result applyAssist(@RequestBody ProjectApplyAssistFormDTO formDTO) { + public Result applyAssist(@RequestBody ProjectApplyAssistFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO); ProjectAssistResult projectAssistResult = projectService.applyAssist(formDTO); - return new Result().ok(projectAssistResult); + return new Result().ok(projectAssistResult); } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java index 6bae43e57b..4a8696fa01 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java @@ -159,5 +159,5 @@ public interface ProjectConstant { String NOT_EXIST_PROJECT = "未查询带此项目信息......"; - String EXTERNAL_SYSTEM = "external_system"; + String EXTERNAL_SYSTEM = "third_platform_project_send"; } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java index 05fe6c04b4..60257a5e4d 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java @@ -217,4 +217,9 @@ public class ProjectController { } return new Result<>(); } + @PostMapping("platformcallback") + public Result platformCallBack(@RequestBody PlatformCallBackFormDTO formDTO) { + projectService.platformCallBack(formDTO); + return new Result(); + } } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 1526c7af87..24f2ee520e 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -45,9 +45,14 @@ import com.epmet.entity.*; import com.epmet.feign.*; import com.epmet.redis.ProjectRedis; import com.epmet.resi.group.constant.TopicConstant; +import com.epmet.resi.group.dto.topic.ResiTopicDTO; +import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import com.epmet.service.*; import com.github.pagehelper.PageHelper; +import com.google.common.base.Joiner; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import org.apache.commons.collections4.CollectionUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.ListUtils; @@ -119,6 +124,10 @@ public class ProjectServiceImpl extends BaseServiceImpl imageList = formDTO.getInternalFile().stream().filter(fileDTO -> TopicConstant.IMAGE.equals(fileDTO.getType())).map(FileDTO::getUrl).collect(Collectors.toList()); @@ -2139,13 +2153,6 @@ public class ProjectServiceImpl extends BaseServiceImpl relatedPersonnel = projectRelatedPersonnelService.getPersonnelListByProjectId(formDTO.getProjectId()); CustomerGridFormDTO customerGridFormDTO = new CustomerGridFormDTO(); customerGridFormDTO.setGridId(relatedPersonnel.get(0).getGridId()); - Result gridResult = govOrgOpenFeignClient.getCustomerGridByGridId(customerGridFormDTO); - if (!gridResult.success()) { - throw new RenException(gridResult.getCode(), gridResult.getMsg()); - } - applyAssistFormDTO.setLatitude(gridResult.getData().getLatitude()); - applyAssistFormDTO.setLongitude(gridResult.getData().getLongitude()); - //获取议题详情 IssueDetailFormDTO issueDetailFormDTO = new IssueDetailFormDTO(); issueDetailFormDTO.setIssueId(projectEntity.getOriginId()); @@ -2153,18 +2160,44 @@ public class ProjectServiceImpl extends BaseServiceImpl topic = resiGroupOpenFeignClient.getTopicById(issueDetail.getData().getTopicInfo().getTopicId()); + if (!topic.success()) { + throw new RenException(topic.getCode(), topic.getMsg()); + } + applyAssistFormDTO.setLatitude(topic.getData().getDimension()); + applyAssistFormDTO.setLongitude(topic.getData().getLongitude()); + applyAssistFormDTO.setProvince(topic.getData().getProvince()); + applyAssistFormDTO.setCity(topic.getData().getCity()); + applyAssistFormDTO.setArea(topic.getData().getArea()); ProjectDetailDTO projectDetailDTO = ConvertUtils.sourceToTarget(issueDetail.getData(), ProjectDetailDTO.class); - projectDetailDTO = ConvertUtils.sourceToTarget(issueDetail.getData().getTopicInfo(), ProjectDetailDTO.class); + projectDetailDTO.setTopicContent(issueDetail.getData().getTopicInfo().getTopicContent()); + projectDetailDTO.setTopicPublisher(issueDetail.getData().getTopicInfo().getTopicPublisher()); + projectDetailDTO.setTopicPublisherMobile(issueDetail.getData().getTopicInfo().getTopicPublisherMobile()); + projectDetailDTO.setTopicPublishTime(issueDetail.getData().getTopicInfo().getTopicPublishTime()); + projectDetailDTO.setPhotoList(issueDetail.getData().getTopicInfo().getPhotoList()); projectDetailDTO.setPublicReply(formDTO.getPublicReply()); projectDetailDTO.setInternalRemark(formDTO.getInternalRemark()); - applyAssistFormDTO.setDetail(projectDetailDTO.toString()); + //项目详情 + ProjectDetailFromDTO projectDetailFromDTO = new ProjectDetailFromDTO(); + projectDetailFromDTO.setUserId(formDTO.getUserId()); + projectDetailFromDTO.setProjectId(formDTO.getProjectId()); + projectDetailFromDTO.setCustomerId(projectStaff.getCustomerId()); + ProjectDetailResultDTO projectDetailResultDTO = getProjectDetail(projectDetailFromDTO); + + //项目进展 + ProcessListV2FormDTO processListV2FormDTO = new ProcessListV2FormDTO(); + processListV2FormDTO.setProjectId(formDTO.getProjectId()); + List processList = projectTraceService.processListV2(processListV2FormDTO); + + applyAssistFormDTO.setDetail(getDetail(projectDetailDTO, projectDetailResultDTO, processList)); applyAssistFormDTO.setDetailAddress(projectDetailDTO.getBelongsGridName()); - Result result = epmetThirdOpenFeignClient.applyAssist(applyAssistFormDTO); + applyAssistFormDTO.setSource("党建引领"); + applyAssistFormDTO.setNotifyUrl("/gov/project/project/platformcallback"); + Result result = epmetThirdOpenFeignClient.applyAssist(applyAssistFormDTO); if (!result.success()) { throw new RenException(result.getCode(), result.getMsg()); } - applyAssistFormDTO.setSource("党建引领"); - ProjectAssistResult assistResult = (ProjectAssistResult)result.getData(); + ProjectAssistResult assistResult = result.getData(); //发送到外部系统 end //结果存入project_sub_process表 @@ -2252,4 +2285,54 @@ public class ProjectServiceImpl extends BaseServiceImpl processList) { + String detail = ""; + detail = detail.concat("项目来源\n"); + if (null == sourceDTO.getTopicContent()) { + sourceDTO.setTopicContent(""); + } + + if (CollectionUtils.isEmpty(sourceDTO.getPhotoList())) { + sourceDTO.setPhotoList(new ArrayList<>()); + } + String source = "议题标题:" + sourceDTO.getIssueTitle() + "\n" + + "针对话题\n" + (null == sourceDTO.getTopicContent()?"":sourceDTO.getTopicContent()) + "\n" + + "话题图片\n" + Joiner.on(StrConstant.COMMA).join(sourceDTO.getPhotoList()) + "\n" + + "建议采用如下处理方式\n" + sourceDTO.getIssueSuggestion() + "\n" + + "所属网格:" + sourceDTO.getBelongsGridName() + "\n" + + "话题发表人:" + sourceDTO.getTopicPublisher() + sourceDTO.getTopicPublisherMobile() + "\n" + + "议题发表人:" + sourceDTO.getIssueInitiator() + sourceDTO.getIssuePublisherMobile() + "\n" + + "话题发表时间:" + DateUtils.formatTimestamp(sourceDTO.getTopicPublishTime(), DateUtils.DATE_TIME_PATTERN); + detail = detail.concat(source); + detail = detail.concat("\n项目详情\n"); + detail = "项目标题:" +projectDetail.getProjectTitle() + "\n" + + "项目方案::\n" + projectDetail.getPublicReply() + "\n" + + "内部备注:\n" + projectDetail.getInternalRemark() + "\n" + + "当前处理部门:\n"; + for (ProjectDetailResultDTO.DepartmentNameListBean item : projectDetail.getDepartmentList()) { + String department = item.getDepartmentName() + "(" + Joiner.on(StrConstant.COMMA).join(item.getStaffList()) + ")\n"; + detail = detail + department; + } + detail = detail.concat("\n处理进展\n"); + for (ProcessListV2ResultDTO item : processList) { + String process = "【" + item.getProcessName() + "】\n" + + DateUtils.formatTimestamp(item.getProcessTime(), DateUtils.DATE_TIME_PATTERN) + "\n" + + "处理部门:" + item.getProcessName() + "\n" + + "说明:" + item.getPublicReply() + "\n"; + //TODO 上传图片 + detail = detail + process; + } + + System.out.println(detail); + return detail; + + } + + private String toJson(Object object) { + GsonBuilder gsonBuilder = new GsonBuilder(); + gsonBuilder.setPrettyPrinting(); + Gson gson = gsonBuilder.create(); + return gson.toJson(object); + } + } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index b22e546da1..f7c8bf1b75 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java @@ -199,4 +199,13 @@ public interface ResiGroupOpenFeignClient { @GetMapping("resi/group/topic/querytopicinfobyissueid/{issueId}") Result queryTopicInfoByIssueId(@PathVariable("issueId")String issueId); + + /** + * @param + * @return + * @Author sun + * @Description 根据话题Id查询话题信息 + **/ + @PostMapping("/resi/group/topic/gettopicbyid/{topicId}") + Result getTopicById(@PathVariable("topicId") String topicId); } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java index 8d19545c5a..4e744f4e62 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java @@ -143,4 +143,14 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien public Result queryTopicInfoByIssueId(String issueId) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "queryTopicInfoByIssueId", issueId); } + + /** + * @param topicId@return + * @Author sun + * @Description 根据话题Id查询话题信息 + **/ + @Override + public Result getTopicById(String topicId) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "getTopicById", topicId); + } }