diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/GetParentOrgFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/GetParentOrgFormDTO.java new file mode 100644 index 0000000000..fa1534fc65 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partyOrg/form/GetParentOrgFormDTO.java @@ -0,0 +1,33 @@ +package com.epmet.resi.partymember.dto.partyOrg.form; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @program: epmet-cloud + * @description: + * @author: wangtong + * @create: 2022-06-10 16:02 + **/ +@Data +public class GetParentOrgFormDTO implements Serializable { + /** + * 党组织类型 + */ + @NotNull(message = "党组织类型不可为空") + private String partyOrgType; + + /** + * 行政组织 机关ID + */ + @NotNull(message = "行政组织id不可为空") + private String agencyId; + + /** + * 客户Id (customer.id) + */ + private String customerId; + +} 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 1d5cbcda24..499c2a1d70 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 @@ -14,6 +14,7 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.modules.partyOrg.excel.IcPartyOrgExcel; import com.epmet.modules.partyOrg.service.IcPartyOrgService; 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; import com.epmet.resi.partymember.dto.partyOrg.result.BranchlistTreeDTO; import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; @@ -121,6 +122,19 @@ public class IcPartyOrgController { return icPartyOrgService.branchlist(tokenDto); } - + /** + * @describe: 上级党组织列表 + * @author wangtong + * @date 2022/6/10 15:59 + * @params [tokenDto, formDTO] + * @return com.epmet.commons.tools.utils.Result> + */ + @GetMapping("getParentOrgList") + public Result> getParentOrgList(@LoginUser TokenDto tokenDto, GetParentOrgFormDTO formDTO){ + //效验数据 + ValidatorUtils.validateEntity(formDTO); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return icPartyOrgService.getParentOrgList(formDTO); + } } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyOrgDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyOrgDao.java index 49574a4af6..c70ca0d728 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyOrgDao.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/dao/IcPartyOrgDao.java @@ -83,4 +83,24 @@ public interface IcPartyOrgDao extends BaseDao { * @return java.util.List */ List getSearchTreelist(PartyOrgTreeListDTO formDTO); + + /** + * @describe: 获取上级党组织 + * @author wangtong + * @date 2022/6/10 16:48 + * @params [agencyPid, customerId, code] + * @return java.util.List + */ + List selectParentOrgByAgencyPid(@Param("agencyPid") String agencyPid, + @Param("customerId") String customerId, + @Param("partyOrgType") String partyOrgType); + + /** + * @describe: 查询该客户下的一级组织 + * @author wangtong + * @date 2022/6/10 17:29 + * @params [customerId] + * @return com.epmet.modules.partyOrg.entity.IcPartyOrgEntity + */ + IcPartyOrgEntity selectByCustomerIdAndFirstOrg(@Param("customerId") String customerId); } 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 7e1b6ad24c..6397916cc6 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 @@ -6,6 +6,7 @@ import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.modules.partyOrg.entity.IcPartyOrgEntity; 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; import com.epmet.resi.partymember.dto.partyOrg.result.BranchlistTreeDTO; import com.epmet.resi.partymember.dto.partyOrg.result.IcPartyOrgTreeDTO; @@ -107,4 +108,13 @@ public interface IcPartyOrgService extends BaseService { * @return com.epmet.commons.tools.utils.Result> */ Result> getSearchTreelist(PartyOrgTreeListDTO formDTO); + + /** + * @describe: 上级党组织列表 + * @author wangtong + * @date 2022/6/10 16:01 + * @params [formDTO] + * @return com.epmet.commons.tools.utils.Result> + */ + Result> getParentOrgList(GetParentOrgFormDTO formDTO); } 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 e0105c65fe..d41d9eaa8b 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 @@ -6,6 +6,7 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.enums.PartyOrgTypeEnum; +import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; @@ -14,13 +15,16 @@ import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; 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.dto.CustomerAgencyDTO; import com.epmet.enums.OrgLevelEnums; +import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.modules.partyOrg.dao.IcPartyOrgDao; 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.partymember.dto.partyOrg.IcPartyOrgDTO; +import com.epmet.resi.partymember.dto.partyOrg.form.GetParentOrgFormDTO; import com.epmet.resi.partymember.dto.partyOrg.form.PartyOrgTreeListDTO; import com.epmet.resi.partymember.dto.partyOrg.result.BranchlistTreeDTO; import com.epmet.resi.partymember.dto.partyOrg.result.BranchlistTreeSubDTO; @@ -48,6 +52,9 @@ public class IcPartyOrgServiceImpl extends BaseServiceImpl page(Map params) { @@ -65,8 +72,8 @@ public class IcPartyOrgServiceImpl extends BaseServiceImpl getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); + private QueryWrapper getWrapper(Map params) { + String id = (String) params.get(FieldConstant.ID_HUMP); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); @@ -84,47 +91,47 @@ public class IcPartyOrgServiceImpl extends BaseServiceImpl orgList = baseDao.selectAllByOrgId(id); - if(!CollectionUtils.isEmpty(orgList)){ + if (!CollectionUtils.isEmpty(orgList)) { throw new EpmetException("请先删除下级党组织!"); } //判断该组织下是否有党员 List memberList = icPartyMemberDao.selectAllByOrgId(id); - if(!CollectionUtils.isEmpty(memberList)){ + if (!CollectionUtils.isEmpty(memberList)) { throw new EpmetException("该组织下有党员信息暂时不可删除!"); } baseDao.deleteById(id); @@ -215,15 +222,15 @@ public class IcPartyOrgServiceImpl extends BaseServiceImpl> branchlist(TokenDto tokenDto) { - CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(),tokenDto.getUserId()); + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); List resultList = new ArrayList<>(); BranchlistTreeDTO result = new BranchlistTreeDTO(); result.setValue(staffInfo.getAgencyId()); // result.setOrgPids(staffInfo.getAgencyPIds()); result.setLabel(staffInfo.getAgencyName()); //该行政组织下的所有类型为支部的党组织 - List orgList = baseDao.selectAllBranchByAgencyId(staffInfo.getAgencyId(),tokenDto.getCustomerId()); - if(CollectionUtils.isEmpty(orgList)){ + List orgList = baseDao.selectAllBranchByAgencyId(staffInfo.getAgencyId(), tokenDto.getCustomerId()); + if (CollectionUtils.isEmpty(orgList)) { return new Result>().ok(resultList); } result.setChildren(orgList); @@ -237,6 +244,32 @@ public class IcPartyOrgServiceImpl extends BaseServiceImpl>().ok(build(list)); } + @Override + public Result> getParentOrgList(GetParentOrgFormDTO formDTO) { + Result agencyDTOResult = govOrgOpenFeignClient.getAgencyById(formDTO.getAgencyId()); + if (!agencyDTOResult.success() || null == agencyDTOResult || null == agencyDTOResult.getData()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询行政组织信息错误", "查询行政组织信息错误"); + } + String agencyPid = agencyDTOResult.getData().getPid(); + List list = new ArrayList<>(); + //如果本工作人员的级别是该客户下的最高级别,并且没有一级组织时,添加一级组织选项 + IcPartyOrgEntity entity = baseDao.selectByCustomerIdAndFirstOrg(formDTO.getCustomerId()); + if("0".equals(agencyPid) && null == entity){ + IcPartyOrgTreeDTO firstOrg = new IcPartyOrgTreeDTO(); + firstOrg.setId("0"); + firstOrg.setPartyOrgName("一级组织"); + list.add(firstOrg); + } + //如果类型为支部,则查询该行政组织下的所有党委(列表) + if(PartyOrgTypeEnum.BRANCH.getCode().equals(formDTO.getPartyOrgType())){ + list.addAll(baseDao.selectParentOrgByAgencyPid(agencyPid,formDTO.getCustomerId(),PartyOrgTypeEnum.PARTY.getCode())); + }else{ + //查询该行政组织对应上级所关联的党组织(单个实体类) + list.addAll(baseDao.selectParentOrgByAgencyPid(agencyPid,formDTO.getCustomerId(),null)); + } + return new Result>().ok(list); + } + /** * 构建树节点 */ @@ -245,13 +278,13 @@ public class IcPartyOrgServiceImpl extends BaseServiceImpl nodeMap = new LinkedHashMap<>(treeNodes.size()); - for(IcPartyOrgTreeDTO treeNode : treeNodes){ + for (IcPartyOrgTreeDTO treeNode : treeNodes) { nodeMap.put(treeNode.getId(), treeNode); } - for(IcPartyOrgTreeDTO node : nodeMap.values()) { + for (IcPartyOrgTreeDTO node : nodeMap.values()) { IcPartyOrgTreeDTO parent = nodeMap.get(node.getPid()); - if(parent != null && !(node.getId().equals(parent.getId()))){ + if (parent != null && !(node.getId().equals(parent.getId()))) { parent.getChildren().add(node); continue; } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyOrgDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyOrgDao.xml index 451da2c51a..959b99a790 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyOrgDao.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partyOrg/IcPartyOrgDao.xml @@ -98,31 +98,47 @@ + +