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; } }