package com.panzhihua.service_dangjian.service.impl; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; 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.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; import com.panzhihua.common.enums.ComPbCheckUnitTypeEnum; import com.panzhihua.common.model.dtos.common.AddComPbCheckUnitDto; import com.panzhihua.common.model.dtos.common.EditComPbCheckUnitDto; import com.panzhihua.common.model.dtos.common.PageComPbCheckUnitDto; import com.panzhihua.common.model.dtos.common.PagePbCheckUnitCommonDto; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.TreeListVO; import com.panzhihua.common.model.vos.common.ComPbCheckUnitVo; import com.panzhihua.common.model.vos.common.PbCheckUnitStatisticsVo; import com.panzhihua.common.model.vos.partybuilding.excel.ComPbCheckUnitErrorExcelVO; import com.panzhihua.common.model.vos.partybuilding.excel.ComPbCheckUnitExcelVO; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_dangjian.dao.ComPbCheckUnitMapper; import com.panzhihua.service_dangjian.dao.ComPbMemberDAO; import com.panzhihua.service_dangjian.dao.ComPbMemberRoleDAO; import com.panzhihua.service_dangjian.entity.ComPbCheckUnit; import com.panzhihua.service_dangjian.model.dos.ComPbMemberDO; import com.panzhihua.service_dangjian.model.dos.ComPbMemberRoleDO; import com.panzhihua.service_dangjian.service.ComPbCheckUnitService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * title: 党建-报到单位表服务实现类 *

* projectName 成都呐喊信息技术有限公司-智慧社区项目 *

* description: 党建-报到单位表服务实现类 * * @author lyq * @date 2022-02-16 16:22:26 */ @Service("comPbCheckUnitService") public class ComPbCheckUnitServiceImpl extends ServiceImpl implements ComPbCheckUnitService { @Resource private ComPbMemberDAO comPbMemberDAO; @Resource private ComPbMemberRoleDAO comPbMemberRoleDAO; /** * description queryByPage 分页查询 * * @param comPbCheckUnit 请求参数 * @return 分页查询列表数据 * @author lyq * @date 2022-02-16 16:22:26 */ @Override public R queryByPage(PageComPbCheckUnitDto comPbCheckUnit) { Long communityId = comPbCheckUnit.getCommunityId(); if (communityId != null){ List communityIds = comPbMemberDAO.selectIds(communityId); if (CollUtil.isEmpty(communityIds)) { communityIds = new ArrayList<>(); communityIds.add(communityId); } comPbCheckUnit.setCommunityIds(communityIds); } IPage checkUnitVoPage= this.baseMapper.queryAllByLimit(comPbCheckUnit, new Page(comPbCheckUnit.getPageNum(), comPbCheckUnit.getPageSize())); checkUnitVoPage.getRecords().forEach(checkUnit -> { if(StringUtils.isEmpty(checkUnit.getOrgName())){ checkUnit.setOrgName("待编辑党支部"); } }); return R.ok(checkUnitVoPage); } @Override public R treeList(TreeListVO treeListVO) { QueryWrapper wrapper = new QueryWrapper<>(); if(treeListVO.getName() != null){ wrapper.eq("belong_to",treeListVO.getName()); } else if(treeListVO.getOrgName() != null){ wrapper.eq("org_name",treeListVO.getOrgName()); } else { return R.ok(); } List comPbCheckUnits = this.baseMapper.selectList(wrapper); return R.ok(comPbCheckUnits); } @Override public R orgList() { QueryWrapper wrapper = new QueryWrapper<>(); List voList = new ArrayList<>(); List list = this.baseMapper.selectList(wrapper); Map> map = list.stream().filter(f -> f.getOrgName() != null).collect(Collectors.groupingBy(ComPbCheckUnit::getOrgName)); for (Map.Entry> entry : map.entrySet()) { ComPbCheckUnitVo pbCheckUnitVo = new ComPbCheckUnitVo(); pbCheckUnitVo.setOrgName(entry.getKey()); voList.add(pbCheckUnitVo); } return R.ok(voList); } /** * description insert 新增数据 * * @param comPbCheckUnit 请求参数 * @return 新增结果 * @author lyq * @date 2022-02-16 16:22:26 */ @Override @Transactional public R insert(AddComPbCheckUnitDto comPbCheckUnit) { Long communityId=this.baseMapper.selectCommunityId(comPbCheckUnit.getHelpCommunityName().split(",")[0],comPbCheckUnit.getHelpCommunityName().split(",")[1],comPbCheckUnit.getHelpCommunityName().split(",")[2]); ComPbCheckUnit entity = new ComPbCheckUnit(); BeanUtils.copyProperties(comPbCheckUnit, entity); int a=0; if(!StringUtils.isEmpty(comPbCheckUnit.getAdminPhone())) { a=this.baseMapper.selectOrgAdmin(comPbCheckUnit.getAdminPhone()); } if(a!=0) { return R.fail("该手机号已绑定管理员!"); } if(communityId!=null){ entity.setCommunityId(communityId); } if (this.baseMapper.insert(entity) > 0) { return R.ok(); } return R.fail("添加失败"); } /** * description update 修改数据 * * @param editDto 请求参数 * @return 修改结果 * @author lyq * @date 2022-02-16 16:22:26 */ @Override public R update(EditComPbCheckUnitDto editDto) { ComPbCheckUnit entity = this.baseMapper.selectById(editDto.getId()); if (entity == null) { return R.fail("未查询到该记录"); } BeanUtils.copyProperties(editDto, entity); if (this.baseMapper.updateById(entity) > 0) { return R.ok(); } return R.fail("修改失败"); } /** * description deleteById 通过主键删除数据 * * @param id 主键id * @return 删除结果 * @author lyq * @date 2022-02-16 16:22:26 */ @Override public R deleteById(Long id) { Integer memberCount = comPbMemberDAO.selectCount(new QueryWrapper().lambda() .eq(ComPbMemberDO::getCheckUnitId,id)); if(memberCount > 0){ return R.fail("该数据已被引用,无法删除!"); } Integer memberRoleCount = comPbMemberRoleDAO.selectCount(new QueryWrapper().lambda() .eq(ComPbMemberRoleDO::getCheckUnitId,id)); if(memberRoleCount > 0){ return R.fail("该数据已被引用,无法删除!"); } if (this.baseMapper.deleteById(id) > 0) { return R.ok(); } return R.fail("删除失败"); } /** * description detailById 查询详情 * * @param id 主键id * @return 详情数据 * @author lyq * @date 2022-02-16 16:22:26 */ @Override public R detailById(Long id) { ComPbCheckUnitVo checkUnitVo = this.baseMapper.queryById(id); if(checkUnitVo != null && StringUtils.isEmpty(checkUnitVo.getContacts())){ checkUnitVo.setContacts("待编辑负责人"); } if(checkUnitVo != null && StringUtils.isEmpty(checkUnitVo.getOrgName())){ checkUnitVo.setOrgName("待编辑党支部"); } return R.ok(checkUnitVo); } /** * description queryByPage 查询列表 * * @param comPbCheckUnit 请求参数 * @return 列表数据 * @author lyq * @date 2022-02-16 16:22:26 */ @Override public R queryByList(PageComPbCheckUnitDto comPbCheckUnit) { Long communityId = comPbCheckUnit.getCommunityId(); if (communityId != null){ List communityIds = comPbMemberDAO.selectIds(communityId); if (CollUtil.isEmpty(communityIds)) { communityIds = new ArrayList<>(); communityIds.add(communityId); } comPbCheckUnit.setCommunityIds(communityIds); } IPage checkUnitList = this.baseMapper.queryAllByLimit(comPbCheckUnit,new Page(comPbCheckUnit.getPageNum(),comPbCheckUnit.getPageSize())); checkUnitList.getRecords().forEach(checkUnit -> { if(StringUtils.isEmpty(checkUnit.getOrgName())){ checkUnit.setOrgName("待编辑党支部"); } if(StringUtils.isNotEmpty(checkUnit.getAreaCode())){ switch (checkUnit.getAreaCode()){ case "510423": checkUnit.setAreaName("西区"); break; case "510402": checkUnit.setAreaName("东区"); break; case "510411": checkUnit.setAreaName("仁和区"); break; case "510421": checkUnit.setAreaName("米易县"); break; case "510422": checkUnit.setAreaName("盐边"); break; } } }); return R.ok(checkUnitList); } /** * 批量导入报道单位 * @param list 导入数据 * @param communityId 社区id * @param userId 用户id * @return 导入结果 */ @Override @Transactional(rollbackFor = Exception.class) public R importCheckUnit(List list, Long communityId, Long userId){ ArrayList mistakes = Lists.newArrayList(); ArrayList saveList = Lists.newArrayList(); Date nowDate = new Date(); if(list != null && list.size() > 0){ list.forEach(checkUnit -> { ComPbCheckUnit comPbCheckUnit = this.baseMapper.selectOne(new QueryWrapper().lambda() .eq(ComPbCheckUnit::getCommunityId,communityId).eq(ComPbCheckUnit::getName,checkUnit.getName())); if(comPbCheckUnit != null){ ComPbCheckUnitErrorExcelVO checkUnitError = new ComPbCheckUnitErrorExcelVO(); BeanUtils.copyProperties(checkUnit,checkUnitError); checkUnitError.setError("该单位已存在,不可重复导入"); mistakes.add(checkUnitError); }else{ comPbCheckUnit = new ComPbCheckUnit(); BeanUtils.copyProperties(checkUnit,comPbCheckUnit); comPbCheckUnit.setType(ComPbCheckUnitTypeEnum.getCodeByName(checkUnit.getType())); comPbCheckUnit.setCommunityId(communityId); comPbCheckUnit.setCreateAt(nowDate); comPbCheckUnit.setCreateBy(userId); saveList.add(comPbCheckUnit); } }); } if(saveList.size() > 0){ this.saveBatch(saveList); } if(mistakes.size() > 0){ return R.fail(mistakes); } return R.ok(); } @Override public R detailByPhone(String phone) { List comPbCheckUnits=this.baseMapper.selectList(new QueryWrapper().lambda().eq(ComPbCheckUnit::getAdminPhone,phone)); if(!comPbCheckUnits.isEmpty()){ return R.ok(comPbCheckUnits.get(0)); } return R.ok(); } /** * 报到单位统计-顶部数据 * @param communityId * @param belongTo * @param choice * @return */ @Override public R unitStatisticsTop(Long communityId, String belongTo, String choice,Long[] unitIds,String yearTime) { List communityIds = new ArrayList<>(); if (null != communityId){ communityIds = comPbMemberDAO.selectIds(communityId); if (CollUtil.isEmpty(communityIds)) { communityIds.add(communityId); } } //查询 活动总积分 PbCheckUnitStatisticsVo vo = this.baseMapper.unitStatisticsTop(communityIds, belongTo, choice,unitIds,yearTime); if(null != vo) { Integer sum = this.baseMapper.organSumIntegral(communityIds,yearTime); vo.setOrganSumIntegral(sum); } return R.ok(vo); } /** * 报到单位统计 * @param commonDto * @return */ @Override public R unitStatistics(PagePbCheckUnitCommonDto commonDto) { Long communityId = commonDto.getCommunityId(); if (null != communityId) { List communityIds = comPbMemberDAO.selectIds(communityId); if (CollUtil.isEmpty(communityIds)) { communityIds = new ArrayList<>(); communityIds.add(communityId); } commonDto.setCommunityIds(communityIds); } return R.ok(this.baseMapper.unitStatistics(commonDto, new Page(commonDto.getPageNum(), commonDto.getPageSize()))); } /** * 报到党员统计-顶部数据 * @param communityId * @param belongTo * @param choice * @param checkUnitId * @return */ @Override public R pbStatisticsTop(Long communityId, String belongTo, String choice, Long checkUnitId,Long[] unitIds ,String yearTime) { List communityIds = new ArrayList<>(); if (null != communityId){ communityIds = comPbMemberDAO.selectIds(communityId); if (CollUtil.isEmpty(communityIds)) { communityIds.add(communityId); } } //查询 活动总积分 PbCheckUnitStatisticsVo vo = this.baseMapper.pbStatisticsTop(communityIds, belongTo, choice, checkUnitId,unitIds,yearTime); if(null != vo) { Integer sum = this.baseMapper.pbOrganSumIntegral(communityIds,yearTime); vo.setOrganSumIntegral(sum); } return R.ok(vo); } /** * 报到党员统计-按单位归属统计 * @param commonDto * @return */ @Override public R pbStatisticsBelong(PagePbCheckUnitCommonDto commonDto) { Long communityId = commonDto.getCommunityId(); if (null != communityId) { List communityIds = comPbMemberDAO.selectIds(communityId); if (CollUtil.isEmpty(communityIds)) { communityIds = new ArrayList<>(); communityIds.add(communityId); } commonDto.setCommunityIds(communityIds); } return R.ok(this.baseMapper.pbStatisticsBelong(commonDto, new Page(commonDto.getPageNum(), commonDto.getPageSize()))); } /** * 报到党员统计-按单位统计 * @param commonDto * @return */ @Override public R pbStatisticsUnit(PagePbCheckUnitCommonDto commonDto) { Long communityId = commonDto.getCommunityId(); List communityIds = comPbMemberDAO.selectIds(communityId); if (CollUtil.isEmpty(communityIds)) { communityIds = new ArrayList<>(); communityIds.add(communityId); } commonDto.setCommunityIds(communityIds); return R.ok(this.baseMapper.pbStatisticsUnit(commonDto, new Page(commonDto.getPageNum(), commonDto.getPageSize()))); } }