From ce4a770744d7a0b4e4ea3b5101556b94e72bdf1c Mon Sep 17 00:00:00 2001
From: lidongdong <1459917685@qq.com>
Date: 星期二, 14 十一月 2023 17:49:20 +0800
Subject: [PATCH] 修改打卡

---
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbMemberServiceImpl.java |  990 ++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 720 insertions(+), 270 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbMemberServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbMemberServiceImpl.java
index 933dd17..356f0e6 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbMemberServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbMemberServiceImpl.java
@@ -1,41 +1,49 @@
 package com.panzhihua.service_dangjian.service.impl;
 
-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 com.panzhihua.common.model.dtos.partybuilding.ComDataStatisticsOrgDto;
-import com.panzhihua.common.model.dtos.partybuilding.PageComDataStatisticsMemberDto;
-import io.swagger.annotations.ApiModelProperty;
-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.ObjectUtils;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.IdcardUtil;
+import com.alibaba.fastjson.JSONObject;
 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.dtos.community.PageMemberForInviteDTO;
+import com.panzhihua.common.model.dtos.partybuilding.ComDataStatisticsOrgDto;
+import com.panzhihua.common.model.dtos.partybuilding.PageComDataStatisticsMemberDto;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.partybuilding.*;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComDataStatisticsMemberExcelVo;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbMemberRoleExcelVo;
 import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.common.service.user.UserService;
 import com.panzhihua.common.utlis.DateUtils;
 import com.panzhihua.common.utlis.RichTextUtil;
 import com.panzhihua.common.utlis.SensitiveUtil;
 import com.panzhihua.common.utlis.StringUtils;
 import com.panzhihua.service_dangjian.dao.*;
-import com.panzhihua.service_dangjian.model.dos.*;
+import com.panzhihua.service_dangjian.model.dos.ComPbDynDO;
+import com.panzhihua.service_dangjian.model.dos.ComPbDynUserDO;
+import com.panzhihua.service_dangjian.model.dos.ComPbMemberDO;
+import com.panzhihua.service_dangjian.model.dos.ComPbOrgDO;
 import com.panzhihua.service_dangjian.service.ComPbMemberService;
-
 import lombok.extern.slf4j.Slf4j;
+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 javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import static java.util.Objects.nonNull;
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -59,6 +67,8 @@
     private ComPbDynDAO comPbDynDAO;
     @Resource
     private ComPbDynUserDAO comPbDynUserDAO;
+    @Resource
+    private UserService userService;
 
     /**
      * 新增党员
@@ -69,11 +79,19 @@
      */
     @Override
     public R addPartyBuildingMember(PartyBuildingMemberVO partyBuildingMemberVO) {
-        String idCard = partyBuildingMemberVO.getIdCard();
         List<ComPbMemberDO> comPbMemberDOs = comPbMemberDAO.selectList(new QueryWrapper<ComPbMemberDO>().lambda()
-            .eq(ComPbMemberDO::getIdCard, idCard).eq(ComPbMemberDO::getAuditResult, 1));
+            .eq(ComPbMemberDO::getPhone, partyBuildingMemberVO.getPhone()).eq(ComPbMemberDO::getAuditResult, 1).eq(ComPbMemberDO::getType,partyBuildingMemberVO.getType()));
         if (!ObjectUtils.isEmpty(comPbMemberDOs) && comPbMemberDOs.size() > 0) {
-            return R.fail("身份证已经存在");
+            comPbMemberDOs.forEach(comPbMemberDO -> {
+                comPbMemberDAO.deleteById(comPbMemberDO.getId());
+            });
+        }
+        //添加党员同步用户小程序头像
+        R<SysUserVO> r=userService.getSysUserVOByPhone(partyBuildingMemberVO.getPhone());
+        if(R.isOk(r)&&r.getData()!=null){
+            SysUserVO sysUserVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(r.getData()), SysUserVO.class);
+            partyBuildingMemberVO.setPhotoPath(sysUserVO.getImageUrl());
         }
         ComPbMemberDO comPbMemberDO1 = new ComPbMemberDO();
         BeanUtils.copyProperties(partyBuildingMemberVO, comPbMemberDO1);
@@ -83,11 +101,11 @@
         int insert = comPbMemberDAO.insert(comPbMemberDO1);
         if (insert > 0) {
             // 删除已驳回的记录
-            int delete = comPbMemberDAO.delete(new QueryWrapper<ComPbMemberDO>().lambda()
-                .eq(ComPbMemberDO::getIdCard, partyBuildingMemberVO.getIdCard())
-                .eq(ComPbMemberDO::getUserId, partyBuildingMemberVO.getUserId())
-                .eq(ComPbMemberDO::getCommunityId, partyBuildingMemberVO.getCommunityId())
-                .eq(ComPbMemberDO::getAuditResult, 3));
+//            int delete = comPbMemberDAO.delete(new QueryWrapper<ComPbMemberDO>().lambda()
+//                .eq(ComPbMemberDO::getIdCard, partyBuildingMemberVO.getIdCard())
+//                .eq(ComPbMemberDO::getUserId, partyBuildingMemberVO.getUserId())
+//                .eq(ComPbMemberDO::getCommunityId, partyBuildingMemberVO.getCommunityId())
+//                .eq(ComPbMemberDO::getAuditResult, 3));
             return R.ok();
         }
         return R.fail();
@@ -105,7 +123,7 @@
     public R listSavePartyBuildingMemberExcelVO(List<PartyBuildingMemberExcelVO> list) {
         // Boolean aBoolean = stringRedisTemplate.hasKey(REDIS_ORG_ALL);
         // ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
-        List<PartyOrganizationVO> partyOrganizationVOS = new ArrayList<>();
+        //List<PartyOrganizationVO> partyOrganizationVOS = new ArrayList<>();
         // if (aBoolean) {
         // String orgs = valueOperations.get(REDIS_ORG_ALL);
         // if (!ObjectUtils.isEmpty(orgs)) {
@@ -126,87 +144,51 @@
         // }
         // 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<ComPbMemberDO> comPbMemberDOS = new ArrayList<>();
         if (!ObjectUtils.isEmpty(list)) {
-            List<PartyOrganizationVO> partyOrganizationVOArrayList = partyOrganizationVOS;
             for (PartyBuildingMemberExcelVO partyBuildingMemberExcelVO : list) {
-                ComPbMemberDO comPbMemberDO = new ComPbMemberDO();
-                Date date = new Date();
-                comPbMemberDO.setUpdateAt(date);
-                comPbMemberDO.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);
-                    comPbMemberDO.setOrgId(partyOrganizationVO.getId());
-                    comPbMemberDO.setCommunityId(partyOrganizationVO.getCommunityId());
-
+                if(StringUtils.isNotEmpty(partyBuildingMemberExcelVO.getName())&&StringUtils.isNotEmpty(partyBuildingMemberExcelVO.getPhone())&&StringUtils.isNotEmpty(partyBuildingMemberExcelVO.getOrgName())){
+                    ComPbMemberDO comPbMemberDO = new ComPbMemberDO();
+                    Date date = new Date();
+                    comPbMemberDO.setUpdateAt(date);
+                    comPbMemberDO.setCreateAt(date);
                     List<ComPbMemberDO> comPbMemberDOList = this.baseMapper.selectList(new QueryWrapper<ComPbMemberDO>()
-                        .lambda().eq(ComPbMemberDO::getIdCard, partyBuildingMemberExcelVO.getIdCard())
-                        .eq(ComPbMemberDO::getCommunityId, partyOrganizationVO.getCommunityId())
-                        .in(ComPbMemberDO::getAuditResult, 0, 1));
+                            .lambda().eq(ComPbMemberDO::getPhone, partyBuildingMemberExcelVO.getPhone())
+                            .eq(ComPbMemberDO::getCommunityId, partyBuildingMemberExcelVO.getCommunityId()));
                     if (!comPbMemberDOList.isEmpty()) {
                         comPbMemberDOList.forEach(comPbMember -> {
                             BeanUtils.copyProperties(partyBuildingMemberExcelVO, comPbMember);
+                            //添加党员同步用户小程序头像
+                            R r=userService.getSysUserVOByPhone(comPbMember.getPhone());
+                            if(R.isOk(r)&&r.getData()!=null){
+                                SysUserVO sysUserVO =
+                                        JSONObject.parseObject(JSONObject.toJSONString(r.getData()), SysUserVO.class);
+                                comPbMember.setPhotoPath(sysUserVO.getImageUrl());
+                            }
                             this.baseMapper.updateById(comPbMember);
+                            userService.updateUserIsPartymemberByPhone(comPbMember.getPhone());
                         });
                         continue;
                         // throw new PartyBuildingMemberException("导入失败,您导入的数据中有已存在的党员信息,已存在的数据:"+
                         // partyBuildingMemberExcelVO.getEmploymentTime() + ",已存在的人名:" +
                         // partyBuildingMemberExcelVO.getName());
                     }
+                    BeanUtils.copyProperties(partyBuildingMemberExcelVO,comPbMemberDO);
+                    comPbMemberDOS.add(comPbMemberDO);
+                    R r=userService.getSysUserVOByPhone(comPbMemberDO.getPhone());
+                    if(R.isOk(r)&&r.getData()!=null){
+                        SysUserVO sysUserVO =
+                                JSONObject.parseObject(JSONObject.toJSONString(r.getData()), SysUserVO.class);
+                        comPbMemberDO.setPhotoPath(sysUserVO.getImageUrl());
+                    }
+                    userService.updateUserIsPartymemberByPhone(comPbMemberDO.getPhone());
                 }
-
-                if (StringUtils.isNotEmpty(partyBuildingMemberExcelVO.getEmploymentTime())
-                    && !DateUtils.isValidDate(partyBuildingMemberExcelVO.getEmploymentTime())) {
-                    throw new PartyBuildingMemberException(
-                        "导入失败,您导入的数据中有转正日期格式错误,错误数据:" + partyBuildingMemberExcelVO.getEmploymentTime() + ",错误人名:"
-                            + partyBuildingMemberExcelVO.getName());
+                else {
+                    throw new PartyBuildingMemberException("导入失败,你导入的内容有未填报项");
                 }
-
-                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());
-                    comPbMemberDO.setEmploymentTime(employmentTime);
-                } else {
-                    comPbMemberDO.setEmploymentTime(null);
-                }
-
-                if (StringUtils.isNotEmpty(partyBuildingMemberExcelVO.getJoinTime())) {
-                    Date joinTime = DateUtils.toValidDate(partyBuildingMemberExcelVO.getJoinTime());
-                    comPbMemberDO.setJoinTime(joinTime);
-                } else {
-                    comPbMemberDO.setJoinTime(null);
-                }
-
-                comPbMemberDO.setName(partyBuildingMemberExcelVO.getName());
-                comPbMemberDO.setIdCard(partyBuildingMemberExcelVO.getIdCard());
-                comPbMemberDOS.add(comPbMemberDO);
             }
+            this.saveBatch(comPbMemberDOS);
         }
-        this.saveBatch(comPbMemberDOS);
         return R.ok();
     }
 
@@ -219,6 +201,18 @@
      */
     @Override
     public R pagePartyOrganization(PagePartyOrganizationVO pagePartyOrganizationVO) {
+
+        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);
+        }
+
         Page page = new Page<>();
         Long pageNum = pagePartyOrganizationVO.getPageNum();
         Long pageSize = pagePartyOrganizationVO.getPageSize();
@@ -252,6 +246,10 @@
             partyBuildingMemberVO.setOrgId(null);
         }
         BeanUtils.copyProperties(partyBuildingMemberVO, comPbMemberDO);
+        Integer type = partyBuildingMemberVO.getType();
+        if (nonNull(type) && type.equals(1)) {
+            comPbMemberDO.setEmploymentTime(null);
+        }
         comPbMemberDO.setAuditResult(partyBuildingMemberVO.getAuditResult());
         int i = comPbMemberDAO.updateById(comPbMemberDO);
         if (i > 0) {
@@ -286,124 +284,21 @@
         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);
-        Integer userCount = comPbMemberRoleDAO.getSysUserByIdCardCount(partyCommitteeVO.getIdCard());
-        if (userCount > 0) {
-            comPbMemberRoleDO.setIsReg(1);
-        }
-        Date nowDate = new Date();
-        //判断党员信息是否存在党委信息
-        ComPbMemberDO pbMemberDO = comPbMemberDAO.selectOne(new QueryWrapper<ComPbMemberDO>().lambda()
-                .eq(ComPbMemberDO::getIdCard,partyCommitteeVO.getIdCard())
-                .eq(ComPbMemberDO::getAuditResult,ComPbMemberDO.AuditResult.SHTG)
-                .eq(ComPbMemberDO::getCommunityId,partyCommitteeVO.getCommunityId()));
-        if(pbMemberDO == null){
-            //不存在则创建党委党员信息
-            pbMemberDO = new ComPbMemberDO();
-            BeanUtils.copyProperties(partyCommitteeVO, pbMemberDO);
-            pbMemberDO.setAuditResult(ComPbMemberDO.AuditResult.SHTG);
-            pbMemberDO.setCreateAt(nowDate);
-            pbMemberDO.setUpdateAt(nowDate);
-            pbMemberDO.setType(ComPbMemberDO.Type.ZSDY);
-            comPbMemberDAO.insert(pbMemberDO);
-        }else{
-            //存在则更新党委党员信息
-            BeanUtils.copyProperties(partyCommitteeVO, pbMemberDO);
-            pbMemberDO.setUpdateAt(nowDate);
-            pbMemberDO.setType(ComPbMemberDO.Type.ZSDY);
-            comPbMemberDAO.updateById(pbMemberDO);
-        }
-        int insert = comPbMemberRoleDAO.insert(comPbMemberRoleDO);
-        if (insert > 0) {
-            return R.ok();
-        }
-        return R.fail();
+        return null;
     }
 
-    /**
-     * 编辑党委
-     *
-     * @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());
-        if (userCount > 0) {
-            comPbMemberRoleDO.setIsReg(1);
-        }
-        //查询党员信息并更新
-        ComPbMemberDO pbMemberDO = comPbMemberDAO.selectOne(new QueryWrapper<ComPbMemberDO>().lambda()
-                .eq(ComPbMemberDO::getIdCard,partyCommitteeVO.getIdCard())
-                .eq(ComPbMemberDO::getAuditResult,ComPbMemberDO.AuditResult.SHTG)
-                .eq(ComPbMemberDO::getCommunityId,partyCommitteeVO.getCommunityId()));
-        if(pbMemberDO != null){
-            BeanUtils.copyProperties(partyCommitteeVO, pbMemberDO);
-            pbMemberDO.setUpdateAt(nowDate);
-            pbMemberDO.setType(ComPbMemberDO.Type.ZSDY);
-            comPbMemberDAO.updateById(pbMemberDO);
-        }
-        int update = comPbMemberRoleDAO.updateById(comPbMemberRoleDO);
-        if (update > 0) {
-            return R.ok();
-        }
-        return R.fail();
+        return null;
     }
 
-    /**
-     * 删除党委
-     *
-     * @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());
-            // 删除用户信息缓存
-            if (userId != null) {
-                String userKey = UserConstants.LOGIN_USER_INFO + userId;
-                stringRedisTemplate.delete(userKey);
-                return R.ok();
-            }
-        }
-        return R.fail();
+        return null;
     }
 
-    /**
-     * 分页社区党委查询
-     *
-     * @param partyCommitteeVO
-     *            查询参数
-     * @return 分页集合
-     */
     @Override
     public R pagePartyCommittee(PartyCommitteeVO partyCommitteeVO) {
         Page page = new Page<>();
@@ -417,12 +312,174 @@
         }
         page.setSize(pageSize);
         page.setCurrent(pageNum);
-        IPage<PartyCommitteeVO> iPage = comPbMemberRoleDAO.pagePartyOrganization(page, partyCommitteeVO);
+        IPage<PartyCommitteeVO> iPage = comPbMemberRoleDAO.pagePartyOrganizations(page, partyCommitteeVO);
         iPage.getRecords().forEach(record -> {
             record.setPhone(SensitiveUtil.desensitizedPhoneNumber(record.getPhone()));
         });
         return R.ok(iPage);
     }
+
+//    /**
+//     * 新增党委
+//     *
+//     * @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());
+//        if (userCount > 0) {
+//            comPbMemberRoleDO.setIsReg(1);
+//        }
+//        Date nowDate = new Date();
+//        //判断党员信息是否存在党委信息
+//        ComPbMemberDO pbMemberDO = comPbMemberDAO.selectOne(new QueryWrapper<ComPbMemberDO>().lambda()
+//                .eq(ComPbMemberDO::getIdCard,partyCommitteeVO.getIdCard())
+//                .eq(ComPbMemberDO::getAuditResult,ComPbMemberDO.AuditResult.SHTG)
+//                .eq(ComPbMemberDO::getCommunityId,partyCommitteeVO.getCommunityId()));
+//        if(pbMemberDO == null){
+//            //不存在则创建党委党员信息
+//            pbMemberDO = new ComPbMemberDO();
+//            BeanUtils.copyProperties(partyCommitteeVO, pbMemberDO);
+//            pbMemberDO.setAuditResult(ComPbMemberDO.AuditResult.SHTG);
+//            pbMemberDO.setCreateAt(nowDate);
+//            pbMemberDO.setUpdateAt(nowDate);
+//            pbMemberDO.setType(ComPbMemberDO.Type.ZSDY);
+//            comPbMemberDAO.insert(pbMemberDO);
+//            //金沙特殊需求
+//            if(pbMemberDO.getCommunityId()==2L){
+//                ComMngVolunteerMngVO comMngVolunteerMngVO=new ComMngVolunteerMngVO();
+//                comMngVolunteerMngVO.setOrgId(53L);
+//                comMngVolunteerMngVO.setName(pbMemberDO.getName());
+//                comMngVolunteerMngVO.setPhone(pbMemberDO.getPhone());
+//                comMngVolunteerMngVO.setIdCard(pbMemberDO.getIdCard());
+//                comMngVolunteerMngVO.setState(2);
+//                comMngVolunteerMngVO.setCommunityId(2L);
+//                R r = communityService.addVolunteer(comMngVolunteerMngVO);
+//                // 支援者添加成功,修改小程序用户的志愿者状态    ,通过手机号
+//                if (R.isOk(r)) {
+//                    String phone = comMngVolunteerMngVO.getPhone();
+//                    R r1 = userService.putUserIsVolunteer(phone, 1);
+//                    if (R.isOk(r1)) {
+//                        log.info("修改手机号【{}】的支援者状态为是", phone);
+//                    } else {
+//                        log.info("手机号【{}】没有小程序用户", phone);
+//                    }
+//                }
+//            }
+//        }else{
+//            //存在则更新党委党员信息
+//            BeanUtils.copyProperties(partyCommitteeVO, pbMemberDO);
+//            pbMemberDO.setUpdateAt(nowDate);
+//            pbMemberDO.setType(ComPbMemberDO.Type.ZSDY);
+//            comPbMemberDAO.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());
+//        if (userCount > 0) {
+//            comPbMemberRoleDO.setIsReg(1);
+//        }
+//        //查询党员信息并更新
+//        ComPbMemberDO pbMemberDO = comPbMemberDAO.selectOne(new QueryWrapper<ComPbMemberDO>().lambda()
+//                .eq(ComPbMemberDO::getIdCard,partyCommitteeVO.getIdCard())
+//                .eq(ComPbMemberDO::getAuditResult,ComPbMemberDO.AuditResult.SHTG)
+//                .eq(ComPbMemberDO::getCommunityId,partyCommitteeVO.getCommunityId()));
+//        if(pbMemberDO != null){
+//            Long id = pbMemberDO.getId();
+//            BeanUtils.copyProperties(partyCommitteeVO, pbMemberDO);
+//            pbMemberDO.setId(id);
+//            pbMemberDO.setUpdateAt(nowDate);
+//            pbMemberDO.setType(ComPbMemberDO.Type.ZSDY);
+//            comPbMemberDAO.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());
+//            // 删除用户信息缓存
+//            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);
+//    }
 
     /**
      * 新建党建动态
@@ -461,43 +518,14 @@
         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 = comPbMemberDAO.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);
+        return null;
     }
 
-    /**
-     * 分页查询党员动态
-     *
-     * @param partyBuildingComPbDynVO
-     *            查询参数
-     * @return 分页数据
-     */
     @Override
-    public R pageYnamic(PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
+    public R pageYnamic(PartyBuildingComPbDynVO partyBuildingComPbDynVO)
+    {
         Page page = new Page<>();
         Long pageNum = partyBuildingComPbDynVO.getPageNum();
         Long pageSize = partyBuildingComPbDynVO.getPageSize();
@@ -509,7 +537,7 @@
         }
         page.setSize(pageSize);
         page.setCurrent(pageNum);
-        IPage<PartyBuildingComPbDynVO> iPage = comPbDynDAO.pageYnamic(page, partyBuildingComPbDynVO);
+        IPage<PartyBuildingComPbDynVO> iPage = comPbDynDAO.pageYnamics(page, partyBuildingComPbDynVO);
         List<PartyBuildingComPbDynVO> records = iPage.getRecords();
         if (!(ObjectUtils.isEmpty(records))) {
             records.forEach(partyBuildingComPbDynVO1 -> {
@@ -523,21 +551,88 @@
         return R.ok(iPage);
     }
 
-    /**
-     * 删除动态
-     *
-     * @param id
-     *            动态主键
-     * @return 删除结果
-     */
     @Override
     public R deleteYnamic(Integer id) {
-        int delete = comPbDynDAO.deleteById(id);
-        if (delete > 0) {
-            return R.ok();
-        }
-        return R.fail();
+        return null;
     }
+
+//    /**
+//     * 动态详情
+//     *
+//     * @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 = comPbMemberDAO.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);
+//        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(Integer id) {
+//        int delete = comPbDynDAO.deleteById(id);
+//        if (delete > 0) {
+//            return R.ok();
+//        }
+//        return R.fail();
+//    }
 
     /**
      * 增加阅读记录
@@ -566,7 +661,7 @@
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public R deleteDynUser(Integer id) {
+    public R deleteDynUser(Long id) {
         ComPbMemberDO comPbMemberDO = comPbMemberDAO.selectById(id);
         if (ObjectUtils.isEmpty(comPbMemberDO)) {
             return R.fail("党员不存在");
@@ -574,7 +669,7 @@
         int delete = comPbMemberDAO.deleteById(id);
         if (delete > 0) {
             // 维护用户表党员状态
-            comPbMemberDAO.updateUserIsPartymember(comPbMemberDO.getIdCard());
+            comPbMemberDAO.updateUserIsPartymember(comPbMemberDO.getPhone());
             // 删除缓存
             String userKey = UserConstants.LOGIN_USER_INFO + comPbMemberDO.getUserId();
             stringRedisTemplate.delete(userKey);
@@ -645,8 +740,55 @@
         if (partyBuildingMemberVO.getOrgId() != null) {
             comPbMemberDO.setOrgId(partyBuildingMemberVO.getOrgId());
         }
+        if (partyBuildingMemberVO.getOrgName() != null) {
+            comPbMemberDO.setOrgName(partyBuildingMemberVO.getOrgName());
+        }
         if (partyBuildingMemberVO.getPhotoPath() != null) {
             comPbMemberDO.setPhotoPath(partyBuildingMemberVO.getPhotoPath());
+        }
+        if (nonNull(partyBuildingMemberVO.getType())) {
+            comPbMemberDO.setType(partyBuildingMemberVO.getType());
+        }
+        if (StringUtils.isNotEmpty(partyBuildingMemberVO.getPosition())) {
+            comPbMemberDO.setPosition(partyBuildingMemberVO.getPosition());
+        }
+        if (nonNull(partyBuildingMemberVO.getCheckUnitId())) {
+            comPbMemberDO.setCheckUnitId(partyBuildingMemberVO.getCheckUnitId());
+        }
+        if (StringUtils.isNotEmpty(partyBuildingMemberVO.getFunction())) {
+            comPbMemberDO.setFunction(partyBuildingMemberVO.getFunction());
+        }
+        if (nonNull(partyBuildingMemberVO.getSpecialtyName())) {
+            comPbMemberDO.setSpecialtyName(partyBuildingMemberVO.getSpecialtyName());
+        }
+        if(nonNull(partyBuildingMemberVO.getPhone())){
+            comPbMemberDO.setPhone(partyBuildingMemberVO.getPhone());
+        }
+
+        Integer type = partyBuildingMemberVO.getType();
+        if (nonNull(type) && type.equals(1)) {
+            comPbMemberDO.setEmploymentTime(null);
+        }
+        if(partyBuildingMemberVO.getVillageId()!=null){
+            comPbMemberDO.setVillageId(partyBuildingMemberVO.getVillageId());
+        }
+        if(partyBuildingMemberVO.getHelpCommunityId()!=null){
+            comPbMemberDO.setHelpCommunityId(partyBuildingMemberVO.getHelpCommunityId());
+        }
+        if(partyBuildingMemberVO.getCommunityId()!=null){
+            comPbMemberDO.setCommunityId(partyBuildingMemberVO.getCommunityId());
+        }
+        if(partyBuildingMemberVO.getNatureId()!=null){
+            comPbMemberDO.setNatureId(partyBuildingMemberVO.getNatureId());
+        }
+        if(nonNull(partyBuildingMemberVO.getNatureName())){
+            comPbMemberDO.setNatureName(partyBuildingMemberVO.getNatureName());
+        }
+        if(nonNull(partyBuildingMemberVO.getOtherRemark())){
+            comPbMemberDO.setOtherRemark(partyBuildingMemberVO.getOtherRemark());
+        }
+        if(nonNull(partyBuildingMemberVO.getHelpCommunityName())){
+            comPbMemberDO.setHelpCommunityName(partyBuildingMemberVO.getHelpCommunityName());
         }
 
         if (comPbMemberDAO.updateById(comPbMemberDO) > 0) {
@@ -672,11 +814,22 @@
         IPage<ComDataStatisticsMemberVo> memberPage = comPbMemberDAO.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("年龄转义失败");
+            }
             //查询党员统计数据
             ComDataStatisticsMemberVo statisticsMemberVo = comPbMemberDAO.getMemberStatistics(member.getUserId(),member.getCommunityId());
             if(statisticsMemberVo != null){
                 member.setPartyActivityCount(statisticsMemberVo.getPartyActivityCount());
                 member.setPartyActivityDuration(statisticsMemberVo.getPartyActivityDuration());
+                member.setPartyActivityIntegral(statisticsMemberVo.getPartyActivityIntegral());
                 member.setVolunteerActivityCount(statisticsMemberVo.getVolunteerActivityCount());
                 member.setVolunteerActivityDuration(statisticsMemberVo.getVolunteerActivityDuration());
                 member.setVolunteerActivityIntegral(statisticsMemberVo.getVolunteerActivityIntegral());
@@ -699,25 +852,27 @@
         List<Long> orgIds = new ArrayList<>();
         Long communityId = statisticsOrgDto.getCommunityId();
         ComDataStatisticsOrgVo statisticsOrgVo = new ComDataStatisticsOrgVo();
-        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());
+        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";
@@ -731,16 +886,20 @@
         }
 
         //查询左下数据
-        statisticsVo = comPbMemberDAO.getOrgDataStatisticsLeftDown(communityId,orgIds,startTime,endTime);
+        statisticsVo = comPbMemberDAO.getOrgDataStatisticsLeftDown(communityId,orgIds,startTime,endTime,"");
         if(statisticsVo != null){
             statisticsOrgVo.setParticipateVolunteerActivityDuration(statisticsVo.getParticipateVolunteerActivityDuration());
             statisticsOrgVo.setParticipateVolunteerActivityNum(statisticsVo.getParticipateVolunteerActivityNum());
             statisticsOrgVo.setParticipatePartyActivityNum(statisticsVo.getParticipatePartyActivityNum());
+            statisticsOrgVo.setParticipatePartyActivityDuration(statisticsVo.getParticipatePartyActivityDuration());
+            statisticsOrgVo.setParticipateActivityDuration(statisticsVo.getParticipateActivityDuration());
+            statisticsOrgVo.setParticipateActivityNum(statisticsVo.getParticipateActivityNum());
         }
 
         //查询党员数据
-        IPage<PartyBuildingMemberVO> partyMemberPage = comPbMemberDAO.getOrgDataStatisticsMember(new Page(statisticsOrgDto.getPageNum()
-                ,statisticsOrgDto.getPageSize()),communityId,orgIds);
+        IPage<PartyBuildingMemberVO> partyMemberPage = comPbMemberDAO.getOrgDataStatisticsMember(
+                new Page(statisticsOrgDto.getPageNum()
+                ,statisticsOrgDto.getPageSize()),communityId,orgIds,"");
         if(partyMemberPage.getRecords() != null && !partyMemberPage.getRecords().isEmpty()){
             statisticsOrgVo.setPartyMemberList(partyMemberPage.getRecords());
         }
@@ -752,19 +911,310 @@
         List<String> completeEasyList = new ArrayList<>();
         List<String> cumulativeEasyList = new ArrayList<>();
         for (int i = 0; i < startDateList.size(); i++) {
-            Map<String,Object> statisticsMap = comPbMemberDAO.getOrgDataStatisticsRightDown(communityId,orgIds, startDateList.get(i) + " 00:00:00", endDateList.get(i) + " 23:59:59");
+            Map<String,Object> statisticsMap = comPbMemberDAO.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("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 = comPbMemberDAO.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 = comPbMemberDAO.exportDataStatisticsMember(statisticsMemberDto);
+        memberList.forEach(member -> {
+            //查询党员统计数据
+            ComDataStatisticsMemberVo statisticsMemberVo = comPbMemberDAO.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);
+    }
+
+    @Override
+    public R importPbMemberRole(List<ComPbMemberRoleExcelVo> list, Long communityId, Long userId) {
+        return null;
+    }
+
+//    /**
+//     * 党委导入接口
+//     * @param list 数据列表
+//     * @param communityId   社区id
+//     * @param userId    用户id
+//     * @return  导入结果
+//     */
+//    @Override
+//    @Transactional(rollbackFor = Exception.class)
+//    public R importPbMemberRole(List<ComPbMemberRoleExcelVo> list, Long communityId, Long userId) {
+//        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;
+//                    }
+//                    if(StringUtils.isNotEmpty(memberRole.getOrg())){
+//                        ComPbOrgDO comPbOrgDO=comPbOrgDAO.selectOne(new QueryWrapper<ComPbOrgDO>().lambda().eq(ComPbOrgDO::getName,memberRole.getOrg()).eq(ComPbOrgDO::getCommunityId,communityId));
+//                        if(comPbOrgDO!=null){
+//                            memberRoleDO.setOrgId(comPbOrgDO.getId());
+//                        }
+//                    }
+//                    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());
+//                    memberRoleDO.setIsReg(userCount > 0 ? 1 : 2);
+//                    memberRoleDO.setCommunityId(communityId);
+//                    memberRoleDO.setSex(Integer.parseInt(memberRoleDO.getIdCard().substring(16,17))%2==0?2:1);
+//                    saveList.add(memberRoleDO);
+//                }
+//            });
+//        }
+//
+//        if(saveList.size() > 0){
+//            saveList.forEach(save -> {
+//                int result = comPbMemberRoleDAO.insert(save);
+//                if(result>0){
+//                    //判断党员信息是否存在党委信息
+//                    ComPbMemberDO pbMemberDO = comPbMemberDAO.selectOne(new QueryWrapper<ComPbMemberDO>().lambda()
+//                            .eq(ComPbMemberDO::getIdCard,save.getIdCard())
+//                            .eq(ComPbMemberDO::getAuditResult,ComPbMemberDO.AuditResult.SHTG)
+//                            .eq(ComPbMemberDO::getCommunityId,save.getCommunityId()));
+//                    if(pbMemberDO == null){
+//                        //不存在则创建党委党员信息
+//                        pbMemberDO = new ComPbMemberDO();
+//                        BeanUtils.copyProperties(save, pbMemberDO);
+//                        pbMemberDO.setAuditResult(ComPbMemberDO.AuditResult.SHTG);
+//                        pbMemberDO.setCreateAt(nowDate);
+//                        pbMemberDO.setUpdateAt(nowDate);
+//                        pbMemberDO.setType(ComPbMemberDO.Type.ZSDY);
+//                        comPbMemberDAO.insert(pbMemberDO);
+//                        //金沙特殊需求
+//                        if(pbMemberDO.getCommunityId()==2L){
+//                            ComMngVolunteerMngVO comMngVolunteerMngVO=new ComMngVolunteerMngVO();
+//                            comMngVolunteerMngVO.setOrgId(53L);
+//                            comMngVolunteerMngVO.setName(pbMemberDO.getName());
+//                            comMngVolunteerMngVO.setPhone(pbMemberDO.getPhone());
+//                            comMngVolunteerMngVO.setIdCard(pbMemberDO.getIdCard());
+//                            comMngVolunteerMngVO.setState(2);
+//                            comMngVolunteerMngVO.setCommunityId(2L);
+//                            R r = communityService.addVolunteer(comMngVolunteerMngVO);
+//                            // 支援者添加成功,修改小程序用户的志愿者状态    ,通过手机号
+//                            if (R.isOk(r)) {
+//                                String phone = comMngVolunteerMngVO.getPhone();
+//                                R r1 = userService.putUserIsVolunteer(phone, 1);
+//                                if (R.isOk(r1)) {
+//                                    log.info("修改手机号【{}】的支援者状态为是", phone);
+//                                } else {
+//                                    log.info("手机号【{}】没有小程序用户", phone);
+//                                }
+//                            }
+//                        }
+//                    }
+//                }
+//                userService.updateUserIsPartymember(save.getIdCard());
+//            });
+//        }
+//        if(mistakes.size() > 0){
+//            return R.fail(mistakes);
+//        }
+//        return R.ok();
+//    }
+
+    @Override
+    public R exportPartyMember(PagePartyOrganizationVO pagePartyOrganizationVO) {
+        return R.ok(comPbMemberDAO.exportPartyMemberList(pagePartyOrganizationVO));
+    }
+
+    @Override
+    public R checkMember(String idCard) {
+        List<ComPbMemberDO> list=comPbMemberDAO.selectList(new QueryWrapper<ComPbMemberDO>().lambda().eq(ComPbMemberDO::getIdCard,idCard));
+        return R.ok(CollectionUtils.isEmpty(list));
+    }
+
+    @Override
+    public R getPagePbMember(PartyBuildingMemberVO dto) {
+        IPage<PartyBuildingMemberVO> memberPage = comPbMemberDAO.getPbMemberByApplets(new Page(dto.getPageNum(),dto.getPageSize()),dto);
+        memberPage.getRecords().forEach(member -> {
+            if(StringUtils.isEmpty(member.getOrgName())){
+                member.setOrgName("待编辑党支部");
+            }
+            if(StringUtils.isEmpty(member.getCheckUnitName())){
+                member.setCheckUnitName("待编辑报到单位");
+            }
+            //member.setName(SensitiveUtil.replaceName(member.getName()));
+        });
+        return R.ok(memberPage);
+    }
+
+    @Override
+    public R getPartyMember(String phone,Integer type) {
+
+        return R.ok(comPbMemberDAO.selectDetail(phone,type));
+    }
+
+    @Override
+    public R memberDetail(Long id) {
+        return R.ok(comPbMemberDAO.getDetailByApp(id));
+    }
+
+    /**
+     * 分页查询注册党员列表
+     * @param dto
+     * @return
+     */
+    @Override
+    public R pageRegisterMember(PageMemberForInviteDTO dto) {
+        return R.ok(comPbMemberDAO.pageRegisterMember(new Page(dto.getPageNum(), dto.getPageSize()), dto));
+    }
 }

--
Gitblit v1.7.1