package com.panzhihua.service_dangjian.service.impl;
|
|
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
import javax.annotation.Resource;
|
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.util.IdcardUtil;
|
import com.google.common.collect.Lists;
|
import com.panzhihua.common.enums.ComPbMemberRoleTypeEnum;
|
import com.panzhihua.common.model.dtos.partybuilding.ComDataStatisticsOrgDto;
|
import com.panzhihua.common.model.dtos.partybuilding.PageComDataStatisticsMemberDto;
|
import com.panzhihua.common.model.vos.community.ComActVO;
|
import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO;
|
import com.panzhihua.common.model.vos.partybuilding.west.*;
|
import com.panzhihua.common.model.vos.partybuilding.excel.ComDataStatisticsMemberExcelVo;
|
import com.panzhihua.common.model.vos.partybuilding.excel.ComPbMemberRoleErrorExcelVo;
|
import com.panzhihua.common.model.vos.partybuilding.excel.ComPbMemberRoleExcelVo;
|
import com.panzhihua.common.service.community.CommunityWestService;
|
import com.panzhihua.common.service.user.UserService;
|
import com.panzhihua.common.utlis.*;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.ObjectUtils;
|
|
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.panzhihua.common.constants.UserConstants;
|
import com.panzhihua.common.exceptions.PartyBuildingMemberException;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.service_dangjian.dao.*;
|
import com.panzhihua.service_dangjian.model.dos.*;
|
import com.panzhihua.service_dangjian.service.ComPbMemberWestService;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import static java.util.Objects.nonNull;
|
|
/**
|
* @program: springcloud_k8s_panzhihuazhihuishequ
|
* @description: 党员
|
* @author: huang.hongfa weixin hhf9596 qq 959656820
|
* @create: 2020-11-30 10:53
|
**/
|
@Slf4j
|
@Service
|
public class ComPbMemberWestServiceImpl extends ServiceImpl<ComPbMemberWestDAO, ComPbMemberWestDO> implements ComPbMemberWestService {
|
private final String REDIS_ORG_ALL = "ogrlist";
|
@Resource
|
private ComPbMemberWestDAO comPbMemberWestDAO;
|
@Resource
|
private StringRedisTemplate stringRedisTemplate;
|
@Resource
|
private ComPbOrgDAO comPbOrgDAO;
|
@Resource
|
private ComPbMemberRoleDAO comPbMemberRoleDAO;
|
@Resource
|
private ComPbDynDAO comPbDynDAO;
|
@Resource
|
private ComPbDynUserDAO comPbDynUserDAO;
|
@Resource
|
private CommunityWestService communityWestService;
|
@Resource
|
private UserService userService;
|
@Resource
|
private ComPbMemberDAO comPbMemberDAO;
|
|
/**
|
* 新增党员
|
*
|
* @param partyBuildingMemberVO
|
* 党员基本信息
|
* @return 新增结果
|
*/
|
@Override
|
public R addPartyBuildingMember(PartyBuildingMemberVO partyBuildingMemberVO) {
|
String idCard = partyBuildingMemberVO.getIdCard();
|
List<ComPbMemberWestDO> comPbMemberWestDOS = comPbMemberWestDAO.selectList(new QueryWrapper<ComPbMemberWestDO>().lambda()
|
.eq(ComPbMemberWestDO::getIdCard, idCard).eq(ComPbMemberWestDO::getAuditResult, 1));
|
if (!ObjectUtils.isEmpty(comPbMemberWestDOS) && comPbMemberWestDOS.size() > 0) {
|
return R.fail("身份证已经存在");
|
}
|
ComPbMemberWestDO comPbMemberWestDO1 = new ComPbMemberWestDO();
|
BeanUtils.copyProperties(partyBuildingMemberVO, comPbMemberWestDO1);
|
Date date = new Date();
|
comPbMemberWestDO1.setCreateAt(date);
|
comPbMemberWestDO1.setUpdateAt(date);
|
comPbMemberWestDO1.setId(null);
|
int insert = comPbMemberWestDAO.insert(comPbMemberWestDO1);
|
if (insert > 0) {
|
// 删除已驳回的记录
|
int delete = comPbMemberWestDAO.delete(new QueryWrapper<ComPbMemberWestDO>().lambda()
|
.eq(ComPbMemberWestDO::getIdCard, partyBuildingMemberVO.getIdCard())
|
.eq(ComPbMemberWestDO::getUserId, partyBuildingMemberVO.getUserId())
|
.eq(ComPbMemberWestDO::getCommunityId, partyBuildingMemberVO.getCommunityId())
|
.eq(ComPbMemberWestDO::getAuditResult, 3));
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 批量新增党员
|
*
|
* @param list
|
* 党员集合
|
* @return 新增结果
|
*/
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public R listSavePartyBuildingMemberExcelVO(List<PartyBuildingMemberExcelVO> list) {
|
// Boolean aBoolean = stringRedisTemplate.hasKey(REDIS_ORG_ALL);
|
// ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
|
List<PartyOrganizationVO> partyOrganizationVOS = new ArrayList<>();
|
// if (aBoolean) {
|
// String orgs = valueOperations.get(REDIS_ORG_ALL);
|
// if (!ObjectUtils.isEmpty(orgs)) {
|
// partyOrganizationVOS= JSONArray.parseArray(orgs,PartyOrganizationVO.class);
|
// }
|
// } else {
|
// List<ComPbOrgDO> comPbOrgDOS = comPbOrgDAO.selectList(new LambdaQueryWrapper<>());
|
// if (!ObjectUtils.isEmpty(comPbOrgDOS)) {
|
// List<PartyOrganizationVO> partyOrganizationVOList=new ArrayList<>();
|
// comPbOrgDOS.forEach(comPbOrgDO -> {
|
// PartyOrganizationVO partyOrganizationVO=new PartyOrganizationVO();
|
// partyOrganizationVO.setId(comPbOrgDO.getId());
|
// partyOrganizationVO.setName(comPbOrgDO.getName());
|
// partyOrganizationVO.setCommunityId(comPbOrgDO.getCommunityId());
|
// partyOrganizationVOList.add(partyOrganizationVO);
|
// });
|
// partyOrganizationVOS= partyOrganizationVOList;
|
// }
|
// valueOperations.set(REDIS_ORG_ALL,JSONArray.toJSONString(partyOrganizationVOS),24, TimeUnit.HOURS);
|
// }
|
List<ComPbOrgDO> comPbOrgDOS = comPbOrgDAO.selectList(new LambdaQueryWrapper<>());
|
if (!ObjectUtils.isEmpty(comPbOrgDOS)) {
|
List<PartyOrganizationVO> partyOrganizationVOList = new ArrayList<>();
|
comPbOrgDOS.forEach(comPbOrgDO -> {
|
PartyOrganizationVO partyOrganizationVO = new PartyOrganizationVO();
|
partyOrganizationVO.setId(comPbOrgDO.getId());
|
partyOrganizationVO.setName(comPbOrgDO.getName());
|
partyOrganizationVO.setCommunityId(comPbOrgDO.getCommunityId());
|
partyOrganizationVOList.add(partyOrganizationVO);
|
});
|
partyOrganizationVOS = partyOrganizationVOList;
|
}
|
List<ComPbMemberWestDO> comPbMemberWestDOS = new ArrayList<>();
|
if (!ObjectUtils.isEmpty(list)) {
|
List<PartyOrganizationVO> partyOrganizationVOArrayList = partyOrganizationVOS;
|
for (PartyBuildingMemberExcelVO partyBuildingMemberExcelVO : list) {
|
ComPbMemberWestDO comPbMemberWestDO = new ComPbMemberWestDO();
|
Date date = new Date();
|
comPbMemberWestDO.setUpdateAt(date);
|
comPbMemberWestDO.setCreateAt(date);
|
String orgName = partyBuildingMemberExcelVO.getOrgName();
|
List<PartyOrganizationVO> collect = partyOrganizationVOArrayList.stream()
|
.filter(partyOrganizationVO -> orgName.equals(partyOrganizationVO.getName()))
|
.collect(Collectors.toList());
|
if (ObjectUtils.isEmpty(collect)) {
|
throw new PartyBuildingMemberException(
|
"导入失败,组织不存在" + partyBuildingMemberExcelVO.getOrgName() + ",请先在“党支部管理”中添加该党支部");
|
} else {
|
PartyOrganizationVO partyOrganizationVO = collect.get(0);
|
comPbMemberWestDO.setOrgId(partyOrganizationVO.getId());
|
comPbMemberWestDO.setCommunityId(partyOrganizationVO.getCommunityId());
|
|
List<ComPbMemberWestDO> comPbMemberWestDOList = this.baseMapper.selectList(new QueryWrapper<ComPbMemberWestDO>()
|
.lambda().eq(ComPbMemberWestDO::getIdCard, partyBuildingMemberExcelVO.getIdCard())
|
.eq(ComPbMemberWestDO::getCommunityId, partyOrganizationVO.getCommunityId())
|
.in(ComPbMemberWestDO::getAuditResult, 0, 1));
|
if (!comPbMemberWestDOList.isEmpty()) {
|
comPbMemberWestDOList.forEach(comPbMember -> {
|
BeanUtils.copyProperties(partyBuildingMemberExcelVO, comPbMember);
|
this.baseMapper.updateById(comPbMember);
|
});
|
continue;
|
// throw new PartyBuildingMemberException("导入失败,您导入的数据中有已存在的党员信息,已存在的数据:"+
|
// partyBuildingMemberExcelVO.getEmploymentTime() + ",已存在的人名:" +
|
// partyBuildingMemberExcelVO.getName());
|
}
|
}
|
|
if (StringUtils.isNotEmpty(partyBuildingMemberExcelVO.getEmploymentTime())
|
&& !DateUtils.isValidDate(partyBuildingMemberExcelVO.getEmploymentTime())) {
|
throw new PartyBuildingMemberException(
|
"导入失败,您导入的数据中有转正日期格式错误,错误数据:" + partyBuildingMemberExcelVO.getEmploymentTime() + ",错误人名:"
|
+ partyBuildingMemberExcelVO.getName());
|
}
|
|
if (StringUtils.isNotEmpty(partyBuildingMemberExcelVO.getJoinTime())
|
&& !DateUtils.isValidDate(partyBuildingMemberExcelVO.getJoinTime())) {
|
throw new PartyBuildingMemberException("导入失败,您导入的数据中有入党日期格式错误,错误数据:"
|
+ partyBuildingMemberExcelVO.getJoinTime() + ",错误人名:" + partyBuildingMemberExcelVO.getName());
|
}
|
|
if (StringUtils.isNotEmpty(partyBuildingMemberExcelVO.getEmploymentTime())) {
|
Date employmentTime = DateUtils.toValidDate(partyBuildingMemberExcelVO.getEmploymentTime());
|
comPbMemberWestDO.setEmploymentTime(employmentTime);
|
} else {
|
comPbMemberWestDO.setEmploymentTime(null);
|
}
|
|
if (StringUtils.isNotEmpty(partyBuildingMemberExcelVO.getJoinTime())) {
|
Date joinTime = DateUtils.toValidDate(partyBuildingMemberExcelVO.getJoinTime());
|
comPbMemberWestDO.setJoinTime(joinTime);
|
} else {
|
comPbMemberWestDO.setJoinTime(null);
|
}
|
|
comPbMemberWestDO.setName(partyBuildingMemberExcelVO.getName());
|
comPbMemberWestDO.setIdCard(partyBuildingMemberExcelVO.getIdCard());
|
comPbMemberWestDOS.add(comPbMemberWestDO);
|
}
|
}
|
comPbMemberWestDOS.forEach(comPbMemberDO -> {
|
//金沙社区特殊需求 添加党员默认添加志愿者
|
if(comPbMemberDO.getCommunityId()==2L){
|
ComMngVolunteerMngVO comMngVolunteerMngVO=new ComMngVolunteerMngVO();
|
comMngVolunteerMngVO.setOrgId(53L);
|
comMngVolunteerMngVO.setName(comPbMemberDO.getName());
|
comMngVolunteerMngVO.setPhone(comPbMemberDO.getPhone());
|
comMngVolunteerMngVO.setIdCard(comPbMemberDO.getIdCard());
|
comMngVolunteerMngVO.setState(2);
|
comMngVolunteerMngVO.setCommunityId(2L);
|
R r = communityWestService.addVolunteer(comMngVolunteerMngVO);
|
// 支援者添加成功,修改小程序用户的志愿者状态 ,通过手机号
|
String phone = comMngVolunteerMngVO.getPhone();
|
if (R.isOk(r) && StringUtils.isNotBlank(phone)) {
|
R r1 = userService.putUserIsVolunteer(phone, 1);
|
if (R.isOk(r1)) {
|
log.info("修改手机号【{}】的支援者状态为是", phone);
|
} else {
|
log.info("手机号【{}】没有小程序用户", phone);
|
}
|
}
|
}
|
});
|
this.saveBatch(comPbMemberWestDOS);
|
return R.ok();
|
}
|
|
/**
|
* 分页党员
|
*
|
* @param pagePartyOrganizationVO
|
* 查询信息
|
* @return 分页数据
|
*/
|
@Override
|
public R pagePartyOrganization(PagePartyOrganizationVO pagePartyOrganizationVO) {
|
Page page = new Page<>();
|
Long pageNum = pagePartyOrganizationVO.getPageNum();
|
Long pageSize = pagePartyOrganizationVO.getPageSize();
|
if (null == pageNum || 0 == pageNum) {
|
pageNum = 1l;
|
}
|
if (null == pageSize || 0 == pageSize) {
|
pageSize = 10l;
|
}
|
page.setSize(pageSize);
|
page.setCurrent(pageNum);
|
Long communityId = pagePartyOrganizationVO.getCommunityId();
|
if (null != communityId){
|
List<Long> communityIds = comPbMemberDAO.selectIds(communityId);
|
if (CollUtil.isEmpty(communityIds)) {
|
communityIds = new ArrayList<>();
|
communityIds.add(communityId);
|
}
|
pagePartyOrganizationVO.setCommunityIds(communityIds);
|
}
|
IPage<PartyBuildingMemberVO> iPage = comPbMemberWestDAO.queryAllByLimit(page, pagePartyOrganizationVO);
|
iPage.getRecords().forEach(record -> {
|
record.setIdCard(SensitiveUtil.desensitizedIdNumber(record.getIdCard()));
|
});
|
return R.ok(iPage);
|
}
|
|
/**
|
* 编辑党员信息 新增字段均可编辑
|
*
|
* @param partyBuildingMemberVO
|
* 编辑字段
|
* @return 编辑结果
|
*/
|
@Override
|
public R updatePartyBuildingMember(PartyBuildingMemberVO partyBuildingMemberVO) {
|
ComPbMemberWestDO comPbMemberWestDO = new ComPbMemberWestDO();
|
Long orgId = partyBuildingMemberVO.getOrgId();
|
if (null != orgId && 0 == orgId) {
|
partyBuildingMemberVO.setOrgId(null);
|
}
|
BeanUtils.copyProperties(partyBuildingMemberVO, comPbMemberWestDO);
|
Integer type = partyBuildingMemberVO.getType();
|
if (nonNull(type) && type.equals(1)) {
|
comPbMemberWestDO.setEmploymentTime(null);
|
}
|
comPbMemberWestDO.setAuditResult(partyBuildingMemberVO.getAuditResult());
|
int i = comPbMemberWestDAO.updateById(comPbMemberWestDO);
|
if (i > 0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 查询指定社区的所有党员
|
*
|
* @param communityId
|
* 社区id
|
* @return 党员列表
|
*/
|
@Override
|
public R listPartyMember(Long communityId) {
|
List<ComPbMemberWestDO> comPbMemberWestDOS = comPbMemberWestDAO.selectList(new QueryWrapper<ComPbMemberWestDO>().lambda()
|
.eq(ComPbMemberWestDO::getCommunityId, communityId).eq(ComPbMemberWestDO::getAuditResult, 1));
|
// 查询社区所有已经注册的党员
|
// 排除掉已经成为党委的党员
|
// List<ComPbMemberDO> comPbMemberDOS = comPbMemberDAO.selectListRegister(communityId);
|
// if (ObjectUtils.isEmpty(comPbMemberDOS)) {
|
// return R.ok(new ArrayList<>());
|
// }
|
List<PartyBuildingMemberVO> partyBuildingMemberVOS = new ArrayList<>();
|
comPbMemberWestDOS.forEach(comPbMemberDO -> {
|
PartyBuildingMemberVO partyBuildingMemberVO = new PartyBuildingMemberVO();
|
BeanUtils.copyProperties(comPbMemberDO, partyBuildingMemberVO);
|
partyBuildingMemberVOS.add(partyBuildingMemberVO);
|
});
|
return R.ok(partyBuildingMemberVOS);
|
}
|
|
/**
|
* 新增党委
|
*
|
* @param partyCommitteeVO
|
* 新增信息
|
* @return 新增结果
|
*/
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public R addPartyCommittee(PartyCommitteeVO partyCommitteeVO) {
|
ComPbMemberRoleDO comPbMemberRoleDO = new ComPbMemberRoleDO();
|
BeanUtils.copyProperties(partyCommitteeVO, comPbMemberRoleDO);
|
comPbMemberRoleDO.setCreateAt(new Date());
|
comPbMemberRoleDO.setUpdateAt(new Date());
|
comPbMemberRoleDO.setIsReg(2);
|
comPbMemberRoleDO.setSex(Integer.parseInt(partyCommitteeVO.getIdCard().substring(16,17))%2==0?2:1);
|
Integer userCount = comPbMemberRoleDAO.getSysUserByIdCardCount(partyCommitteeVO.getIdCard(), partyCommitteeVO.getAreaCode());
|
if (userCount > 0) {
|
comPbMemberRoleDO.setIsReg(1);
|
}
|
Date nowDate = new Date();
|
//判断党员信息是否存在党委信息
|
ComPbMemberWestDO pbMemberDO = comPbMemberWestDAO.selectOne(new QueryWrapper<ComPbMemberWestDO>().lambda()
|
.eq(ComPbMemberWestDO::getIdCard,partyCommitteeVO.getIdCard())
|
.eq(ComPbMemberWestDO::getAuditResult, ComPbMemberWestDO.AuditResult.SHTG)
|
.eq(ComPbMemberWestDO::getCommunityId,partyCommitteeVO.getCommunityId()));
|
if(pbMemberDO == null){
|
//不存在则创建党委党员信息
|
pbMemberDO = new ComPbMemberWestDO();
|
BeanUtils.copyProperties(partyCommitteeVO, pbMemberDO);
|
pbMemberDO.setAuditResult(ComPbMemberWestDO.AuditResult.SHTG);
|
pbMemberDO.setCreateAt(nowDate);
|
pbMemberDO.setUpdateAt(nowDate);
|
pbMemberDO.setType(ComPbMemberWestDO.Type.ZSDY);
|
comPbMemberWestDAO.insert(pbMemberDO);
|
}else{
|
//存在则更新党委党员信息
|
BeanUtils.copyProperties(partyCommitteeVO, pbMemberDO);
|
pbMemberDO.setUpdateAt(nowDate);
|
pbMemberDO.setType(ComPbMemberWestDO.Type.ZSDY);
|
comPbMemberWestDAO.updateById(pbMemberDO);
|
}
|
int insert = comPbMemberRoleDAO.insert(comPbMemberRoleDO);
|
if (insert > 0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 编辑党委
|
*
|
* @param partyCommitteeVO
|
* 编辑信息
|
* @return 编辑结果
|
*/
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public R updatePartyCommittee(PartyCommitteeVO partyCommitteeVO) {
|
ComPbMemberRoleDO comPbMemberRoleDO = new ComPbMemberRoleDO();
|
Date nowDate = new Date();
|
BeanUtils.copyProperties(partyCommitteeVO, comPbMemberRoleDO);
|
comPbMemberRoleDO.setUpdateAt(nowDate);
|
comPbMemberRoleDO.setIsReg(2);
|
Integer userCount = comPbMemberRoleDAO.getSysUserByIdCardCount(partyCommitteeVO.getIdCard(), partyCommitteeVO.getAreaCode());
|
if (userCount > 0) {
|
comPbMemberRoleDO.setIsReg(1);
|
}
|
//查询党员信息并更新
|
ComPbMemberWestDO pbMemberDO = comPbMemberWestDAO.selectOne(new QueryWrapper<ComPbMemberWestDO>().lambda()
|
.eq(ComPbMemberWestDO::getIdCard,partyCommitteeVO.getIdCard())
|
.eq(ComPbMemberWestDO::getAuditResult, ComPbMemberWestDO.AuditResult.SHTG)
|
.eq(ComPbMemberWestDO::getCommunityId,partyCommitteeVO.getCommunityId()));
|
if(pbMemberDO != null){
|
Long id = pbMemberDO.getId();
|
BeanUtils.copyProperties(partyCommitteeVO, pbMemberDO);
|
pbMemberDO.setId(id);
|
pbMemberDO.setUpdateAt(nowDate);
|
pbMemberDO.setType(ComPbMemberWestDO.Type.ZSDY);
|
comPbMemberWestDAO.updateById(pbMemberDO);
|
}
|
int update = comPbMemberRoleDAO.updateById(comPbMemberRoleDO);
|
if (update > 0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 删除党委
|
*
|
* @param partyCommitteeVO
|
* 删除id
|
* @return 删除结果
|
*/
|
@Override
|
public R deletePartyCommittee(PartyCommitteeVO partyCommitteeVO) {
|
ComPbMemberRoleDO comPbMemberRoleDO = comPbMemberRoleDAO.selectById(partyCommitteeVO.getId());
|
if (comPbMemberRoleDO == null) {
|
return R.fail("记录不存在");
|
}
|
int delete = comPbMemberRoleDAO.deleteById(partyCommitteeVO.getId());
|
if (delete > 0) {
|
Long userId = comPbMemberRoleDAO.getUserIdByIdCard(comPbMemberRoleDO.getIdCard(), partyCommitteeVO.getAreaCode());
|
// 删除用户信息缓存
|
if (userId != null) {
|
String userKey = UserConstants.LOGIN_USER_INFO + userId;
|
stringRedisTemplate.delete(userKey);
|
}
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 分页社区党委查询
|
*
|
* @param partyCommitteeVO
|
* 查询参数
|
* @return 分页集合
|
*/
|
@Override
|
public R pagePartyCommittee(PartyCommitteeVO partyCommitteeVO) {
|
Page page = new Page<>();
|
Long pageNum = partyCommitteeVO.getPageNum();
|
Long pageSize = partyCommitteeVO.getPageSize();
|
if (null == pageNum || 0 == pageNum) {
|
pageNum = 1l;
|
}
|
if (null == pageSize || 0 == pageSize) {
|
pageSize = 10l;
|
}
|
page.setSize(pageSize);
|
page.setCurrent(pageNum);
|
IPage<PartyCommitteeVO> iPage = comPbMemberRoleDAO.pagePartyOrganization(page, partyCommitteeVO);
|
iPage.getRecords().forEach(record -> {
|
record.setPhone(SensitiveUtil.desensitizedPhoneNumber(record.getPhone()));
|
});
|
return R.ok(iPage);
|
}
|
|
/**
|
* 新建党建动态
|
*
|
* @param partyCommitteeVO
|
* 动态内容
|
* @return 新增结果
|
*/
|
@Override
|
public R adddYnamic(PartyBuildingComPbDynVO partyCommitteeVO) {
|
partyCommitteeVO.setId(null);
|
ComPbDynDO comPbDynDO = new ComPbDynDO();
|
BeanUtils.copyProperties(partyCommitteeVO, comPbDynDO);
|
comPbDynDO.setCreateAt(new Date());
|
int insert = comPbDynDAO.insert(comPbDynDO);
|
if (insert > 0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 编辑动态
|
*
|
* @param partyCommitteeVO
|
* 编辑内容
|
* @return 编辑结果
|
*/
|
@Override
|
public R updateYnamic(PartyBuildingComPbDynVO partyCommitteeVO) {
|
ComPbDynDO comPbDynDO = new ComPbDynDO();
|
BeanUtils.copyProperties(partyCommitteeVO, comPbDynDO);
|
int insert = comPbDynDAO.updateById(comPbDynDO);
|
if (insert > 0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 动态详情
|
*
|
* @param id
|
* 动态主键
|
* @return 详情
|
*/
|
@Override
|
public R infoYnamic(Long id) {
|
PartyBuildingComPbDynVO comPbDynVO = comPbDynDAO.selectVoById(id);
|
if (ObjectUtils.isEmpty(comPbDynVO)) {
|
return R.fail("动态不存在");
|
}
|
// ComPbMemberDO comPbMemberDO = comPbMemberDAO.selectById(createBy);
|
// String name = comPbMemberDAO.selectNameByUserId(createBy);
|
|
if (ObjectUtils.isEmpty(comPbDynVO.getCreateByName())) {
|
// return R.fail("发布人不存在");
|
String name = comPbMemberWestDAO.selectNameByUserId(comPbDynVO.getCreateBy());
|
name = "后台发布";
|
comPbDynVO.setCreateByName(name);
|
}
|
// Integer integer = comPbDynUserDAO.selectCount(new
|
// QueryWrapper<ComPbDynUserDO>().lambda().eq(ComPbDynUserDO::getDynId, id));
|
comPbDynVO.setReadingVolume(null == comPbDynVO.getReadingVolume() ? 0 : comPbDynVO.getReadingVolume());
|
return R.ok(comPbDynVO);
|
}
|
|
/**
|
* 分页查询党员动态
|
*
|
* @param partyBuildingComPbDynVO
|
* 查询参数
|
* @return 分页数据
|
*/
|
@Override
|
public R pageYnamic(PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
|
Page page = new Page<>();
|
Long pageNum = partyBuildingComPbDynVO.getPageNum();
|
Long pageSize = partyBuildingComPbDynVO.getPageSize();
|
if (null == pageNum) {
|
pageNum = 1l;
|
}
|
if (null == pageSize) {
|
pageSize = 10l;
|
}
|
page.setSize(pageSize);
|
page.setCurrent(pageNum);
|
Long communityId = partyBuildingComPbDynVO.getCommunityId();
|
if (null != communityId){
|
List<Long> communityIds = comPbMemberDAO.selectIds(communityId);
|
if (CollUtil.isEmpty(communityIds)) {
|
communityIds = new ArrayList<>();
|
communityIds.add(communityId);
|
}
|
partyBuildingComPbDynVO.setCommunityIds(communityIds);
|
}else {
|
//西区大屏
|
if (CollUtil.isEmpty(partyBuildingComPbDynVO.getCommunityIds()) || "wx0cef797390444b75".equals(partyBuildingComPbDynVO.getAppId())){
|
List<Long> selectDistinctCommunityId = comPbMemberDAO.selectDistinctCommunityId("西区");
|
partyBuildingComPbDynVO.setCommunityIds(selectDistinctCommunityId);
|
}
|
}
|
IPage<PartyBuildingComPbDynVO> iPage = comPbDynDAO.pageYnamic(page, partyBuildingComPbDynVO);
|
List<PartyBuildingComPbDynVO> records = iPage.getRecords();
|
if (!(ObjectUtils.isEmpty(records))) {
|
records.forEach(partyBuildingComPbDynVO1 -> {
|
String content = partyBuildingComPbDynVO1.getContent();
|
if (!ObjectUtils.isEmpty(content)) {
|
String text = RichTextUtil.getText(content);
|
partyBuildingComPbDynVO1.setContentText(text);
|
}
|
});
|
}
|
return R.ok(iPage);
|
}
|
|
/**
|
* 删除动态
|
*
|
* @param id
|
* 动态主键
|
* @return 删除结果
|
*/
|
@Override
|
public R deleteYnamic(Long id) {
|
int delete = comPbDynDAO.deleteById(id);
|
if (delete > 0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 增加阅读记录
|
*
|
* @param comPbDynUserVO
|
* 阅读记录
|
* @return 增加结果
|
*/
|
@Override
|
public R addDynUser(ComPbDynUserVO comPbDynUserVO) {
|
ComPbDynUserDO comPbDynUserDO = new ComPbDynUserDO();
|
BeanUtils.copyProperties(comPbDynUserVO, comPbDynUserDO);
|
int insert = comPbDynUserDAO.insert(comPbDynUserDO);
|
if (insert > 0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 删除党员
|
*
|
* @param id
|
* 党员主键
|
* @return 删除结果
|
*/
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public R deleteDynUser(Integer id) {
|
ComPbMemberWestDO comPbMemberWestDO = comPbMemberWestDAO.selectById(id);
|
if (ObjectUtils.isEmpty(comPbMemberWestDO)) {
|
return R.fail("党员不存在");
|
}
|
int delete = comPbMemberWestDAO.deleteById(id);
|
if (delete > 0) {
|
comPbMemberRoleDAO.delete(new LambdaQueryWrapper<ComPbMemberRoleDO>()
|
.eq(ComPbMemberRoleDO::getIdCard, comPbMemberWestDO.getIdCard())
|
.eq(ComPbMemberRoleDO::getCommunityId, comPbMemberWestDO.getCommunityId()));
|
// 维护用户表党员状态
|
comPbMemberWestDAO.updateUserIsPartymember(comPbMemberWestDO.getIdCard());
|
// 删除缓存
|
String userKey = UserConstants.LOGIN_USER_INFO + comPbMemberWestDO.getUserId();
|
stringRedisTemplate.delete(userKey);
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 定时任务刷新党建动态发布状态
|
*
|
* @return 刷新数据数量
|
*/
|
@Override
|
public R timedTaskPartyBuildingStatus() {
|
int num = comPbDynDAO.timedTaskPartyBuildingStatus();
|
log.info("定时任务更新党建动态发布状态数量【{}】", num);
|
return R.ok(num);
|
}
|
|
@Override
|
public R pagePrePartyBuilingMember(PagePartyBuildingMemberVO pagePartyBuildingMemberVO) {
|
|
Page page = new Page<>();
|
Long pageNum = pagePartyBuildingMemberVO.getPageNum();
|
Long pageSize = pagePartyBuildingMemberVO.getPageSize();
|
if (null == pageNum || 0 == pageNum) {
|
pageNum = 1l;
|
}
|
if (null == pageSize || 0 == pageSize) {
|
pageSize = 10l;
|
}
|
page.setSize(pageSize);
|
page.setCurrent(pageNum);
|
IPage<PartyBuildingMemberVO> iPage = comPbMemberWestDAO.pagePartyBuildingMembersVO(page, pagePartyBuildingMemberVO);
|
|
return R.ok(iPage);
|
}
|
|
@Override
|
public R updatePartyBuildingMembers(PartyBuildingMemberVO partyBuildingMemberVO) {
|
ComPbMemberWestDO comPbMemberWestDO = comPbMemberWestDAO.selectById(partyBuildingMemberVO.getId());
|
if (comPbMemberWestDO == null) {
|
return R.fail("未找到党员认证信息");
|
}
|
// BeanUtils.copyProperties(partyBuildingMemberVO, comPbMemberDO);
|
comPbMemberWestDO.setAuditResult(partyBuildingMemberVO.getAuditResult());
|
if (partyBuildingMemberVO.getAuditResult() != null && partyBuildingMemberVO.getAuditResult().equals(3)) {
|
comPbMemberWestDO.setRefuseReason(partyBuildingMemberVO.getRefuseReason());
|
}
|
if (partyBuildingMemberVO.getAuditResult() != null && partyBuildingMemberVO.getAuditResult().equals(1)) {
|
comPbMemberWestDO.setUpdateAt(new Date());
|
}
|
|
// 编辑
|
if (partyBuildingMemberVO.getJoinTime() != null) {
|
comPbMemberWestDO.setJoinTime(partyBuildingMemberVO.getJoinTime());
|
}
|
if (partyBuildingMemberVO.getEmploymentTime() != null) {
|
comPbMemberWestDO.setEmploymentTime(partyBuildingMemberVO.getEmploymentTime());
|
}
|
if (partyBuildingMemberVO.getIdCard() != null && !partyBuildingMemberVO.getIdCard().contains("*")) {
|
comPbMemberWestDO.setIdCard(partyBuildingMemberVO.getIdCard());
|
}
|
if (partyBuildingMemberVO.getName() != null) {
|
comPbMemberWestDO.setName(partyBuildingMemberVO.getName());
|
}
|
if (partyBuildingMemberVO.getOrgId() != null) {
|
comPbMemberWestDO.setOrgId(partyBuildingMemberVO.getOrgId());
|
}
|
if (partyBuildingMemberVO.getPhotoPath() != null) {
|
comPbMemberWestDO.setPhotoPath(partyBuildingMemberVO.getPhotoPath());
|
}
|
if (nonNull(partyBuildingMemberVO.getType())) {
|
comPbMemberWestDO.setType(partyBuildingMemberVO.getType());
|
}
|
if (StringUtils.isNotEmpty(partyBuildingMemberVO.getPosition())) {
|
comPbMemberWestDO.setPosition(partyBuildingMemberVO.getPosition());
|
}
|
if (nonNull(partyBuildingMemberVO.getCheckUnitId())) {
|
comPbMemberWestDO.setCheckUnitId(partyBuildingMemberVO.getCheckUnitId());
|
}
|
if (StringUtils.isNotEmpty(partyBuildingMemberVO.getFunction())) {
|
comPbMemberWestDO.setFunction(partyBuildingMemberVO.getFunction());
|
}
|
if (nonNull(partyBuildingMemberVO.getSpecialtyCategory())) {
|
comPbMemberWestDO.setSpecialtyCategory(partyBuildingMemberVO.getSpecialtyCategory());
|
comPbMemberWestDO.setSpecialtyName(partyBuildingMemberVO.getSpecialtyName());
|
}
|
|
Integer type = partyBuildingMemberVO.getType();
|
if (nonNull(type) && type.equals(1)) {
|
comPbMemberWestDO.setEmploymentTime(null);
|
}
|
|
|
if (comPbMemberWestDAO.updateById(comPbMemberWestDO) > 0) {
|
PartyBuildingMemberVO rtVO = new PartyBuildingMemberVO();
|
BeanUtils.copyProperties(comPbMemberWestDO, rtVO);
|
return R.ok(rtVO);
|
}
|
return R.fail();
|
}
|
|
@Override
|
public R exportPbMember(PagePartyOrganizationVO organizationVO) {
|
return R.ok(comPbMemberWestDAO.exportPbMember(organizationVO));
|
}
|
|
/**
|
* 分页查询党员数据统计
|
* @param statisticsMemberDto 请求参数
|
* @return 党员数据统计
|
*/
|
@Override
|
public R pageDataStatisticsMember(PageComDataStatisticsMemberDto statisticsMemberDto) {
|
IPage<ComDataStatisticsMemberVo> memberPage = comPbMemberWestDAO.pageDataStatisticsMember(new Page(statisticsMemberDto.getPageNum()
|
,statisticsMemberDto.getPageSize()),statisticsMemberDto);
|
memberPage.getRecords().forEach(member -> {
|
if(member.getIsRole() > 0){
|
member.setIsRole(1);
|
}else{
|
member.setIsRole(2);
|
}
|
try {
|
member.setAge(IdcardUtil.getAgeByIdCard(member.getIdCard()));
|
} catch (Exception e) {
|
log.error("年龄转义失败");
|
}
|
//查询党员统计数据
|
if(member.getUserId()!=null&&member.getCommunityId()!=null){
|
ComDataStatisticsMemberVo statisticsMemberVo = comPbMemberWestDAO.getMemberStatistics(member.getUserId(),member.getCommunityId());
|
if(statisticsMemberVo != null){
|
member.setPartyActivityCount(statisticsMemberVo.getPartyActivityCount());
|
member.setPartyActivityDuration(statisticsMemberVo.getPartyActivityDuration());
|
member.setVolunteerActivityCount(statisticsMemberVo.getVolunteerActivityCount());
|
member.setVolunteerActivityDuration(statisticsMemberVo.getVolunteerActivityDuration());
|
member.setVolunteerActivityIntegral(statisticsMemberVo.getVolunteerActivityIntegral());
|
member.setWishCount(statisticsMemberVo.getWishCount());
|
member.setEasyCount(statisticsMemberVo.getEasyCount());
|
member.setActivityCount(member.getPartyActivityCount() + member.getVolunteerActivityCount());
|
member.setActivityDuration(member.getPartyActivityDuration() + member.getVolunteerActivityDuration());
|
}
|
}
|
});
|
return R.ok(memberPage);
|
}
|
|
/**
|
* 根据组织id查询组织下统计数据
|
* @param statisticsOrgDto 请求参数
|
* @return 组织下统计数据
|
*/
|
@Override
|
public R getOrgDataStatistics(ComDataStatisticsOrgDto statisticsOrgDto) {
|
List<Long> orgIds = new ArrayList<>();
|
Long communityId = statisticsOrgDto.getCommunityId();
|
ComDataStatisticsOrgVo statisticsOrgVo = new ComDataStatisticsOrgVo();
|
if(statisticsOrgDto.getOrgId() != null){
|
ComPbOrgDO pbOrgDO = comPbOrgDAO.selectById(statisticsOrgDto.getOrgId());
|
if(pbOrgDO == null){
|
return R.fail("未查询到党组织");
|
}
|
//拼接党组织id
|
if(pbOrgDO.getOneId() != null){
|
orgIds.add(pbOrgDO.getOneId());
|
}
|
if(pbOrgDO.getTwoId() != null){
|
orgIds.add(pbOrgDO.getTwoId());
|
}
|
if(pbOrgDO.getThirdId() != null){
|
orgIds.add(pbOrgDO.getThirdId());
|
}
|
if(pbOrgDO.getFourId() != null){
|
orgIds.add(pbOrgDO.getFourId());
|
}
|
if(pbOrgDO.getFiveId() != null){
|
orgIds.add(pbOrgDO.getFiveId());
|
}
|
}
|
//拼接查询开始结束时间
|
String startTime = statisticsOrgDto.getYear() + "-01-01 00:00:00";
|
String endTime = statisticsOrgDto.getYear() + "-12-31 23:59:59";
|
|
ComDataStatisticsOrgVo statisticsVo = new ComDataStatisticsOrgVo();
|
//查询统计左上数据
|
statisticsVo = comPbMemberWestDAO.getOrgDataStatistics(communityId,orgIds);
|
if(statisticsVo != null){
|
BeanUtils.copyProperties(statisticsVo,statisticsOrgVo);
|
}
|
|
//查询左下数据
|
statisticsVo = comPbMemberWestDAO.getOrgDataStatisticsLeftDown(communityId,orgIds,startTime,endTime, statisticsOrgDto.getAreaCode());
|
if(statisticsVo != null){
|
statisticsOrgVo.setParticipateVolunteerActivityDuration(statisticsVo.getParticipateVolunteerActivityDuration());
|
statisticsOrgVo.setParticipateVolunteerActivityNum(statisticsVo.getParticipateVolunteerActivityNum());
|
statisticsOrgVo.setParticipatePartyActivityNum(statisticsVo.getParticipatePartyActivityNum());
|
}
|
|
//查询党员数据
|
IPage<PartyBuildingMemberVO> partyMemberPage = comPbMemberWestDAO.getOrgDataStatisticsMember(new Page(statisticsOrgDto.getPageNum()
|
,statisticsOrgDto.getPageSize()),communityId,orgIds, statisticsOrgDto.getAreaCode());
|
if(partyMemberPage.getRecords() != null && !partyMemberPage.getRecords().isEmpty()){
|
statisticsOrgVo.setPartyMemberList(partyMemberPage.getRecords());
|
}
|
|
List<String> startDateList = DateUtils.getYearFirstMonths(statisticsOrgDto.getYear());
|
List<String> endDateList = DateUtils.getYearLastMonths(statisticsOrgDto.getYear());
|
List<String> completeWishList = new ArrayList<>();
|
List<String> cumulativeWishList = new ArrayList<>();
|
List<String> completeEasyList = new ArrayList<>();
|
List<String> cumulativeEasyList = new ArrayList<>();
|
for (int i = 0; i < startDateList.size(); i++) {
|
Map<String,Object> statisticsMap = comPbMemberWestDAO.getOrgDataStatisticsRightDown(communityId,orgIds, startDateList.get(i) + " 00:00:00", endDateList.get(i) + " 23:59:59");
|
if(statisticsMap != null){
|
completeWishList.add(statisticsMap.get("completeWishNum").toString());
|
cumulativeWishList.add(statisticsMap.get("cumulativeWishNum").toString());
|
completeEasyList.add(statisticsMap.get("completeEasyNum").toString());
|
cumulativeEasyList.add(statisticsMap.get("cumulativeEasyNum").toString());
|
if(i == startDateList.size() - 1){
|
statisticsOrgVo.setWishNum(statisticsMap.get("cumulativeWishNum").toString());
|
statisticsOrgVo.setEasyNum(statisticsMap.get("cumulativeEasyNum").toString());
|
}
|
}
|
}
|
statisticsOrgVo.setCompleteEasyList(completeEasyList);
|
statisticsOrgVo.setCompleteWishList(completeWishList);
|
statisticsOrgVo.setCumulativeWishList(cumulativeWishList);
|
statisticsOrgVo.setCumulativeEasyList(cumulativeEasyList);
|
Integer partyMemberNum = statisticsOrgVo.getPartyMemberNum();
|
if (nonNull(partyMemberNum) && partyMemberNum.intValue() > 0) {
|
Integer formalPartyMemberNum = statisticsOrgVo.getFormalPartyMemberNum();
|
if (nonNull(formalPartyMemberNum) && formalPartyMemberNum.intValue() > 0) {
|
statisticsOrgVo.setFormalPartyMemberNumPercent(new BigDecimal(formalPartyMemberNum)
|
.divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
|
}
|
Integer preparePartyMemberNum = statisticsOrgVo.getPreparePartyMemberNum();
|
if (nonNull(preparePartyMemberNum) && preparePartyMemberNum.intValue() > 0) {
|
statisticsOrgVo.setPreparePartyMemberNumPercent(new BigDecimal(preparePartyMemberNum)
|
.divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
|
}
|
Integer tyNum = statisticsOrgVo.getTyNum();
|
if (nonNull(tyNum) && tyNum.intValue() > 0) {
|
statisticsOrgVo.setTyNumPercent(new BigDecimal(tyNum)
|
.divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
|
}
|
Integer msNum = statisticsOrgVo.getMsNum();
|
if (nonNull(msNum) && msNum.intValue() > 0) {
|
statisticsOrgVo.setMsNumPercent(new BigDecimal(msNum)
|
.divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
|
}
|
Integer yyNum = statisticsOrgVo.getYyNum();
|
if (nonNull(yyNum) && yyNum.intValue() > 0) {
|
statisticsOrgVo.setYyNumPercent(new BigDecimal(yyNum)
|
.divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
|
}
|
Integer wdNum = statisticsOrgVo.getWdNum();
|
if (nonNull(wdNum) && wdNum.intValue() > 0) {
|
statisticsOrgVo.setWdNumPercent(new BigDecimal(wdNum)
|
.divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
|
}
|
Integer qtNum = statisticsOrgVo.getQtNum();
|
if (nonNull(qtNum) && qtNum.intValue() > 0) {
|
statisticsOrgVo.setQtNumPercent(new BigDecimal(qtNum)
|
.divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
|
}
|
Integer wuNum = statisticsOrgVo.getWuNum();
|
if (nonNull(wuNum) && wuNum.intValue() > 0) {
|
statisticsOrgVo.setWuNumPercent(new BigDecimal(wuNum)
|
.divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
|
}
|
}
|
Integer participateActivityNum = statisticsOrgVo.getParticipateActivityNum();
|
if (nonNull(participateActivityNum) && participateActivityNum.intValue() > 0) {
|
Integer participateVolunteerActivityNum = statisticsOrgVo.getParticipateVolunteerActivityNum();
|
if (nonNull(participateVolunteerActivityNum) && participateVolunteerActivityNum.intValue() > 0) {
|
statisticsOrgVo.setParticipateVolunteerActivityNumPercent(new BigDecimal(participateVolunteerActivityNum)
|
.divide(new BigDecimal(participateActivityNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
|
}
|
Integer participatePartyActivityNum = statisticsOrgVo.getParticipatePartyActivityNum();
|
if (nonNull(participatePartyActivityNum) && participatePartyActivityNum.intValue() > 0) {
|
statisticsOrgVo.setParticipatePartyActivityNumPercent(new BigDecimal(participatePartyActivityNum)
|
.divide(new BigDecimal(participateActivityNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
|
}
|
}
|
Integer participateActivityDuration = statisticsOrgVo.getParticipateActivityDuration();
|
if (nonNull(participateActivityDuration) && participateActivityDuration.intValue() > 0) {
|
Integer participateVolunteerActivityDuration = statisticsOrgVo.getParticipateVolunteerActivityDuration();
|
if (nonNull(participateVolunteerActivityDuration) && participateVolunteerActivityDuration.intValue() > 0) {
|
statisticsOrgVo.setParticipateVolunteerActivityDurationPercent(new BigDecimal(participateVolunteerActivityDuration)
|
.divide(new BigDecimal(participateActivityDuration), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
|
}
|
Integer participatePartyActivityDuration = statisticsOrgVo.getParticipatePartyActivityDuration();
|
if (nonNull(participatePartyActivityDuration) && participatePartyActivityDuration.intValue() > 0) {
|
statisticsOrgVo.setParticipatePartyActivityDurationPercent(new BigDecimal(participatePartyActivityDuration)
|
.divide(new BigDecimal(participateActivityDuration), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
|
}
|
}
|
return R.ok(statisticsOrgVo);
|
}
|
|
/**
|
* 查询党组织表头统计数据
|
* @param communityId
|
* 社区id
|
* @return 党组织表头统计数据
|
*/
|
@Override
|
public R getHeaderOrgDataStatistics(Long communityId) {
|
ComDataStatisticsHeaderOrgVo headerOrgVo = comPbMemberWestDAO.getHeaderOrgDataStatistics(communityId);
|
if(headerOrgVo != null){
|
if(headerOrgVo.getVillageNum() == null || headerOrgVo.getVillageNum().equals(0)){
|
headerOrgVo.setVillageRate(BigDecimal.ZERO);
|
}else{
|
headerOrgVo.setVillageRate(BigDecimal.valueOf(headerOrgVo.getAreaNum()).divide(BigDecimal.valueOf(headerOrgVo.getVillageNum())
|
,4,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)));
|
}
|
}
|
return R.ok(headerOrgVo);
|
}
|
|
/**
|
* 党员数据统计-党员导出数据查询
|
* @param statisticsMemberDto 请求参数
|
* @return 党员导出数据
|
*/
|
@Override
|
public R exportDataStatisticsMember(PageComDataStatisticsMemberDto statisticsMemberDto) {
|
List<ComDataStatisticsMemberExcelVo> memberList = comPbMemberWestDAO.exportDataStatisticsMember(statisticsMemberDto);
|
memberList.forEach(member -> {
|
//查询党员统计数据
|
ComDataStatisticsMemberVo statisticsMemberVo = comPbMemberWestDAO.getMemberStatistics(member.getUserId(),member.getCommunityId());
|
if(statisticsMemberVo != null){
|
member.setPartyActivityCount(statisticsMemberVo.getPartyActivityCount());
|
member.setPartyActivityDuration(statisticsMemberVo.getPartyActivityDuration());
|
member.setVolunteerActivityCount(statisticsMemberVo.getVolunteerActivityCount());
|
member.setVolunteerActivityDuration(statisticsMemberVo.getVolunteerActivityDuration());
|
member.setVolunteerActivityIntegral(statisticsMemberVo.getVolunteerActivityIntegral());
|
member.setWishCount(statisticsMemberVo.getWishCount());
|
member.setEasyCount(statisticsMemberVo.getEasyCount());
|
member.setActivityCount(member.getPartyActivityCount() + member.getVolunteerActivityCount());
|
member.setActivityDuration(member.getPartyActivityDuration() + member.getVolunteerActivityDuration());
|
}
|
});
|
return R.ok(memberList);
|
}
|
|
/**
|
* 党委导入接口
|
* @param list 数据列表
|
* @param communityId 社区id
|
* @param userId 用户id
|
* @return 导入结果
|
*/
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public R importPbMemberRole(List<ComPbMemberRoleExcelVo> list, Long communityId, Long userId) {
|
ComActVO actVO = comPbMemberRoleDAO.selectActById(communityId);
|
ArrayList<ComPbMemberRoleErrorExcelVo> mistakes = Lists.newArrayList();
|
ArrayList<ComPbMemberRoleDO> saveList = Lists.newArrayList();
|
Date nowDate = new Date();
|
if(list != null && list.size() > 0){
|
list.forEach(memberRole -> {
|
ComPbMemberRoleDO memberRoleDO = comPbMemberRoleDAO.selectOne(new QueryWrapper<ComPbMemberRoleDO>().lambda()
|
.eq(ComPbMemberRoleDO::getCommunityId,communityId).eq(ComPbMemberRoleDO::getIdCard,memberRole.getIdCard()));
|
if(memberRoleDO != null){
|
ComPbMemberRoleErrorExcelVo roleErrorExcelVo = new ComPbMemberRoleErrorExcelVo();
|
BeanUtils.copyProperties(memberRole,roleErrorExcelVo);
|
roleErrorExcelVo.setError("该党委已存在,不可重复导入");
|
mistakes.add(roleErrorExcelVo);
|
}else{
|
memberRoleDO = new ComPbMemberRoleDO();
|
BeanUtils.copyProperties(memberRole,memberRoleDO);
|
Integer type = ComPbMemberRoleTypeEnum.getCodeByName(memberRole.getTypeName());
|
if(type.equals(0)){
|
ComPbMemberRoleErrorExcelVo roleErrorExcelVo = new ComPbMemberRoleErrorExcelVo();
|
BeanUtils.copyProperties(memberRole,roleErrorExcelVo);
|
roleErrorExcelVo.setError("党委标签不存在,请核对后再重新导入");
|
mistakes.add(roleErrorExcelVo);
|
return;
|
}else{
|
memberRoleDO.setType(type);
|
}
|
try {
|
Date joinTime = DateUtils.stringToDate(memberRole.getJoinTime(),DateUtils.yyyyMMdd_format);
|
memberRoleDO.setJoinTime(joinTime);
|
} catch (Exception e) {
|
ComPbMemberRoleErrorExcelVo roleErrorExcelVo = new ComPbMemberRoleErrorExcelVo();
|
BeanUtils.copyProperties(memberRole,roleErrorExcelVo);
|
roleErrorExcelVo.setError("入党时间格式错误,请按照正确格式填写,如:2022-01-01");
|
mistakes.add(roleErrorExcelVo);
|
return;
|
}
|
|
try {
|
Date employmentTime = DateUtils.stringToDate(memberRole.getEmploymentTime(),DateUtils.yyyyMMdd_format);
|
memberRoleDO.setEmploymentTime(employmentTime);
|
} catch (Exception e) {
|
ComPbMemberRoleErrorExcelVo roleErrorExcelVo = new ComPbMemberRoleErrorExcelVo();
|
BeanUtils.copyProperties(memberRole,roleErrorExcelVo);
|
roleErrorExcelVo.setError("转正时间格式错误,请按照正确格式填写,如:2022-01-01");
|
mistakes.add(roleErrorExcelVo);
|
return;
|
}
|
Integer userCount = comPbMemberRoleDAO.getSysUserByIdCardCount(memberRole.getIdCard(), actVO.getAreaCode());
|
memberRoleDO.setIsReg(userCount > 0 ? 1 : 2);
|
memberRoleDO.setCommunityId(communityId);
|
saveList.add(memberRoleDO);
|
}
|
});
|
}
|
|
if(saveList.size() > 0){
|
saveList.forEach(save -> {
|
comPbMemberRoleDAO.insert(save);
|
});
|
}
|
if(mistakes.size() > 0){
|
return R.fail(mistakes);
|
}
|
return R.ok();
|
}
|
|
@Override
|
public R exportPartyMember(PagePartyOrganizationVO pagePartyOrganizationVO) {
|
return R.ok(comPbMemberWestDAO.exportPartyMemberList(pagePartyOrganizationVO));
|
}
|
|
@Override
|
public R checkMember(String idCard) {
|
List<ComPbMemberWestDO> list= comPbMemberWestDAO.selectList(new QueryWrapper<ComPbMemberWestDO>().lambda().eq(ComPbMemberWestDO::getIdCard,idCard));
|
return R.ok(CollectionUtils.isEmpty(list));
|
}
|
}
|