Browse Source

项目发送到第三方平台

dev_shibei_match
zhaoqifeng 4 years ago
parent
commit
4b142408e0
  1. 4
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java
  2. 94
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/ProjectApplyAssistFormDTO.java
  3. 78
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/ProjectDetailDTO.java
  4. 2
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/ProjectAssistResult.java
  5. 41
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java
  6. 38
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java
  7. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/ApiService.java
  8. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/impl/DemoApiService.java
  9. 3
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/impl/LuzhouGridPlatformApiService.java
  10. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/ProjectController.java
  11. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/ProjectService.java
  12. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java
  13. 3
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java
  14. 5
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java
  15. 2
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectSubProcessDTO.java
  16. 39
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/PlatformCallBackFormDTO.java
  17. 6
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/SendToFormDTO.java
  18. 6
      epmet-module/gov-project/gov-project-server/pom.xml
  19. 10
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java
  20. 9
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSubProcessDao.java
  21. 2
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectSubProcessEntity.java
  22. 19
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java
  23. 10
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectSubProcessService.java
  24. 241
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java
  25. 14
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSubProcessServiceImpl.java
  26. 3
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java
  27. 23
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSubProcessDao.xml

4
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java

@ -63,6 +63,10 @@ public interface NumConstant {
String THREE_STR = "3";
String FOUR_STR = "4";
String FIVE_STR = "5";
String SIX_STR = "6";
String SEVEN_STR = "7";
String EIGHT_STR = "8";
String NINE_STR = "9";
String POSITIVE_EIGHT_STR = "+8";
String EMPTY_STR = "";
String ONE_NEG_STR = "-1";

94
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/ProjectApplyAssistFormDTO.java

@ -3,13 +3,105 @@ package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @author kamui
*/
@Data
public class ProjectApplyAssistFormDTO {
public class ProjectApplyAssistFormDTO implements Serializable {
private static final long serialVersionUID = 2052722763454170462L;
private String customerId;
@NotBlank(message = "平台ID不能为空")
private String platformId;
/**
* 标题
*/
private String title;
/**
* 详细内容
*/
@NotBlank(message = "详细内容不能为空")
private String detail;
/**
* 期望结束时间
*/
private String expectEndTime;
/**
* 图片链接英文逗号分割的字符串
*/
private String imageLink;
/**
* 音频链接英文逗号分割的字符串
*/
private String voiceLink;
/**
* 视频链接英文逗号分割的字符串
*/
private String videoLink;
/**
* 当事人姓名
*/
private String personName;
/**
* 当事人手机
*/
private String mobile;
/**
* 详细地址
*/
@NotBlank(message = "详细地址不能为空")
private String detailAddress;
/**
* 来源需根据调用方传对应的值
* 封面新闻需传群众爆料
* 党建引领传党建引领
*/
@NotBlank(message = "来源不能为空")
private String source;
/**
* 经度
*/
@NotBlank(message = "经度不能为空")
private String longitude;
/**
* 纬度
*/
@NotBlank(message = "纬度不能为空")
private String latitude;
/**
*
*/
private String province;
/**
*
*/
private String city;
/**
* 区县
*/
private String area;
/**
* 街道
*/
private String street;
/**
* 社区
*/
private String houseEstate;
/**
* 外部事件id
*/
private String outEventId;
/**
* 外部用户id
*/
private String outUserId;
/**
* 通知接口的地址
*/
private String notifyUrl;
}

78
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/ProjectDetailDTO.java

@ -0,0 +1,78 @@
package com.epmet.dto.form;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2021/3/18 17:12
*/
@Data
public class ProjectDetailDTO implements Serializable {
private static final long serialVersionUID = -2172640364021337846L;
/**
* 议题标题
*/
private String issueTitle;
/**
* 议题状态(voting 已转项目shift_project 已关闭closed)
*/
private String issueStatus;
/**
* 议题发起人电话
* */
private String issuePublisherMobile;
/**
* 议题建议处理方式
*/
private String issueSuggestion;
/**
* 所属网格(网格所属机关单位名称-网格名称)
*/
private String belongsGridName;
/**
* 议题发起人山东路168-尹女士
*/
private String issueInitiator;
/**
* 话题内容
*/
private String topicContent;
/**
* 图片列表
*/
private List<String> photoList;
/**
* 话题发表人山东路168-尹女士
*/
private String topicPublisher;
/**
* 话题发表时间 (时间戳 毫秒级)
*/
private Long topicPublishTime;
/**
* 话题发表人电话
* */
private String topicPublisherMobile;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.SIMPLE_STYLE);
}
}

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/result/ProjectAssistResult.java → epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/ProjectAssistResult.java

@ -1,4 +1,4 @@
package com.epmet.apiservice.result;
package com.epmet.dto.result;
import lombok.Data;

41
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdOpenFeignClient.java

@ -0,0 +1,41 @@
package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.ProjectDTO;
import com.epmet.dto.form.ProcessListFormDTO;
import com.epmet.dto.form.ProjectApplyAssistFormDTO;
import com.epmet.dto.form.ProjectByCreateTopicUserFormDTO;
import com.epmet.dto.form.ProjectListFromDTO;
import com.epmet.dto.result.*;
import com.epmet.feign.fallback.EpmetThirdOpenFeignClientFallback;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* 本服务对外开放的API,其他服务通过引用此client调用该服务
*
* @author zhaoqifeng
* @date 2021/3/18 14:18
*/
// @FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallback = GovProjectOpenFeignClientFallback.class,url = "localhost:8110")
@FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallback = EpmetThirdOpenFeignClientFallback.class)
public interface EpmetThirdOpenFeignClient {
/**
* 请求项目协助
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @author zhaoqifeng
* @date 2021/3/18 11:08
*/
@PostMapping("third/project/apply-assist")
Result applyAssist(@RequestBody ProjectApplyAssistFormDTO formDTO);
}

38
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdOpenFeignClientFallback.java

@ -0,0 +1,38 @@
package com.epmet.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.ProjectDTO;
import com.epmet.dto.form.ProcessListFormDTO;
import com.epmet.dto.form.ProjectApplyAssistFormDTO;
import com.epmet.dto.form.ProjectByCreateTopicUserFormDTO;
import com.epmet.dto.form.ProjectListFromDTO;
import com.epmet.dto.result.*;
import com.epmet.feign.EpmetThirdOpenFeignClient;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import org.springframework.stereotype.Component;
import java.util.List;
/**
*
* @author zhaoqifeng
* @date 2021/3/18 14:17
*/
@Component
public class EpmetThirdOpenFeignClientFallback implements EpmetThirdOpenFeignClient {
/**
* 请求项目协助
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @author zhaoqifeng
* @date 2021/3/18 11:08
*/
@Override
public Result applyAssist(ProjectApplyAssistFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "applyAssist", formDTO);
}
}

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/ApiService.java

@ -1,6 +1,6 @@
package com.epmet.apiservice;
import com.epmet.apiservice.result.ProjectAssistResult;
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;

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/impl/DemoApiService.java

@ -1,7 +1,7 @@
package com.epmet.apiservice.impl;
import com.epmet.apiservice.ApiService;
import com.epmet.apiservice.result.ProjectAssistResult;
import com.epmet.dto.result.ProjectAssistResult;
import com.epmet.dto.form.ProjectApplyAssistFormDTO;
import com.epmet.feign.OperCrmOpenFeignClient;
import org.slf4j.Logger;

3
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/apiservice/impl/LuzhouGridPlatformApiService.java

@ -3,8 +3,7 @@ package com.epmet.apiservice.impl;
import com.alibaba.fastjson.JSON;
import com.epmet.apiservice.ApiService;
import com.epmet.apiservice.result.LZGridPlatformProjectAssistResult;
import com.epmet.apiservice.result.ProjectAssistResult;
import com.epmet.constant.ThirdPlatformActions;
import com.epmet.dto.result.ProjectAssistResult;
import com.epmet.dto.form.ProjectApplyAssistFormDTO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/ProjectController.java

@ -1,6 +1,6 @@
package com.epmet.controller;
import com.epmet.apiservice.result.ProjectAssistResult;
import com.epmet.dto.result.ProjectAssistResult;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.ProjectApplyAssistFormDTO;

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/ProjectService.java

@ -1,6 +1,6 @@
package com.epmet.service;
import com.epmet.apiservice.result.ProjectAssistResult;
import com.epmet.dto.result.ProjectAssistResult;
import com.epmet.dto.form.ProjectApplyAssistFormDTO;
import com.epmet.dto.form.TPFDemoFormDTO;

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java

@ -1,7 +1,7 @@
package com.epmet.service.impl;
import com.epmet.apiservice.ApiService;
import com.epmet.apiservice.result.ProjectAssistResult;
import com.epmet.dto.result.ProjectAssistResult;
import com.epmet.dto.form.ProjectApplyAssistFormDTO;
import com.epmet.dto.form.TPFDemoFormDTO;
import com.epmet.service.ApiServiceSelector;

3
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java

@ -244,4 +244,7 @@ public interface GovIssueOpenFeignClient {
@PostMapping("/gov/issue/issue/detail")
Result<IssueResultDTO> queryIssueDetail(@RequestBody IssueDetailFormDTO formDTO);
@PostMapping(value = "/gov/issue/manage/votingissuedetail")
Result<GovIssueDetailResultDTO> votingissuedetail(@RequestBody IssueDetailFormDTO issueDetail);
}

5
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java

@ -211,4 +211,9 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient
public Result<IssueResultDTO> queryIssueDetail(IssueDetailFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "detail", formDTO);
}
@Override
public Result<GovIssueDetailResultDTO> votingissuedetail(IssueDetailFormDTO issueDetail) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "votingissuedetail", issueDetail);
}
}

2
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectSubProcessDTO.java

@ -56,7 +56,7 @@ public class ProjectSubProcessDTO implements Serializable {
/**
* 项目人员关联表ID
*/
private String staffId;
private String projectStaffId;
/**
* 系统ID

39
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/PlatformCallBackFormDTO.java

@ -0,0 +1,39 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2021/3/19 15:08
*/
@Data
public class PlatformCallBackFormDTO implements Serializable {
private static final long serialVersionUID = 6350776148129116395L;
/**
* 事件id
*/
private String eventId;
/**
* 事件新的状态
*/
private String status;
/**
* 事件处理详细内容
*/
private String note;
/**
* 事件处理日期, 时区GMT+8 格式YYYY-MM-dd HH:mm:ss
*/
private String handleDate;
/**
* 事件处理人姓名
*/
private String handleUserName;
/**
* 参数签名签名算法
*/
private String sign;
}

6
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/SendToFormDTO.java

@ -34,6 +34,12 @@ public class SendToFormDTO implements Serializable {
@NotBlank(message = "外部系统名不能为空")
private String platformName;
/**
* 部门名
*/
private String departmentName;
private String userId;
@Valid
private List<TickStaffFormDTO> staffList;

6
epmet-module/gov-project/gov-project-server/pom.xml

@ -107,6 +107,12 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-third-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

10
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java

@ -79,4 +79,14 @@ public interface CustomerProjectParameterDao extends BaseDao<CustomerProjectPara
* @return int
*/
int deleteByCustomer(@Param("customerId") String customerId);
/**
* 根据key获取value
* @author zhaoqifeng
* @date 2021/3/17 16:51
* @param customerId
* @param key
* @return java.lang.String
*/
String selectValueByKey(@Param("customerId") String customerId, @Param("key") String key);
}

9
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSubProcessDao.java

@ -51,4 +51,13 @@ public interface ProjectSubProcessDao extends BaseDao<ProjectSubProcessEntity> {
*/
List<SubProcessDTO> selectSubProcessAndAttachment(@Param("processIds")List<String> processIds);
/**
* 根据platformId查找最新的记录
* @author zhaoqifeng
* @date 2021/3/19 15:26
* @param platformId
* @return com.epmet.dto.ProjectSubProcessDTO
*/
ProjectSubProcessDTO selectSubProcessByPlatformId(@Param("platformId") String platformId);
}

2
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectSubProcessEntity.java

@ -56,7 +56,7 @@ public class ProjectSubProcessEntity extends BaseEpmetEntity {
/**
* 项目人员关联表ID
*/
private String staffId;
private String projectStaffId;
/**
* 系统ID

19
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java

@ -19,6 +19,7 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.ProjectDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
@ -276,4 +277,22 @@ public interface ProjectService extends BaseService<ProjectEntity> {
* @Date 2021/2/24 17:07
**/
ProjectInfoDTO queryProjectInfoByProjectId(String projectId);
/**
* 发送到外部平台
* @author zhaoqifeng
* @date 2021/3/17 14:33
* @param formDTO
* @return void
*/
void sendTo(SendToFormDTO formDTO);
/**
* 第三方平台回调
* @author zhaoqifeng
* @date 2021/3/19 15:12
* @param formDTO
* @return void
*/
void platformCallBack(PlatformCallBackFormDTO formDTO);
}

10
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectSubProcessService.java

@ -109,4 +109,14 @@ public interface ProjectSubProcessService extends BaseService<ProjectSubProcessE
* @date 2021/3/18 下午2:57
*/
List<SubProcessDTO> selectSubProcessAndAttachment(List<String> processIds);
/**
* 根据platformId查找最新的记录
*
* @author zhaoqifeng
* @date 2021/3/19 15:24
* @param platformId
* @return com.epmet.dto.ProjectSubProcessDTO
*/
ProjectSubProcessDTO getSubProcessByPlatformId(String platformId);
}

241
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java

@ -29,6 +29,7 @@ import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.constant.ParameterKeyConstant;
@ -43,6 +44,7 @@ import com.epmet.dto.result.*;
import com.epmet.entity.*;
import com.epmet.feign.*;
import com.epmet.redis.ProjectRedis;
import com.epmet.resi.group.constant.TopicConstant;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import com.epmet.service.*;
import com.github.pagehelper.PageHelper;
@ -109,6 +111,11 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
private GovIssueOpenFeignClient govIssueOpenFeignClient;
@Autowired
private ProjectSubProcessService projectSubProcessService;
@Autowired
private EpmetThirdOpenFeignClient epmetThirdOpenFeignClient;
@Autowired
private GovOrgOpenFeignClient govOrgOpenFeignClient;
private final static String ONE_DAY = "<1";
@ -1280,7 +1287,9 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
@Transactional(rollbackFor = Exception.class)
public void projectProcessCostTimeDataCompensation() {
List<String> customers = baseDao.selectAllCustomerIds();
if(CollectionUtils.isEmpty(customers))return;
if(CollectionUtils.isEmpty(customers)) {
return;
}
List<ProjectOrgRelationDTO> totalContainer = new LinkedList<>();
customers.forEach(customerId -> {
List<ProjectOrgPeriodResultDTO> projectNodePeriodPerOrgList = projectStaffService.selectProjectOrgPeriod(customerId);
@ -1364,8 +1373,11 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
dataMap.forEach((k,v) -> {
if(null != v){
v.setTotalPeriod(batchDelta_T.get(k));
if(v.getHandledDate() == v.getFirstDealtDate())v.setFirstReplyPeriod(batchDelta_T.get(k));
else v.setFirstReplyPeriod(batchDelta_TResponse.get(k));
if(v.getHandledDate() == v.getFirstDealtDate()) {
v.setFirstReplyPeriod(batchDelta_T.get(k));
} else {
v.setFirstReplyPeriod(batchDelta_TResponse.get(k));
}
}
});
List<List<ProjectOrgRelationDTO>> partition = ListUtils.partition(totalContainer, NumConstant.ONE_HUNDRED);
@ -1557,17 +1569,25 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
int seq = NumConstant.ZERO;
a:
for (int index = NumConstant.ZERO; index < staffResponseTraceUnit.size(); index++) {
if(StringUtils.isNotBlank(staffResponseTraceUnit.get(index).getOperation()) && staffResponseTraceUnit.get(index).getOperation().contains("create")) continue;
if(StringUtils.isNotBlank(staffResponseTraceUnit.get(index).getOperation()) && staffResponseTraceUnit.get(index).getOperation().contains("create")) {
continue;
}
if (StringUtils.equals("response", staffResponseTraceUnit.get(index).getOperation())) {
replaceFirstResponseDate(incompleteBodyUnit,staffResponseTraceUnit.get(index),seq);
seq++;
int cursor = index;
if (cursor == staffResponseTraceUnit.size() - NumConstant.ZERO) break;
if (cursor == staffResponseTraceUnit.size() - NumConstant.ZERO) {
break;
}
while (StringUtils.equals("response", staffResponseTraceUnit.get(cursor++).getOperation())) {
if (cursor == staffResponseTraceUnit.size() - NumConstant.ZERO) break a;
if (cursor == staffResponseTraceUnit.size() - NumConstant.ZERO) {
break a;
}
}
if (cursor == staffResponseTraceUnit.size() - NumConstant.ZERO) {
break;
}
if (cursor == staffResponseTraceUnit.size() - NumConstant.ZERO) break;
index = cursor;
} else {
replaceFirstResponseDate(incompleteBodyUnit,staffResponseTraceUnit.get(index),seq);
@ -1589,7 +1609,9 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
// 传递过来的dest是已经按照projectId分好组之后再按照staff分组的集合
// dest key->staff
ProjectOrgPeriodResultDTO target = dest.get(seq);
if(null != target) target.setPeriodTillReplyFirstly(staffResponseTraceUnit.getCreatedTime());
if(null != target) {
target.setPeriodTillReplyFirstly(staffResponseTraceUnit.getCreatedTime());
}
}
/**
@ -1968,4 +1990,207 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
return projectInfoDTO;
}
/**
* 发送到外部平台
*
* @param formDTO
* @return void
* @author zhaoqifeng
* @date 2021/3/17 14:33
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void sendTo(SendToFormDTO formDTO) {
//公开回复内容审核
if (StringUtils.isNotBlank(formDTO.getPublicReply())) {
TextScanParamDTO textScanParamDTO = new TextScanParamDTO();
TextTaskDTO taskDTO = new TextTaskDTO();
taskDTO.setDataId(UUID.randomUUID().toString().replace("-", ""));
taskDTO.setContent(formDTO.getPublicReply());
textScanParamDTO.getTasks().add(taskDTO);
Result<SyncScanResult> textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO);
if (!textSyncScanResult.success()) {
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode());
} else {
if (!textSyncScanResult.getData().isAllPass()) {
throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode());
}
}
}
//获取项目相关信息
ProjectEntity projectEntity = baseDao.selectById(formDTO.getProjectId());
if (ProjectConstant.CLOSED.equals(projectEntity.getStatus())) {
throw new RenException(EpmetErrorCode.PROJECT_IS_CLOSED.getCode());
}
if(StringUtils.isBlank(formDTO.getProjectStaffId())){
ProjectStaffDTO projectStaff = projectStaffService.getLatestIdByProjectIdAndStaffId(formDTO.getProjectId(),formDTO.getUserId());
if(null == projectStaff){
log.error("com.epmet.service.impl.ProjectServiceImpl.response,project_staff表中没有与之对应的数据,传参:{}", JSON.toJSONString(formDTO));
throw new RenException("未找到项目相关人员记录");
}
formDTO.setProjectStaffId(projectStaff.getId());
}
ProjectStaffDTO projectStaff = projectStaffService.get(formDTO.getProjectStaffId());
//处理响应记录加入项目进展表
ProjectProcessEntity projectProcessEntity = new ProjectProcessEntity();
projectProcessEntity.setProjectId(formDTO.getProjectId());
projectProcessEntity.setCustomerId(projectStaff.getCustomerId());
projectProcessEntity.setDepartmentName(formDTO.getDepartmentName());
projectProcessEntity.setOrgIdPath(projectStaff.getOrgIdPath());
projectProcessEntity.setGridId(projectStaff.getGridId());
projectProcessEntity.setDepartmentId(projectStaff.getDepartmentId());
projectProcessEntity.setAgencyId(projectStaff.getOrgId());
projectProcessEntity.setOperation(ProjectConstant.OPERATION_RESPONSES);
projectProcessEntity.setOperationName(ProjectConstant.OPERATION_RESPONSES_NAME);
projectProcessEntity.setPublicReply(formDTO.getPublicReply());
projectProcessEntity.setInternalRemark(formDTO.getInternalRemark());
projectProcessEntity.setStaffId(formDTO.getUserId());
projectProcessEntity.setIsSend(NumConstant.ONE);
projectProcessService.insert(projectProcessEntity);
//项目附件表新增数据 sun 2020.12.22
if (CollectionUtils.isNotEmpty(formDTO.getPublicFile()) || CollectionUtils.isNotEmpty(formDTO.getInternalFile())) {
saveFile(formDTO.getPublicFile(), formDTO.getInternalFile(), projectStaff.getCustomerId(), formDTO.getProjectId(), projectProcessEntity.getId());
}//end
//TODO 发送到外部系统 start
ProjectApplyAssistFormDTO applyAssistFormDTO = new ProjectApplyAssistFormDTO();
applyAssistFormDTO.setCustomerId(projectStaff.getCustomerId());
applyAssistFormDTO.setPlatformId(formDTO.getPlatformId());
if (CollectionUtils.isNotEmpty(formDTO.getInternalFile())) {
List<String> imageList =
formDTO.getInternalFile().stream().filter(fileDTO -> TopicConstant.IMAGE.equals(fileDTO.getType())).map(FileDTO::getUrl).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(imageList)) {
applyAssistFormDTO.setImageLink(String.join(StrConstant.COMMA, imageList));
}
List<String> voiceList =
formDTO.getInternalFile().stream().filter(fileDTO -> TopicConstant.VOICE.equals(fileDTO.getType())).map(FileDTO::getUrl).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(imageList)) {
applyAssistFormDTO.setVoiceLink(String.join(StrConstant.COMMA, voiceList));
}
List<String> videoList =
formDTO.getInternalFile().stream().filter(fileDTO -> TopicConstant.VIDEO.equals(fileDTO.getType())).map(FileDTO::getUrl).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(imageList)) {
applyAssistFormDTO.setVideoLink(String.join(StrConstant.COMMA, videoList));
}
}
//获取网格信息
List<ProjectRelatedPersonnelDTO> relatedPersonnel = projectRelatedPersonnelService.getPersonnelListByProjectId(formDTO.getProjectId());
CustomerGridFormDTO customerGridFormDTO = new CustomerGridFormDTO();
customerGridFormDTO.setGridId(relatedPersonnel.get(0).getGridId());
Result<CustomerGridDTO> 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());
Result<GovIssueDetailResultDTO> issueDetail = govIssueOpenFeignClient.votingissuedetail(issueDetailFormDTO);
if (!issueDetail.success()) {
throw new RenException(issueDetail.getCode(), issueDetail.getMsg());
}
ProjectDetailDTO projectDetailDTO = ConvertUtils.sourceToTarget(issueDetail.getData(), ProjectDetailDTO.class);
projectDetailDTO = ConvertUtils.sourceToTarget(issueDetail.getData().getTopicInfo(), ProjectDetailDTO.class);
applyAssistFormDTO.setDetail(projectDetailDTO.toString());
applyAssistFormDTO.setDetailAddress(projectDetailDTO.getBelongsGridName());
Result result = epmetThirdOpenFeignClient.applyAssist(applyAssistFormDTO);
if (!result.success()) {
throw new RenException(result.getCode(), result.getMsg());
}
applyAssistFormDTO.setSource("党建引领");
ProjectAssistResult assistResult = (ProjectAssistResult)result.getData();
//发送到外部系统 end
//结果存入project_sub_process表
ProjectSubProcessDTO projectSubProcess = new ProjectSubProcessDTO();
projectSubProcess.setCustomerId(projectStaff.getCustomerId());
projectSubProcess.setProjectId(formDTO.getProjectId());
projectSubProcess.setProcessId(projectProcessEntity.getId());
projectSubProcess.setProjectStaffId(formDTO.getProjectStaffId());
projectSubProcess.setPlatformId(formDTO.getPlatformId());
projectSubProcess.setPlatformName(formDTO.getPlatformName());
projectSubProcess.setTaskId(assistResult.getTaskId());
projectSubProcess.setExternalStatus(NumConstant.ONE_STR);
projectSubProcess.setExternalStatusDesc("待处理");
projectSubProcess.setInternalStatus(ProjectConstant.PENDING);
projectSubProcessService.save(projectSubProcess);
//项目节点历时
ProjectOrgRelationEntity relationEntity = relationDao.selectByProjectStaffId(formDTO.getProjectStaffId());
if(null != relationEntity){
ProjectOrgRelationEntity relationDto = new ProjectOrgRelationEntity();
relationDto.setProjectStaffId(relationEntity.getProjectStaffId());
if(null == relationEntity.getFirstDealtDate()){
Date current = new Date();
relationDto.setFirstDealtDate(current);
relationDto.setFirstReplyPeriod(calculateDelta_T(ProjectConstant.IMPRECISE_CALCULATION,
ProjectConstant.CALCULATION_TYPE_DEFAULT,projectStaff.getId(),
relationEntity.getInformedDate(),current));
relationDto.setOperation(ProjectConstant.OPERATION_RESPONSES);
relationDao.maintainTimePropertyConsistency(relationDto);
}
}else{
log.error("com.epmet.service.impl.ProjectServiceImpl#response,没有找到相关的节点耗时记录,参数:{}",JSON.toJSONString(formDTO));
throw new RenException("没有找到相关的节点耗时记录");
}
}
/**
* 第三方平台回调
*
* @param formDTO
* @return void
* @author zhaoqifeng
* @date 2021/3/19 15:12
*/
@Override
public void platformCallBack(PlatformCallBackFormDTO formDTO) {
ProjectSubProcessDTO projectSubProcessDTO = projectSubProcessService.getSubProcessByPlatformId(formDTO.getEventId());
projectSubProcessDTO.setExternalStatus(formDTO.getStatus());
projectSubProcessDTO.setResult(formDTO.getNote());
projectSubProcessDTO.setHandleDate(DateUtils.stringToDate(formDTO.getHandleDate(), DateUtils.DATE_TIME_PATTERN));
projectSubProcessDTO.setHandleUserName(formDTO.getHandleUserName());
switch (formDTO.getStatus()) {
case NumConstant.ONE_STR:
projectSubProcessDTO.setExternalStatusDesc("待处理");
break;
case NumConstant.TWO_STR:
projectSubProcessDTO.setExternalStatusDesc("待核实");
break;
case NumConstant.THREE_STR:
projectSubProcessDTO.setExternalStatusDesc("已上报");
break;
case NumConstant.FOUR_STR:
projectSubProcessDTO.setExternalStatusDesc("已完结");
projectSubProcessDTO.setInternalStatus(NumConstant.ONE_STR);
break;
case NumConstant.FIVE_STR:
projectSubProcessDTO.setExternalStatusDesc("处理中");
break;
case NumConstant.SIX_STR:
projectSubProcessDTO.setExternalStatusDesc("待分发");
break;
case NumConstant.SEVEN_STR:
projectSubProcessDTO.setExternalStatusDesc("归档");
break;
case NumConstant.EIGHT_STR:
projectSubProcessDTO.setExternalStatusDesc("催办");
break;
case NumConstant.NINE_STR:
projectSubProcessDTO.setExternalStatusDesc("超时");
break;
default:
break;
}
projectSubProcessService.save(projectSubProcessDTO);
//TODO 保存附件
}
}

14
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSubProcessServiceImpl.java

@ -84,6 +84,7 @@ public class ProjectSubProcessServiceImpl extends BaseServiceImpl<ProjectSubProc
public void save(ProjectSubProcessDTO dto) {
ProjectSubProcessEntity entity = ConvertUtils.sourceToTarget(dto, ProjectSubProcessEntity.class);
insert(entity);
dto = ConvertUtils.sourceToTarget(entity, ProjectSubProcessDTO.class);
}
@Override
@ -128,4 +129,17 @@ public class ProjectSubProcessServiceImpl extends BaseServiceImpl<ProjectSubProc
return baseDao.selectSubProcessAndAttachment(processIds);
}
/**
* 根据platformId查找最新的记录
*
* @param platformId
* @return com.epmet.dto.ProjectSubProcessDTO
* @author zhaoqifeng
* @date 2021/3/19 15:24
*/
@Override
public ProjectSubProcessDTO getSubProcessByPlatformId(String platformId) {
return baseDao.selectSubProcessByPlatformId(platformId);
}
}

3
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java

@ -209,7 +209,8 @@ public class ProjectTraceServiceImpl implements ProjectTraceService {
*/
@Override
public void sendTo(TokenDto tokenDto, SendToFormDTO formDTO) {
formDTO.setUserId(tokenDto.getUserId());
projectService.sendTo(formDTO);
}
}

23
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSubProcessDao.xml

@ -84,6 +84,29 @@
AND psa.SUB_ID = #{subId}
order by psa.sort
</select>
<select id="selectSubProcessByPlatformId" resultType="com.epmet.dto.ProjectSubProcessDTO">
select
ID,
CUSTOMER_ID,
PROJECT_ID,
PROCESS_ID,
PROJECT_STAFF_ID,
PLATFORM_ID,
PLATFORM_NAME,
TASK_ID,
RESULT,
EXTERNAL_STATUS,
EXTERNAL_STATUS_DESC,
INTERNAL_STATUS,
HANDLE_DATE,
HANDLE_USER_NAME
from project_sub_process
where
DEL_FLAG = '0'
AND PLATFORM_ID = #{platformId}
order by CREATED_TIME DESC limit 1
</select>
</mapper>
Loading…
Cancel
Save