From 1f545cd332ae2d60e7b3ac592fbe06d578fd2410 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Tue, 16 Aug 2022 15:18:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E9=83=A8=E5=B0=8F=E7=BB=84=E4=B8=8E?= =?UTF-8?q?=E5=85=9A=E7=BB=84=E7=BB=87=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resi/group/dto/group/ResiGroupDTO.java | 6 ++ .../group/form/ApplyCreateGroupFormDTO.java | 6 ++ .../dto/group/form/EditGroupFormDTO.java | 1 + .../result/ApplyingGroupDetailResult2DTO.java | 1 + .../result/ApplyingGroupDetailResultDTO.java | 2 + .../result/GroupEditionDetailResultDTO.java | 1 + .../group/feign/ResiGroupOpenFeignClient.java | 13 +++ .../ResiGroupOpenFeignClientFallback.java | 7 ++ .../group/controller/ResiGroupController.java | 17 ++- .../entity/GroupEditSubmitRecordEntity.java | 6 ++ .../modules/group/entity/ResiGroupEntity.java | 6 ++ .../group/service/ResiGroupService.java | 12 ++- .../service/impl/ResiGroupServiceImpl.java | 102 +++++++++++++++++- .../mapper/group/GroupEditSubmitRecordDao.xml | 1 + .../resources/mapper/group/ResiGroupDao.xml | 1 + .../feign/ResiPartyMemberOpenFeignClient.java | 15 ++- ...esiPartyMemberOpenFeignClientFallback.java | 17 ++- .../resi-partymember-server/pom.xml | 6 ++ .../controller/IcPartyOrgController.java | 18 ++++ .../partyOrg/service/IcPartyOrgService.java | 12 ++- .../service/impl/IcPartyOrgServiceImpl.java | 70 +++++++++++- 21 files changed, 303 insertions(+), 17 deletions(-) diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java index 7994bf7d8d..d409b089b6 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java @@ -66,6 +66,12 @@ public class ResiGroupDTO implements Serializable { */ private String gridId; + /** + * 所属党组织 + */ + private String partyOrgId; + private String partyOrgPids; + /** * 状态:(审核通过 - approved 、 审核中 - under_auditting、 审核未通过 - rejected 、 已屏蔽 - hidden、 已关闭 - closed) Ps: 如果一个小组被拒绝,当前小组的状态将永久停留在“审核未通过” diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/ApplyCreateGroupFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/ApplyCreateGroupFormDTO.java index bdfd703f91..404fc0d7e6 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/ApplyCreateGroupFormDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/ApplyCreateGroupFormDTO.java @@ -17,6 +17,8 @@ public class ApplyCreateGroupFormDTO implements Serializable { private static final long serialVersionUID = 1570620480398949075L; public interface AddUserInternalGroup { } + public interface AddPartyOrgGroup { + } /** * 添加用户操作的用户可见异常分组 * 该分组用于校验需要返回给前端错误信息提示的列,需要继承CustomerClientShowGroup @@ -69,6 +71,10 @@ public class ApplyCreateGroupFormDTO implements Serializable { @NotBlank(message = "app不能为空",groups ={AddUserInternalGroup.class}) private String app; + @NotBlank(message = "所属党组织不能为空",groups ={AddPartyOrgGroup.class}) + private String partyOrgId; + private String partyOrgPids; + /** * 小组是否允许参观:允许:open;不允许:closed */ diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/EditGroupFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/EditGroupFormDTO.java index ed56de167a..ccf51fe58c 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/EditGroupFormDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/EditGroupFormDTO.java @@ -35,5 +35,6 @@ public class EditGroupFormDTO { @NotBlank(message = "组介绍不能为空", groups = { SubmitGroupEditVG.class }) @Length(max = 500, message = "组介绍长度不能超过500个字", groups = { SubmitGroupEditVG.class }) private String groupIntroduction; + private String partyOrgId; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupDetailResult2DTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupDetailResult2DTO.java index bb48e14b91..d3d1e38ddf 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupDetailResult2DTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupDetailResult2DTO.java @@ -67,5 +67,6 @@ public class ApplyingGroupDetailResult2DTO implements Serializable { * 未读已读标识 unread read * */ private String readFlag; + private String partyOrgName; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupDetailResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupDetailResultDTO.java index 205d2d433c..c528e049d6 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupDetailResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/ApplyingGroupDetailResultDTO.java @@ -77,4 +77,6 @@ public class ApplyingGroupDetailResultDTO implements Serializable { * */ private String operationId; + private String partyOrgId; + } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupEditionDetailResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupEditionDetailResultDTO.java index 0cf88d6802..08e2bb91ee 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupEditionDetailResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupEditionDetailResultDTO.java @@ -39,4 +39,5 @@ public class GroupEditionDetailResultDTO implements Serializable { * 群主的昵称 xx路-xx先生/女士 */ private String groupLeaderName; + private String partyOrgName; } 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 6f0ae98c44..6a0c43f14c 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 @@ -13,12 +13,14 @@ import com.epmet.resi.group.dto.topic.result.TopicInfoResultDTO; import com.epmet.resi.group.dto.topic.result.*; import com.epmet.resi.group.feign.fallback.ResiGroupOpenFeignClientFallbackFactory; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 @@ -320,4 +322,15 @@ public interface ResiGroupOpenFeignClient { */ @PostMapping("/resi/group/group/list-groups-by-member") Result> listGroupsByMember(@RequestBody GroupsByMemberFormDTO formDTO); + + /** + * 获取客户下支部小组,根据所属党组织分组 + * + * @Param + * @Return {@link Result>>} + * @Author zhaoqifeng + * @Date 2022/8/16 14:04 + */ + @PostMapping("/resi/group/group/getBranchGroupList") + Result>> getBranchGroupList(); } 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 9e228b2dce..98cddc7d9b 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 @@ -13,9 +13,11 @@ import com.epmet.resi.group.dto.topic.result.TopicInfoResultDTO; import com.epmet.resi.group.dto.topic.result.*; import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 @@ -234,4 +236,9 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien public Result> listGroupsByMember(GroupsByMemberFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "listGroupsByMember", formDTO); } + + @Override + public Result>> getBranchGroupList() { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "getBranchGroupList", null); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java index e374a32136..5e60d0f535 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java @@ -34,12 +34,14 @@ import com.epmet.resi.group.dto.member.form.EditAuditSwitchFormDTO; import com.epmet.resi.group.dto.member.form.ResiIdentityFormDTO; import com.epmet.resi.group.dto.member.result.AchievementResultDTO; import com.epmet.resi.group.enums.SearchScopeTypeEnum; +import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.List; +import java.util.Map; /** @@ -399,7 +401,7 @@ public class ResiGroupController { @PostMapping("submit-edit") public Result submitGroupEdit(@RequestBody EditGroupFormDTO form, @LoginUser TokenDto tokenDto){ ValidatorUtils.validateEntity(form, EditGroupFormDTO.SubmitGroupEditVG.class); - resiGroupService.submitGroupEdit(form.getGroupId(), form.getGroupName(), form.getGroupHeadPhoto(), form.getGroupIntroduction(), tokenDto.getUserId()); + resiGroupService.submitGroupEdit(form.getGroupId(), form.getGroupName(), form.getGroupHeadPhoto(), form.getGroupIntroduction(), tokenDto.getUserId(), form.getPartyOrgId()); return new Result(); } @@ -649,4 +651,17 @@ public class ResiGroupController { List groups = resiGroupService.listGroupsByMember(userId, gridId); return new Result>().ok(groups); } + + /** + * 获取客户下支部小组,根据所属党组织分组 + * + * @Param tokenDto + * @Return {@link Result< Map< String, List< IcPartyOrgTreeDTO>>>} + * @Author zhaoqifeng + * @Date 2022/8/16 14:02 + */ + @PostMapping("getBranchGroupList") + public Result>> getBranchGroupList(@LoginUser TokenDto tokenDto) { + return new Result>>().ok(resiGroupService.getBranchGroupList(tokenDto.getCustomerId())); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/GroupEditSubmitRecordEntity.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/GroupEditSubmitRecordEntity.java index a40c7b2d1f..ba6f29f424 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/GroupEditSubmitRecordEntity.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/GroupEditSubmitRecordEntity.java @@ -52,6 +52,12 @@ public class GroupEditSubmitRecordEntity extends BaseEpmetEntity { */ private String gridId; + /** + * 所属党组织 + */ + private String partyOrgId; + private String partyOrgPids; + /** * 头像 */ diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/ResiGroupEntity.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/ResiGroupEntity.java index da522bfcab..cc35c91b5b 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/ResiGroupEntity.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/ResiGroupEntity.java @@ -62,6 +62,12 @@ public class ResiGroupEntity extends BaseEpmetEntity { */ private String gridId; + /** + * 所属党组织 + */ + private String partyOrgId; + private String partyOrgPids; + /** * 状态:(审核通过 - approved 、 审核中 - under_auditting、 审核未通过 - rejected 、 已屏蔽 - hidden、 已关闭 - closed) Ps: 如果一个小组被拒绝,当前小组的状态将永久停留在“审核未通过” diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java index 3aaab6e4d4..d3176758d5 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java @@ -30,6 +30,7 @@ import com.epmet.resi.group.dto.group.form.*; import com.epmet.resi.group.dto.group.result.*; import com.epmet.resi.group.dto.member.form.EditAuditSwitchFormDTO; import com.epmet.resi.group.dto.member.result.AchievementResultDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; import java.util.HashMap; import java.util.List; @@ -310,7 +311,7 @@ public interface ResiGroupService extends BaseService { GroupDetailResultDTO getGroupDetail(String groupId); - void submitGroupEdit(String groupId, String groupName, String groupHeadPhoto, String groupIntroduction, String editUserId); + void submitGroupEdit(String groupId, String groupName, String groupHeadPhoto, String groupIntroduction, String editUserId, String partyOrgId); /** * @Description 工作端 查询组变更待审核列表 @@ -471,4 +472,13 @@ public interface ResiGroupService extends BaseService { * @date 2021.09.08 13:59:31 */ List listGroupsByMember(String memberUserId, String gridId); + + /** + * 获取客户下支部小组,根据所属党组织分组 + * @Param customerId + * @Return {@link Map< String, List>} + * @Author zhaoqifeng + * @Date 2022/8/15 16:49 + */ + Map> getBranchGroupList(String customerId); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java index 3bb3a435d7..1406f89ddf 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java @@ -27,6 +27,7 @@ import com.epmet.commons.rocketmq.messages.GroupAchievementMQMsg; import com.epmet.commons.tools.constant.*; import com.epmet.commons.tools.enums.AchievementTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.scan.param.ImgScanParamDTO; @@ -83,6 +84,9 @@ import com.epmet.resi.group.dto.member.form.EditAuditSwitchFormDTO; import com.epmet.resi.group.dto.member.result.AchievementResultDTO; import com.epmet.resi.group.dto.member.result.GroupAchievementDTO; import com.epmet.resi.group.enums.SearchScopeTypeEnum; +import com.epmet.resi.partymember.dto.partyOrg.IcPartyOrgDTO; +import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; +import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import com.epmet.send.SendMqMsgUtil; import com.github.pagehelper.PageHelper; import lombok.extern.slf4j.Slf4j; @@ -97,6 +101,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.support.TransactionSynchronizationAdapter; import org.springframework.transaction.support.TransactionSynchronizationManager; +import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; @@ -120,7 +125,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl page(Map params) { @@ -457,6 +464,19 @@ public class ResiGroupServiceImpl extends BaseServiceImpl> partyOrgResult = resiPartyMemberOpenFeignClient.getPartyOrgList(); + if (!partyOrgResult.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取党组织信息失败", "获取党组织信息失败"); + } + if (partyOrgResult.getData().containsKey(applyCreateGroupFormDTO.getPartyOrgId())) { + applyCreateGroupFormDTO.setPartyOrgPids(partyOrgResult.getData().get(applyCreateGroupFormDTO.getPartyOrgId()).getOrgPids().concat(StrConstant.COLON).concat(applyCreateGroupFormDTO.getPartyOrgId())); + } else { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "所选党组织不存在", "所选党组织不存在"); + } + } + String roleName = ""; if(NumConstant.ONE_STR.equals(userRoleDTO.getPartymemberFlag())){ roleName = ModuleConstant.PARTYMEMBER; @@ -586,6 +606,8 @@ public class ResiGroupServiceImpl extends BaseServiceImpl().ok(ConvertUtils.sourceToTarget(detail, ApplyingGroupDetailResult2DTO.class)); + ApplyingGroupDetailResult2DTO result = ConvertUtils.sourceToTarget(detail, ApplyingGroupDetailResult2DTO.class); + + if (StringUtils.isNotBlank(detail.getPartyOrgId())) { + Result> partyOrgResult = resiPartyMemberOpenFeignClient.getPartyOrgList(); + if (!partyOrgResult.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取党组织信息失败", "获取党组织信息失败"); + } + if (partyOrgResult.getData().containsKey(detail.getPartyOrgId())) { + result.setPartyOrgName(partyOrgResult.getData().get(detail.getPartyOrgId()).getPartyOrgName()); + } + } + + + return new Result().ok(result); } @Override @@ -1486,7 +1521,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl> partyOrgResult = resiPartyMemberOpenFeignClient.getPartyOrgList(); + if (!partyOrgResult.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取党组织信息失败", "获取党组织信息失败"); + } + if (partyOrgResult.getData().containsKey(partyOrgId)) { + partyOrgPids = partyOrgResult.getData().get(partyOrgId).getOrgPids().concat(StrConstant.COLON).concat(partyOrgId); + } else { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "所选党组织不存在", "所选党组织不存在"); + } + } // 3.内容检查 scanGroupEditContent(groupName, groupIntroduction, groupHeadPhoto); @@ -1537,6 +1584,8 @@ public class ResiGroupServiceImpl extends BaseServiceImpl> partyOrgResult = resiPartyMemberOpenFeignClient.getPartyOrgList(); + if (!partyOrgResult.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取党组织信息失败", "获取党组织信息失败"); + } + if (partyOrgResult.getData().containsKey(edit.getPartyOrgId())) { + result.setPartyOrgName(partyOrgResult.getData().get(edit.getPartyOrgId()).getPartyOrgName()); + } + } + return result; } @@ -1863,4 +1922,37 @@ public class ResiGroupServiceImpl extends BaseServiceImpl listGroupsByMember(String memberUserId, String gridId) { return baseDao.listGroupsByMember(memberUserId, gridId); } + + /** + * 获取客户下支部小组,根据所属党组织分组 + * + * @param customerId + * @Param customerId + * @Return {@link Map< String, List>} + * @Author zhaoqifeng + * @Date 2022/8/15 16:49 + */ + @Override + public Map> getBranchGroupList(String customerId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ResiGroupEntity::getCustomerId, customerId); + wrapper.eq(ResiGroupEntity::getGroupType, ModuleConstant.GROUP_TYPE_BRANCH); + List entityList = baseDao.selectList(wrapper); + if (CollectionUtils.isEmpty(entityList)) { + return Collections.emptyMap(); + } + List list = entityList.stream().filter(i -> StringUtils.isNotBlank(i.getPartyOrgId())).map(item -> { + IcPartyOrgTreeDTO dto = new IcPartyOrgTreeDTO(); + dto.setId(item.getId()); + dto.setOrgPids(item.getPartyOrgPids()); + dto.setPid(item.getPartyOrgId()); + dto.setPartyOrgType(ModuleConstant.GROUP_TYPE_BRANCH); + dto.setPartyOrgName(item.getGroupName()); + return dto; + }).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.groupingBy(IcPartyOrgTreeDTO::getPid)); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/GroupEditSubmitRecordDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/GroupEditSubmitRecordDao.xml index d282690dea..8a212fc7d0 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/GroupEditSubmitRecordDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/GroupEditSubmitRecordDao.xml @@ -95,6 +95,7 @@ GROUP_NAME, GROUP_HEAD_PHOTO, GROUP_INTRODUCTION, + PARTY_ORG_ID, CREATED_BY, GRID_ID FROM diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml index a9a11ac36f..b04c4aef48 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml @@ -354,6 +354,7 @@ gro.GROUP_NAME AS groupName, gro.GROUP_HEAD_PHOTO AS groupHeadPhoto, gro.GROUP_INTRODUCTION AS groupIntroduction, + gro.PARTY_ORG_ID AS partyOrgId, oper.READ_FLAG AS readFlag, oper.MESSAGE_TEXT AS messageText, oper.CREATED_TIME AS createdTime, diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java index 0098acd036..430c6acb90 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java @@ -1,11 +1,9 @@ package com.epmet.resi.partymember.feign; -import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.dto.result.OptionResultDTO; -import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; -import com.epmet.resi.partymember.dto.partyOrg.result.BranchlistTreeDTO; +import com.epmet.resi.partymember.dto.partyOrg.IcPartyOrgDTO; import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberBaseInfoDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; @@ -20,6 +18,7 @@ import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 @@ -135,4 +134,14 @@ public interface ResiPartyMemberOpenFeignClient { @PostMapping("/resi/partymember/icPartyOrg/branchlist") public Result> branchlist(); + + /** + * 获取客户下支部列表 + * @Param tokenDto + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2022/8/15 16:00 + */ + @PostMapping("/resi/partymember/icPartyOrg/getPartyOrgList") + Result> getPartyOrgList(); } diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java index 57ce87c1e4..2a82324fa0 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java @@ -2,10 +2,9 @@ package com.epmet.resi.partymember.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.dto.result.OptionResultDTO; -import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.resi.partymember.dto.partyOrg.result.BranchlistTreeDTO; +import com.epmet.resi.partymember.dto.partyOrg.IcPartyOrgDTO; import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberBaseInfoDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; @@ -17,6 +16,7 @@ import com.epmet.resi.partymember.dto.partymember.result.WarnAndPartyAuditResult import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import java.util.List; +import java.util.Map; /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 @@ -101,4 +101,17 @@ public class ResiPartyMemberOpenFeignClientFallback implements ResiPartyMemberOp public Result> branchlist() { return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "branchlist", null); } + + /** + * 获取客户下支部列表 + * + * @Param tokenDto + * @Return {@link Result< Map>} + * @Author zhaoqifeng + * @Date 2022/8/15 16:00 + */ + @Override + public Result> getPartyOrgList() { + return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "getPartyOrgList", null); + } } diff --git a/epmet-module/resi-partymember/resi-partymember-server/pom.xml b/epmet-module/resi-partymember/resi-partymember-server/pom.xml index d03215171c..194ec74de1 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/pom.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/pom.xml @@ -123,6 +123,12 @@ epmet-commons-rocketmq 2.0.0 + + com.epmet + resi-group-client + 2.0.0 + compile + diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyOrgController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyOrgController.java index 499c2a1d70..e1af2d4515 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyOrgController.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/controller/IcPartyOrgController.java @@ -110,6 +110,12 @@ public class IcPartyOrgController { return icPartyOrgService.getSearchTreelist(formDTO); } + @PostMapping("getOrgTreeHaveGroup") + public Result> getOrgTreeHaveGroup(@LoginUser TokenDto tokenDto,PartyOrgTreeListDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result>().ok(icPartyOrgService.getOrgTreeHaveGroup(formDTO)); + } + /** * @describe: 当前登录用户所属行政组织,及下级的党组织(只限支部) * @author wangtong @@ -137,4 +143,16 @@ public class IcPartyOrgController { return icPartyOrgService.getParentOrgList(formDTO); } + /** + * 获取客户下支部列表 + * @Param tokenDto + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2022/8/15 16:00 + */ + @PostMapping("getPartyOrgList") + public Result> getPartyOrgList(@LoginUser TokenDto tokenDto){ + return new Result>().ok(icPartyOrgService.getPartyOrgList(tokenDto)); + } + } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyOrgService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyOrgService.java index 6397916cc6..ea0c5615fd 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyOrgService.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyOrgService.java @@ -108,7 +108,7 @@ public interface IcPartyOrgService extends BaseService { * @return com.epmet.commons.tools.utils.Result> */ Result> getSearchTreelist(PartyOrgTreeListDTO formDTO); - + List getOrgTreeHaveGroup(PartyOrgTreeListDTO formDTO); /** * @describe: 上级党组织列表 * @author wangtong @@ -117,4 +117,14 @@ public interface IcPartyOrgService extends BaseService { * @return com.epmet.commons.tools.utils.Result> */ Result> getParentOrgList(GetParentOrgFormDTO formDTO); + + /** + * 获取客户下支部列表 + * + * @Param tokenDto + * @Return {@link Map} + * @Author zhaoqifeng + * @Date 2022/8/15 15:52 + */ + Map getPartyOrgList(TokenDto tokenDto); } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyOrgServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyOrgServiceImpl.java index 70cb443864..b25f89cccf 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyOrgServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyOrgServiceImpl.java @@ -1,9 +1,11 @@ package com.epmet.modules.partyOrg.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.enums.PartyOrgTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; @@ -23,6 +25,7 @@ import com.epmet.modules.partyOrg.entity.IcPartyOrgEntity; import com.epmet.modules.partyOrg.service.IcPartyOrgService; import com.epmet.modules.partymember.dao.IcPartyMemberDao; import com.epmet.modules.partymember.entity.IcPartyMemberEntity; +import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.resi.partymember.dto.partyOrg.IcPartyOrgDTO; import com.epmet.resi.partymember.dto.partyOrg.form.GetParentOrgFormDTO; import com.epmet.resi.partymember.dto.partyOrg.form.PartyOrgTreeListDTO; @@ -35,10 +38,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import javax.annotation.Resource; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * 党组织表 @@ -54,6 +57,8 @@ public class IcPartyOrgServiceImpl extends BaseServiceImpl> getTreelist(PartyOrgTreeListDTO formDTO) { List list = baseDao.getTreelist(formDTO); + Result>> groupResult = resiGroupOpenFeignClient.getBranchGroupList(); + if (!groupResult.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询支部小组错误", "查询支部小组错误"); + } + for (IcPartyOrgTreeDTO org : list) { + getChildren(org, groupResult.getData()); + } return new Result>().ok(build(list)); } + private void getChildren(IcPartyOrgTreeDTO dto, Map> map) { + if (NumConstant.FIVE_STR.equals(dto.getPartyOrgType())) { + if (map.containsKey(dto.getId())) { + dto.setChildren(map.get(dto.getId())); + } + } else { + for (IcPartyOrgTreeDTO org : dto.getChildren()) { + getChildren(org, map); + } + } + } + @Override public Result> branchlist(TokenDto tokenDto) { CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); @@ -244,6 +268,21 @@ public class IcPartyOrgServiceImpl extends BaseServiceImpl>().ok(build(list)); } + @Override + public List getOrgTreeHaveGroup(PartyOrgTreeListDTO formDTO) { + List list = baseDao.getSearchTreelist(formDTO); + + Result>> groupResult = resiGroupOpenFeignClient.getBranchGroupList(); + if (!groupResult.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询支部小组错误", "查询支部小组错误"); + } + for (IcPartyOrgTreeDTO org : list) { + getChildren(org, groupResult.getData()); + } + + return list; + } + @Override public Result> getParentOrgList(GetParentOrgFormDTO formDTO) { Result agencyDTOResult = govOrgOpenFeignClient.getAgencyById(formDTO.getAgencyId()); @@ -270,6 +309,29 @@ public class IcPartyOrgServiceImpl extends BaseServiceImpl>().ok(list); } + /** + * 获取客户下支部列表 + * + * @param tokenDto + * @Param tokenDto + * @Return {@link Map} + * @Author zhaoqifeng + * @Date 2022/8/15 15:52 + */ + @Override + public Map getPartyOrgList(TokenDto tokenDto) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcPartyOrgEntity::getCustomerId, tokenDto.getCustomerId()); + wrapper.eq(IcPartyOrgEntity::getPartyOrgType, NumConstant.FIVE_STR); + List list = baseDao.selectList(wrapper); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + List result = ConvertUtils.sourceToTarget(list, IcPartyOrgDTO.class); + + return result.stream().collect(Collectors.toMap(IcPartyOrgDTO::getId, Function.identity())); + } + /** * 构建树节点 */