diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java index 44655fbb8b..e13771455c 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java @@ -28,5 +28,10 @@ public class VoteFormDTO implements Serializable { */ private String createdBy; + /** + * 当 sourceType = issue 时,是直接创建议题,无需加入小组即可表决 + */ + private String sourceType; + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java index aebbd3789e..25a0e7a297 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java @@ -333,6 +333,12 @@ public class IssueController { return new Result().ok(issueService.issueAuditReset(gridId)); } + /** + * Desc: 创建议题【直接创建】 + * @param formDTO + * @author zxc + * @date 2022/10/8 09:03 + */ @PostMapping("createIssue") public Result createIssue(@LoginUser TokenDto tokenDto,@RequestBody IssueDTO formDTO){ formDTO.setUserId(tokenDto.getUserId()); 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 8ac38fb970..4532a03d31 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 @@ -384,6 +384,12 @@ public interface IssueService extends BaseService { */ Boolean issueAuditReset(String gridId); + /** + * Desc: 创建议题【直接创建】 + * @param issueDTO + * @author zxc + * @date 2022/10/8 09:03 + */ void createIssue(IssueDTO issueDTO); } 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 561a5dcd35..ef149a58b9 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 @@ -1793,6 +1793,12 @@ public class IssueServiceImpl extends BaseServiceImpl imp return false; } + /** + * Desc: 创建议题【直接创建】 + * @param issueDTO + * @author zxc + * @date 2022/10/8 09:03 + */ @Override public void createIssue(IssueDTO issueDTO) { // 先审核 @@ -1858,6 +1864,7 @@ public class IssueServiceImpl extends BaseServiceImpl imp if (!userResult.success() || CollectionUtils.isEmpty(userResult.getData())){ throw new EpmetException("查询居民信息失败"); } + // 议题 议题进程 issueDTO.setOrgId(gridInfo.getPid()); issueDTO.setOrgIdPath(gridInfo.getPids()); IssueEntity e = ConvertUtils.sourceToTarget(issueDTO, IssueEntity.class); @@ -1880,6 +1887,15 @@ public class IssueServiceImpl extends BaseServiceImpl imp } + /** + * Desc: 附件插入 + * @param sourceList 附件集合 + * @param businessId 业务ID + * @param attachTo + * @param customerId + * @author zxc + * @date 2022/10/8 09:01 + */ private void insertAtt(Collection sourceList,String businessId,String attachTo,String customerId){ if (CollectionUtils.isNotEmpty(sourceList)){ List list = ConvertUtils.sourceToTarget(sourceList, IssueAttachmentEntity.class); diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java index 10b4673ce9..0996cfb503 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java @@ -40,10 +40,12 @@ import com.epmet.dto.form.*; import com.epmet.dto.result.CheckTopicPublisherResultDTO; import com.epmet.dto.result.JoinVoteResultDTO; import com.epmet.entity.IssueVoteDetailEntity; +import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.ResiGroupFeignClient; import com.epmet.redis.IssueVoteDetailRedis; import com.epmet.service.IssueService; import com.epmet.service.IssueVoteDetailService; +import com.epmet.utils.ModuleConstants; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -73,6 +75,8 @@ public class IssueVoteDetailServiceImpl extends BaseServiceImpl page(Map params) { @@ -140,7 +144,7 @@ public class IssueVoteDetailServiceImpl extends BaseServiceImpl integerResult = resiGroupFeignClient.votableCount(dto); - if (!integerResult.success()){ - throw new EpmetException("查询应表决人数失败..."); + /** + * 直接创建议题的,应表决数为网格下的注册居民数 + */ + if (formDTO.getSourceType().equals(ModuleConstants.ISSUE)){ + Result allResi = epmetUserOpenFeignClient.getAllResiByGrid(new AllResiByGridFormDTO(issueDTO.getGridId())); + if (!allResi.success()){ + throw new EpmetException("查询网格下的注册居民失败:"+issueDTO.getGridId()); + } + redisData.setShouldVoteCount(allResi.getData()); + }else { + Result integerResult = resiGroupFeignClient.votableCount(dto); + if (!integerResult.success()){ + throw new EpmetException("查询应表决人数失败..."); + } + redisData.setShouldVoteCount(integerResult.getData()); } - redisData.setShouldVoteCount(integerResult.getData()); issueVoteDetailRedis.set(redisData); Integer checkoutVoteCount = baseDao.checkoutVote(formDTO); if (checkoutVoteCount==0){ diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java index 9fe2c9f69c..ce1b760bb3 100644 --- a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java @@ -16,5 +16,10 @@ public class IssueIdFormDTO implements Serializable { @NotBlank(message = "议题id不能为空") private String issueId; + /** + * 当 sourceType = issue 时,是直接创建议题,无需加入小组即可表决 + */ + private String sourceType; + } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AllResiByGridFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AllResiByGridFormDTO.java new file mode 100644 index 0000000000..e53d9bbf28 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AllResiByGridFormDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto.form; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/10/8 10:40 + * @DESC + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AllResiByGridFormDTO implements Serializable { + + private static final long serialVersionUID = 6436906681156592037L; + + public interface AllResiByGridForm{} + + @NotBlank(message = "gridId不能为空",groups = AllResiByGridForm.class) + private String gridId; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index a2398b2d92..5e7348b757 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -924,4 +924,13 @@ public interface EpmetUserOpenFeignClient { @PostMapping("/epmetuser/dataSyncConfig/natInfoScanTask") Result natInfoScanTask(@RequestBody NatInfoScanTaskFormDTO formDTO); + + /** + * Desc: 根据网格ID查询所有注册居民 + * @param formDTO + * @author zxc + * @date 2022/10/8 10:41 + */ + @PostMapping("/epmetuser/resirelation/getAllResiByGrid") + Result getAllResiByGrid(@RequestBody AllResiByGridFormDTO formDTO); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index 4601ca1ef3..ba41203238 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -716,4 +716,9 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien public Result natInfoScanTask(NatInfoScanTaskFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "natInfoScanTask", formDTO); } + + @Override + public Result getAllResiByGrid(AllResiByGridFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getAllResiByGrid", formDTO); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/RegisterRelationController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/RegisterRelationController.java index 8f0322f02e..d801a5e6e9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/RegisterRelationController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/RegisterRelationController.java @@ -26,6 +26,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.RegisterRelationDTO; +import com.epmet.dto.form.AllResiByGridFormDTO; import com.epmet.dto.form.EnterGridFormDTO; import com.epmet.dto.result.UserInfoOnEnterGridResultDTO; import com.epmet.excel.RegisterRelationExcel; @@ -107,4 +108,16 @@ public class RegisterRelationController { return registerRelationService.getUserInfoAndRoles(enterGridFormDTO); } + + /** + * Desc: 根据网格ID查询所有注册居民 + * @param formDTO + * @author zxc + * @date 2022/10/8 10:41 + */ + @PostMapping("getAllResiByGrid") + public Result getAllResiByGrid(@RequestBody AllResiByGridFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, AllResiByGridFormDTO.AllResiByGridForm.class); + return new Result().ok(registerRelationService.getAllResiByGrid(formDTO)); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/RegisterRelationDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/RegisterRelationDao.java index 6c6e3aa4fb..f5f4cdfd35 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/RegisterRelationDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/RegisterRelationDao.java @@ -63,4 +63,12 @@ public interface RegisterRelationDao extends BaseDao { * @date 2021/12/30 3:14 下午 */ RegisterRelationDTO resiRelationInfo(@Param("userId")String userId); + + /** + * Desc: 根据网格ID查询所有注册居民 + * @param gridId + * @author zxc + * @date 2022/10/8 10:48 + */ + Integer getAllResiByGrid(@Param("gridId")String gridId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/RegisterRelationService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/RegisterRelationService.java index 96814c5fce..7179b78530 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/RegisterRelationService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/RegisterRelationService.java @@ -22,6 +22,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.RegisterRelationDTO; import com.epmet.dto.UserResiInfoDTO; +import com.epmet.dto.form.AllResiByGridFormDTO; import com.epmet.dto.form.EnterGridFormDTO; import com.epmet.dto.result.UserInfoOnEnterGridResultDTO; import com.epmet.entity.RegisterRelationEntity; @@ -114,4 +115,12 @@ public interface RegisterRelationService extends BaseService + + +