From 83523ed477f0b416965c0e6138c8df5e6752cf1a Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Thu, 19 May 2022 17:40:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=85=E6=B0=91=E4=BF=A1=E6=81=AF=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=EF=BC=9A=E5=B0=86=E8=A1=A8=E6=89=B9=E9=87=8F=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E7=9A=84=E9=98=88=E5=80=BC=E6=94=B9=E4=B8=BA200?= =?UTF-8?q?=EF=BC=9B=E5=AF=B9=E5=BF=97=E6=84=BF=E8=80=85=E5=8F=91=E9=80=81?= =?UTF-8?q?volunteer=5Fchanged=20MQ=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IcResiImportDynamicExcelListener.java | 43 ++++++++++++------- .../impl/IcResiUserImportServiceImpl.java | 34 ++++++++------- 2 files changed, 47 insertions(+), 30 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiImportDynamicExcelListener.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiImportDynamicExcelListener.java index 427e70f0a3..2e98774f6e 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiImportDynamicExcelListener.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiImportDynamicExcelListener.java @@ -2,10 +2,19 @@ package com.epmet.excel.handler; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; +import com.epmet.commons.tools.constant.AppClientConstant; +import com.epmet.commons.tools.dto.form.mq.MqBaseFormDTO; +import com.epmet.commons.tools.utils.EpmetRequestHolder; +import com.epmet.commons.tools.utils.SpringContextUtils; +import com.epmet.constant.SystemMessageType; import com.epmet.dto.result.FormItemResult; +import com.epmet.enums.IcResiUserTableEnum; +import com.epmet.feign.EpmetMessageOpenFeignClient; +import com.epmet.send.SendMqMsgUtil; import com.epmet.service.impl.IcResiUserImportServiceImpl; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.HashMap; @@ -22,7 +31,7 @@ public class IcResiImportDynamicExcelListener extends AnalysisEventListener formItemList, Integer headRowNumber) { + String currUserAgencyPids, Boolean isPrimary, + List formItemList, IcResiUserTableEnum sheetEnumObject) { this.customerId = customerId; this.icResiUserImportService = icResiUserImportService; @@ -101,8 +105,7 @@ public class IcResiImportDynamicExcelListener extends AnalysisEventListener headMap, AnalysisContext context) { headList.add(headMap); - if (headList.size() < headRowNumber) { + if (headList.size() < sheetEnumObject.getHeadRowNo()) { return; } @@ -180,9 +183,19 @@ public class IcResiImportDynamicExcelListener extends AnalysisEventListener successIdCards = icResiUserImportService.persistIcResiExtraInfo(itemIdAndColumnWrapper, dataList, currUserAgencyId, abandonedHeaders, currentUserId, sheetEnumObject.getTableName(), customerId); + + // 对于志愿者,发送一个mq消息,对端监听器会对志愿者做相应处理 + if (sheetEnumObject == IcResiUserTableEnum.IC_VOLUNTEER && !CollectionUtils.isEmpty(successIdCards)) { + MqBaseFormDTO msg = new MqBaseFormDTO(); + msg.setCustomerId(EpmetRequestHolder.getHeader(AppClientConstant.CUSTOMER_ID)); + msg.setObjectIdList(successIdCards); + SendMqMsgUtil.build() + .openFeignClient(SpringContextUtils.getBean(EpmetMessageOpenFeignClient.class)) + .sendRocketMqMsg(SystemMessageType.VOLUNTEER_CHANGED, msg); + } } dataList.clear(); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index b9e5f9c098..4fcaee8202 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java @@ -259,8 +259,8 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res // 上传主表信息 log.info("======开始导入基础信息======="); - importIcResiBaseInfoFromExcel(formItemList,excelPathName, IcResiUserTableEnum.IC_RESI_USER.getSheetNo(), IcResiUserTableEnum.IC_RESI_USER.getHeadRowNo(), - currUserAgencyId, agencyInfo.getPids(), loginUserId, IcResiUserTableEnum.IC_RESI_USER.getTableName(), customerId); + importIcResiBaseInfoFromExcel(formItemList,excelPathName, IcResiUserTableEnum.IC_RESI_USER, + currUserAgencyId, agencyInfo.getPids(), loginUserId, customerId); // 上传附表信息 for (IcResiUserTableEnum sheet : IcResiUserTableEnum.values()) { @@ -379,24 +379,21 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res * excel导入居民基本信息 * * @param formItemList - * @param sheetNo - * @param headRowNumber * @param currUserAgencyId * @param currUserAgencyPids * @param currentUserId * @return */ - private void importIcResiBaseInfoFromExcel(List formItemList, String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currUserAgencyPids, String currentUserId, - String tableName, String customerId) { - - String loginUserApp = EpmetRequestHolder.getHeader(AppClientConstant.APP); - String loginUserClient = EpmetRequestHolder.getHeader(AppClientConstant.CLIENT); - String loginUserId = EpmetRequestHolder.getHeader(AppClientConstant.USER_ID.toLowerCase()); - String loginUserCustomerId = EpmetRequestHolder.getHeader(AppClientConstant.CUSTOMER_ID.toLowerCase()); + private void importIcResiBaseInfoFromExcel(List formItemList, String excelPathName, IcResiUserTableEnum sheetTableEnum, String currUserAgencyId, String currUserAgencyPids, String currentUserId, + String customerId) { IcResiImportDynamicExcelListener readListener = new IcResiImportDynamicExcelListener(this, customerId, currentUserId, currUserAgencyId, currUserAgencyPids, - true, tableName, formItemList, headRowNumber); - EasyExcel.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead(); + true, formItemList, sheetTableEnum); + EasyExcel.read(new File(excelPathName)) + .registerReadListener(readListener) + .headRowNumber(sheetTableEnum.getHeadRowNo()) + .sheet(sheetTableEnum.getTableComment()) + .doRead(); } /** @@ -416,7 +413,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res if (sheetEnumObject.isExistsDBTable()) { IcResiImportDynamicExcelListener readListener = new IcResiImportDynamicExcelListener( this, customerId, currentUserId, currUserAgencyId, null, - false, sheetEnumObject.getTableName(), formItemList, sheetEnumObject.getHeadRowNo()); + false, formItemList, sheetEnumObject); EasyExcelFactory.read(new File(excelPathName)) .registerReadListener(readListener) @@ -650,7 +647,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res * @param checkBoxOptionColumnIdxAndLabel 复选框的列号&label中文 * @param targetTableName 要插入到哪一个表 */ - public void persistIcResiExtraInfo(Map headerColumnWrapper, List> dataRows, + public List persistIcResiExtraInfo(Map headerColumnWrapper, List> dataRows, String currUserAgencyId, Map checkBoxOptionColumnIdxAndLabel, String currentUserId, String targetTableName, String customerId) { @@ -658,6 +655,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res String loginUserCustomerId = EpmetRequestHolder.getHeader(AppClientConstant.CUSTOMER_ID.toLowerCase()); + // 成功处理的数据的身份证号 + List successIdCards = new ArrayList<>(); + // 遍历每一行,将行内容转化为 for (Map row : dataRows) { @@ -711,6 +711,8 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res Objects.requireNonNull(IcResiUserTableEnum.getObjectByTableName(targetTableName)).getMainTableFlagColumnName(), existResiInfoMap); + // 将成功的居民的身份证号添加到列表中 + successIdCards.add(row.get(ID_CARD_COLUMN_NO)); } catch (Exception e) { String errorMsg; if (e instanceof RenException || e instanceof EpmetException) { @@ -730,6 +732,8 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res columnAndValues.clear(); } } + + return successIdCards; } /**