forked from rongchao/epmet-cloud-rizhao
8 changed files with 688 additions and 9 deletions
@ -0,0 +1,82 @@ |
|||
package com.epmet.modules.partymember.excel; |
|||
|
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import com.alibaba.excel.annotation.write.style.ColumnWidth; |
|||
import lombok.Data; |
|||
import org.hibernate.validator.constraints.Length; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 核酸检测信息导入excel数据 |
|||
* @author Administrator |
|||
*/ |
|||
@Data |
|||
public class IcPartyMemberImportExcel { |
|||
|
|||
@NotBlank(message = "所属党组织为必填项") |
|||
@ExcelProperty("所属党组织") |
|||
private String sszb; |
|||
|
|||
@NotBlank(message = "姓名为必填项") |
|||
@ExcelProperty("姓名") |
|||
private String name; |
|||
|
|||
@NotBlank(message = "手机号为必填项") |
|||
@ExcelProperty("手机号") |
|||
@Length(max = 15, message = "手机号长度不正确,应小于15位") |
|||
private String mobile; |
|||
|
|||
@NotBlank(message = "身份证号为必填项") |
|||
@ExcelProperty("身份证号") |
|||
@Length(max = 18, message = "身份证号长度不正确,应小于18位") |
|||
private String idCard; |
|||
|
|||
@ExcelProperty("地址") |
|||
private Date address; |
|||
|
|||
@ExcelProperty("入党时间") |
|||
private String rdsj; |
|||
|
|||
@ExcelProperty("流动党员") |
|||
private String isLd; |
|||
|
|||
@ExcelProperty("流动党员证号") |
|||
private String ldzh; |
|||
|
|||
@ExcelProperty("党员中心户") |
|||
private String isDyzxh; |
|||
|
|||
@ExcelProperty("免学习") |
|||
private String isMxx; |
|||
|
|||
@ExcelProperty("职务") |
|||
private String partyZw; |
|||
|
|||
@ExcelProperty("文化程度") |
|||
private String culture; |
|||
|
|||
@ExcelProperty("备注") |
|||
private String remark; |
|||
|
|||
@Data |
|||
public static class RowRemarkMessage { |
|||
|
|||
@ExcelProperty("姓名") |
|||
@ColumnWidth(20) |
|||
private String name; |
|||
|
|||
@ExcelProperty("手机号") |
|||
@ColumnWidth(20) |
|||
private String mobile; |
|||
|
|||
@ColumnWidth(20) |
|||
@ExcelProperty("身份证号") |
|||
private String idCard; |
|||
|
|||
@ColumnWidth(60) |
|||
@ExcelProperty("错误信息") |
|||
private String errorInfo; |
|||
} |
|||
} |
@ -0,0 +1,130 @@ |
|||
package com.epmet.modules.partymember.excel.handler; |
|||
|
|||
import com.alibaba.excel.context.AnalysisContext; |
|||
import com.alibaba.excel.read.listener.ReadListener; |
|||
import com.epmet.commons.tools.exception.ExceptionUtils; |
|||
import com.epmet.commons.tools.exception.ValidateException; |
|||
import com.epmet.commons.tools.utils.ConvertUtils; |
|||
import com.epmet.commons.tools.validator.ValidatorUtils; |
|||
import com.epmet.modules.partymember.entity.IcPartyMemberEntity; |
|||
import com.epmet.modules.partymember.excel.IcPartyMemberImportExcel; |
|||
import com.epmet.modules.partymember.service.impl.IcPartyMemberServiceImpl; |
|||
import lombok.Data; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 核酸检测excel导入监听器 |
|||
* @author Administrator |
|||
*/ |
|||
@Data |
|||
@Slf4j |
|||
public class IcPartyMemberImportListener implements ReadListener<IcPartyMemberImportExcel> { |
|||
|
|||
/** |
|||
* 最大条数阈值 |
|||
*/ |
|||
public static final int MAX_THRESHOLD = 200; |
|||
|
|||
private String currentUserId; |
|||
/** |
|||
* 当前组织ID |
|||
*/ |
|||
private String currentAgencyId; |
|||
|
|||
private String currentAgencyPids; |
|||
|
|||
/** |
|||
* 数据 |
|||
*/ |
|||
private List<IcPartyMemberEntity> datas = new ArrayList<>(); |
|||
|
|||
/** |
|||
* 错误项列表 |
|||
*/ |
|||
private List<IcPartyMemberImportExcel.RowRemarkMessage> errorRows = new ArrayList<>(); |
|||
/** |
|||
* 其他被标记出来的列表列表 |
|||
*/ |
|||
private List<IcPartyMemberImportExcel.RowRemarkMessage> otherRows = new ArrayList<>(); |
|||
|
|||
private IcPartyMemberServiceImpl icPartyMemberService; |
|||
|
|||
public IcPartyMemberImportListener(String currentUserId, IcPartyMemberServiceImpl icPartyMemberService) { |
|||
this.currentUserId = currentUserId; |
|||
this.icPartyMemberService = icPartyMemberService; |
|||
} |
|||
|
|||
@Override |
|||
public void invoke(IcPartyMemberImportExcel data, AnalysisContext context) { |
|||
|
|||
try { |
|||
// 先校验数据
|
|||
ValidatorUtils.validateEntity(data); |
|||
if (StringUtils.isNotBlank(data.getSszb())) { |
|||
data.setSszb(data.getSszb().trim()); |
|||
} |
|||
if (StringUtils.isNotBlank(data.getName())) { |
|||
data.setName(data.getName().trim()); |
|||
} |
|||
if (StringUtils.isNotBlank(data.getMobile())) { |
|||
data.setMobile(data.getMobile().trim()); |
|||
} |
|||
if (StringUtils.isNotBlank(data.getIdCard())) { |
|||
data.setIdCard(data.getIdCard().trim()); |
|||
} |
|||
|
|||
IcPartyMemberEntity icPartyMemberEntity = ConvertUtils.sourceToTarget(data, IcPartyMemberEntity.class); |
|||
datas.add(icPartyMemberEntity); |
|||
|
|||
if (datas.size() == MAX_THRESHOLD) { |
|||
execPersist(); |
|||
} |
|||
} catch (Exception e) { |
|||
String errorMsg = null; |
|||
if (e instanceof ValidateException) { |
|||
errorMsg = ((ValidateException) e).getMsg(); |
|||
} else { |
|||
errorMsg = "未知错误"; |
|||
log.error("【核酸检测信息导入】出错:{}", ExceptionUtils.getErrorStackTrace(e)); |
|||
} |
|||
|
|||
IcPartyMemberImportExcel.RowRemarkMessage errorRow = new IcPartyMemberImportExcel.RowRemarkMessage(); |
|||
errorRow.setName(data.getName()); |
|||
errorRow.setMobile(data.getMobile()); |
|||
errorRow.setIdCard(data.getIdCard()); |
|||
errorRow.setErrorInfo(errorMsg); |
|||
errorRows.add(errorRow); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void doAfterAllAnalysed(AnalysisContext context) { |
|||
// 最后几条达不到阈值,这里必须再调用一次
|
|||
execPersist(); |
|||
} |
|||
|
|||
/** |
|||
* 执行持久化 |
|||
*/ |
|||
private void execPersist() { |
|||
try { |
|||
if (datas != null && datas.size() > 0) { |
|||
icPartyMemberService.batchPersist(datas, this); |
|||
} |
|||
} finally { |
|||
datas.clear(); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 获取错误行 |
|||
* @return |
|||
*/ |
|||
public List<IcPartyMemberImportExcel.RowRemarkMessage> getErrorRows() { |
|||
return errorRows; |
|||
} |
|||
} |
@ -0,0 +1,132 @@ |
|||
CREATE TABLE `ic_party_member` |
|||
( |
|||
`ID` varchar(64) NOT NULL COMMENT '唯一标识', |
|||
`CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id customer.id', |
|||
`ORG_PIDS` varchar(255) DEFAULT NULL COMMENT '党组织的所有上级ID,没有上级时为0', |
|||
`AGENCY_ID` varchar(64) NOT NULL COMMENT '行政组织 机关ID', |
|||
`AGENCY_PIDS` varchar(255) NOT NULL COMMENT '行政组织 机关ID', |
|||
`IC_RESI_USER` varchar(64) DEFAULT NULL COMMENT '对应的ic_resi_user主表Id', |
|||
`NAME` varchar(64) NOT NULL COMMENT '姓名', |
|||
`MOBILE` varchar(15) DEFAULT NULL COMMENT '手机号', |
|||
`ID_CARD` varchar(18) NOT NULL COMMENT '身份证号', |
|||
`ADDRESS` varchar(255) DEFAULT NULL COMMENT '地址', |
|||
`RDSJ` varchar(64) DEFAULT NULL COMMENT '入党时间', |
|||
`SSZB` varchar(256) DEFAULT NULL COMMENT '所属支部', |
|||
`IS_LD` char(2) DEFAULT NULL COMMENT '是否流动党员', |
|||
`LDZH` varchar(64) DEFAULT NULL COMMENT '流动党员活动证号', |
|||
`PARTY_ZW` varchar(256) DEFAULT NULL COMMENT '职务', |
|||
`IS_TX` char(2) DEFAULT NULL COMMENT '是否退休', |
|||
`IS_DYZXH` char(2) DEFAULT NULL COMMENT '是否党员中心户', |
|||
`IS_MXX` char(2) DEFAULT NULL COMMENT '是否免学习0否,1是', |
|||
`CULTURE` varchar(20) DEFAULT NULL COMMENT '文化程度【字典表】', |
|||
`VOLUNTEER_CATEGORY` varchar(255) DEFAULT NULL COMMENT '志愿者类型,逗号隔开', |
|||
`REMARK` varchar(255) DEFAULT NULL COMMENT '备注', |
|||
`FIELD1` varchar(256) DEFAULT NULL COMMENT '预留字段1', |
|||
`FIELD2` varchar(256) DEFAULT NULL COMMENT '预留字段2', |
|||
`FIELD3` varchar(256) DEFAULT NULL COMMENT '预留字段3', |
|||
`FIELD4` varchar(256) DEFAULT NULL COMMENT '预留字段4', |
|||
`FIELD5` varchar(256) DEFAULT NULL COMMENT '预留字段5', |
|||
`DEL_FLAG` int(1) NOT NULL DEFAULT '0' COMMENT '删除标识 0.未删除 1.已删除', |
|||
`REVISION` int(11) NOT NULL COMMENT '乐观锁', |
|||
`CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', |
|||
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间', |
|||
`UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', |
|||
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', |
|||
PRIMARY KEY (`ID`) USING BTREE, |
|||
UNIQUE KEY `un_party_mem` (`IC_RESI_USER`) USING BTREE |
|||
) ENGINE = InnoDB |
|||
DEFAULT CHARSET = utf8mb4 |
|||
ROW_FORMAT = COMPACT COMMENT ='数字平台党员信息表'; |
|||
|
|||
CREATE TABLE `ic_party_member_pay_record` |
|||
( |
|||
`ID` varchar(64) NOT NULL COMMENT '唯一标识', |
|||
`CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id (customer.id)', |
|||
`PARTY_MEMBER_ID` varchar(64) NOT NULL COMMENT '党员ID', |
|||
`PAY_DATE` varchar(18) NOT NULL COMMENT '缴费日期', |
|||
`MONEY` decimal(8, 2) NOT NULL COMMENT '缴费金额', |
|||
`START_DATE` varchar(18) NOT NULL COMMENT '缴费开始时间', |
|||
`END_DATE` varchar(18) NOT NULL COMMENT '缴费结束时间', |
|||
`DEL_FLAG` int(11) NOT NULL COMMENT '删除标识:0.未删除 1.已删除', |
|||
`REVISION` int(11) NOT NULL COMMENT '乐观锁', |
|||
`CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', |
|||
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间', |
|||
`UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', |
|||
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', |
|||
PRIMARY KEY (`ID`) USING BTREE |
|||
) ENGINE = InnoDB |
|||
DEFAULT CHARSET = utf8mb4 |
|||
ROW_FORMAT = COMPACT COMMENT ='党员缴费记录表'; |
|||
|
|||
CREATE TABLE `ic_party_member_pay_record_detail` |
|||
( |
|||
`ID` varchar(64) NOT NULL COMMENT '唯一标识', |
|||
`CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id (customer.id)', |
|||
`PARTY_MEMBER_ID` varchar(64) NOT NULL COMMENT '党员ID', |
|||
`RECORD_ID` varchar(64) NOT NULL COMMENT '党员缴费记录表ID', |
|||
`YEAR` varchar(18) NOT NULL COMMENT '缴费年度', |
|||
`MONTH` varchar(18) NOT NULL COMMENT '缴费月份', |
|||
`MONEY` decimal(8, 2) NOT NULL COMMENT '缴费金额', |
|||
`DEL_FLAG` int(11) NOT NULL COMMENT '删除标识:0.未删除 1.已删除', |
|||
`REVISION` int(11) NOT NULL COMMENT '乐观锁', |
|||
`CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', |
|||
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间', |
|||
`UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', |
|||
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', |
|||
PRIMARY KEY (`ID`) USING BTREE |
|||
) ENGINE = InnoDB |
|||
DEFAULT CHARSET = utf8mb4 |
|||
ROW_FORMAT = COMPACT COMMENT ='党员缴费记录明细表'; |
|||
|
|||
CREATE TABLE `ic_party_member_point` |
|||
( |
|||
`ID` varchar(64) NOT NULL DEFAULT '0' COMMENT '唯一标识', |
|||
`CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id (customer.id)', |
|||
`PARTY_MEMBER_ID` varchar(64) NOT NULL COMMENT '党员ID', |
|||
`YEAR` varchar(8) NOT NULL COMMENT '年', |
|||
`QUARTER` varchar(8) NOT NULL COMMENT '季度', |
|||
`BASE_POINT` int(11) DEFAULT '0' COMMENT '基础积分分值', |
|||
`BASE_OPTIONS` varchar(20) DEFAULT NULL COMMENT '基础积分选项 英文逗号隔开', |
|||
`REVIEW_POINT` int(11) DEFAULT '0' COMMENT '民主评议积分分值', |
|||
`REVIEW_OPTIONS` varchar(20) DEFAULT NULL COMMENT '民主评议积分选项', |
|||
`INSPIRE_POINT` int(11) unsigned DEFAULT '0' COMMENT '激励积分分值', |
|||
`INSPIRE_OPTIONS` varchar(20) DEFAULT NULL COMMENT '激励积分选项', |
|||
`WARN_POINT` int(11) DEFAULT '0' COMMENT '警示扣分分值', |
|||
`WARN_OPTIONS` varchar(20) DEFAULT NULL COMMENT '警示扣分选项', |
|||
`TOTAL_SCORE` int(32) DEFAULT '0' COMMENT '总分', |
|||
`DEL_FLAG` int(1) NOT NULL COMMENT '删除标识:0.未删除 1.已删除', |
|||
`REVISION` int(11) NOT NULL COMMENT '乐观锁', |
|||
`CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', |
|||
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间', |
|||
`UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', |
|||
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', |
|||
PRIMARY KEY (`ID`) USING BTREE |
|||
) ENGINE = InnoDB |
|||
DEFAULT CHARSET = utf8mb4 |
|||
ROW_FORMAT = COMPACT COMMENT ='党员量化积分表'; |
|||
|
|||
CREATE TABLE `ic_party_org` |
|||
( |
|||
`ID` varchar(64) NOT NULL COMMENT '唯一标识', |
|||
`CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id (customer.id)', |
|||
`ORG_PID` varchar(64) NOT NULL COMMENT '党组织的上级ID,没有上级时为0', |
|||
`ORG_PIDS` varchar(512) NOT NULL COMMENT '党组织的所有上级ID,没有上级时为0', |
|||
`AGENCY_ID` varchar(64) NOT NULL COMMENT '行政组织 机关ID', |
|||
`AGENCY_PIDS` varchar(512) NOT NULL COMMENT '行政组织 机关ID', |
|||
`PARTY_ORG_TYPE` char(1) NOT NULL COMMENT '党组织类型 0省委,1市委,2区委,3党工委,4党委,5支部', |
|||
`PARTY_ORG_NAME` varchar(20) NOT NULL COMMENT '组织名称', |
|||
`PARTY_ORG_CODE` varchar(128) DEFAULT NULL COMMENT '组织编码', |
|||
`LONGITUDE` varchar(32) NOT NULL COMMENT '经度', |
|||
`LATITUDE` varchar(32) NOT NULL COMMENT '纬度', |
|||
`ADDRESS` varchar(255) DEFAULT NULL COMMENT '地址', |
|||
`INTRODUCTION` varchar(500) DEFAULT NULL COMMENT '党组织介绍', |
|||
`DEL_FLAG` int(1) NOT NULL COMMENT '删除标识:0.未删除 1.已删除', |
|||
`REVISION` int(11) NOT NULL COMMENT '乐观锁', |
|||
`CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', |
|||
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间', |
|||
`UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', |
|||
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', |
|||
PRIMARY KEY (`ID`) USING BTREE |
|||
) ENGINE = InnoDB |
|||
DEFAULT CHARSET = utf8mb4 |
|||
ROW_FORMAT = COMPACT COMMENT ='党组织表'; |
@ -0,0 +1,41 @@ |
|||
CREATE TABLE `ic_volunteer_poly` |
|||
( |
|||
`ID` varchar(64) NOT NULL COMMENT '主键', |
|||
`CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id customer.id', |
|||
`USER_ID` varchar(64) DEFAULT NULL COMMENT '居民端用户id', |
|||
`IC_RESI_USER` varchar(64) DEFAULT NULL COMMENT '对应的ic_resi_user主表Id', |
|||
`AGENCY_ID` varchar(64) DEFAULT NULL COMMENT '行政组织 机关ID', |
|||
`AGENCY_PIDS` varchar(255) DEFAULT NULL COMMENT '行政组织 机关ID', |
|||
`NAME` varchar(32) NOT NULL COMMENT '居住成员1姓名', |
|||
`ID_CARD` varchar(18) NOT NULL COMMENT '身份证号', |
|||
`MOBILE` varchar(15) DEFAULT NULL COMMENT '手机号', |
|||
`GENDER` char(2) DEFAULT NULL COMMENT '性别', |
|||
`LONGITUDE` varchar(64) DEFAULT NULL COMMENT '经度', |
|||
`LATITUDE` varchar(64) DEFAULT NULL COMMENT '纬度', |
|||
`REVISION` int(11) NOT NULL COMMENT '乐观锁', |
|||
`DEL_FLAG` int(11) NOT NULL DEFAULT '0' COMMENT '删除标识 0.未删除 1.已删除', |
|||
`UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', |
|||
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', |
|||
`CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', |
|||
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间', |
|||
PRIMARY KEY (`ID`) USING BTREE |
|||
) ENGINE = InnoDB |
|||
DEFAULT CHARSET = utf8mb4 COMMENT ='志愿者信息聚合'; |
|||
|
|||
CREATE TABLE `ic_volunteer_poly_category` |
|||
( |
|||
`ID` varchar(64) NOT NULL COMMENT '主键', |
|||
`CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id customer.id', |
|||
`ID_CARD` varchar(18) NOT NULL COMMENT '身份证号', |
|||
`VOLUNTEER_CATEGORY` varchar(256) DEFAULT NULL COMMENT '类别【字典表】', |
|||
`LONGITUDE` varchar(64) DEFAULT NULL COMMENT '经度', |
|||
`LATITUDE` varchar(64) DEFAULT NULL COMMENT '纬度', |
|||
`REVISION` int(11) NOT NULL COMMENT '乐观锁', |
|||
`DEL_FLAG` int(11) NOT NULL DEFAULT '0' COMMENT '删除标识 0.未删除 1.已删除', |
|||
`UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', |
|||
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', |
|||
`CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', |
|||
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间', |
|||
PRIMARY KEY (`ID`) USING BTREE |
|||
) ENGINE = InnoDB |
|||
DEFAULT CHARSET = utf8mb4 COMMENT ='志愿者信息聚合,志愿者类别表'; |
Loading…
Reference in new issue