From 53f8efd5655c310d2c8d2a8f2218f2fcd559cdd6 Mon Sep 17 00:00:00 2001
From: CeDo <cedoogle@gmail.com>
Date: 星期三, 28 四月 2021 15:16:57 +0800
Subject: [PATCH] no

---
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysUserInputServiceImpl.java |  426 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 416 insertions(+), 10 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysUserInputServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysUserInputServiceImpl.java
index a35c520..c46f91e 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysUserInputServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysUserInputServiceImpl.java
@@ -1,11 +1,417 @@
-package com.panzhihua.service_user.service.impl;/**
-* @program: springcloud_k8s_panzhihuazhihuishequ
-*
-* @description: 居民导入
-*
-* @author: huang.hongfa weixin hhf9596 qq 959656820
-*
-* @create: 2021-02-05 17:42
-**/
-public class SysUserInputServiceImpl {
+package com.panzhihua.service_user.service.impl;
+
+import com.alibaba.fastjson.JSONArray;
+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.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.community.ExportSpecialUserDTO;
+import com.panzhihua.common.model.dtos.community.ExportUserDTO;
+import com.panzhihua.common.model.dtos.user.ComMngUserTagDTO;
+import com.panzhihua.common.model.dtos.user.EexcelUserDTO;
+import com.panzhihua.common.model.dtos.user.InputUserTagsDTO;
+import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+import com.panzhihua.common.model.vos.community.ComMngStructHouseVO;
+import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO;
+import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO;
+import com.panzhihua.common.model.vos.user.ComMngTagVO;
+import com.panzhihua.common.model.vos.user.CommunityUserInfoVO;
+import com.panzhihua.common.model.vos.user.InputUserInfoVO;
+import com.panzhihua.common.utlis.IdCard;
+import com.panzhihua.common.utlis.SensitiveUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_user.dao.ComMngUserTagDAO;
+import com.panzhihua.service_user.dao.SysUserInputDAO;
+import com.panzhihua.service_user.model.dos.ComMngFamilyInfoDO;
+import com.panzhihua.service_user.model.dos.ComMngUserTagDO;
+import com.panzhihua.service_user.model.dos.SysUserDO;
+import com.panzhihua.service_user.model.dos.SysUserInputDO;
+import com.panzhihua.service_user.service.SysUserInputService;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 居民导入
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-02-05 17:42
+ **/
+@Service
+public class SysUserInputServiceImpl extends ServiceImpl<SysUserInputDAO, SysUserInputDO> implements SysUserInputService {
+    @Resource
+    private SysUserInputDAO sysUserInputDAO;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Resource
+    private ComMngUserTagDAO comMngUserTagDAO;
+    /**
+     * 批量导入居民用户
+     * @param list 居民用户集合
+     * @param areaName 小区名字
+     * @return 导入结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R batchSaveUser(List<EexcelUserDTO> list, StringBuffer areaName) {
+        List<SysUserInputDO> sysUserInputDOS=new ArrayList<>();
+        if (!ObjectUtils.isEmpty(list)) {
+            ComMngStructAreaVO comMngStructAreaVO=sysUserInputDAO.selectByAreaName(areaName.toString());
+//            查询该小区所有房屋信息用来进行匹配房屋编码
+            String key="house_"+areaName;
+            Boolean aBoolean = stringRedisTemplate.hasKey(key);
+            ValueOperations<String, String> stringStringValueOperations = stringRedisTemplate.opsForValue();
+            List<ComMngStructHouseVO> comMngStructHouseVOS=new ArrayList<>();
+            if (aBoolean) {
+                String value = stringStringValueOperations.get(key);
+                 comMngStructHouseVOS= JSONArray.parseArray(value,ComMngStructHouseVO.class);
+            }else{
+                comMngStructHouseVOS=sysUserInputDAO.selectHouserByareaName(areaName.toString());
+            }
+            List<ComMngStructHouseVO> comMngStructHouseVOS1=comMngStructHouseVOS;
+            list.forEach(eexcelUserDTO -> {
+                //判断身份证和门牌号是否重复
+                int count = sysUserInputDAO.selectCount(new QueryWrapper<SysUserInputDO>().lambda()
+                        .eq(SysUserInputDO::getIdCard,eexcelUserDTO.getIdCard())
+                        .and(wrapper->wrapper.eq(SysUserInputDO::getDoorNumber,eexcelUserDTO.getDoorNumber()))
+                );
+                if(count==0){
+                    SysUserInputDO sysUserInputDO=new SysUserInputDO();
+                    String doorNumber = eexcelUserDTO.getDoorNumber();
+                    //暂时注释门牌号匹配设置房屋编号功能
+//                    List<ComMngStructHouseVO> collect = comMngStructHouseVOS1.stream().filter(comMngStructHouseVO -> comMngStructHouseVO.getHouseName().equals(doorNumber)).collect(Collectors.toList());
+//                    if (ObjectUtils.isEmpty(collect)) {
+//                        throw new ServiceException("门牌号后台不存在或格式错误,错误门牌号为"+doorNumber);
+//                    }else{
+//                        sysUserInputDO.setHouseCode(collect.get(0).getHouseCode());
+//                    }
+                    sysUserInputDO.setAreaId(comMngStructAreaVO.getId());
+                    sysUserInputDO.setCommunityId(comMngStructAreaVO.getCommunityId());
+                    sysUserInputDO.setCompany(eexcelUserDTO.getCompany());
+                    sysUserInputDO.setDoorNumber(doorNumber);
+                    sysUserInputDO.setEducation(eexcelUserDTO.getEducation());
+                    sysUserInputDO.setIdCard(eexcelUserDTO.getIdCard());
+                    sysUserInputDO.setIsContact(eexcelUserDTO.getIsContact().equals("是")?1:0);
+                    sysUserInputDO.setIsPanzhihua(eexcelUserDTO.getIsPanZhiHua().equals("是")?1:0);
+                    sysUserInputDO.setIsRent(eexcelUserDTO.getIsRent().equals("是")?1:0);
+                    sysUserInputDO.setKeyPersonnel(eexcelUserDTO.getKeyPersonnel().equals("是")?1:0);
+                    sysUserInputDO.setLowincomeHouseholds(eexcelUserDTO.getLowIncomeHouseholds().equals("是")?1:0);
+                    sysUserInputDO.setLowincomePeople(eexcelUserDTO.getLowIncomePeople().equals("是")?1:0);
+                    sysUserInputDO.setMajor(eexcelUserDTO.getMajor().equals("是")?1:0);
+                    sysUserInputDO.setMaritalStatus(eexcelUserDTO.getMaritalStatus().equals("是")?1:0);
+                    sysUserInputDO.setName(eexcelUserDTO.getName());
+                    sysUserInputDO.setNation(eexcelUserDTO.getNation());
+                    sysUserInputDO.setOldPeople(eexcelUserDTO.getOldPeople().equals("是")?1:0);
+                    sysUserInputDO.setDisability(eexcelUserDTO.getDisability().equals("是")?1:0);
+                    sysUserInputDO.setPhone(eexcelUserDTO.getPhone());
+                    String politicalOutlook = eexcelUserDTO.getPoliticalOutlook();
+                    if(!ObjectUtils.isEmpty(politicalOutlook)){
+                        sysUserInputDO.setPoliticalOutlook(politicalOutlook.equals("党员")?1:politicalOutlook.equals("团员")?2:3);
+                    }else{
+                        sysUserInputDO.setPoliticalOutlook(3);
+                    }
+                    sysUserInputDO.setResidence(eexcelUserDTO.getResidence());
+                    sysUserInputDO.setSituation(eexcelUserDTO.getSituation());
+                    sysUserInputDO.setSoldier(eexcelUserDTO.getSoldier().equals("是")?1:0);
+                    sysUserInputDO.setSpecialServiceFamily(eexcelUserDTO.getSpecialServiceFamily().equals("是")?1:0);
+
+                    sysUserInputDOS.add(sysUserInputDO);
+                }
+            });
+            this.saveBatch(sysUserInputDOS);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 社区人员详情包括导入人员
+     *
+     * @param userId 人员id
+     * @return CommunityUserInfoVO
+     */
+    @Override
+    public CommunityUserInfoVO detailUserComunity(Long userId) {
+        CommunityUserInfoVO communityUserInfoVO=new CommunityUserInfoVO();
+        userId=userId-100000000l;
+        SysUserInputDO sysUserInputDO = sysUserInputDAO.selectById(userId);
+        if (!org.springframework.util.ObjectUtils.isEmpty(sysUserInputDO)) {
+            BeanUtils.copyProperties(sysUserInputDO,communityUserInfoVO);
+            String idCard = sysUserInputDO.getIdCard();
+            if (!org.springframework.util.ObjectUtils.isEmpty(idCard)) {
+                communityUserInfoVO.setAge(IdCard.IdNOToAge(idCard));
+                communityUserInfoVO.setBirthday(IdCard.birthDay(idCard));
+                communityUserInfoVO.setIdCard(idCard);
+                communityUserInfoVO.setSex(IdCard.sex(idCard));
+            }
+            String phone = sysUserInputDO.getPhone();
+            communityUserInfoVO.setPhone(phone);
+            Integer keyPersonnel = sysUserInputDO.getKeyPersonnel();
+            Integer specialServiceFamily = sysUserInputDO.getSpecialServiceFamily();
+            Integer soldier = sysUserInputDO.getSoldier();
+            Integer lowincomeHouseholds = sysUserInputDO.getLowincomeHouseholds();
+            Integer lowincomePeople = sysUserInputDO.getLowincomePeople();
+            Integer oldPeople = sysUserInputDO.getOldPeople();
+            Integer disability = sysUserInputDO.getDisability();
+
+            StringBuilder stringBuilder=new StringBuilder("");
+            if (keyPersonnel.intValue()==1) {
+                stringBuilder.append("重点人员,");
+            }
+            if (specialServiceFamily.intValue()==1) {
+                stringBuilder.append("特服家庭,");
+            }
+            if (soldier.intValue()==1) {
+                stringBuilder.append("军人,");
+            }
+            if (lowincomeHouseholds.intValue()==1) {
+                stringBuilder.append("低保户,");
+            }
+            if (lowincomePeople.intValue()==1) {
+                stringBuilder.append("低收入人员,");
+            }
+            if (oldPeople.intValue()==1) {
+                stringBuilder.append("高龄老人,");
+            }
+            if (disability.intValue()==1) {
+                stringBuilder.append("残疾人,");
+            }
+            communityUserInfoVO.setTags(stringBuilder.toString());
+            communityUserInfoVO.setUserId(userId);
+            communityUserInfoVO.setIsVolunteer(0);
+            String doorNumber = sysUserInputDO.getDoorNumber();
+            List<ComMngFamilyInfoVO> comMngFamilyInfoVOS = sysUserInputDAO.selectListFamily(doorNumber,userId);
+            communityUserInfoVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS);
+        }
+        return communityUserInfoVO;
+    }
+
+    @Override
+    public R pageInputUser(PageInputUserDTO pageInputUserDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageInputUserDTO.getPageNum();
+        Long pageSize = pageInputUserDTO.getPageSize();
+        if (null==pageNum||0==pageNum) {
+            pageNum = 1l;
+        }
+        if (null==pageSize||0==pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<InputUserInfoVO> iPage = sysUserInputDAO.pageInputUser(page, pageInputUserDTO);
+        iPage.getRecords().forEach(record->{
+            record.setPhone(SensitiveUtil.desensitizedPhoneNumber(record.getPhone()));
+            record.setIdCard(SensitiveUtil.desensitizedIdNumber(record.getIdCard()));
+            if(!StringUtils.isEmpty(record.getTags()) && record.getTags().endsWith(",")){
+                record.setTags(record.getTags().substring(0,record.getTags().length()-1));
+            }
+        });
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R putUserTag(InputUserTagsDTO inputUserTagsDTO) {
+        SysUserInputDO userInputDO=new SysUserInputDO();
+        userInputDO.setId(inputUserTagsDTO.getId());
+        userInputDO.setTags(inputUserTagsDTO.getTags());
+        List<SysUserInputDO> all = sysUserInputDAO.selectList(new QueryWrapper<SysUserInputDO>().lambda().eq(SysUserInputDO::getId,userInputDO.getId()));
+        all.forEach(d->{
+            if(!StringUtils.isEmpty(d.getTags())){
+                d.setTags(d.getTags()+","+inputUserTagsDTO.getTags());
+            }else{
+                d.setTags(inputUserTagsDTO.getTags());
+            }
+            sysUserInputDAO.updateById(userInputDO);
+
+        });
+        return R.ok();
+    }
+
+    @Override
+    public R exportInputUser(ExportUserDTO exportUserDTO) {
+        List<EexcelUserDTO> eexcelUserDTOS=sysUserInputDAO.selectExport(exportUserDTO);
+        return R.ok(eexcelUserDTOS);
+    }
+
+
+    @Override
+    public R inputUserDetail(Long id) {
+        InputUserInfoVO inputUserInfoVO = new InputUserInfoVO();
+        SysUserInputDO sysUserInputDO = sysUserInputDAO.selectById(id);
+        if (!org.springframework.util.ObjectUtils.isEmpty(sysUserInputDO)) {
+            BeanUtils.copyProperties(sysUserInputDO,inputUserInfoVO);
+            String idCard = sysUserInputDO.getIdCard();
+            if (!org.springframework.util.ObjectUtils.isEmpty(idCard)) {
+                inputUserInfoVO.setAge(IdCard.IdNOToAge(idCard));
+                inputUserInfoVO.setBirthday(IdCard.birthDay(idCard));
+                inputUserInfoVO.setIdCard(idCard);
+                inputUserInfoVO.setSex(IdCard.sex(idCard));
+            }
+            Integer keyPersonnel = sysUserInputDO.getKeyPersonnel();
+            Integer specialServiceFamily = sysUserInputDO.getSpecialServiceFamily();
+            Integer soldier = sysUserInputDO.getSoldier();
+            Integer lowincomeHouseholds = sysUserInputDO.getLowincomeHouseholds();
+            Integer lowincomePeople = sysUserInputDO.getLowincomePeople();
+            Integer oldPeople = sysUserInputDO.getOldPeople();
+            Integer disability = sysUserInputDO.getDisability();
+
+            StringBuilder stringBuilder=new StringBuilder("");
+            if (keyPersonnel.intValue()==1) {
+                stringBuilder.append("重点人员,");
+            }
+            if (specialServiceFamily.intValue()==1) {
+                stringBuilder.append("特服家庭,");
+            }
+            if (soldier.intValue()==1) {
+                stringBuilder.append("军人,");
+            }
+            if (lowincomeHouseholds.intValue()==1) {
+                stringBuilder.append("低保户,");
+            }
+            if (lowincomePeople.intValue()==1) {
+                stringBuilder.append("低收入人员,");
+            }
+            if (oldPeople.intValue()==1) {
+                stringBuilder.append("高龄老人,");
+            }
+            if (disability.intValue()==1) {
+                stringBuilder.append("残疾人,");
+            }
+            inputUserInfoVO.setTags(stringBuilder.toString());
+            String doorNumber = sysUserInputDO.getDoorNumber();
+            List<ComMngFamilyInfoVO> comMngFamilyInfoVOS = sysUserInputDAO.selectListFamily(doorNumber,id);
+            inputUserInfoVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS);
+            List<ComMngStructHouseVO> comMngStructHouseVOS = sysUserInputDAO.selectUserHouseList(inputUserInfoVO.getIdCard());
+            inputUserInfoVO.setComMngStructHouseVOS(comMngStructHouseVOS);
+        }
+        return R.ok(inputUserInfoVO);
+    }
+
+    @Override
+    public R specialInputUser(PageInputUserDTO pageInputUserDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageInputUserDTO.getPageNum();
+        Long pageSize = pageInputUserDTO.getPageSize();
+        if (null==pageNum||0==pageNum) {
+            pageNum = 1l;
+        }
+        if (null==pageSize||0==pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<InputUserInfoVO> iPage = sysUserInputDAO.specialInputUser(page, pageInputUserDTO);
+        iPage.getRecords().forEach(record->{
+            record.setPhone(SensitiveUtil.desensitizedPhoneNumber(record.getPhone()));
+            record.setIdCard(SensitiveUtil.desensitizedIdNumber(record.getIdCard()));
+        });
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R specialInputUserTags(ComMngUserTagDTO comMngUserTagDTO) {
+        Page page = new Page<>();
+        Long pageNum = comMngUserTagDTO.getPageNum();
+        Long pageSize = comMngUserTagDTO.getPageSize();
+        if (null==pageNum||0==pageNum) {
+            pageNum = 1l;
+        }
+        if (null==pageSize||0==pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComMngTagVO> iPage = comMngUserTagDAO.pageSpecialInputUserTags(page, comMngUserTagDTO);
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R saveSpecialInputUserTags(ComMngTagVO comMngTagVO) {
+        if(null!=comMngTagVO.getId()&&comMngTagVO.getId()!=0){
+            ComMngUserTagDO comMngUserTagDO = comMngUserTagDAO.selectById(comMngTagVO.getId());
+            if(null==comMngUserTagDO){
+                return R.fail("标签不存在");
+            }
+            if(comMngUserTagDO.getSysFlag()==1){
+                return R.fail("系统预置标签不可修改");
+            }
+            ComMngUserTagDO exist = comMngUserTagDAO.selectOne(new QueryWrapper<ComMngUserTagDO>().lambda().eq(ComMngUserTagDO::getTagName,comMngTagVO.getTagName()));
+            if(null!=exist && exist.getId()!=comMngUserTagDO.getId()){
+                return R.fail("标签重复");
+            }
+            comMngUserTagDO.setTagName(comMngTagVO.getTagName());
+            comMngUserTagDAO.updateById(comMngUserTagDO);
+        }else{
+            int count = comMngUserTagDAO.selectCount(new QueryWrapper<ComMngUserTagDO>().lambda().eq(ComMngUserTagDO::getTagName,comMngTagVO.getTagName()));
+            if(count>0){
+               return R.fail("标签重复");
+            }
+            ComMngUserTagDO comMngUserTagDO = new ComMngUserTagDO();
+            comMngUserTagDO.setTagName(comMngTagVO.getTagName());
+            comMngUserTagDO.setCommunityId(comMngTagVO.getCommunityId());
+            comMngUserTagDO.setSysFlag(0);
+            comMngUserTagDO.setCreateAt(new Date());
+            comMngUserTagDAO.insert(comMngUserTagDO);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R deleteSpecialInputUserTags(Long id) {
+        ComMngUserTagDO comMngUserTagDO = comMngUserTagDAO.selectById(id);
+        if(null==comMngUserTagDO){
+            return R.fail("标签不存在");
+        }
+        if(comMngUserTagDO.getSysFlag()==1){
+            return R.fail("系统预置标签不可删除");
+        }
+        int delete = comMngUserTagDAO.deleteById(id);
+        if(delete>0){
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    @Override
+    public R deleteSpecialInputUser(Long id) {
+        SysUserInputDO sysUserInputDO = sysUserInputDAO.selectById(id);
+        if(null==sysUserInputDO){
+            return R.fail("用户不存在");
+        }
+        List<SysUserInputDO> sysUserInputDOS = sysUserInputDAO.selectList(new QueryWrapper<SysUserInputDO>().lambda().eq(SysUserInputDO::getIdCard,sysUserInputDO.getIdCard()));
+        sysUserInputDOS.forEach(sysUserInput ->{
+            sysUserInput.setTags(null);
+            sysUserInput.setKeyPersonnel(0);
+            sysUserInput.setSpecialServiceFamily(0);
+            sysUserInput.setSoldier(0);
+            sysUserInput.setLowincomeHouseholds(0);
+            sysUserInput.setLowincomePeople(0);
+            sysUserInput.setOldPeople(0);
+            sysUserInput.setDisability(0);
+        });
+        boolean update = this.updateBatchById(sysUserInputDOS);
+        if(update){
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R specialUserExport(ExportSpecialUserDTO exportSpecialUserDTO) {
+        List<EexcelUserDTO> eexcelUserDTOS=sysUserInputDAO.specialUserExport(exportSpecialUserDTO);
+        return R.ok(eexcelUserDTOS);
+    }
 }

--
Gitblit v1.7.1