From c88d1658a2b6b51ed1a81c3be3e9102b661970f3 Mon Sep 17 00:00:00 2001 From: luoxinwu <934743099@qq.com> Date: 星期二, 05 三月 2024 09:42:37 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/haucheng_panzhihua' into haucheng_panzhihua --- springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/PartyOrganizationServiceImpl.java | 331 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 316 insertions(+), 15 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/PartyOrganizationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/PartyOrganizationServiceImpl.java index 8953f03..01c4fa1 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/PartyOrganizationServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/PartyOrganizationServiceImpl.java @@ -1,16 +1,29 @@ package com.panzhihua.service_dangjian.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.panzhihua.common.model.vos.partybuilding.PartyOrganizationVO; -import com.panzhihua.service_dangjian.dao.ComPbOrgDAO; -import com.panzhihua.service_dangjian.model.dos.ComPbOrgDO; -import com.panzhihua.service_dangjian.service.PartyOrganizationService; -import org.springframework.stereotype.Service; -import org.springframework.util.ObjectUtils; - -import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; + +import javax.annotation.Resource; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.panzhihua.common.model.dtos.partybuilding.ComListPartyDTO; +import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.model.vos.partybuilding.west.PartyOrganizationVO; +import com.panzhihua.service_dangjian.dao.ComPbMemberDAO; +import com.panzhihua.service_dangjian.dao.ComPbOrgDAO; +import com.panzhihua.service_dangjian.model.dos.ComPbMemberDO; +import com.panzhihua.service_dangjian.model.dos.ComPbOrgDO; +import com.panzhihua.service_dangjian.service.PartyOrganizationService; /** * @program: springcloud_k8s_panzhihuazhihuishequ @@ -22,23 +35,311 @@ public class PartyOrganizationServiceImpl implements PartyOrganizationService { @Resource private ComPbOrgDAO comPbOrgDAO; + @Resource + private ComPbMemberDAO comPbMemberDAO; + /** - * 平台所有党组织 + * 社区所有启用的党组织列表 * * @return 党组织集合 */ @Override public List<PartyOrganizationVO> listPartyOrganization(Long communityId) { - List<PartyOrganizationVO> partyOrganizationVOS=new ArrayList<>(); - List<ComPbOrgDO> comPbOrgDOS = comPbOrgDAO.selectList(new QueryWrapper<ComPbOrgDO>().lambda().eq(ComPbOrgDO::getCommunityId,communityId)); + List<PartyOrganizationVO> partyOrganizationVOS = new ArrayList<>(); + List<ComPbOrgDO> comPbOrgDOS = comPbOrgDAO.selectList(new QueryWrapper<ComPbOrgDO>().lambda() + .eq(ComPbOrgDO::getCommunityId, communityId).eq(ComPbOrgDO::getStatus, 1)); if (!ObjectUtils.isEmpty(comPbOrgDOS)) { comPbOrgDOS.forEach(comPbOrgDO -> { - PartyOrganizationVO partyOrganizationVO=new PartyOrganizationVO(); - partyOrganizationVO.setId(comPbOrgDO.getId()); - partyOrganizationVO.setName(comPbOrgDO.getName()); + PartyOrganizationVO partyOrganizationVO = new PartyOrganizationVO(); + BeanUtils.copyProperties(comPbOrgDO,partyOrganizationVO); partyOrganizationVOS.add(partyOrganizationVO); }); } return partyOrganizationVOS; } + + /** + * 社区所有党组织列表 + * + * @return 党组织集合 + */ + @Override + public R listPartyOrganizationAll(PartyOrganizationVO partyOrganizationVO) { + IPage<PartyOrganizationVO> orgPage = this.comPbOrgDAO.listPartyOrganizationAll( + new Page(partyOrganizationVO.getPageNum(), partyOrganizationVO.getPageSize()), partyOrganizationVO); + if (!ObjectUtils.isEmpty(orgPage.getRecords()) && StringUtils.isEmpty(partyOrganizationVO.getKeyWord())) { + //遍历第一级党组织列表 + orgPage.getRecords().forEach(org -> { + partyOrganizationVO.setParentId(org.getId()); + List<PartyOrganizationVO> twoChildList = comPbOrgDAO.getChildOrgList(partyOrganizationVO); + if(!ObjectUtils.isEmpty(twoChildList)){ + //遍历第二级党组织列表 + twoChildList.forEach(twoChild -> { + partyOrganizationVO.setParentId(twoChild.getId()); + List<PartyOrganizationVO> thirdChildList = comPbOrgDAO.getChildOrgList(partyOrganizationVO); + if(!ObjectUtils.isEmpty(thirdChildList)){ + //遍历第三级党组织列表 + thirdChildList.forEach(thirdChild -> { + partyOrganizationVO.setParentId(thirdChild.getId()); + List<PartyOrganizationVO> fourChildList = comPbOrgDAO.getChildOrgList(partyOrganizationVO); + if(!ObjectUtils.isEmpty(fourChildList)){ + fourChildList.forEach(fourChild -> { + partyOrganizationVO.setParentId(fourChild.getId()); + List<PartyOrganizationVO> fiveChildList = comPbOrgDAO.getChildOrgList(partyOrganizationVO); + fourChild.setCountPerson(fourChild.getCountPerson() + fiveChildList.stream().mapToInt(five -> five.getCountPerson()).sum()); + fourChild.setChildList(fiveChildList); + }); + } + thirdChild.setCountPerson(thirdChild.getCountPerson() + fourChildList.stream().mapToInt(four -> four.getCountPerson()).sum()); + thirdChild.setChildList(fourChildList); + }); + } + twoChild.setCountPerson(twoChild.getCountPerson() + thirdChildList.stream().mapToInt(third -> third.getCountPerson()).sum()); + twoChild.setChildList(thirdChildList); + }); + } + org.setCountPerson(org.getCountPerson() + twoChildList.stream().mapToInt(two -> two.getCountPerson()).sum()); + org.setChildList(twoChildList); + }); + } + return R.ok(orgPage); + } + + /** + * 新增党支部 + * + * @param partyOrganizationVO + * 党支部基本信息 + * @return 新增结果 + */ + @Override + public R addPartyOrganization(PartyOrganizationVO partyOrganizationVO) { + ComPbOrgDO comPbOrgDO = new ComPbOrgDO(); + BeanUtils.copyProperties(partyOrganizationVO, comPbOrgDO); + comPbOrgDO.setLevel(partyOrganizationVO.getType()); + if(partyOrganizationVO.getType().equals(ComPbOrgDO.Type.JCDW)){ + comPbOrgDO.setParentId(0L); + } + ComPbOrgDO oldComPbOrgDO = null; + int insert = comPbOrgDAO.insert(comPbOrgDO); + if (insert > 0) { + switch (partyOrganizationVO.getType()){ + case ComPbOrgDO.Type.JCDW: + comPbOrgDO.setParentId(0L); + comPbOrgDO.setOneId(comPbOrgDO.getId()); + break; + case ComPbOrgDO.Type.EJJCDW: + comPbOrgDO.setOneId(partyOrganizationVO.getParentId()); + comPbOrgDO.setTwoId(comPbOrgDO.getId()); + break; + case ComPbOrgDO.Type.DZZ: + oldComPbOrgDO = this.comPbOrgDAO.selectById(partyOrganizationVO.getParentId()); + if(oldComPbOrgDO != null){ + comPbOrgDO.setOneId(oldComPbOrgDO.getOneId()); + comPbOrgDO.setTwoId(oldComPbOrgDO.getTwoId()); + } + comPbOrgDO.setThirdId(comPbOrgDO.getId()); + break; + case ComPbOrgDO.Type.DZB: + oldComPbOrgDO = this.comPbOrgDAO.selectById(partyOrganizationVO.getParentId()); + if(oldComPbOrgDO != null){ + comPbOrgDO.setOneId(oldComPbOrgDO.getOneId()); + comPbOrgDO.setTwoId(oldComPbOrgDO.getTwoId()); + comPbOrgDO.setThirdId(oldComPbOrgDO.getThirdId()); + } + comPbOrgDO.setFourId(comPbOrgDO.getId()); + break; + case ComPbOrgDO.Type.DXZ: + oldComPbOrgDO = this.comPbOrgDAO.selectById(partyOrganizationVO.getParentId()); + if(oldComPbOrgDO != null){ + comPbOrgDO.setOneId(oldComPbOrgDO.getOneId()); + comPbOrgDO.setTwoId(oldComPbOrgDO.getTwoId()); + comPbOrgDO.setThirdId(oldComPbOrgDO.getThirdId()); + comPbOrgDO.setFourId(oldComPbOrgDO.getFourId()); + } + comPbOrgDO.setFiveId(comPbOrgDO.getId()); + break; + default: + break; + } + this.comPbOrgDAO.updateById(comPbOrgDO); + return R.ok(); + } + return R.fail(); + } + + /** + * 编辑党支部 + * + * @param partyOrganizationVO + * 党支部基本信息 + * @return 编辑结果 + */ + @Override + public R updatePartyOrganization(PartyOrganizationVO partyOrganizationVO) { + ComPbOrgDO comPbOrgDO = new ComPbOrgDO(); + BeanUtils.copyProperties(partyOrganizationVO, comPbOrgDO); + comPbOrgDO.setLevel(partyOrganizationVO.getType()); + ComPbOrgDO oldComPbOrgDO = null; + int insert = comPbOrgDAO.updateById(comPbOrgDO); + if (insert > 0) { + switch (partyOrganizationVO.getType()){ + case ComPbOrgDO.Type.JCDW: + comPbOrgDO.setParentId(0L); + comPbOrgDO.setOneId(comPbOrgDO.getId()); + break; + case ComPbOrgDO.Type.EJJCDW: + comPbOrgDO.setOneId(partyOrganizationVO.getParentId()); + comPbOrgDO.setTwoId(comPbOrgDO.getId()); + break; + case ComPbOrgDO.Type.DZZ: + oldComPbOrgDO = this.comPbOrgDAO.selectById(partyOrganizationVO.getParentId()); + if(oldComPbOrgDO != null){ + comPbOrgDO.setOneId(oldComPbOrgDO.getOneId()); + comPbOrgDO.setTwoId(oldComPbOrgDO.getTwoId()); + } + comPbOrgDO.setThirdId(comPbOrgDO.getId()); + break; + case ComPbOrgDO.Type.DZB: + oldComPbOrgDO = this.comPbOrgDAO.selectById(partyOrganizationVO.getParentId()); + if(oldComPbOrgDO != null){ + comPbOrgDO.setOneId(oldComPbOrgDO.getOneId()); + comPbOrgDO.setTwoId(oldComPbOrgDO.getTwoId()); + comPbOrgDO.setThirdId(oldComPbOrgDO.getThirdId()); + } + comPbOrgDO.setFourId(comPbOrgDO.getId()); + break; + case ComPbOrgDO.Type.DXZ: + oldComPbOrgDO = this.comPbOrgDAO.selectById(partyOrganizationVO.getParentId()); + if(oldComPbOrgDO != null){ + comPbOrgDO.setOneId(oldComPbOrgDO.getOneId()); + comPbOrgDO.setTwoId(oldComPbOrgDO.getTwoId()); + comPbOrgDO.setThirdId(oldComPbOrgDO.getThirdId()); + comPbOrgDO.setFourId(oldComPbOrgDO.getFourId()); + } + comPbOrgDO.setFiveId(comPbOrgDO.getId()); + break; + default: + break; + } + return R.ok(); + } + return R.fail(); + } + + /** + * 启用,禁用党支部 + * + * @param partyOrganizationVO + * 党支部基本信息 + * @return 编辑结果 + */ + @Override + public R resetPartyOrganization(PartyOrganizationVO partyOrganizationVO) { + ComPbOrgDO comPbOrgDO = comPbOrgDAO.selectById(partyOrganizationVO.getId()); + if (ObjectUtils.isEmpty(comPbOrgDO)) { + return R.fail("没有此党支部"); + } + comPbOrgDO.setStatus(partyOrganizationVO.getStatus()); + int insert = comPbOrgDAO.updateById(comPbOrgDO); + if (insert > 0) { + return R.ok(); + } + return R.fail(); + } + + /** + * 删除党支部 + * + * @param partyOrganizationVO + * 党支部基本信息 + * @return 编辑结果 + */ + @Override + public R deletePartyOrganization(PartyOrganizationVO partyOrganizationVO) { + Integer count = comPbOrgDAO.selectCount(new QueryWrapper<ComPbOrgDO>().lambda().eq(ComPbOrgDO::getParentId,partyOrganizationVO.getId())); + if(count > 0){ + return R.fail("该组织下已有子组织,不能删除!"); + } + List<ComPbMemberDO> comPbMemberList = comPbMemberDAO.selectList( + new QueryWrapper<ComPbMemberDO>().lambda().eq(ComPbMemberDO::getOrgId, partyOrganizationVO.getId())); + if (!CollectionUtils.isEmpty(comPbMemberList) && comPbMemberList.size() > 0) { + return R.fail("该党组织下已有党员,不能删除!"); + } + int insert = comPbOrgDAO.deleteById(partyOrganizationVO.getId()); + if (insert > 0) { + return R.ok(); + } + return R.fail(); + } + + @Override + public List<PartyOrganizationVO> listPartyOrganizationByApp(ComListPartyDTO comListPartyDTO) { + List<PartyOrganizationVO> partyOrganizationVOS = new ArrayList<>(); + QueryWrapper<ComPbOrgDO> queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(ComPbOrgDO::getStatus, 1); + if (comListPartyDTO.getCommunityId() != null) { + queryWrapper.lambda().eq(ComPbOrgDO::getCommunityId, comListPartyDTO.getCommunityId()); + } + if (!StringUtils.isEmpty(comListPartyDTO.getName())) { + queryWrapper.lambda().like(ComPbOrgDO::getName, comListPartyDTO.getName()); + } + List<ComPbOrgDO> comPbOrgDOS = comPbOrgDAO.selectList(queryWrapper); + if (!ObjectUtils.isEmpty(comPbOrgDOS)) { + comPbOrgDOS.forEach(comPbOrgDO -> { + PartyOrganizationVO partyOrganizationVO = new PartyOrganizationVO(); + partyOrganizationVO.setId(comPbOrgDO.getId()); + partyOrganizationVO.setName(comPbOrgDO.getName()); + partyOrganizationVO.setStatus(comPbOrgDO.getStatus()); + partyOrganizationVOS.add(partyOrganizationVO); + }); + } + return partyOrganizationVOS; + } + + /** + * 查询所有党组织列表 + * @param partyOrganizationVO 请求参数 + * @return 党组织列表 + */ + @Override + public R getPbOrgAllList(PartyOrganizationVO partyOrganizationVO){ + List<PartyOrganizationVO> orgList = this.comPbOrgDAO.getPbOrgAllList(partyOrganizationVO); + if (!ObjectUtils.isEmpty(orgList) && StringUtils.isEmpty(partyOrganizationVO.getKeyWord())) { + //遍历第一级党组织列表 + orgList.forEach(org -> { + partyOrganizationVO.setParentId(org.getId()); + List<PartyOrganizationVO> twoChildList = comPbOrgDAO.getChildOrgList(partyOrganizationVO); + if(!ObjectUtils.isEmpty(twoChildList)){ + //遍历第二级党组织列表 + twoChildList.forEach(twoChild -> { + partyOrganizationVO.setParentId(twoChild.getId()); + List<PartyOrganizationVO> thirdChildList = comPbOrgDAO.getChildOrgList(partyOrganizationVO); + if(!ObjectUtils.isEmpty(thirdChildList)){ + //遍历第三级党组织列表 + thirdChildList.forEach(thirdChild -> { + partyOrganizationVO.setParentId(thirdChild.getId()); + List<PartyOrganizationVO> fourChildList = comPbOrgDAO.getChildOrgList(partyOrganizationVO); + if(!ObjectUtils.isEmpty(fourChildList)){ + fourChildList.forEach(fourChild -> { + partyOrganizationVO.setParentId(fourChild.getId()); + List<PartyOrganizationVO> fiveChildList = comPbOrgDAO.getChildOrgList(partyOrganizationVO); + fourChild.setCountPerson(fourChild.getCountPerson() + fiveChildList.stream().mapToInt(five -> five.getCountPerson()).sum()); + fourChild.setChildList(fiveChildList); + }); + } + thirdChild.setCountPerson(thirdChild.getCountPerson() + fourChildList.stream().mapToInt(four -> four.getCountPerson()).sum()); + thirdChild.setChildList(fourChildList); + }); + } + twoChild.setCountPerson(twoChild.getCountPerson() + thirdChildList.stream().mapToInt(third -> third.getCountPerson()).sum()); + twoChild.setChildList(thirdChildList); + }); + } + org.setCountPerson(org.getCountPerson() + twoChildList.stream().mapToInt(two -> two.getCountPerson()).sum()); + org.setChildList(twoChildList); + }); + } + return R.ok(orgList); + } } -- Gitblit v1.7.1