xyh
2021-06-16 dedb6f26be813caaa0d6ec828d39deaa18fddcb3
Merge remote-tracking branch 'origin/test_excel610' into test_excel610
1个文件已修改
9个文件已添加
641 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LangchaoApiConstants.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/DisabledPersonsDTO.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DisablePersonApi.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/DisablePersonExcelListen.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DisablePersonApi.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/DisablePersonDAO.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/DisabledPersonsDO.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/DisabledPersonsService.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/DisabledPersonsServiceImpl.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LangchaoApiConstants.java
New file
@@ -0,0 +1,44 @@
package com.panzhihua.common.api;
/**
 * 攀枝花综治网格化-事件上报接口列表-测试环境接口
 * des
 * @author manailin
 * @date 2021/06/16
 */
public class LangchaoApiConstants
{
    /**
     * 获取token
     */
    public static final String GRID_GET_TOKEN_URL = "http://171.217.92.33:53303/aaToken?username=#username&password=#password";
    /**
     * 提交事件登记(自处)
     */
    public static final String GRID_REGIST_EVENT_URL = "http://171.217.92.33:53303/businessData/registEventInfo";
    /**
     * 上传附件,仅上传文件流,服务器根据文件名自行匹配
     */
    public static final String GRID_EVENT_FILE_UPLOAD_URL = "http://171.217.92.33:53303/businessData/upload";
    /**
     * 事件类型获取
     */
    public static final String GRID_EVENT_CATEGORY_URL = "http://171.217.92.33:53303/businessData/getEventType";
    /**
     * 事件查询接口
     */
    public static final String GRID_EVENT_INFO_URL = "http://171.217.92.33:53303/businessData/getEventListInfo";
    /**
     * 获取指定APP登记事件详情信息
     */
    public static final String GRID_EVENT_INFO_DETAIL_URL = "http://171.217.92.33:53303/businessData/getEventDetails";
    /**
     * 获取指定事件信息
     */
    public static final String GRID_APP_EVENT_INFO_DETAIL_URL = "http://171.217.92.33:53303/businessData/getAppointEventInfo";
    /**
     * 通过AREAID获取辖区网格树
     */
    public static final String GRID_GET_EVENT_INFO_AREA_ID_URL = "http://171.217.92.33:53303/area/getAreaGridTreeByAreaId";
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/DisabledPersonsDTO.java
New file
@@ -0,0 +1,110 @@
package com.panzhihua.common.model.dtos.community;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * Description  残疾人dto
 * ClassName    DisabledPersons
 *
 * @author manailin
 */
@Data
public class DisabledPersonsDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    private Long id;
    private Long userId;
    /**
     * 街道id
     */
    private Long streetId;
    /**
     * 社区id
     */
    private Long actId;
    /**
     * 名字
     */
    @ExcelProperty(value = "名字" ,index = 0)
    private String name;
    /**
     * 身份证号码
     */
    @ExcelProperty(value = "身份证号码" ,index = 1)
    private String cardNo;
    /**
     * 残疾人证编码
     */
    @ExcelProperty(value = "残疾人证编码" ,index = 2)
    private String disableSn;
    /**
     * 出生年月
     */
    private String birthday;
    /**
     * 残疾人证
     */
    @ExcelProperty(value = "残疾人证" ,index = 3)
    private String level;
    /**
     * 性别(取字典表国家编码)
     */
    @ExcelProperty(value = "性别" ,index = 4)
    private String sex;
    /**
     * 性别名称
     */
    private String sexName;
    /**
     * 文化程度(取字典表国家编码))
     */
    @ExcelProperty(value = "文化程度" ,index = 5)
    private String cultureLevel;
    /**
     * 民族
     */
    @ExcelProperty(value = "民族" ,index = 6)
    private String nation;
    /**
     * 残疾部位/类别
     */
    @ExcelProperty(value = "残疾部位" ,index = 7)
    private String disableType;
    /**
     * 残疾级别
     */
    @ExcelProperty(value = "残疾级别" ,index = 8)
    private String disableLevel;
    /**
     * 联系电话
     */
    @ExcelProperty(value = "联系电话" ,index = 9)
    private String phone;
    /**
     * 监护人联系电话
     */
    @ExcelProperty(value = "监护人联系电话" ,index =10)
    private String guardianPhone;
    /**
     * 地址
     */
    @ExcelProperty(value = "地址" ,index = 11)
    private String address;
    /**
     * 创建用户
     */
    private Long createBy;
    /**
     * 修改用户
     */
    private Long updateBy;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -2819,4 +2819,14 @@
     */
    @GetMapping("/screen/work/workCount")
    R workCount(@RequestParam("communityId")Long communityId);
    /**
     * description 批量保存残疾人人员信息
     *
     * @param list 疾人信息列表
     * @return R  保存结果
     * @author manailin
     * @date 2021/6/10 17:00
     */
    @PostMapping("/disable_person/batch/save")
    R saveBatchDisabledPersons(@RequestBody List<DisabledPersonsDTO> list);
}
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DisablePersonApi.java
New file
@@ -0,0 +1,87 @@
package com.panzhihua.community_backstage.api;
import com.alibaba.excel.EasyExcel;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.community.DisabledPersonsDTO;
import com.panzhihua.common.model.dtos.community.KeyPersonInfoDTO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.utlis.ExcelSelectObject;
import com.panzhihua.common.utlis.ExcelUtil;
import com.panzhihua.community_backstage.biz.KeyPersonBizServiceImpl;
import com.panzhihua.community_backstage.listen.DisablePersonExcelListen;
import com.panzhihua.community_backstage.listen.KeyPersonInfoExcelListen;
import com.panzhihua.community_backstage.model.dto.KeyPersonExcelExportDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collections;
import java.util.List;
/**
 * program 攀枝花智慧社区项目
 * description 残疾人群管理API
 *
 * @author manailin
 * Date 2021-01-22 15:30
 **/
@Slf4j
@Api(tags = {"残疾人群管理API"})
@RestController
@RequestMapping("/")
public class DisablePersonApi extends BaseController {
    @Resource
    private CommunityService communityService;
    @Resource
    private KeyPersonBizServiceImpl keyPersonBizService;
    /**
     * description 批量保存重点人群人员信息
     *
     * @param file 重点人群信息
     * @return R  保存结果
     * @author manailin
     * @date 2021/6/10 17:00
     */
    @PostMapping(value = "diabled_person/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    public R importExcl(@RequestParam MultipartFile file, HttpServletRequest request) {
        //获取文件名
        String fileName = file.getOriginalFilename();
        log.info("传入文件名字【{}】", fileName);
        try {
            InputStream inputStream = file.getInputStream();
            LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
            EasyExcel.read(inputStream, DisabledPersonsDTO.class, new DisablePersonExcelListen(communityService, loginUserInfo)).sheet().doRead();
        } catch (IOException e) {
            e.printStackTrace();
            log.error("导入模板失败【{}】", e.getMessage());
        }
        return R.ok();
    }
    /**
     * description exportUser 导出用于导入的模板EXCEL
     *
     * @author manailin
     * @date 2021/6/10 17:00
     */
    @ApiOperation(value = "导出用于导入的模板EXCEL", notes = "导出用于导入的模板EXCEL")
    @GetMapping("diabled_person/export/model")
    public void exportUser(HttpServletResponse response) throws IOException {
        List<ExcelSelectObject> selectListObject = keyPersonBizService.defineExcelModelData();
        //导出操作
        ExcelUtil.exportExcelForSelectList(Collections.emptyList(), "残疾人员信息导入模版", "残疾人员信息导入模版", KeyPersonExcelExportDto.class, "残疾人员信息导入模版.xls", selectListObject, response);
    }
}
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/DisablePersonExcelListen.java
New file
@@ -0,0 +1,89 @@
package com.panzhihua.community_backstage.listen;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSONObject;
import com.panzhihua.common.exceptions.PartyBuildingMemberException;
import com.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.common.model.dtos.community.DisabledPersonsDTO;
import com.panzhihua.common.model.dtos.community.KeyPersonInfoDTO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.common.utlis.StringUtils;
import lombok.extern.slf4j.Slf4j;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
 * program 攀枝花智慧社区项目
 * description 残疾人群入监听
 *
 * @author manailin
 * Date 2021-01-22 15:30
 **/
@Slf4j
public class DisablePersonExcelListen extends AnalysisEventListener<DisabledPersonsDTO> {
    @Resource
    private CommunityService communityService;
    private LoginUserInfoVO loginUserInfo;
    public DisablePersonExcelListen(CommunityService communityService, LoginUserInfoVO loginUserInfo) {
        this.communityService = communityService;
        this.loginUserInfo = loginUserInfo;
    }
    private static final int BATCH_COUNT = 5000;
    private List<DisabledPersonsDTO> list = new ArrayList<>();
    @Override
    public void invoke(DisabledPersonsDTO disabledPersonsDTO, AnalysisContext analysisContext) {
        list.add(disabledPersonsDTO);
        if (list.size() >= BATCH_COUNT) {
            log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
            list.forEach(keyPersonInfo -> {
                buildKeyPersonInfo(keyPersonInfo);
            });
            R r = this.communityService.saveBatchDisabledPersons(list);
            if (!R.isOk(r)) {
                throw new PartyBuildingMemberException(r.getMsg());
            }
            list.clear();
        }
    }
    private void buildKeyPersonInfo(DisabledPersonsDTO disabledPersons) {
        disabledPersons.setId(Snowflake.getId());
        //获取用户生日
        String birthday = disabledPersons.getCardNo().substring(6, 14);
        if(StringUtils.isNotEmpty(birthday)){
            String year = birthday.substring(0,4);
            String month = birthday.substring(4,6);
            String day = birthday.substring(6,8);
            disabledPersons.setBirthday(year + "-" + month + "-" + day);
        }
        disabledPersons.setActId(loginUserInfo.getCommunityId());
        disabledPersons.setCreateBy(loginUserInfo.getUserId());
        disabledPersons.setUpdateBy(loginUserInfo.getUserId());
    }
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
        list.forEach(keyPersonInfo -> {
            buildKeyPersonInfo(keyPersonInfo);
        });
        R r = this.communityService.saveBatchDisabledPersons(list);
        if (!R.isOk(r)) {
            throw new PartyBuildingMemberException(r.getMsg());
        }
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DisablePersonApi.java
New file
@@ -0,0 +1,51 @@
package com.panzhihua.service_community.api;
import com.panzhihua.common.model.dtos.community.DisabledPersonsDTO;
import com.panzhihua.common.model.dtos.community.KeyPersonInfoDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.utlis.ValidableList;
import com.panzhihua.service_community.service.DisabledPersonsService;
import com.panzhihua.service_community.service.KeyPersonInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import javax.validation.Valid;
/**
 * program 攀枝花智慧社区项目
 * description 特殊人群管理API
 *
 * @author manailin
 * Date 2021-01-22 15:30
 **/
@Slf4j
@RestController
@RequestMapping("/")
public class DisablePersonApi {
    @Resource
    private DisabledPersonsService disabledPersonsService;
    /**
     * description 批量保存重点人群人员信息
     *
     * @param list 重点人群信息
     * @return R  保存结果
     * @author manailin
     * @date 2021/6/10 17:00
     */
    @PostMapping("/disable_person/batch/save")
    public R BatchSave(@RequestBody @Valid ValidableList<DisabledPersonsDTO> list, @ApiIgnore BindingResult results) {
        if (results.hasErrors()) {
            return R.fail(results.getFieldError().getDefaultMessage());
        }
        return disabledPersonsService.saveBatchDisabledPerson(list);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/DisablePersonDAO.java
New file
@@ -0,0 +1,16 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.service_community.model.dos.DisabledPersonsDO;
import org.apache.ibatis.annotations.Mapper;
/**
 * program 攀枝花智慧社区项目
 * description 残疾人管理API
 *
 * @author manailin
 * Date 2021-01-22 15:30
 **/
@Mapper
public interface DisablePersonDAO extends BaseMapper<DisabledPersonsDO> {
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/DisabledPersonsDO.java
New file
@@ -0,0 +1,113 @@
package com.panzhihua.service_community.model.dos;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * Description  残疾人实体
 * ClassName    DisabledPersons
 *
 * @author manailin
 */
@Data
@EncryptDecryptClass
@TableName("com_disabled_persons")
public class DisabledPersonsDO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    private Long id;
    private Long userId;
    /**
     * 街道id
     */
    private Long streetId;
    /**
     * 社区id
     */
    private Long actId;
    /**
     * 名字
     */
    private String name;
    /**
     * 身份证号码
     */
    @EncryptDecryptField
    private String cardNo;
    /**
     * 残疾人证编码
     */
    private String disableSn;
    /**
     * 出生年月
     */
    private String birthday;
    /**
     * 残疾人证
     */
    private String level;
    /**
     * 性别(取字典表国家编码)
     */
    private String sex;
    /**
     * 性别名称
     */
    private String sexName;
    /**
     * 文化程度(取字典表国家编码))
     */
    private String cultureLevel;
    /**
     * 民族
     */
    private String nation;
    /**
     * 残疾部位/类别
     */
    private String disableType;
    /**
     * 残疾级别
     */
    private String disableLevel;
    /**
     * 联系电话
     */
    private String phone;
    /**
     * 监护人联系电话
     */
    private String guardianPhone;
    /**
     * 地址
     */
    private String address;
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createAt;
    /**
     * 创建用户
     */
    private Long createBy;
    /**
     * 修改时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateAt;
    /**
     * 修改用户
     */
    private Long updateBy;
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/DisabledPersonsService.java
New file
@@ -0,0 +1,29 @@
package com.panzhihua.service_community.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.community.DisabledPersonsDTO;
import com.panzhihua.common.model.dtos.community.KeyPersonInfoDTO;
import com.panzhihua.common.model.vos.BcDictionaryVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.model.dos.BcDictionaryItemDO;
import com.panzhihua.service_community.model.dos.DisabledPersonsDO;
import java.util.List;
/**
 * 残疾人服务
 * @author manailin
 * @date 2021/6/11 16:05
 */
public interface DisabledPersonsService extends IService<DisabledPersonsDO> {
    /**
     * description 批量保存重点人群人员信息
     *
     * @param keyList 重点人群信息
     * @return R  保存结果
     * @author manailin
     * @date 2021/6/10 17:00
     */
    R saveBatchDisabledPerson(List<DisabledPersonsDTO> keyList);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/DisabledPersonsServiceImpl.java
New file
@@ -0,0 +1,92 @@
package com.panzhihua.service_community.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.community.ComMngPopulationTagCardNoDTO;
import com.panzhihua.common.model.dtos.community.DisabledPersonsDTO;
import com.panzhihua.common.model.helper.AESUtil;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.dao.DisablePersonDAO;
import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
import com.panzhihua.service_community.model.dos.DisabledPersonsDO;
import com.panzhihua.service_community.service.ComMngPopulationService;
import com.panzhihua.service_community.service.DisabledPersonsService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
/**
 * 残疾人服务
 *
 * @author manailin
 * @date 2021/6/11 16:05
 */
@Service
public class DisabledPersonsServiceImpl extends ServiceImpl<DisablePersonDAO, DisabledPersonsDO> implements DisabledPersonsService {
    @Value("${domain.aesKey:}")
    private String aesKey;
    @Resource
    private ComMngPopulationService comMngPopulationService;
    /**
     * description 批量保存重点人群人员信息
     *
     * @param list 重点人群信息
     * @return R  保存结果
     * @author manailin
     * @date 2021/6/10 17:00
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R saveBatchDisabledPerson(List<DisabledPersonsDTO> list) {
        list.forEach(disabledPersonsDTO -> {
            DisabledPersonsDO dbKeyPerson = checkExistFromDb(disabledPersonsDTO);
            if (dbKeyPerson != null) {
                //已经存在数据,进行数据更新操作
                DisabledPersonsDO disabledPersonsDO = new DisabledPersonsDO();
                BeanUtils.copyProperties(disabledPersonsDTO, disabledPersonsDO);
                disabledPersonsDO.setId(dbKeyPerson.getId());
                ComMngPopulationTagCardNoDTO comMngPopulationTagCardNoDTO = new ComMngPopulationTagCardNoDTO();
                comMngPopulationTagCardNoDTO.setCardNo(dbKeyPerson.getCardNo());
                ComMngPopulationDO population = comMngPopulationService.getPopulationByCardNo(disabledPersonsDTO.getCardNo());
                if (population != null) {
                    disabledPersonsDO.setUserId(population.getId());
                }
                try {
                    String aesCardNo = AESUtil.encrypt128(disabledPersonsDTO.getCardNo(), aesKey);
                    disabledPersonsDO.setCardNo(aesCardNo);
                    updateById(disabledPersonsDO);
                } catch (Exception e) {
                    log.error("根据身份证查询残疾人群业务-加密证件信息出错");
                }
            } else {
                DisabledPersonsDO disabledPersonsDO = new DisabledPersonsDO();
                BeanUtils.copyProperties(disabledPersonsDTO, disabledPersonsDO);
                save(disabledPersonsDO);
            }
        });
        return R.ok();
    }
    private DisabledPersonsDO checkExistFromDb(DisabledPersonsDTO DisabledPersonsDO) {
        try {
            String aesCardNo = AESUtil.encrypt128(DisabledPersonsDO.getCardNo(), aesKey);
            return baseMapper.selectOne(
                    new QueryWrapper<DisabledPersonsDO>()
                            .eq("act_id", DisabledPersonsDO.getActId())
                            .eq("card_no", aesCardNo)
            );
        } catch (Exception e) {
            log.error("根据身份证查询残疾人群业务-加密证件信息出错");
        }
        return null;
    }
}