springcloud_k8s_panzhihuazhihuishequ/common/pom.xml
@@ -130,7 +130,16 @@ <artifactId>commons-codec</artifactId> <version>1.9</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.6.7</version> </dependency> <dependency> <groupId>com.esotericsoftware</groupId> <artifactId>reflectasm</artifactId> <version>1.11.9</version> </dependency> </dependencies> springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/KeyPersonLabelEnum.java
New file @@ -0,0 +1,45 @@ package com.panzhihua.common.enums; import lombok.Getter; /** * 婚姻状况 * * @author huanghongfa */ @Getter public enum KeyPersonLabelEnum { XD(1, "吸毒人员"), ZJ(2, "重精人员"), XJ(3, "邪教人员"), QT(4, "其他重点人员"); private final Integer code; private final String name; KeyPersonLabelEnum(Integer code, String name) { this.code = code; this.name = name; } public static int getCodeByName(String name) { for (KeyPersonLabelEnum item : KeyPersonLabelEnum.values()) { if (item.name.equals(name)) { return item.getCode(); } } return -1; } public static String getCnDescByName(Integer code) { for (KeyPersonLabelEnum item : KeyPersonLabelEnum.values()) { if (item.code.equals(code)) { return item.getName(); } } return "其他"; } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngBuildingExcelListen.java
@@ -4,21 +4,20 @@ import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.fastjson.JSON; import com.google.common.collect.Lists; import com.panzhihua.common.enums.*; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComMngBuildingExcelVO; import com.panzhihua.common.model.vos.community.ComMngPopulationImportErrorVO; import com.panzhihua.common.model.vos.community.ComMngPopulationServeExcelVO; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.utlis.*; import com.panzhihua.common.service.grid.GridService; import com.panzhihua.common.utlis.ListUtils; import com.panzhihua.common.utlis.Snowflake; import lombok.extern.slf4j.Slf4j; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; /** @@ -27,7 +26,10 @@ */ @Slf4j public class ComMngBuildingExcelListen extends AnalysisEventListener<Map<Integer, String>> { private CommunityService communityService; private GridService gridService; private Long communityId; @@ -54,7 +56,6 @@ } /** * * @param headMap * @param context */ @@ -77,7 +78,7 @@ try { ArrayList<ComMngBuildingExcelVO> voList = Lists.newArrayList(); List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>(); for(int i =1;i<list.size();i++){ for (int i = 1; i < list.size(); i++) { Map<Integer, String> oneData = list.get(i); ComMngBuildingExcelVO vo = new ComMngBuildingExcelVO(); vo.setId(Snowflake.getId()); @@ -87,33 +88,34 @@ vo.setVillageName(oneData.get(4)); vo.setDoorNo(oneData.get(5)); vo.setName(oneData.get(6)); try{ vo.setUnitTotal(oneData.get(7)==null?0:Integer.valueOf(oneData.get(7))); }catch (Exception e){ vo.setGridName(oneData.get(15)); vo.setGridId(oneData.get(15)); try { vo.setUnitTotal(oneData.get(7) == null ? 0 : Integer.valueOf(oneData.get(7))); } catch (Exception e) { vo.setUnitTotal(0); } try{ vo.setBuildFloorSum(oneData.get(8)==null?0:Integer.valueOf(oneData.get(8))); }catch (Exception e){ try { vo.setBuildFloorSum(oneData.get(8) == null ? 0 : Integer.valueOf(oneData.get(8))); } catch (Exception e) { vo.setBuildFloorSum(0); } try{ vo.setEveryFloorSum(oneData.get(9)==null?0:Integer.valueOf(oneData.get(9))); }catch (Exception e){ try { vo.setEveryFloorSum(oneData.get(9) == null ? 0 : Integer.valueOf(oneData.get(9))); } catch (Exception e) { vo.setEveryFloorSum(0); } try{ vo.setBuildUserSum(oneData.get(10)==null?0:Integer.valueOf(oneData.get(10))); }catch (Exception e){ try { vo.setBuildUserSum(oneData.get(10) == null ? 0 : Integer.valueOf(oneData.get(10))); } catch (Exception e) { vo.setBuildUserSum(0); } try{ vo.setElevatorTotal(oneData.get(11)==null?0:Integer.valueOf(oneData.get(11))); }catch (Exception e){ try { vo.setElevatorTotal(oneData.get(11) == null ? 0 : Integer.valueOf(oneData.get(11))); } catch (Exception e) { vo.setElevatorTotal(0); } @@ -121,26 +123,26 @@ try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); vo.setBuildDate(sdf.parse(oneData.get(13))); }catch (Exception e){ } catch (Exception e) { } vo.setRemark(oneData.get(14)); vo.setGrid(oneData.get(15)); vo.setGridId(oneData.get(15)); voList.add(vo); } //根据list中的IdCard城市来去重 List<ComMngBuildingExcelVO> newVoList = voList.stream().filter(ListUtils.distinctByKey(ComMngBuildingExcelVO::getName)).collect(Collectors.toList()); R r = communityService.listSaveBuildingExcelVO(newVoList, communityId,123141L); R r = communityService.listSaveBuildingExcelVO(newVoList, communityId, 123141L); if (!R.isOk(r)) { String errMsg = r.getMsg(); List<ComMngPopulationImportErrorVO> errorList = JSON.parseArray(errMsg,ComMngPopulationImportErrorVO.class); if(!errorList.isEmpty()){ List<ComMngPopulationImportErrorVO> errorList = JSON.parseArray(errMsg, ComMngPopulationImportErrorVO.class); if (!errorList.isEmpty()) { populationImportErrorVOList.addAll(errorList); } throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList)); }else{ if(!populationImportErrorVOList.isEmpty()){ } else { if (!populationImportErrorVOList.isEmpty()) { throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList)); } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngVillageServeExcelListen.java
@@ -4,13 +4,16 @@ import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.fastjson.JSONObject; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComCvtServeExcelVO; import com.panzhihua.common.model.vos.community.ComMngVillageServeExcelVO; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.utlis.Snowflake; import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.Date; import java.util.List; /** @@ -22,11 +25,11 @@ private CommunityService communityService; private Long communityId; private LoginUserInfoVO loginUserInfo ; public ComMngVillageServeExcelListen(CommunityService communityService, Long communityId) { public ComMngVillageServeExcelListen(CommunityService communityService, LoginUserInfoVO loginUserInfo) { this.communityService = communityService; this.communityId = communityId; this.loginUserInfo = loginUserInfo; } @@ -40,7 +43,11 @@ // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM if (list.size() >= BATCH_COUNT) { log.info("excel导入数据【{}】", JSONObject.toJSONString(list)); R r = communityService.listSaveVillageServeExcelVO(list, this.communityId); list.forEach(villageServe->{ villageServe.setVillageId(Snowflake.getId()); villageServe.setCreateAt(new Date()); }); R r = communityService.listSaveVillageServeExcelVO(list, loginUserInfo.getCommunityId()); if (!R.isOk(r)) { throw new ServiceException(r.getMsg()); } @@ -52,7 +59,11 @@ @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { log.info("excel导入数据【{}】", JSONObject.toJSONString(list)); //确保最后遗留的数据保存在数据库中 R r = this.communityService.listSaveVillageServeExcelVO(list, this.communityId); list.forEach(villageServe->{ villageServe.setVillageId(Snowflake.getId()); villageServe.setCreateAt(new Date()); }); R r = this.communityService.listSaveVillageServeExcelVO(list, loginUserInfo.getCommunityId()); if (!R.isOk(r)) { throw new ServiceException(r.getMsg()); } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationTagCardNoDTO.java
New file @@ -0,0 +1,28 @@ package com.panzhihua.common.model.dtos.community; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; /** * 实有人口DTO */ @Data public class ComMngPopulationTagCardNoDTO implements Serializable { private static final long serialVersionUID = 1L; /** * 身份证 */ @ApiModelProperty(value="身份证") private String cardNo; /** * 标签字符串(多个以,隔开) */ @ApiModelProperty(value="标签字符串") private String label; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/KeyPersonInfoDTO.java
New file @@ -0,0 +1,155 @@ 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 重点人员信息 * ClassName KeyPersonInfo * * @author manailin */ @Data public class KeyPersonInfoDTO implements Serializable { private static final long serialVersionUID = 1L; /** * 主键 */ private Long id; /** * 街道id */ private Long streetId; /** * 姓名 */ @ExcelProperty(value = "姓名" ,index = 2) private String name; /** * 性别(取字典表国家编码) */ private String sex; /** * 性别名称 */ @ExcelProperty(value = "性别名称" ,index = 3) private String sexName; /** * 身份证号码 */ @ExcelProperty(value = "身份证号码" ,index = 4) private String cardNo; /** * 联系方式 */ @ExcelProperty(value = "联系方式" ,index = 5) private String phone; /** * 民族 */ @ExcelProperty(value = "民族" ,index = 6) private String nation; /** * 户口所在地 */ @ExcelProperty(value = "户口所在地" ,index = 7) private String censusRegister; /** * 居住地址 */ @ExcelProperty(value = "居住地址" ,index = 8) private String address; /** * 地址精度纬度信息(逗号隔开) */ @ExcelProperty(value = "地址精度纬度信息(逗号隔开)" ,index = 9) private String visiterAddressLatLng; /** * 人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员 */ @ExcelProperty(value = "人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员" ,index = 10) private Integer visiterType; /** * (法轮功类填写)基本情况 */ private String basicInfo; /** * 是否有效 */ @ExcelProperty(value = "是否有效" ,index = 11) private Boolean invalid; /** * 备注 */ @ExcelProperty(value = "备注" ,index = 12) private String note; /** * 文化程度(取字典表国家编码)) */ @ExcelProperty(value = "文化程度" ,index = 13) private String cultureLevel; /** * 经济状态 */ @ExcelProperty(value = "经济状态" ,index = 14) private String economicLevel; /** * 修改人 */ private Long updateBy; /** * 修改时间 */ private Date updateAt; /** * 创建人 */ private Long createBy; /** * (精神类人群填写)目前诊断 */ @ExcelProperty(value = "目前诊断" ,index = 18) private String diagnose; /** * 上报提交时间 */ private Date submitDate; /** * (精神类人群填写)监护人名称 */ @ExcelProperty(value = "监护人名称" ,index = 20) private String guardian; /** * (精神类人群填写)监护人电话 */ @ExcelProperty(value = "监护人电话" ,index = 21) private String guardianPhone; /** * (精神类人群填写)监护人关系 */ @ExcelProperty(value = "监护人关系" ,index = 22) private String guardianRelation; /** * 创建时间 */ private Date createAt; /** * 社区id */ private Long actId; /** * 小区id(实有房屋id) */ private Long villageId; /** * 用户ID */ private Long userId; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngBuildingExcelVO.java
@@ -58,6 +58,7 @@ private String remark; @ExcelProperty(value = "网格划分", index = 15) private String grid; private String gridId; private String gridName; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageServeExcelVO.java
@@ -18,6 +18,10 @@ @Data public class ComMngVillageServeExcelVO implements Serializable { /** * villageId */ private Long villageId; /** * 服务分类 */ @ExcelProperty(value = "街路巷" ,index = 0) @@ -28,4 +32,28 @@ @ExcelProperty(value = "小区(组)" ,index = 2) private String groupAt; /** * 小区类型(1.城镇 2.农村 3.未知) */ @ExcelProperty(value = "小区(组)" ,index = 3) private Integer type; /**如果是城镇小区填写楼栋数量 */ @ExcelProperty(value = "小区(组)" ,index = 4) private Integer buildSum; /**(城镇)建筑年代*/ @ExcelProperty(value = "小区(组)" ,index = 5) private Date buildYear; /**(城镇)建筑类型*/ @ExcelProperty(value = "小区(组)" ,index = 6) private Long buildType; /**(城镇)是否存在物业公司*/ @ExcelProperty(value = "小区(组)" ,index = 7) private String property; /**(城镇)开发商*/ @ExcelProperty(value = "小区(组)" ,index = 8) private String developers; /**(城镇)小区总共居民数量/这户一共住了几口人*/ @ExcelProperty(value = "小区(组)" ,index = 9) private Integer userSum; private Date createAt; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -2736,4 +2736,15 @@ */ @PostMapping("/building/batchSave") R listSaveBuildingExcelVO(@RequestBody List<ComMngBuildingExcelVO> newVoList,@RequestParam("communityId") Long communityId,@RequestParam("streetId")Long streetId); /** * description 批量保存重点人群人员信息 * * @param list 重点人群信息 * @return R 保存结果 * @author manailin * @date 2021/6/10 17:00 */ @PostMapping("/key_person/batch/save") R saveBatchKeyPerson(@RequestBody List<KeyPersonInfoDTO> list); } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/CopyUtil.java
New file @@ -0,0 +1,283 @@ package com.panzhihua.common.utlis; import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSONObject; import com.esotericsoftware.reflectasm.MethodAccess; import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.util.StringUtils; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.*; import java.util.concurrent.ConcurrentHashMap; /** * 通用情况拷贝 * * @author tkq * @date 14:36 2019/4/10 */ @Slf4j public class CopyUtil { private static final Logger logger = LoggerFactory.getLogger(CopyUtil.class); @SuppressWarnings("rawtypes") private static Map<Class, MethodAccess> methodMap = new ConcurrentHashMap<>(); private static Map<String, Integer> methodIndexMap = new ConcurrentHashMap<>(); @SuppressWarnings("rawtypes") private static Map<Class, List<String>> fieldMap = new ConcurrentHashMap<>(); private CopyUtil() { } /** * <p>对数组进行拷贝 </p> * * @author tkq * @date 2018年12月19日 */ public static <T> List<T> copyList(List<?> desc, Class<T> targetClass) { if (desc == null) { return new ArrayList<>(); } if (desc.isEmpty()) { return new ArrayList<>(); } //创建返回对象 List<T> targetList = new ArrayList<>(desc.size()); for (Object des : desc) { if (null != des) { try { T newInstance = targetClass.newInstance(); copyProperties(des, newInstance); targetList.add(newInstance); } catch (InstantiationException | IllegalAccessException e) { logger.error(e.getMessage(), e); } } } return targetList; } /** * <p>对数组进行拷贝 </p> * * @author manailin * @date 2018年12月19日 */ public static <T> List<T> beanCopyList(List<?> desc, Class<T> targetClass) { if (desc == null) { return new ArrayList<>(); } if (desc.isEmpty()) { return new ArrayList<>(); } //创建返回对象 List<T> targetList = new ArrayList<>(desc.size()); for (Object des : desc) { if (null != des) { try { T newInstance = targetClass.newInstance(); BeanUtil.copyProperties(des, newInstance); targetList.add(newInstance); } catch (InstantiationException | IllegalAccessException e) { logger.error(e.getMessage(), e); } } } return targetList; } /** * @Title: * @Description: 根据目标对象类型进行拷贝 * @author tkq * @date:2019/1/2 * @Copyright: 2018 All rights reserved. 注意:禁止外泄以及用于其他的商业目 */ public static <T> T copyPropertiesByClass(Object desc, Class<T> targetClass) { if (desc != null) { try { T newInstance = targetClass.newInstance(); copyProperties(desc, newInstance); return newInstance; } catch (Exception e) { logger.error(e.getMessage(), e); } } return null; } /** * 进行复制方法 * * @param dataSource 源目标对象 * @param target 目标对象 * @author tkq * @date 14:37 2019-11-13 */ public static void copyProperties(Object dataSource, Object target) { if (target == null) { return; } if (dataSource == null) { return; } MethodAccess descMethodAccess = methodMap.get(target.getClass()); if (descMethodAccess == null) { descMethodAccess = cache(target); } MethodAccess orgiMethodAccess = methodMap.get(dataSource.getClass()); if (orgiMethodAccess == null) { orgiMethodAccess = cache(dataSource); } List<String> fieldList = fieldMap.get(dataSource.getClass()); for (String field : fieldList) { String getKey = dataSource.getClass().getName() + "." + "get" + field; String setkey = target.getClass().getName() + "." + "set" + field; Integer setIndex = methodIndexMap.get(setkey); if (setIndex != null) { int getIndex = methodIndexMap.get(getKey); // 参数一需要反射的对象 // 参数二class.getDeclaredMethods 对应方法的index // 参数对三象集合 try { descMethodAccess.invoke(target, setIndex.intValue(), orgiMethodAccess.invoke(dataSource, getIndex)); } catch (Exception e) { log.info("field:" + field); throw e; } } } } /** * 单例模式 * * @param object 实体对象 * @return MethodAccess * @author tkq * @date 14:36 2019/4/10 */ private static MethodAccess cache(Object object) { Class<?> name = object.getClass(); synchronized (name) { MethodAccess methodAccess = MethodAccess.get(name); Class<?> className = object.getClass(); Set<Field> fields =new HashSet<>(); for(;className != Object.class ; className = className.getSuperclass()) { fields.addAll(Arrays.asList(className.getDeclaredFields())); } List<String> fieldList = new ArrayList<>(fields.size()); for (Field field : fields) { // 是否是私有的,是否是静态的 if (Modifier.isPrivate(field.getModifiers()) && !Modifier.isStatic(field.getModifiers())) { // 非公共私有变量 // 获取属性名称 String fieldName = StringUtils.capitalize(field.getName()); // 获取get方法的下标 int getIndex = methodAccess.getIndex("get" + fieldName); // 获取set方法的下标 int setIndex = methodAccess.getIndex("set" + fieldName); // 将类名get方法名,方法下标注册到map中 methodIndexMap.put(object.getClass().getName() + "." + "get" + fieldName, getIndex); // 将类名set方法名,方法下标注册到map中 methodIndexMap.put(object.getClass().getName() + "." + "set" + fieldName, setIndex); // 将属性名称放入集合里 fieldList.add(fieldName); } } // 将类名,属性名称注册到map中 fieldMap.put(name, fieldList); methodMap.put(name, methodAccess); return methodAccess; } } /** * @description 复制属性 * @param source 源数据 * @param targetClass 目标对象类型 * @return * @author weifei * @date 2020/8/20 10:38 */ public static <T,K> K copyProperties(T source,Class<K> targetClass){ if(source == null || targetClass == null){ return null; } //创建对象 try { K k = targetClass.newInstance(); //复制对象 BeanUtils.copyProperties(source,k); return k; } catch (Exception e) { throw new RuntimeException(e.getMessage()); } } /** * @description 复制属性 * @param source 源数据 * @param targetClass 目标对象类型 * @return * @author weifei * @date 2020/12/16 10:12 */ public static <T,K> List<K> copyProperties(List<T> source,Class<K> targetClass){ if(source == null || targetClass == null){ return null; } List<K> returnValue = new ArrayList<>(); try { source.forEach(s -> { K k = copyProperties(s, targetClass); if(k != null){ returnValue.add(k); } }); }catch (Exception e){ throw new RuntimeException(e.getMessage()); } return returnValue; } /** * @description 深度复制对象 * @param source 元数据 * @param targetClass 目标对象类型 * @return * @author weifei * @date 2021/3/1 14:21 */ public static <T,K> K deepCopyObject(T source,Class<K> targetClass){ if(source == null || targetClass == null){ return null; } return JSONObject.parseObject(JSONObject.toJSONBytes(source),targetClass); } /** * @description 深度复制list对象 * @param source 元数据 * @param targetClass 目标对象类型 * @return * @author weifei * @date 2021/3/1 14:26 */ public static <T,K> List<K> deepCopyListObject(List<T> source,Class<K> targetClass){ if(source == null || targetClass == null){ return null; } return JSONObject.parseArray(JSONObject.toJSONString(source),targetClass); } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ValidableList.java
New file @@ -0,0 +1,133 @@ package com.panzhihua.common.utlis; import lombok.Data; import javax.validation.Valid; import java.util.*; /** * @author manailin */ @Data public class ValidableList<E> implements List<E> { @Valid private List<E> list = new LinkedList<>(); @Override public int size() { return list.size(); } @Override public boolean isEmpty() { return list.isEmpty(); } @Override public boolean contains(Object o) { return list.contains(o); } @Override public Iterator<E> iterator() { return list.iterator(); } @Override public Object[] toArray() { return list.toArray(); } @Override public <T> T[] toArray(T[] a) { return list.toArray(a); } @Override public boolean add(E e) { return list.add(e); } @Override public boolean remove(Object o) { return list.remove(o); } @Override public boolean containsAll(Collection<?> c) { return list.containsAll(c); } @Override public boolean addAll(Collection<? extends E> c) { return list.addAll(c); } @Override public boolean addAll(int index, Collection<? extends E> c) { return list.addAll(index, c); } @Override public boolean removeAll(Collection<?> c) { return list.removeAll(c); } @Override public boolean retainAll(Collection<?> c) { return list.retainAll(c); } @Override public void clear() { list.clear(); } @Override public E get(int index) { return list.get(index); } @Override public E set(int index, E element) { return list.set(index, element); } @Override public void add(int index, E element) { list.add(index, element); } @Override public E remove(int index) { return list.remove(index); } @Override public int indexOf(Object o) { return list.indexOf(o); } @Override public int lastIndexOf(Object o) { return list.lastIndexOf(o); } @Override public ListIterator<E> listIterator() { return list.listIterator(); } @Override public ListIterator<E> listIterator(int index) { return list.listIterator(index); } @Override public List<E> subList(int fromIndex, int toIndex) { return list.subList(fromIndex, toIndex); } } springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BuildingApi.java
@@ -42,7 +42,7 @@ InputStream inputStream; try { inputStream = file.getInputStream(); long communityId = 45L; long communityId = 2L; ComMngBuildingExcelListen comMngBuildingExcelListen = new ComMngBuildingExcelListen(communityService, communityId); EasyExcel.read(inputStream, null, comMngBuildingExcelListen).sheet().doRead(); } catch (IOException e) { springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/MainMemberApi.java
New file @@ -0,0 +1,70 @@ package com.panzhihua.community_backstage.api; import com.alibaba.excel.EasyExcel; import com.panzhihua.common.controller.BaseController; 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.service.user.UserService; import com.panzhihua.community_backstage.listen.KeyPersonInfoExcelListen; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.io.InputStream; /** * program 攀枝花智慧社区项目 * description 特殊人群管理API * * @author manailin * Date 2021-01-22 15:30 **/ @Slf4j @Api(tags = {"特殊人群管理API"}) @RestController @RequestMapping("/") public class MainMemberApi extends BaseController { @Resource private CommunityService communityService; @Resource private UserService userService; /** * description 批量保存重点人群人员信息 * * @param file 重点人群信息 * @return R 保存结果 * @author manailin * @date 2021/6/10 17:00 */ @PostMapping(value = "mainMember/import", consumes = "multipart/*", headers = "content-type=multipart/form-date") public R importExcl(@RequestParam MultipartFile file, HttpServletRequest request) { String fileName = file.getOriginalFilename(); //获取文件名 log.info("传入文件名字【{}】", fileName); InputStream inputStream = null; try { inputStream = file.getInputStream(); // LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); LoginUserInfoVO loginUserInfo = new LoginUserInfoVO(); loginUserInfo.setUserId(2323L); loginUserInfo.setCommunityId(888L); EasyExcel.read(inputStream, KeyPersonInfoDTO.class, new KeyPersonInfoExcelListen(communityService, loginUserInfo)).sheet().doRead(); } catch (IOException e) { e.printStackTrace(); log.error("导入模板失败【{}】", e.getMessage()); } return R.ok(); } } springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VillageApi.java
@@ -96,8 +96,11 @@ InputStream inputStream = null; try { inputStream = file.getInputStream(); LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); ComMngVillageServeExcelListen comMngVillageServeExcelListen = new ComMngVillageServeExcelListen(communityService, loginUserInfo.getCommunityId()); // LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); LoginUserInfoVO loginUserInfo = new LoginUserInfoVO(); loginUserInfo.setUserId(2323L); loginUserInfo.setCommunityId(2L); ComMngVillageServeExcelListen comMngVillageServeExcelListen = new ComMngVillageServeExcelListen(communityService, loginUserInfo); EasyExcel.read(inputStream, ComMngVillageServeExcelVO.class, comMngVillageServeExcelListen).sheet().doRead(); } catch (IOException e) { log.error("导入模板失败【{}】", e.getMessage()); springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/KeyPersonInfoExcelListen.java
New file @@ -0,0 +1,80 @@ 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.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 lombok.extern.slf4j.Slf4j; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 特殊人群入监听 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-11-30 15:12 **/ @Slf4j public class KeyPersonInfoExcelListen extends AnalysisEventListener<KeyPersonInfoDTO> { @Resource private CommunityService communityService; private LoginUserInfoVO loginUserInfo; public KeyPersonInfoExcelListen(CommunityService communityService, LoginUserInfoVO loginUserInfo) { this.communityService = communityService; this.loginUserInfo = loginUserInfo; } private static final int BATCH_COUNT = 5000; private List<KeyPersonInfoDTO> list = new ArrayList<>(); @Override public void invoke(KeyPersonInfoDTO keyPersonInfoDTO, AnalysisContext analysisContext) { list.add(keyPersonInfoDTO); // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM if (list.size() >= BATCH_COUNT) { log.info("excel导入数据【{}】", JSONObject.toJSONString(list)); list.forEach(keyPersonInfo -> { keyPersonInfo.setId(Snowflake.getId()); keyPersonInfo.setActId(loginUserInfo.getCommunityId()); keyPersonInfo.setCreateBy(loginUserInfo.getUserId()); keyPersonInfo.setCreateAt(new Date()); keyPersonInfo.setUpdateBy(loginUserInfo.getUserId()); keyPersonInfo.setUpdateAt(new Date()); }); R r = this.communityService.saveBatchKeyPerson(list); if (!R.isOk(r)) { throw new PartyBuildingMemberException(r.getMsg()); } list.clear(); //清空list } } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { log.info("excel导入数据【{}】", JSONObject.toJSONString(list)); list.forEach(keyPersonInfo -> { keyPersonInfo.setId(Snowflake.getId()); keyPersonInfo.setActId(loginUserInfo.getCommunityId()); keyPersonInfo.setCreateBy(loginUserInfo.getUserId()); keyPersonInfo.setCreateAt(new Date()); keyPersonInfo.setUpdateBy(loginUserInfo.getUserId()); keyPersonInfo.setUpdateAt(new Date()); }); R r = this.communityService.saveBatchKeyPerson(list);//确保最后遗留的数据保存在数据库中 if (!R.isOk(r)) { throw new PartyBuildingMemberException(r.getMsg()); } } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommonDataApi.java
@@ -7,7 +7,6 @@ import com.panzhihua.common.model.vos.user.UserElectronicFileVO; import com.panzhihua.common.validated.AddGroup; import com.panzhihua.service_community.service.*; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -47,6 +46,7 @@ /** * 小程序用户车辆登记 * * @param comCvtBusinessDTO * @return */ @@ -57,6 +57,7 @@ /** * 小程序用户车辆列表 * * @param userId * @return */ @@ -67,6 +68,7 @@ /** * 社区后台车辆管理列表 * * @param pageComMngCarDTO * @return */ @@ -77,16 +79,18 @@ /** * 社区后台添加修改车辆 * * @param comMngCarSaveDTO * @return */ @PostMapping("/car/save") public R saveComMngCar(@Validated({AddGroup.class}) @RequestBody ComMngCarSaveDTO comMngCarSaveDTO) { public R saveComMngCar(@Validated({AddGroup.class}) @RequestBody ComMngCarSaveDTO comMngCarSaveDTO) { return comMngCarService.saveComMngCar(comMngCarSaveDTO); } /** * 社区后台删除车辆 * * @param id * @return */ @@ -94,19 +98,22 @@ public R deleteComMngCar(@RequestParam(value = "id") Long id) { return comMngCarService.deleteComMngCar(id); } /** * 社区后台导入车辆 * @param list 车辆列表 * * @param list 车辆列表 * @param communityId 社区编号 * @return */ @PostMapping("/car/import") public R listSaveMngCarExcelVO(@RequestBody List<ComMngCarExcelVO> list, @RequestParam("communityId") Long communityId){ return comMngCarService.listSaveMngCarExcelVO(list,communityId); public R listSaveMngCarExcelVO(@RequestBody List<ComMngCarExcelVO> list, @RequestParam("communityId") Long communityId) { return comMngCarService.listSaveMngCarExcelVO(list, communityId); } /** * 社区后台实有单位管理列表 * * @param pageComMngRealCompanyDTO * @return */ @@ -117,6 +124,7 @@ /** * 社区后台添加修改实有单位 * * @param comMngRealCompanyVO * @return */ @@ -127,6 +135,7 @@ /** * 社区后台删除实有单位 * * @param id * @return */ @@ -144,30 +153,34 @@ public R belongsComMngRealCompany(@RequestBody ComMngRealCompanyBelongsDTO comMngRealCompanyBelongsDTO) { return comMngRealCompanyService.belongsComMngRealCompany(comMngRealCompanyBelongsDTO); } /** * 社区后台导入实有单位 * @param list 车实有单位列表 * * @param list 车实有单位列表 * @param communityId 社区编号 * @return */ @PostMapping("/company/import") public R listSaveMngRealCompanyExcelVO(@RequestBody List<ComMngRealCompanyExcelVO> list, @RequestParam("communityId") Long communityId){ return comMngRealCompanyService.listSaveMngRealCompanyExcelVO(list,communityId); public R listSaveMngRealCompanyExcelVO(@RequestBody List<ComMngRealCompanyExcelVO> list, @RequestParam("communityId") Long communityId) { return comMngRealCompanyService.listSaveMngRealCompanyExcelVO(list, communityId); } /** * 导出实有单位 * * @param exportRealCompanyExcelDTO 实有单位导出查询参数 * @return */ @PostMapping("/company/export") public R exportRealCompanyExcel(@RequestBody ExportRealCompanyExcelDTO exportRealCompanyExcelDTO ){ public R exportRealCompanyExcel(@RequestBody ExportRealCompanyExcelDTO exportRealCompanyExcelDTO) { return comMngRealCompanyService.exportRealCompanyExcel(exportRealCompanyExcelDTO); } /** * 社区后台实有资产管理列表 * * @param pageComMngRealAssetsDTO * @return */ @@ -178,6 +191,7 @@ /** * 社区后台添加修改实有资产 * * @param comMngRealAssetsVO * @return */ @@ -188,6 +202,7 @@ /** * 社区后台删除实有资产 * * @param id * @return */ @@ -203,27 +218,30 @@ /** * 社区后台导入实有资产 * @param list 车实有资产列表 * * @param list 车实有资产列表 * @param communityId 社区编号 * @return */ @PostMapping("/assets/import") public R listSaveMngRealAssetsExcelVO(@RequestBody List<ComMngRealAssetsExcelVO> list, @RequestParam("communityId") Long communityId){ return comMngRealAssetsService.listSaveMngRealAssetsExcelVO(list,communityId); public R listSaveMngRealAssetsExcelVO(@RequestBody List<ComMngRealAssetsExcelVO> list, @RequestParam("communityId") Long communityId) { return comMngRealAssetsService.listSaveMngRealAssetsExcelVO(list, communityId); } /** * 导出实有资产 * * @param exportRealAssetsExcelDTO 实有资产导出查询参数 * @return */ @PostMapping("/assets/export") public R exportRealAssetsExcel(@RequestBody ExportRealAssetsExcelDTO exportRealAssetsExcelDTO ){ public R exportRealAssetsExcel(@RequestBody ExportRealAssetsExcelDTO exportRealAssetsExcelDTO) { return comMngRealAssetsService.exportRealAssetsExcel(exportRealAssetsExcelDTO); } /** * 查询所有省份 * * @return */ @GetMapping("/province") @@ -233,38 +251,42 @@ /** * 查询省份下所有的城市 * * @param provinceAdcode * @return */ @GetMapping("/city") public R getCityByProvinceCode(@RequestParam(value = "provinceAdcode") Integer provinceAdcode){ public R getCityByProvinceCode(@RequestParam(value = "provinceAdcode") Integer provinceAdcode) { return comMngProvinceService.getCityByProvinceCode(provinceAdcode); } /** * 查询城市下所有的区县 * * @param cityAdcode * @return */ @GetMapping("/district") R getDistrictByCityCode(@RequestParam(value = "cityAdcode") Integer cityAdcode){ R getDistrictByCityCode(@RequestParam(value = "cityAdcode") Integer cityAdcode) { return comMngProvinceService.getDistrictByCityCode(cityAdcode); } /** * 查询特定省下所有区域 tree结构 * * @param provinceAdcode * @return */ @GetMapping("/area/all") R getCityTreeByProvinceCode(@RequestParam(value = "provinceAdcode") Integer provinceAdcode){ R getCityTreeByProvinceCode(@RequestParam(value = "provinceAdcode") Integer provinceAdcode) { return comMngProvinceService.getCityTreeByProvinceCode(provinceAdcode); } /** * 社区后台实有人口管理列表 * * @param comMngPopulationVO 查询参数 * @return 实有人口分页查询结果 * @return 实有人口分页查询结果 */ @PostMapping("/population/page") public R pagePopulation(@RequestBody ComMngPopulationDTO comMngPopulationVO) { @@ -273,32 +295,35 @@ /** * 社区后台导入实有人口 * @param list 数据 * * @param list 数据 * @param communityId 社区编号 * @return */ @PostMapping("/population/import") @Transactional(rollbackFor = Exception.class) public R listSavePopulationExcelVO(@RequestBody List<ComMngPopulationServeExcelVO> list, @RequestParam(value = "communityId") Long communityId) throws Exception{ return comMngPopulationService.listSavePopulation(list,communityId); public R listSavePopulationExcelVO(@RequestBody List<ComMngPopulationServeExcelVO> list, @RequestParam(value = "communityId") Long communityId) throws Exception { return comMngPopulationService.listSavePopulation(list, communityId); } /** * 确认导入实有人口(有则更新,无则新建) * @param list 用户信息 * @param communityId 社区id * @return 导入结果 * * @param list 用户信息 * @param communityId 社区id * @return 导入结果 */ @PostMapping("/population/import/confirm") @Transactional(rollbackFor = Exception.class) public R listSavePopulationConfirm(@RequestBody List<ComMngPopulationServeExcelVO> list, @RequestParam(value = "communityId") Long communityId){ return comMngPopulationService.listSavePopulationConfirm(list,communityId); public R listSavePopulationConfirm(@RequestBody List<ComMngPopulationServeExcelVO> list, @RequestParam(value = "communityId") Long communityId) { return comMngPopulationService.listSavePopulationConfirm(list, communityId); } /** * 根据实有人口id查询详情 * * @param populationId 实有人口id * @return 实有人口详情查询结果 * @return 实有人口详情查询结果 */ @PostMapping("/population/detail") public R detailPopulation(@RequestParam(value = "populationId") Long populationId) { @@ -307,8 +332,9 @@ /** * 查询实有人口电子档信息 * @param populationId 实有人口id * @return 实有人口电子档信息 * * @param populationId 实有人口id * @return 实有人口电子档信息 */ @PostMapping("/population/electronicArchives") public R electronicArchivesPopulation(@RequestParam(value = "populationId") Long populationId) { @@ -318,8 +344,9 @@ /** * 根据实有人口id修改标签列表 * * @param populationTagDTO 请求参数 * @return 修改结果 * @return 修改结果 */ @PostMapping("/population/editTag") public R editTagPopulation(@RequestBody ComMngPopulationTagDTO populationTagDTO) { @@ -327,9 +354,21 @@ } /** * 根据实有人口身份证修改标签列表 * * @param comMngPopulationTagCardNoDTO 请求参数 * @return 修改结果 */ @PostMapping("/cardNo/population/editTag") public R editTagPopulationByCardNo(@RequestBody ComMngPopulationTagCardNoDTO comMngPopulationTagCardNoDTO) { return comMngPopulationService.editTagPopulationByCardNo(comMngPopulationTagCardNoDTO); } /** * 批量删除实有人口 * @param Ids 删除id集合 * @return 删除结果 * * @param Ids 删除id集合 * @return 删除结果 */ @PostMapping("/population/delete") public R deletePopulations(@RequestBody List<Long> Ids) { @@ -338,8 +377,9 @@ /** * 根据社区id查询所有实有人口 * @param communityId 社区id * @return 查询结果 * * @param communityId 社区id * @return 查询结果 */ @PostMapping("/population/getAll") public R getPopulationListByCommunityId(@RequestParam(value = "communityId") Long communityId) { @@ -348,8 +388,9 @@ /** * 根据id集合查询实有人口 * @param Ids 实有人口id集合 * @return 查询结果 * * @param Ids 实有人口id集合 * @return 查询结果 */ @PostMapping("/population/getList") public R getPopulationLists(@RequestBody List<Long> Ids) { @@ -358,18 +399,20 @@ /** * 编辑实有人口 * * @param populationEditDTO * @return */ @PostMapping("/population/edit") R editPopulation(@RequestBody ComMngPopulationEditDTO populationEditDTO,@RequestParam("communityId") Long communityId) throws Exception{ R editPopulation(@RequestBody ComMngPopulationEditDTO populationEditDTO, @RequestParam("communityId") Long communityId) throws Exception { return comMngPopulationService.editPopulation(populationEditDTO, communityId); } /** * 分页查询特殊群体 * @param pageInputUserDTO 请求参数 * @return 特殊群体列表 * * @param pageInputUserDTO 请求参数 * @return 特殊群体列表 */ @PostMapping("/special/page") public R specialInputUser(@RequestBody PageInputUserDTO pageInputUserDTO) { @@ -378,28 +421,31 @@ /** * 删除特殊群体人员 * @param id 特殊群体id * @return 删除结果 * * @param id 特殊群体id * @return 删除结果 */ @PostMapping("/special/delete") public R deleteSpecialInputUser(@RequestParam(value = "id") Long id){ public R deleteSpecialInputUser(@RequestParam(value = "id") Long id) { return comMngPopulationService.deleteSpecialInputUser(id); } /** * 编辑实有人口_电子档案 * * @param userElectronicFileVO * @return */ @PostMapping("/population/edit/electronicArchives") R editPopulation(@RequestBody UserElectronicFileVO userElectronicFileVO){ R editPopulation(@RequestBody UserElectronicFileVO userElectronicFileVO) { return comMngPopulationService.editUserElectronicFile(userElectronicFileVO); } /** * 实有人口统计 * @param communityId 社区id * @return 统计结果 * * @param communityId 社区id * @return 统计结果 */ @PostMapping("/population/statistics") public R getPopulationTotalByAdmin(@RequestParam("communityId") Long communityId) { @@ -408,28 +454,31 @@ /** * 查询房屋级联菜单 * @param cascadeHouseDTO 请求参数 * @return 菜单列表 * * @param cascadeHouseDTO 请求参数 * @return 菜单列表 */ @PostMapping("/population/cascade/list") public R getCascadeHouseAddress(@RequestBody CascadeHouseDTO cascadeHouseDTO){ public R getCascadeHouseAddress(@RequestBody CascadeHouseDTO cascadeHouseDTO) { return comMngPopulationHouseService.getCascadeHouseAddress(cascadeHouseDTO); } /** * 分页查询房屋列表 * @param populationHouseAdminDTO 请求参数 * @return 房屋列表 * * @param populationHouseAdminDTO 请求参数 * @return 房屋列表 */ @PostMapping("/population/page/house") public R getPageHouse(@RequestBody ComMngPopulationHouseAdminDTO populationHouseAdminDTO){ public R getPageHouse(@RequestBody ComMngPopulationHouseAdminDTO populationHouseAdminDTO) { return comMngPopulationHouseService.getPageHouse(populationHouseAdminDTO); } /** * 根据id查询实有房屋信息 * @param houseId 房屋id * @return 房屋信息 * * @param houseId 房屋id * @return 房屋信息 */ @PostMapping("/population/house/detail") public R getHouseDetail(@RequestParam(value = "houseId") Long houseId) { @@ -438,8 +487,9 @@ /** * 编辑实有房屋信息 * * @param houseEditAdminDTO 请求参数 * @return 编辑结果 * @return 编辑结果 */ @PostMapping("/population/house/edit") public R editHouse(@RequestBody ComMngPopulationHouseEditAdminDTO houseEditAdminDTO) { @@ -448,18 +498,20 @@ /** * 根据房屋id列表删除房屋信息 * @param Ids 请求参数 * @return 删除结果 * * @param Ids 请求参数 * @return 删除结果 */ @PostMapping("/population/house/delete") public R deleteHouses(@RequestBody List<Long> Ids){ public R deleteHouses(@RequestBody List<Long> Ids) { return comMngPopulationHouseService.deleteHouses(Ids); } /** * 实有房屋统计 * @param communityId 社区id * @return 统计结果 * * @param communityId 社区id * @return 统计结果 */ @PostMapping("/population/house/statistics") public R getHouseTotalByAdmin(@RequestParam("communityId") Long communityId) { @@ -468,8 +520,9 @@ /** * 根据社区id查询社区所有省市区 * @param communityId 社区id * @return 社区所在省市区 * * @param communityId 社区id * @return 社区所在省市区 */ @PostMapping("/village/getRegion") public R getRegion(@RequestParam("communityId") Long communityId) { @@ -478,8 +531,9 @@ /** * 统计社区内小区数量 * @param communityId 社区id * @return 统计小区数量 * * @param communityId 社区id * @return 统计小区数量 */ @PostMapping("/village/statistics") public R villageStatistics(@RequestParam("communityId") Long communityId) { springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/MainMemberApi.java
New file @@ -0,0 +1,53 @@ package com.panzhihua.service_community.api; import com.panzhihua.common.model.dtos.community.KeyPersonInfoDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.utlis.CopyUtil; import com.panzhihua.common.utlis.ValidableList; import com.panzhihua.service_community.model.dos.KeyPersonInfoDO; 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; import java.util.ArrayList; import java.util.List; /** * program 攀枝花智慧社区项目 * description 特殊人群管理API * * @author manailin * Date 2021-01-22 15:30 **/ @Slf4j @RestController @RequestMapping("/") public class MainMemberApi { @Resource private KeyPersonInfoService keyPersonInfoService; /** * description 批量保存重点人群人员信息 * * @param list 重点人群信息 * @return R 保存结果 * @author manailin * @date 2021/6/10 17:00 */ @PostMapping("/key_person/batch/save") public R BatchSave(@RequestBody @Valid ValidableList<KeyPersonInfoDTO> list, @ApiIgnore BindingResult results) { if (results.hasErrors()) { return R.fail(results.getFieldError().getDefaultMessage()); } return keyPersonInfoService.saveBatchKeyPerson(list); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/GridBuildRelationDAO.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.GridBuildRelationDO; import org.apache.ibatis.annotations.Mapper; /** * program 攀枝花智慧社区项目 * description 特殊人群管理API * * @author manailin * Date 2021-01-22 15:30 **/ @Mapper public interface GridBuildRelationDAO extends BaseMapper<GridBuildRelationDO> { } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/KeyPersonInfoDAO.java
New file @@ -0,0 +1,18 @@ package com.panzhihua.service_community.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.panzhihua.common.model.dtos.community.KeyPersonInfoDTO; import com.panzhihua.service_community.model.dos.ComActActPrizeDO; import com.panzhihua.service_community.model.dos.KeyPersonInfoDO; import org.apache.ibatis.annotations.Mapper; /** * program 攀枝花智慧社区项目 * description 特殊人群管理API * * @author manailin * Date 2021-01-22 15:30 **/ @Mapper public interface KeyPersonInfoDAO extends BaseMapper<KeyPersonInfoDO> { } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDO.java
@@ -79,6 +79,16 @@ */ private String contactsPhone; /**社区总人口*/ private Integer totalUser; /**社区书记-用户ID*/ private Long managerId; /**社区书记_名称*/ private String managerName; /**社区介绍*/ private String introduce; /**层次递归字段(省>市>区县>街道>社区)*/ private String path; /** * 超管账号 */ springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngBuildingDO.java
@@ -119,6 +119,5 @@ */ private String remark; private Long gridId; private String gridId; } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVillageDO.java
@@ -17,7 +17,7 @@ /** * villageId */ @TableId(type = IdType.AUTO) @TableId(value = "village_id",type = IdType.INPUT) private Long villageId; /** * 街路巷 @@ -54,10 +54,30 @@ */ private Integer type; /** * 小区地址 */ /**(城镇)小区名字*/ private String name; /**如果是城镇小区填写楼栋数量 */ private Integer buildSum; /**(城镇)建筑年代*/ private Date buildYear; /**(城镇)建筑类型*/ private Long buildType; /**(城镇)是否存在物业公司*/ private String property; /**(城镇)开发商*/ private String developers; /**(城镇)小区总共居民数量/这户一共住了几口人*/ private Integer userSum; /**图片*/ private String villageImages; /**地址*/ private String address; /**层次递归字段(省>市>区县>街道>社区>小区)*/ private String path; /**经度*/ private String lng; /**维度*/ private String lat; /** * 更新时间 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/GridBuildRelationDO.java
New file @@ -0,0 +1,42 @@ package com.panzhihua.service_community.model.dos; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; import java.util.Date; /** * Description 网格和建筑或楼栋关联表 * ClassName GridBuildRelation * @author manailin */ @Data @TableName(value = "event_grid_building_relation") public class GridBuildRelationDO implements Serializable { private static final long serialVersionUID = 1L; /**主键*/ @TableId(value = "id",type = IdType.INPUT) private Long id; /**网格所属街道*/ private Long gridStreetId; /**网格所属社区ID*/ private Long gridCommunityId; /**网格ID*/ private Long gridId; /**网格名称*/ private String gridName; /**小区类型(1.城镇 2.农村 3.未知)*/ private Integer type; /**小区表ID*/ private Long villageId; /**楼栋ID*/ private Long buildId; private String buildName; /**创建人*/ private Long createBy; /**创建时间*/ private Date createAt; } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/KeyPersonInfoDO.java
New file @@ -0,0 +1,143 @@ package com.panzhihua.service_community.model.dos; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; import java.util.Date; /** * Description 重点人员信息 * ClassName KeyPersonInfo * * @author manailin */ @Data @TableName("com_key_person_info") public class KeyPersonInfoDO implements Serializable { private static final long serialVersionUID = 1L; /** * 主键 */ @TableId(value = "id",type = IdType.INPUT) private Long id; /** * 街道id */ private Long streetId; /** * 姓名 */ private String name; /** * 性别(取字典表国家编码) */ private String sex; /** * 性别名称 */ private String sexName; /** * 身份证号码 */ private String cardNo; /** * 联系方式 */ private String phone; /** * 民族 */ private String nation; /** * 户口所在地 */ private String censusRegister; /** * 居住地址 */ private String address; /** * 地址精度纬度信息(逗号隔开) */ private String visiterAddressLatLng; /** * 人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员 */ private Integer visiterType; /** * (法轮功类填写)基本情况 */ private String basicInfo; /** * 是否有效 */ private Boolean invalid; /** * 备注 */ private String note; /** * 文化程度(取字典表国家编码)) */ private String cultureLevel; /** * 经济状态 */ private String economicLevel; /** * 修改人 */ private Long updateBy; /** * 修改时间 */ private Date updateAt; /** * 创建人 */ private Long createBy; /** * (精神类人群填写)目前诊断 */ private String diagnose; /** * 上报提交时间 */ private Date submitDate; /** * (精神类人群填写)监护人名称 */ private String guardian; /** * (精神类人群填写)监护人电话 */ private String guardianPhone; /** * (精神类人群填写)监护人关系 */ private String guardianRelation; /** * 创建时间 */ private Date createAt; /** * 社区id */ private Long actId; /** * 小区id(实有房屋id) */ private Long villageId; /** * 用户ID */ private Long userId; } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java
@@ -2,13 +2,14 @@ import com.panzhihua.common.model.dtos.community.ComMngPopulationDTO; import com.panzhihua.common.model.dtos.community.ComMngPopulationEditDTO; import com.panzhihua.common.model.dtos.community.ComMngPopulationTagCardNoDTO; import com.panzhihua.common.model.dtos.community.ComMngPopulationTagDTO; import com.panzhihua.common.model.dtos.user.PageInputUserDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComMngPopulationServeExcelVO; import com.panzhihua.common.model.vos.community.ComMngPopulationVO; import com.panzhihua.common.model.vos.community.EditComMngPopulationVO; import com.panzhihua.common.model.vos.user.UserElectronicFileVO; import com.panzhihua.service_community.model.dos.ComMngPopulationDO; import java.util.List; @@ -18,41 +19,54 @@ public interface ComMngPopulationService { /** * 新增实有人口 * * @param comMngPopulationVO 实有人口信息 * @return 新增结果 */ R addPopulation(ComMngPopulationVO comMngPopulationVO); /** * 编辑实有人口 * * @param comMngPopulationVO 编辑内容 * @return 编辑结果 */ R putPopulation(ComMngPopulationVO comMngPopulationVO); /** * 查询实有人口 * @param comMngPopulationVO 请求参数 * * @param comMngPopulationVO 请求参数 * @return 实有人口集合 */ R listPopulation(ComMngPopulationDTO comMngPopulationVO); /** * 实有人口详情 * * @param populationId 实有人口id * @return 实有人口详情 */ R detailPopulation(Long populationId); /** * 分页查询实有人口 * * @param comMngPopulationVO 查询参数 * @return 分页集合 */ R pagePopulation(ComMngPopulationDTO comMngPopulationVO); /** * 查询平台所有的实有人口 * * @return 实有人口集合 按照创建顺序倒序排列 */ R listPopulationAll(); /** * 删除实有人口 * * @param populationId 实有人口id * @return 删除结果 */ @@ -60,6 +74,7 @@ /** * 导入实有人口 * * @param list * @param communityId * @return @@ -68,42 +83,48 @@ /** * 确认导入实有人口(有则更新,无则新建) * @param list 用户信息 * @param communityId 社区id * @return 导入结果 * * @param list 用户信息 * @param communityId 社区id * @return 导入结果 */ R listSavePopulationConfirm(List<ComMngPopulationServeExcelVO> list, Long communityId); /** * 根据实有人口id修改用户标签 * @param populationTagDTO 请求参数 * @return 修改结果 * * @param populationTagDTO 请求参数 * @return 修改结果 */ R editTagPopulation(ComMngPopulationTagDTO populationTagDTO); /** * 批量删除实有人口 * * @param Ids 实有人口id集合 * @return 删除结果 * @param Ids 实有人口id集合 * @return 删除结果 */ R deletePopulations(List<Long> Ids); /** * 根据社区id查询所有实有人口 * @param communityId 社区id * @return 查询结果 * * @param communityId 社区id * @return 查询结果 */ R getPopulationListByCommunityId(Long communityId); /** * 根据id集合查询实有人口 * @param Ids 实有人口id集合 * @return 查询结果 * * @param Ids 实有人口id集合 * @return 查询结果 */ R getPopulationLists(List<Long> Ids); /** * 编辑实有人口 * * @param populationEditDTO * @param communityId * @return @@ -112,27 +133,31 @@ /** * 分页查询特殊群体 * @param pageInputUserDTO 请求参数 * @return 特殊群体列表 * * @param pageInputUserDTO 请求参数 * @return 特殊群体列表 */ R specialInputUser(PageInputUserDTO pageInputUserDTO); /** * 删除特殊群体人员 * @param id 特殊群体id * @return 删除结果 * * @param id 特殊群体id * @return 删除结果 */ R deleteSpecialInputUser(Long id); /** * 查询实有人口电子档信息 * @param populationId 实有人口id * @return 实有人口电子档信息 * * @param populationId 实有人口id * @return 实有人口电子档信息 */ R electronicArchivesPopulation(Long populationId); /** * 编辑电子档案 * * @param userElectronicFileVO * @return */ @@ -140,8 +165,29 @@ /** * 实有人口统计 * @param communityId 社区id * @return 统计结果 * * @param communityId 社区id * @return 统计结果 */ R getPopulationTotalByAdmin(Long communityId); /** * description 根据身份证信息修改用户标签信息 * * @param comMngPopulationTagCardNoDTO 查询对象 * @return ComMngPopulationDO 实有人口信息 * @author manailin * @date 2021/6/10 17:00 */ R editTagPopulationByCardNo(ComMngPopulationTagCardNoDTO comMngPopulationTagCardNoDTO); /** * description 根据身份证信息从实有人口表查询对应信息 * * @param cardNo 身份证号码 * @return ComMngPopulationDO 实有人口信息 * @author manailin * @date 2021/6/10 17:00 */ ComMngPopulationDO getPopulationByCardNo(String cardNo); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/GridBuildRelationService.java
New file @@ -0,0 +1,27 @@ package com.panzhihua.service_community.service; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.common.model.vos.R; import com.panzhihua.service_community.model.dos.GridBuildRelationDO; import java.util.List; /** * program 攀枝花智慧社区项目 * description 网格和小区楼栋和建筑的关系表管理API * * @author manailin * Date 2021-01-22 15:30 **/ public interface GridBuildRelationService extends IService<GridBuildRelationDO> { /** * description 批量保存网格和小区楼栋和建筑的关系 * * @param keyList 网格和小区楼栋和建筑的关系信息 * @return R 保存结果 * @author manailin * @date 2021/6/10 17:00 */ R saveBatchGridBuildRelation(List<GridBuildRelationDO> keyList); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/KeyPersonInfoService.java
New file @@ -0,0 +1,28 @@ package com.panzhihua.service_community.service; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.common.model.dtos.community.KeyPersonInfoDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.service_community.model.dos.KeyPersonInfoDO; import java.util.List; /** * program 攀枝花智慧社区项目 * description 特殊人群管理API * * @author manailin * Date 2021-01-22 15:30 **/ public interface KeyPersonInfoService extends IService<KeyPersonInfoDO> { /** * description 批量保存重点人群人员信息 * * @param keyList 重点人群信息 * @return R 保存结果 * @author manailin * @date 2021/6/10 17:00 */ R saveBatchKeyPerson(List<KeyPersonInfoDTO> keyList); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java
@@ -5,19 +5,23 @@ import com.google.common.collect.Lists; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComMngBuildingExcelVO; import com.panzhihua.common.model.vos.community.ComMngPopulationImportErrorVO; import com.panzhihua.common.utlis.Snowflake; import com.panzhihua.service_community.dao.ComActDAO; import com.panzhihua.service_community.dao.ComActVillageDAO; import com.panzhihua.service_community.dao.ComMngBuildingDAO; import com.panzhihua.service_community.model.dos.ComActDO; import com.panzhihua.service_community.model.dos.ComMngBuildingDO; import com.panzhihua.service_community.model.dos.ComMngVillageDO; import com.panzhihua.service_community.model.dos.GridBuildRelationDO; import com.panzhihua.service_community.service.ComActBuildingService; import com.panzhihua.service_community.service.GridBuildRelationService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * @author xyh @@ -30,18 +34,21 @@ private ComActVillageDAO comActVillageDAO; @Resource private ComActDAO comActDAO; @Resource private GridBuildRelationService gridBuildRelationService; @Override public R batchSaveBuilding(List<ComMngBuildingExcelVO> newVoList, Long communityId, Long streetId) { ArrayList<ComMngBuildingDO> list = Lists.newArrayList(); for(ComMngBuildingExcelVO vo:newVoList){ List<GridBuildRelationDO> keyList = new ArrayList<>(); for (ComMngBuildingExcelVO vo : newVoList) { ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(new QueryWrapper<ComMngVillageDO>().eq("alley",vo.getAlley()).eq("house_num",vo.getDoorNo()).eq("community_id",communityId)); if(comMngVillageDO == null){ ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(new QueryWrapper<ComMngVillageDO>().eq("alley", vo.getAlley()).eq("house_num", vo.getDoorNo()).eq("community_id", communityId)); if (comMngVillageDO == null) { continue; } ComMngBuildingDO comMngBuildingDO = new ComMngBuildingDO(); BeanUtils.copyProperties(vo,comMngBuildingDO); BeanUtils.copyProperties(vo, comMngBuildingDO); comMngBuildingDO.setActId(comMngVillageDO.getCommunityId()); comMngBuildingDO.setStreetId(comMngVillageDO.getStreetId()); comMngBuildingDO.setVillageId(comMngVillageDO.getVillageId()); @@ -49,11 +56,30 @@ StringBuilder path = new StringBuilder(); path.append(vo.getAlley()).append(">").append(actDO.getName()).append(vo.getVillageName()).append(">").append(vo.getName()); comMngBuildingDO.setPath(path.toString()); comMngBuildingDO.setGridId(null); comMngBuildingDO.setGridId(vo.getGridId()); list.add(comMngBuildingDO); GridBuildRelationDO gridBuildRelation = getGridBuildRelationDO(communityId, streetId, vo, comMngBuildingDO); keyList.add(gridBuildRelation); } gridBuildRelationService.saveBatchGridBuildRelation(keyList); this.saveBatch(list); return R.ok(); } public GridBuildRelationDO getGridBuildRelationDO(Long communityId, Long streetId, ComMngBuildingExcelVO vo, ComMngBuildingDO comMngBuildingDO) { GridBuildRelationDO gridBuildRelation = new GridBuildRelationDO(); gridBuildRelation.setId(Snowflake.getId()); gridBuildRelation.setBuildId(comMngBuildingDO.getId()); gridBuildRelation.setBuildName(comMngBuildingDO.getPath()); gridBuildRelation.setVillageId(comMngBuildingDO.getVillageId()); gridBuildRelation.setGridCommunityId(communityId); gridBuildRelation.setGridStreetId(streetId); if (vo.getGridId() != null) { gridBuildRelation.setGridId(Long.valueOf(vo.getGridId())); } gridBuildRelation.setGridName(vo.getGridName()); gridBuildRelation.setType(1); gridBuildRelation.setCreateAt(new Date()); return gridBuildRelation; } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
@@ -798,8 +798,41 @@ return R.ok(this.baseMapper.getPopulationTotalByAdmin(communityId)); } public static void main(String[] args) { // List<ComMngPopulationHouseUserDO> distinctClass = populationHouseUserDOList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getPopulId() + ";" + o.getHouseId() + ";" + o.getId() + ";" + o.getRelation()))), ArrayList::new)); @Override public R editTagPopulationByCardNo(ComMngPopulationTagCardNoDTO comMngPopulationTagCardNoDTO) { ComMngPopulationDO comMngPopulationDO = getPopulationByCardNo(comMngPopulationTagCardNoDTO.getCardNo()); if (comMngPopulationDO == null) { return R.fail("未查询到人口记录"); } ComMngPopulationDO comMngPopulation = new ComMngPopulationDO(); if(comMngPopulationDO.getLabel()!=null) { if(!comMngPopulationDO.getLabel().contains(comMngPopulationTagCardNoDTO.getLabel())) { comMngPopulation.setLabel(comMngPopulationTagCardNoDTO.getLabel().concat(",").concat(comMngPopulationDO.getLabel())); } }else{ comMngPopulation.setLabel(comMngPopulationTagCardNoDTO.getLabel()); } comMngPopulation.setCardNo(null); comMngPopulation.setId(comMngPopulationDO.getId()); int nub = populationDAO.updateById(comMngPopulation); if (nub < 1) { return R.fail(); } return R.ok(); } @Override public ComMngPopulationDO getPopulationByCardNo(String cardNo) { try { String aesCardNo = AESUtil.encrypt128(cardNo, aesKey); return baseMapper.selectOne( new QueryWrapper<ComMngPopulationDO>() .eq("card_no",aesCardNo) ); } catch (Exception e) { log.error("根据身份证查询业务-加密证件信息出错"); } return null; } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVillageServiceImpl.java
@@ -187,6 +187,10 @@ BeanUtils.copyProperties(vo, comMngVillageDO); comMngVillageDO.setCommunityId(comActDO.getCommunityId()); comMngVillageDO.setStreetId(comActDO.getStreetId()); StringBuilder path = new StringBuilder(); path.append(vo.getAlley()).append(">").append(vo.getHouseNum()).append(">").append(vo.getGroupAt()); comMngVillageDO.setPath(path.toString()); comMngVillageDO.setUpdateAt(new Date()); comMngVillageDOS.add(comMngVillageDO); }); this.saveBatch(comMngVillageDOS); springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/GridBuildRelationServiceImpl.java
New file @@ -0,0 +1,66 @@ 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.vos.R; import com.panzhihua.service_community.dao.GridBuildRelationDAO; import com.panzhihua.service_community.model.dos.GridBuildRelationDO; import com.panzhihua.service_community.service.GridBuildRelationService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * program 攀枝花智慧社区项目 * description 特殊人群管理API * * @author manailin * Date 2021-01-22 15:30 **/ @Service public class GridBuildRelationServiceImpl extends ServiceImpl<GridBuildRelationDAO, GridBuildRelationDO> implements GridBuildRelationService { /** * description 批量保存重点人群人员信息 * 处理逻辑:同一个人的信息可以被多个社区重复录入 * 一个人的信息如果被同一个社区重复导入。以最新的导入数据为准。将之前的数据进行更新操作。 * * @param keyList 重点人群信息 * @return R 保存结果 * @author manailin * @date 2021/6/10 17:00 */ @Override @Transactional(rollbackFor = Exception.class) public R saveBatchGridBuildRelation(List<GridBuildRelationDO> keyList) { keyList.forEach(keyPersonInfoDTO -> { GridBuildRelationDO dbKeyPerson = checkExistFromDb(keyPersonInfoDTO); if (dbKeyPerson != null) { //已经存在数据,进行数据更新操作 GridBuildRelationDO keyPersonInfoDO = new GridBuildRelationDO(); BeanUtils.copyProperties(keyPersonInfoDTO, keyPersonInfoDO); keyPersonInfoDO.setId(dbKeyPerson.getId()); updateById(keyPersonInfoDO); } else { GridBuildRelationDO keyPersonInfoDO = new GridBuildRelationDO(); BeanUtils.copyProperties(keyPersonInfoDTO, keyPersonInfoDO); save(keyPersonInfoDO); } }); return R.ok(); } private GridBuildRelationDO checkExistFromDb(GridBuildRelationDO gridBuildRelationDO) { return baseMapper.selectOne( new QueryWrapper<GridBuildRelationDO>() .eq("grid_community_id", gridBuildRelationDO.getGridCommunityId()) .eq("grid_id", gridBuildRelationDO.getGridId()) .eq("village_id", gridBuildRelationDO.getVillageId()) .eq("build_id", gridBuildRelationDO.getBuildId()) ); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/KeyPersonInfoServiceImpl.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.enums.KeyPersonLabelEnum; import com.panzhihua.common.model.dtos.community.ComMngPopulationTagCardNoDTO; import com.panzhihua.common.model.dtos.community.KeyPersonInfoDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.service_community.dao.KeyPersonInfoDAO; import com.panzhihua.service_community.model.dos.KeyPersonInfoDO; import com.panzhihua.service_community.service.ComMngPopulationService; import com.panzhihua.service_community.service.KeyPersonInfoService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.List; /** * program 攀枝花智慧社区项目 * description 特殊人群管理API * * @author manailin * Date 2021-01-22 15:30 **/ @Service public class KeyPersonInfoServiceImpl extends ServiceImpl<KeyPersonInfoDAO, KeyPersonInfoDO> implements KeyPersonInfoService { @Resource private ComMngPopulationService comMngPopulationService; /** * description 批量保存重点人群人员信息 * 处理逻辑:同一个人的信息可以被多个社区重复录入 * 一个人的信息如果被同一个社区重复导入。以最新的导入数据为准。将之前的数据进行更新操作。 * * @param list 重点人群信息 * @return R 保存结果 * @author manailin * @date 2021/6/10 17:00 */ @Override @Transactional(rollbackFor = Exception.class) public R saveBatchKeyPerson(List<KeyPersonInfoDTO> list) { list.forEach(keyPersonInfoDTO -> { KeyPersonInfoDO dbKeyPerson = checkExistFromDb(keyPersonInfoDTO); if (dbKeyPerson != null) { //已经存在数据,进行数据更新操作 KeyPersonInfoDO keyPersonInfoDO = new KeyPersonInfoDO(); BeanUtils.copyProperties(keyPersonInfoDTO, keyPersonInfoDO); keyPersonInfoDO.setId(dbKeyPerson.getId()); ComMngPopulationTagCardNoDTO comMngPopulationTagCardNoDTO = new ComMngPopulationTagCardNoDTO(); comMngPopulationTagCardNoDTO.setCardNo(dbKeyPerson.getCardNo()); comMngPopulationTagCardNoDTO.setLabel(calculateLabel(dbKeyPerson)); comMngPopulationService.editTagPopulationByCardNo(comMngPopulationTagCardNoDTO); updateById(keyPersonInfoDO); } else { KeyPersonInfoDO keyPersonInfoDO = new KeyPersonInfoDO(); BeanUtils.copyProperties(keyPersonInfoDTO, keyPersonInfoDO); save(keyPersonInfoDO); } }); return R.ok(); } private String calculateLabel(KeyPersonInfoDO dbKeyPerson) { switch (dbKeyPerson.getVisiterType()) { case 1: return KeyPersonLabelEnum.XD.getName(); case 2: return KeyPersonLabelEnum.ZJ.getName(); case 3: return KeyPersonLabelEnum.XJ.getName(); case 4: return KeyPersonLabelEnum.QT.getName(); default: return ""; } } private KeyPersonInfoDO checkExistFromDb(KeyPersonInfoDTO keyPersonInfoDTO) { return baseMapper.selectOne( new QueryWrapper<KeyPersonInfoDO>() .eq("act_id", keyPersonInfoDTO.getActId()) .eq("card_no", keyPersonInfoDTO.getCardNo()) .eq("visiter_type", keyPersonInfoDTO.getVisiterType()) ); } }