From acd1cee757e1b6363bd834fff7d76c5605a8fe0e Mon Sep 17 00:00:00 2001 From: wangchao Date: Mon, 23 Nov 2020 12:45:26 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=AE=E9=A2=98=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/IssueDTO.java | 2 + .../epmet/dto/form/CommonGridIdFormDTO.java | 2 +- .../form/IssueShiftedFromTopicFormDTO.java | 7 + .../epmet/feign/GovIssueOpenFeignClient.java | 4 +- .../controller/IssueAuditController.java | 21 +- .../com/epmet/dao/IssueApplicationDao.java | 4 + .../java/com/epmet/service/IssueService.java | 5 +- .../impl/IssueApplicationServiceImpl.java | 6 +- .../epmet/service/impl/IssueServiceImpl.java | 214 ++++++++++++++---- .../java/com/epmet/utils/ModuleConstants.java | 8 +- .../resources/mapper/IssueApplicationDao.xml | 8 + .../src/main/resources/mapper/IssueDao.xml | 11 +- .../epmet/feign/GovOrgOpenFeignClient.java | 9 + .../GovOrgOpenFeignClientFallback.java | 6 + .../dto/topic/form/IssueAuditionFormDTO.java | 40 ++++ .../form/IssueShiftedFromTopicFormDTO.java | 125 ++++++++++ .../topic/form/ResiTopicTurnIssueFromDTO.java | 26 ++- .../group/feign/ResiGroupOpenFeignClient.java | 15 +- .../ResiGroupOpenFeignClientFallback.java | 12 +- .../topic/controller/ResiTopicController.java | 12 + .../topic/service/ResiTopicService.java | 12 +- .../service/impl/ResiTopicServiceImpl.java | 90 +++++++- 22 files changed, 548 insertions(+), 91 deletions(-) create mode 100644 epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueAuditionFormDTO.java create mode 100644 epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueShiftedFromTopicFormDTO.java diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java index 0da96662ee..5e7a6c8fdb 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java @@ -158,4 +158,6 @@ public class IssueDTO implements Serializable { * 议题转项目后-对应的项目id */ private String projectId; + + private String issueId; } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdFormDTO.java index 93dcda291b..f29b90be72 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdFormDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdFormDTO.java @@ -21,5 +21,5 @@ public class CommonGridIdFormDTO implements Serializable { @NotBlank(message = "网格Id不能为空") private String gridId; - + private String userId; } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java index 0cf6a438aa..9eefc723f8 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java @@ -48,6 +48,11 @@ public class IssueShiftedFromTopicFormDTO implements Serializable { @NotBlank(message = "议题发起/审核人Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String userId; + /** + * 当userId为工作端审核人员时,该项存议题发起人 + */ + private String issueAuthorId; + /** * 客户Id * */ @@ -116,4 +121,6 @@ public class IssueShiftedFromTopicFormDTO implements Serializable { @NotNull(message = "小组Id不能为空",groups = {IssueGenerationGroup.class}) private String groupId; + + private String issueId; } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java index 0e87badf8a..4b8662dc8a 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java @@ -34,8 +34,8 @@ import java.util.Map; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:37 */ -@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class) -// @FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class,url = "localhost:8101") +//@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class) + @FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class,url = "localhost:8101") public interface GovIssueOpenFeignClient { /** diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java index e038b18ce5..d6519fb6e9 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java @@ -1,25 +1,22 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.RequirePermission; import com.epmet.commons.tools.enums.RequirePermissionEnum; +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.constant.IssueConstant; -import com.epmet.dto.form.ApplicationDetailWorkFormDTO; -import com.epmet.dto.form.ApplicationHistoryWorkFormDTO; -import com.epmet.dto.form.IssueAppQueryFormDTO; -import com.epmet.dto.form.IssueApplicationIdFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.ApplicationDetailWorkResultDTO; import com.epmet.dto.result.ApplicationHistoryResDTO; import com.epmet.dto.result.ApplicationHistoryWorkResultDTO; import com.epmet.dto.result.IssueApplicationResDTO; import com.epmet.service.IssueApplicationHistoryService; import com.epmet.service.IssueApplicationService; +import com.epmet.service.IssueService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -36,7 +33,8 @@ public class IssueAuditController { private IssueApplicationService issueApplicationService; @Autowired private IssueApplicationHistoryService issueApplicationHistoryService; - + @Autowired + private IssueService issueService; /** * @param formDTO * @author yinzuomei @@ -116,4 +114,9 @@ public class IssueAuditController { ValidatorUtils.validateEntity(applicationHistoryWorkFormDTO,ApplicationHistoryWorkFormDTO.ApplicationHistoryWork.class); return new Result>().ok(issueApplicationHistoryService.applicationHistoryWork(applicationHistoryWorkFormDTO)); } + + @PostMapping("audit") + public Result audit(@LoginUser TokenDto token, @RequestBody IssueAuditionFormDTO param){ + return new Result().ok(issueService.audit(token,param)); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationDao.java index efe02e3c0b..fe8935d2ac 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationDao.java @@ -18,12 +18,14 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IssueApplicationDTO; import com.epmet.dto.form.IssueAppQueryFormDTO; import com.epmet.dto.result.IssueApplicationResDTO; import com.epmet.entity.IssueApplicationEntity; import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; import com.epmet.resi.group.dto.group.result.ApplicationDetailResultDTO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -52,4 +54,6 @@ public interface IssueApplicationDao extends BaseDao { * @Date 2020/11/18 16:28 **/ List selectList(IssueAppQueryFormDTO formDTO); + + List selectByTopicId(@Param("topicId") String topicId); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java index a9f9ed6337..0c58cfc807 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java @@ -2,6 +2,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.IssueDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -152,6 +153,8 @@ public interface IssueService extends BaseService { */ FirstTopicShiftedToIssueApplicationResultDTO topicShiftedToIssueV2(IssueShiftedFromTopicFormDTO issueShiftedFromTopicFormDTO); + String audit(TokenDto token, IssueAuditionFormDTO param); + /** * @Description 表决中列表 * @param issueListForm @@ -296,6 +299,4 @@ public interface IssueService extends BaseService { * @return java.util.List */ List getClosedListByGroup(AllIssueFormDTO formDTO); - - //FirstTopicShiftedToIssueApplicationResultDTO TopicShiftedToIssueFirstly(); } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java index 7109d22494..ff32c5b6a3 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java @@ -65,9 +65,9 @@ public class IssueApplicationServiceImpl extends BaseServiceImpl list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); - - return ConvertUtils.sourceToTarget(entityList, IssueApplicationDTO.class); + //List entityList = baseDao.selectByTopicId(getWrapper(params)); + return baseDao.selectByTopicId((String)params.get(ModuleConstants.FIELD_JAVA_TOPIC_ID)); + //return ConvertUtils.sourceToTarget(entityList, IssueApplicationDTO.class); } private QueryWrapper getWrapper(Map params){ diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index 4d2af92f70..6cc96a4dd5 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -13,6 +13,7 @@ import com.epmet.commons.tools.page.PageData; 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.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.ScanContentUtils; @@ -23,7 +24,6 @@ import com.epmet.constant.UserMessageConstant; import com.epmet.dao.IssueDao; import com.epmet.dao.IssueProcessDao; import com.epmet.dao.IssueProjectRelationDao; -import com.epmet.dao.IssueVoteStatisticalDao; import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -41,6 +41,7 @@ import com.epmet.resi.group.dto.group.result.GroupShiftProjectListResultDTO; import com.epmet.resi.group.dto.group.result.GroupVotingListResultDTO; import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO; +import com.epmet.resi.group.dto.topic.form.ResiTopicTurnIssueFromDTO; import com.epmet.resi.group.dto.topic.form.TopicIdListFormDTO; import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO; import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO; @@ -106,6 +107,8 @@ public class IssueServiceImpl extends BaseServiceImpl imp @Autowired private EpmetUserFeignClient epmetUserFeignClient; @Autowired + private EpmetUserOpenFeignClient userOpenFeignClient; + @Autowired private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; @@ -287,6 +290,8 @@ public class IssueServiceImpl extends BaseServiceImpl imp issueVoteDetailRedis.set(voteInitCache); //4.该网格下表决中议题总数量+1 govIssueRedis.addWorkGrassrootsIssueRedDotValue(issueShiftedFromTopicFormDTO.getGridId()); + + if(StringUtils.isNotBlank(issueShiftedFromTopicFormDTO.getIssueId())) issueDTO.setId(issueShiftedFromTopicFormDTO.getIssueId()); return issueDTO.getId(); } logger.warn(String.format( @@ -315,70 +320,183 @@ public class IssueServiceImpl extends BaseServiceImpl imp * @date 2020.11.19 10:02 */ @Override + @Transactional(rollbackFor = Exception.class) public FirstTopicShiftedToIssueApplicationResultDTO topicShiftedToIssueV2(IssueShiftedFromTopicFormDTO param) { FirstTopicShiftedToIssueApplicationResultDTO result = new FirstTopicShiftedToIssueApplicationResultDTO(); //0.判断此次来源是否审核,是居民端还是工作端 boolean isStaffAudition = null != param.getAudition(); - //初始化缺省状态 : 审核中 - String defaultStatusUnderAuditing = isStaffAudition ? param.getAudition().getActionType() : ModuleConstants.ISSUE_APPLICATION_STATUS_UNDER_AUDITING; //1.查询该客户下是否开启议题审核 - boolean ifOpen = !StringUtils.equals(ModuleConstants.AUDIT_SWITCH_CLOSE,configurationParameterService.checkIssueAuditSwitchIfOpen(param.getCustomerId())); + //为了防止当工作人员审核时,议题审核开关被关闭,这时统一视为审核开启,将工作端的审核动作继续进行 + boolean ifOpen = isStaffAudition ? true : + !StringUtils.equals(ModuleConstants.AUDIT_SWITCH_CLOSE,configurationParameterService.checkIssueAuditSwitchIfOpen(param.getCustomerId())); + + //初始化缺省状态 : 审核中 + String defaultStatusUnderAuditing = isStaffAudition ? param.getAudition().getActionType() : + ( ifOpen ? ModuleConstants.ISSUE_APPLICATION_STATUS_UNDER_AUDITING: ModuleConstants.AUDITION_TYPE_AUTO_PASSED); + result.setAuditSwitch(ifOpen ? ModuleConstants.AUDIT_SWITCH_OPEN : ModuleConstants.AUDIT_SWITCH_CLOSE); - //2.居民段组长提交议题审核 - if(ifOpen || isStaffAudition){ - //默认打开 - //2.1查询是否存在application记录 - Map applicationParam = new HashMap<>();applicationParam.put(ModuleConstants.FIELD_JAVA_TOPIC_ID,param.getTopicId()); - List applicationList = applicationService.list(applicationParam); - List applyIds = new LinkedList<>(); - if(CollectionUtils.isEmpty(applicationList)){ - //首次提交 新增application - IssueApplicationDTO newApplication = ConvertUtils.sourceToTarget(param,IssueApplicationDTO.class); - newApplication.setApplyStatus(defaultStatusUnderAuditing); - applicationService.save(newApplication); - applyIds.add(newApplication.getId()); - }else{ - //重新提交 更新application - if(applicationList.size() > NumConstant.ONE){ - logger.error("com.epmet.service.impl.IssueServiceImpl.topicShiftedToIssueV2,查出多条转移提提交记录,话题Id:{}",param.getTopicId()); + + //2.居民端组长提交议题审核 + + //默认打开 + //2.1查询是否存在application记录 + Map applicationParam = new HashMap<>(); + applicationParam.put(ModuleConstants.FIELD_JAVA_TOPIC_ID, param.getTopicId()); + List applicationList = applicationService.list(applicationParam); + List applyIds = new LinkedList<>(); + //没有历史提交记录 + if (CollectionUtils.isEmpty(applicationList)) { + //审核开关开启 + if(ifOpen) { + //首次提交 新增application + IssueApplicationDTO newApplication = ConvertUtils.sourceToTarget(param, IssueApplicationDTO.class); + newApplication.setApplyStatus(defaultStatusUnderAuditing); + newApplication.setId(UUID.randomUUID().toString().replace("-", "")); + applicationService.save(newApplication); + applyIds.add(newApplication.getId()); + } + } else { + //重新提交 或 工作端审核议题 更新application + if (applicationList.size() > NumConstant.ONE) + logger.error("com.epmet.service.impl.IssueServiceImpl.topicShiftedToIssueV2,查出多条转移提提交记录,话题Id:{}", param.getTopicId()); + } - applicationList.forEach(apply -> { - IssueApplicationDTO carrier = new IssueApplicationDTO(); - carrier.setId(apply.getId()); - carrier.setApplyStatus(defaultStatusUnderAuditing); - carrier.setSuggestion(isStaffAudition ? apply.getSuggestion() : param.getSuggestion()); - carrier.setIssueTitle(isStaffAudition ? apply.getIssueTitle() : param.getIssueTitle()); - applicationService.update(carrier); - - applyIds.add(apply.getId()); - }); - } - //新增history - applyIds.forEach(id -> { - IssueApplicationHistoryDTO history = new IssueApplicationHistoryDTO(); - history.setActionType(defaultStatusUnderAuditing); - history.setCreatedTime(param.getCreatedTime()); - history.setCustomerId(param.getCustomerId()); - history.setIssueApplicationId(id); - history.setReason(isStaffAudition ? param.getAudition().getReason() : null); - history.setStaffName(isStaffAudition ? param.getAudition().getStaffName() : null); - - historyService.save(history); - }); + applicationList.forEach(apply -> { + IssueApplicationDTO carrier = new IssueApplicationDTO(); + carrier.setId(apply.getId()); + carrier.setApplyStatus(defaultStatusUnderAuditing); + carrier.setSuggestion(!isStaffAudition ? apply.getSuggestion() : param.getSuggestion()); + carrier.setIssueTitle(!isStaffAudition ? apply.getIssueTitle() : param.getIssueTitle()); + carrier.setPassedReason(isStaffAudition ? param.getAudition().getReason() : null); + carrier.setIssueId(isStaffAudition ? param.getIssueId() : null); + carrier.setUpdatedTime(param.getCreatedTime()); + carrier.setUpdatedBy(param.getUserId()); + applicationService.update(carrier); + + applyIds.add(apply.getId()); + }); + //新增history + applyIds.forEach(id -> { + + IssueApplicationHistoryDTO history = new IssueApplicationHistoryDTO(); + history.setActionType(defaultStatusUnderAuditing); + history.setCreatedTime(param.getCreatedTime()); + history.setCustomerId(param.getCustomerId()); + history.setIssueApplicationId(id); + history.setReason(isStaffAudition ? param.getAudition().getReason() : null); + history.setStaffName(isStaffAudition ? param.getAudition().getStaffName() : null); + + historyService.save(history); + if(!ifOpen){ + IssueApplicationHistoryDTO repeatApplyRecord = new IssueApplicationHistoryDTO(); + repeatApplyRecord.setActionType(ModuleConstants.ISSUE_APPLICATION_STATUS_UNDER_AUDITING); + repeatApplyRecord.setCreatedTime(param.getCreatedTime()); + repeatApplyRecord.setCustomerId(param.getCustomerId()); + repeatApplyRecord.setIssueApplicationId(id); + + historyService.save(repeatApplyRecord); + } + }); - result.setIssueApplicationId(applyIds.iterator().next()); - } - //当无需审核或审核同意时,生成议题 - //注意,如果是二次提交申请,且此时审核开关被关闭,则无需更新application状态以及新增history记录 + result.setIssueApplicationId(applyIds.iterator().next()); + + + //只有当审核开关关闭 或 工作端人员审核通过时才生成议题 if(!ifOpen || StringUtils.equals(ModuleConstants.AUDITION_TYPE_APPROVAL,defaultStatusUnderAuditing)){ ValidatorUtils.validateEntity(param, IssueShiftedFromTopicFormDTO.IssueGenerationGroup.class); + if(isStaffAudition) param.setUserId(param.getIssueAuthorId()); result.setIssueId(issueShiftedToTopic(param)); } return result; } + @Override + @Transactional(rollbackFor = Exception.class) + public String audit(TokenDto token, IssueAuditionFormDTO param) { + + if (StringUtils.isNotBlank(param.getReason())) { + TextScanParamDTO textScanParamDTO = new TextScanParamDTO(); + TextTaskDTO taskDTO = new TextTaskDTO(); + taskDTO.setDataId(UUID.randomUUID().toString().replace("-", "")); + taskDTO.setContent(param.getReason()); + textScanParamDTO.getTasks().add(taskDTO); + Result 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()); + } + } + } + + Date unifiedDate = new Date(); + + IssueApplicationDTO application = applicationService.get(param.getIssueApplicationId()); + if(null == application) throw new RenException("没有相应的议题申请信息"); + + IssueApplicationDTO app2update = new IssueApplicationDTO(); + app2update.setId(param.getIssueApplicationId()); + app2update.setApplyStatus(param.getActionType()); + app2update.setUpdatedBy(token.getUserId()); + app2update.setUpdatedTime(unifiedDate); + + IssueApplicationHistoryDTO history2add = new IssueApplicationHistoryDTO(); + history2add.setIssueApplicationId(param.getIssueApplicationId()); + history2add.setReason(param.getReason()); + history2add.setActionType(param.getActionType()); + history2add.setCreatedTime(unifiedDate); + history2add.setCreatedBy(token.getUserId()); + history2add.setCustomerId(application.getCustomerId()); + + //historyService.save(history2add); + + //if(!StringUtils.equals(ModuleConstants.AUDITION_TYPE_REJECT,param.getActionType())){ + app2update.setPassedReason(param.getReason()); + ResiTopicTurnIssueFromDTO form = new ResiTopicTurnIssueFromDTO(); + form.setActionType(param.getActionType()); + form.setUnifiedDate(unifiedDate);form.setUserId(application.getCreatedBy());form.setTopicId(application.getTopicId());form.setIssueId(UUID.randomUUID().toString().replaceAll("-", "")); + + Result topicInfo = resiGroupOpenFeignClient.fetchTopicInfoWhenAuditIssue(form); + if(topicInfo.success() && null != topicInfo.getData()){ + CommonGridIdFormDTO grid = new CommonGridIdFormDTO(); + grid.setGridId(application.getGridId()); + grid.setUserId(token.getUserId()); + Result dataFilter = govOrgOpenFeignClient.gridDataFilter(grid); + if(dataFilter.success() && null != dataFilter.getData()){ + com.epmet.resi.group.dto.topic.form.IssueShiftedFromTopicFormDTO issueParam = topicInfo.getData(); + IssueShiftedFromTopicFormDTO issueParam2 = + ConvertUtils.sourceToTarget(issueParam, IssueShiftedFromTopicFormDTO.class); + issueParam2.setOrgId(dataFilter.getData().getAgencyId()); + issueParam2.setOrgIdPath(dataFilter.getData().getOrgIdPath()); + issueParam2.setOrgName(dataFilter.getData().getOrgName()); + + issueParam2.setIssueTitle(application.getIssueTitle());issueParam2.setSuggestion(application.getSuggestion()); + //staffName + StaffBasicInfoFromDTO staffParam = new StaffBasicInfoFromDTO(); staffParam.setStaffId(token.getUserId()); + Result staffBasicInfo = userOpenFeignClient.getStaffBasicInfo(staffParam); + if(staffBasicInfo.success() && null != staffBasicInfo.getData()) { + param.setStaffName(staffBasicInfo.getData().getRealName()); + } + issueParam2.setAudition(param); + FirstTopicShiftedToIssueApplicationResultDTO issueResult = topicShiftedToIssueV2(issueParam2); + app2update.setIssueId(issueResult.getIssueId()); + + } + }else throw new RenException(topicInfo.getInternalMsg()); + + + + + //} + //applicationService.update(app2update); + + + return app2update.getIssueId(); + } + /** * @Description 表决中列表 * @param issueListForm diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java index 2bc79654d6..9cc727dc1d 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java @@ -26,7 +26,6 @@ public interface ModuleConstants { * 议题审核状态 审核中 */ String ISSUE_APPLICATION_STATUS_UNDER_AUDITING = "under_auditing"; - /** * 议题来源:居民段话题 * */ @@ -123,6 +122,13 @@ public interface ModuleConstants { */ String AUDITION_TYPE_APPROVAL = "approved"; + /** + * 当议题开关关闭时,申请和申请历史的状态为自动通过 + * 如果是首次提交,不生成申请和申请历史记录 + * 该值只适用于二次提交时,审核开关被关闭的情况 + */ + String AUDITION_TYPE_AUTO_PASSED = "auto_passed"; + /** * 议题审核动作 驳回 */ diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationDao.xml index 20a25f9f90..447f2122e1 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationDao.xml @@ -39,4 +39,12 @@ ORDER BY ia.UPDATED_TIME DESC + + \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml index 7eeb9a28f7..9c4b676771 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml @@ -127,7 +127,16 @@ revision - #{id}, + + + #{issueId}, + + + #{id}, + + + + #{issueStatus}, diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java index 16201827cc..2dab8452b3 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java @@ -305,4 +305,13 @@ public interface GovOrgOpenFeignClient { @PostMapping("/gov/org/customergrid/getcustomergridbygridid") Result getCustomerGridByGridId(@RequestBody CustomerGridFormDTO customerGridFormDTO); + /** + * @param gridForm + * @return Result + * @Author wangc + * @Description 获取网格所需要的数据权限内容 + * @Date 2020/3/30 10:45 + **/ + @PostMapping("/gov/org/customergrid/griddatafilter") + Result gridDataFilter(CommonGridIdFormDTO gridForm); } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java index 477ed6ea6f..4776dec9b6 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java @@ -177,4 +177,10 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { public Result getCustomerGridByGridId(CustomerGridFormDTO customerGridFormDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getCustomerGridByGridId", customerGridFormDTO); } + + @Override + public Result gridDataFilter(CommonGridIdFormDTO gridForm) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "gridDataFilter", gridForm); + + } } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueAuditionFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueAuditionFormDTO.java new file mode 100644 index 0000000000..fd66274090 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueAuditionFormDTO.java @@ -0,0 +1,40 @@ +package com.epmet.resi.group.dto.topic.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 工作人员审核议题结果传参 + * @ClassName IssueAuditionFormDTO + * @Auth wangc + * @Date 2020-11-19 10:29 + */ +@Data +public class IssueAuditionFormDTO implements Serializable { + + private static final long serialVersionUID = 5794088085884822811L; + + /** + * 申请id + */ + @NotBlank(message = "议题申请Id不能为空") + private String issueApplicationId; + + /** + * 同意备注 驳回理由 + */ + private String reason; + + /** + * approved:审核通过, rejected:驳回 + */ + @NotBlank(message = "审核结果不能为空") + private String actionType; + + /** + * 工作人员名称 + */ + private String staffName; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueShiftedFromTopicFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueShiftedFromTopicFormDTO.java new file mode 100644 index 0000000000..6eba4678d7 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueShiftedFromTopicFormDTO.java @@ -0,0 +1,125 @@ +package com.epmet.resi.group.dto.topic.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; + +/** + * @Description 话题转议题时的参数 + * @ClassName IssueShiftedFromTopicFormDTO + * @Auth wangc + * @Date 2020-05-13 09:27 + */ +@Data +public class IssueShiftedFromTopicFormDTO implements Serializable { + private static final long serialVersionUID = -5744319584210140289L; + + public interface IssueGenerationGroup extends CustomerClientShowGroup{} + + public interface PublicIssueGroup extends CustomerClientShowGroup{} + + /** + * 话题Id + * */ + @NotBlank(message = "话题Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String topicId; + + /** + * 议题名称 + * */ + @NotBlank(message = "议题名称不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String issueTitle; + + /** + * 建议 + * */ + @NotBlank(message = "议题建议不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String suggestion; + + /** + * 议题发起人Id + * */ + @NotBlank(message = "议题发起/审核人Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String userId; + + /** + * 当userId为工作端审核人员时,该项存议题发起人 + */ + private String issueAuthorId; + + /** + * 客户Id + * */ + @NotBlank(message = "客户不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String customerId; + + /** + * 网格Id + * */ + @NotBlank(message = "网格Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String gridId; + + /** + * AgencyId当前话题所在机构Id + * */ + @NotBlank(message = "机关Id不能为空",groups = {IssueGenerationGroup.class}) + private String orgId; + + /** + * 所属机关 eg:11:22:33(本机关以及上级所有机关ID) + * */ + @NotBlank(message = "所属机关全路径不能为空",groups = {IssueGenerationGroup.class}) + private String orgIdPath; + + /** + * 当前话题所在网格名称 - 对应议题流程的处理部门 + * */ + @NotBlank(message = "网格名称不能为空",groups = {IssueGenerationGroup.class}) + private String orgName; + + /** + * 议题创建时间 + * */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @NotNull(message = "创建时间不能为空",groups = {IssueGenerationGroup.class}) + private Date createdTime; + + /** + * 小组名称 - 对应议题流程的小组名称(文案) + * */ + @NotBlank(message = "小组名称不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String groupName; + + /** + * 话题发起人名称 -对应议题流程的话题发起人(文案) + * */ + @NotBlank(message = "话题发起人不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String topicAuthor; + + /** + * 议题发起人(组长)名称 - 对应议题流程的组长名称(文案) + * */ + @NotBlank(message = "组长不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private String issueAuthor; + + /** + * 应表决数 + * */ + @NotNull(message = "应表决数不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) + private Integer votableCount; + + /** + * 议题审核参数 + */ + private IssueAuditionFormDTO audition; + + @NotNull(message = "小组Id不能为空",groups = {IssueGenerationGroup.class}) + private String groupId; + + private String issueId; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicTurnIssueFromDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicTurnIssueFromDTO.java index 6238190998..6dda8c8b41 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicTurnIssueFromDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicTurnIssueFromDTO.java @@ -4,6 +4,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import java.io.Serializable; +import java.util.Date; /** * @Description 话题转议题时前端传参 @@ -17,25 +18,32 @@ public class ResiTopicTurnIssueFromDTO implements Serializable { /** * 议题名称 - * */ - @NotBlank(message = "议题名称不能为空" ) + */ + @NotBlank(message = "议题名称不能为空") private String issueTitle; /** * 话题Id - * */ - @NotBlank(message = "话题Id不能为空" ) + */ + @NotBlank(message = "话题Id不能为空") private String topicId; /** * 建议 - * */ - @NotBlank(message = "建议不能为空" ) + */ + @NotBlank(message = "建议不能为空") private String suggestion; /** * 用户Id - * */ - @NotBlank(message = "用户Id不能为空" ) + */ + @NotBlank(message = "用户Id不能为空") private String userId; -} + + private String issueId; + + private Date unifiedDate; + + private String actionType; + +} \ 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 0a2718b0c5..0103bd0a67 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 @@ -1,5 +1,6 @@ package com.epmet.resi.group.feign; + import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.resi.group.dto.group.form.*; @@ -8,9 +9,7 @@ import com.epmet.resi.group.dto.group.result.ApplyingGroupResultDTO; import com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO; import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; -import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO; -import com.epmet.resi.group.dto.topic.form.MyPartIssueFormDTO; -import com.epmet.resi.group.dto.topic.form.TopicIdListFormDTO; +import com.epmet.resi.group.dto.topic.form.*; import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; import com.epmet.resi.group.dto.topic.result.MyCreateTopicsResultDTO; import com.epmet.resi.group.dto.topic.result.MyPartIssueResultDTO; @@ -118,4 +117,14 @@ public interface ResiGroupOpenFeignClient { */ @PostMapping("resi/group/groupissue/applicationdetail") Result applicationDetail(@RequestBody ApplicationDetailFormDTO applicationDetailFormDTO); + + /** + * @Description 工作端审核议题同意时,查询相关话题的基本信息 + * @param param + * @return com.epmet.commons.tools.utils.Result + * @author wangc + * @date 2020.11.23 03:08 + */ + @PostMapping("resi/group/topic/fetchtopicinfowhenauditissue") + Result fetchTopicInfoWhenAuditIssue(@RequestBody ResiTopicTurnIssueFromDTO param); } 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 ff1df0075e..0f5347c9a7 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 @@ -8,17 +8,12 @@ import com.epmet.resi.group.dto.group.form.GovGroupSummarizeFromDTO; import com.epmet.resi.group.dto.group.form.GroupEditionAuditFormDTO; import com.epmet.resi.group.dto.group.result.ApplyingGroupResultDTO; import com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO; -import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.utils.ModuleUtils; -import com.epmet.commons.tools.utils.Result; import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO; import com.epmet.resi.group.dto.group.result.ApplicationDetailCopyResultDTO; import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; -import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO; -import com.epmet.resi.group.dto.topic.form.MyPartIssueFormDTO; -import com.epmet.resi.group.dto.topic.form.TopicIdListFormDTO; +import com.epmet.resi.group.dto.topic.form.*; import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; import com.epmet.resi.group.dto.topic.result.MyPartIssueResultDTO; import com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO; @@ -85,4 +80,9 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien public Result applicationDetail(ApplicationDetailFormDTO applicationDetailFormDTO) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "applicationDetail", applicationDetailFormDTO); } + + @Override + public Result fetchTopicInfoWhenAuditIssue(ResiTopicTurnIssueFromDTO param) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "fetchTopicInfoWhenAuditIssue",param); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java index 19aed166d8..820dbc5821 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java @@ -266,6 +266,18 @@ public class ResiTopicController { return new Result().ok(topicService.shiftIssueV2(param)); } + /** + * @Description 工作端审核议题同意时,查询相关话题的基本信息 + * @param param + * @return com.epmet.commons.tools.utils.Result + * @author wangc + * @date 2020.11.23 03:08 + */ + @PostMapping("fetchtopicinfowhenauditissue") + public Result fetchTopicInfoWhenAuditIssue(@RequestBody ResiTopicTurnIssueFromDTO param){ + return new Result().ok(topicService.getIssueInfoWhenAudit(param)); + } + /** * @Description 政府端查看议题详情时的话题相关信息 * @param govTopicIssueInfoFormDTO diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java index 26115713eb..53140e4fef 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java @@ -21,6 +21,7 @@ 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.commons.tools.utils.Result; + import com.epmet.dto.result.FirstTopicShiftedToIssueApplicationResultDTO; import com.epmet.modules.member.entity.ResiGroupMemberEntity; import com.epmet.modules.topic.entity.ResiTopicEntity; @@ -257,7 +258,16 @@ public interface ResiTopicService extends BaseService { * @date 2020.11.20 10:26 */ FirstTopicShiftedToIssueApplicationResultDTO shiftIssueV2(ResiTopicTurnIssueFromDTO param); - + + /** + * @Description 工作端审核议题通过时获取一些议题相关信息 + * @param param + * @return com.epmet.resi.group.dto.topic.form.ResiTopicTurnIssueFromDTO + * @author wangc + * @date 2020.11.20 18:09 + */ + IssueShiftedFromTopicFormDTO getIssueInfoWhenAudit(ResiTopicTurnIssueFromDTO param); + /** * @Description 政府端查看议题详情时的话题相关信息 * @param govTopicIssueInfoFormDTO diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java index b39a18e782..a67c06a938 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java @@ -85,6 +85,7 @@ import com.epmet.resi.group.dto.topic.TopicInfoDTO; import com.epmet.resi.group.dto.topic.form.CheckTopicPublisherFormDTO; import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO; import com.epmet.resi.group.dto.topic.form.*; +import com.epmet.resi.group.dto.topic.form.IssueShiftedFromTopicFormDTO; import com.epmet.resi.group.dto.topic.result.CheckTopicPublisherResultDTO; import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO; import com.epmet.resi.group.dto.topic.result.*; @@ -100,6 +101,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import javax.swing.text.html.Option; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -1286,15 +1288,17 @@ public class ResiTopicServiceImpl extends BaseServiceImpl param = new HashMap<>(); param.put(ModuleConstant.FILED_TOPIC_ID_HUMP,topicIdFormDTO.getTopicId()); Result> record = issueOpenFeignClient.list(param); if(!record.success()){ - log.error("com.epmet.modules.topic.service.impl.ResiTopicServiceImpl.initTopicInfoWhenShift,查询转议题提交记录失败,话题Id:{}",topicIdFormDTO.getTopicId()); + log.error("com.epmet.modules.topic.service.impl.ResiTopicServiceImpl.initTopicInfoWhenShift,,话题Id:{}",topicIdFormDTO.getTopicId()); throw new RenException(ModuleConstant.FAILED_QUERY_ISSUE_APPLICATION_RECORD); } + result.setIssueApplicationId(ModuleConstant.EMPTY_STR); + result.setApplyStatus(ModuleConstant.EMPTY_STR); if(!CollectionUtils.isEmpty(record.getData())){ if(record.getData().size() > NumConstant.ONE){ log.error("com.epmet.modules.topic.service.impl.ResiTopicServiceImpl.initTopicInfoWhenShift,查出多条转移提提交记录,话题Id:{}",topicIdFormDTO.getTopicId()); } - result.setIssueApplicationId(record.getData().get(NumConstant.ZERO).getId()); - result.setApplyStatus(record.getData().get(NumConstant.ZERO).getApplyStatus()); + result.setIssueApplicationId(Optional.ofNullable(record.getData().get(NumConstant.ZERO).getId()).orElse(ModuleConstant.EMPTY_STR)); + result.setApplyStatus(Optional.ofNullable(record.getData().get(NumConstant.ZERO).getApplyStatus()).orElse(ModuleConstant.EMPTY_STR)); } return result; } @@ -1335,6 +1339,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl 议题服务) Date now = new Date(); //2.调用gov-org获取数据权限 @@ -1354,7 +1359,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl dataFilterResult = govOrgFeignClient.gridDataFilter(dataFilterParam); if(dataFilterResult.success() && null != dataFilterResult.getData()){ - IssueShiftedFromTopicFormDTO issueInfo = ConvertUtils.sourceToTarget(topicTurnIssueFromDTO,IssueShiftedFromTopicFormDTO.class); + com.epmet.dto.form.IssueShiftedFromTopicFormDTO issueInfo = ConvertUtils.sourceToTarget(topicTurnIssueFromDTO, com.epmet.dto.form.IssueShiftedFromTopicFormDTO .class); issueInfo.setCreatedTime(now); issueInfo.setGridId(group.getGridId()); issueInfo.setCustomerId(group.getCustomerId()); @@ -1463,7 +1468,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl dataFilterResult = govOrgFeignClient.gridDataFilter(dataFilterParam); if(dataFilterResult.success() && null != dataFilterResult.getData()){ - IssueShiftedFromTopicFormDTO issueInfo = ConvertUtils.sourceToTarget(topicTurnIssueFromDTO,IssueShiftedFromTopicFormDTO.class); + com.epmet.dto.form.IssueShiftedFromTopicFormDTO issueInfo = ConvertUtils.sourceToTarget(topicTurnIssueFromDTO, com.epmet.dto.form.IssueShiftedFromTopicFormDTO .class); issueInfo.setCreatedTime(now); issueInfo.setGridId(group.getGridId()); issueInfo.setCustomerId(group.getCustomerId()); @@ -1529,6 +1534,81 @@ public class ResiTopicServiceImpl extends BaseServiceImpl