Browse Source

批量录入党员

dev
qushutong 6 years ago
parent
commit
aa63898aa0
  1. 26
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcPartyErroyResultDTO.java
  2. 30
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/async/PartyTask.java
  3. 22
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/PartyMembersController.java
  4. 18
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/PartyMembersService.java
  5. 153
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/PartyMembersServiceImpl.java

26
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcPartyErroyResultDTO.java

@ -0,0 +1,26 @@
package com.elink.esua.epdc.dto.epdc.result;
import lombok.Data;
import java.io.Serializable;
/**
* @author: qushutong
* @Date: 2019/11/4 17:06
* @Description: 批量导入党员错误反馈
*/
@Data
public class EpdcPartyErroyResultDTO implements Serializable {
private static final long serialVersionUID = 5643743407138967806L;
/**
* 错误数据行数
*/
private String erroLine;
/**
* 错误数据信息
*/
private String errorInfo;
}

30
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/async/PartyTask.java

@ -36,19 +36,19 @@ public class PartyTask {
* @author qushutong
* @date 2019/10/24 16:02
*/
@Async
public void insertPartyList(MultipartFile file) {
File f = StreamUtils.conversionFile(file);
ImportParams importParams = new ImportParams();
try {
List<PartyMembersExcel> partyList = ExcelImportUtil.importExcel(f, PartyMembersExcel.class, importParams);
partyMembersService.saveList(partyList);
for (PartyMembersExcel partyMembers : partyList) {
System.out.println("从Excel导入数据到数据库的详细为 :{}" + JSON.toJSONString(partyMembers));
}
System.out.println("从Excel导入数据一共 {} 行 " + partyList.size());
} catch (Exception e1) {
throw new RuntimeException("导入失败:{}" + e1.getMessage());
}
}
// @Async
// public void insertPartyList(MultipartFile file) {
// File f = StreamUtils.conversionFile(file);
// ImportParams importParams = new ImportParams();
// try {
// List<PartyMembersExcel> partyList = ExcelImportUtil.importExcel(f, PartyMembersExcel.class, importParams);
// partyMembersService.saveList(partyList);
// for (PartyMembersExcel partyMembers : partyList) {
// System.out.println("从Excel导入数据到数据库的详细为 :{}" + JSON.toJSONString(partyMembers));
// }
// System.out.println("从Excel导入数据一共 {} 行 " + partyList.size());
// } catch (Exception e1) {
// throw new RuntimeException("导入失败:{}" + e1.getMessage());
// }
// }
}

22
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/PartyMembersController.java

@ -65,8 +65,8 @@ public class PartyMembersController {
@Autowired
private PartyMembersService partyMembersService;
@Autowired
private PartyTask partyTask;
// @Autowired
// private PartyTask partyTask;
@GetMapping("page")
@DataFilter(tableAlias = "pm", deptId = "grid_id", prefix = "AND", isPendingCreator = false)
@ -140,7 +140,21 @@ public class PartyMembersController {
*/
@PostMapping("importExcel")
public Result importExcel(@RequestParam("file") MultipartFile file) {
partyTask.insertPartyList(file);
return new Result();
return partyMembersService.insertPartyList(file);
}
/***
* 导出模板
* @param params
* @param response
* @return void
* @author qushutong
* @date 2019/11/1 17:14
*/
@GetMapping("exportMoudle")
public void exportMoudle(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<PartyMembersDTO> list = partyMembersService.exportMoudle();
ExcelUtils.exportExcelToTarget(response, "党员模板", list, PartyMembersExcel.class);
}
}

18
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/PartyMembersService.java

@ -23,6 +23,7 @@ import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.PartyMembersDTO;
import com.elink.esua.epdc.entity.PartyMembersEntity;
import com.elink.esua.epdc.excel.PartyMembersExcel;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
@ -49,12 +50,21 @@ public interface PartyMembersService extends BaseService<PartyMembersEntity> {
void delete(String[] ids);
/***
*
* @return
* @author qushutong
* @date 2019/11/1 17:17
*/
List<PartyMembersDTO> exportMoudle();
/***
* 批量插入
* @param partyList
* 导入党员
* @param file
* @return void
* @author qushutong
* @date 2019/10/24 14:58
* @date 2019/11/4 10:08
*/
void saveList(List<PartyMembersExcel> partyList);
Result insertPartyList(MultipartFile file);
}

153
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/PartyMembersServiceImpl.java

@ -17,6 +17,8 @@
package com.elink.esua.epdc.service.impl;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -29,9 +31,11 @@ import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.config.StreamUtils;
import com.elink.esua.epdc.dao.PartyMembersDao;
import com.elink.esua.epdc.dto.PartyMembersDTO;
import com.elink.esua.epdc.dto.PartyTagRelationDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcPartyErroyResultDTO;
import com.elink.esua.epdc.entity.PartyMembersEntity;
import com.elink.esua.epdc.excel.PartyMembersExcel;
import com.elink.esua.epdc.redis.PartyMembersRedis;
@ -41,11 +45,10 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.io.File;
import java.util.*;
/**
* 党员表
@ -76,7 +79,7 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
public Result<PageData<PartyMembersDTO>> pageDIY(Map<String, Object> params) {
IPage<PartyMembersDTO> page = getPage(params);
List<PartyMembersDTO> list = baseDao.pageDIY(params);
return new Result<PageData<PartyMembersDTO>>().ok(new PageData<>(list,page.getTotal()));
return new Result<PageData<PartyMembersDTO>>().ok(new PageData<>(list, page.getTotal()));
}
@Override
@ -84,8 +87,8 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
return baseDao.pageDIY(params);
}
private QueryWrapper<PartyMembersEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get("id");
private QueryWrapper<PartyMembersEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get("id");
QueryWrapper<PartyMembersEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), "id", id);
@ -104,9 +107,9 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
@Transactional(rollbackFor = Exception.class)
public void save(PartyMembersDTO dto) {
//通过用户审核添加的党员
if(dto.getRegistTime()!=null){
if (dto.getRegistTime() != null) {
dto.setRegistFlag(YesOrNoEnum.YES.value());
}else {
} else {
dto.setRegistFlag(YesOrNoEnum.NO.value());
dto.setRegistTime(new Date());
}
@ -114,7 +117,7 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
insert(entity);
JSONArray jsonArray = JSON.parseArray(dto.getTagIds());
for (int i = 0; i<jsonArray.size(); i++){
for (int i = 0; i < jsonArray.size(); i++) {
String tagId = jsonArray.getString(i);
PartyTagRelationDTO partyTagRelationDTO = new PartyTagRelationDTO();
partyTagRelationDTO.setPartyId(entity.getId());
@ -132,7 +135,7 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
partyTagRelationService.deleteByPartyId(entity.getId());
JSONArray jsonArray = JSON.parseArray(dto.getTagIds());
for (int i = 0; i<jsonArray.size(); i++){
for (int i = 0; i < jsonArray.size(); i++) {
String tagId = jsonArray.getString(i);
PartyTagRelationDTO partyTagRelationDTO = new PartyTagRelationDTO();
partyTagRelationDTO.setPartyId(entity.getId());
@ -152,10 +155,136 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
public void saveList(List<PartyMembersExcel> partyList) {
List<PartyMembersEntity> partyMembersEntityList = ConvertUtils.sourceToTarget(partyList, PartyMembersEntity.class);
for (int i=0;i<partyMembersEntityList.size();i++){
PartyMembersEntity partyMembersEntity = partyMembersEntityList.get(i);
partyMembersEntity.setCadreFlag("0");
partyMembersEntity.setRegistFlag("0");
partyMembersEntity.setRegistTime(new Date());
partyMembersEntity.setStreetName(null);
partyMembersEntity.setCommunityName(null);
partyMembersEntity.setGridName(null);
}
insertBatch(partyMembersEntityList);
}
@Override
public Result insertPartyList(MultipartFile file) {
File f = StreamUtils.conversionFile(file);
ImportParams importParams = new ImportParams();
try {
List<PartyMembersEntity> partyMembersEntityList = baseDao.selectList(new QueryWrapper<PartyMembersEntity>());
List<PartyMembersExcel> partyList = ExcelImportUtil.importExcel(f, PartyMembersExcel.class, importParams);
// 校验数据
List<EpdcPartyErroyResultDTO> epdcPartyErroyResultDtos = this.checkExcel(partyList, partyMembersEntityList);
if(epdcPartyErroyResultDtos.size()>0){
return new Result().ok(epdcPartyErroyResultDtos);
}
saveList(partyList);
for (PartyMembersExcel partyMembers : partyList) {
System.out.println("从Excel导入数据到数据库的详细为 :{}" + JSON.toJSONString(partyMembers));
}
System.out.println("从Excel导入数据一共 {} 行 " + partyList.size());
} catch (Exception e1) {
throw new RuntimeException("导入失败:{}" + e1.getMessage());
}
return new Result();
}
/***
* 校验excel表格数据
* @param partyList
* @param partyMembersEntityList
* @return java.lang.String
* @author qushutong
* @date 2019/11/4 10:25
*/
private List<EpdcPartyErroyResultDTO> checkExcel(List<PartyMembersExcel> partyList, List<PartyMembersEntity> partyMembersEntityList) {
// 不匹配信息
List<EpdcPartyErroyResultDTO> errorLineinfoList=new ArrayList<>();
for (int i = 0; i < partyList.size(); i++) {
PartyMembersExcel partyMembersExcel = partyList.get(i);
String realName = partyMembersExcel.getRealName();
String mobile = partyMembersExcel.getMobile();
String identityNo=partyMembersExcel.getIdentityNo();
if (StringUtils.isBlank(realName)) {
EpdcPartyErroyResultDTO errorLineinfoDto=new EpdcPartyErroyResultDTO();
errorLineinfoDto.setErroLine((i+2)+"");
errorLineinfoDto.setErrorInfo("姓名为空");
errorLineinfoList.add(errorLineinfoDto);
}
if (StringUtils.isBlank(identityNo)) {
EpdcPartyErroyResultDTO errorLineinfoDto=new EpdcPartyErroyResultDTO();
errorLineinfoDto.setErroLine((i+2)+"");
errorLineinfoDto.setErrorInfo("身份证号为空");
errorLineinfoList.add(errorLineinfoDto);
}
for (PartyMembersEntity item:partyMembersEntityList) {
if(item.getRealName().equals(realName)){
EpdcPartyErroyResultDTO errorLineinfoDto=new EpdcPartyErroyResultDTO();
errorLineinfoDto.setErroLine((i+2)+"");
errorLineinfoDto.setErrorInfo("姓名已存在");
errorLineinfoList.add(errorLineinfoDto);
}
if(StringUtils.isNotBlank(item.getMobile())&&item.getMobile().equals(mobile)){
EpdcPartyErroyResultDTO errorLineinfoDto=new EpdcPartyErroyResultDTO();
errorLineinfoDto.setErroLine((i+2)+"");
errorLineinfoDto.setErrorInfo("手机号已存在");
errorLineinfoList.add(errorLineinfoDto);
}
if(item.getIdentityNo().equals(identityNo)){
EpdcPartyErroyResultDTO errorLineinfoDto=new EpdcPartyErroyResultDTO();
errorLineinfoDto.setErroLine((i+2)+"");
errorLineinfoDto.setErrorInfo("身份证号已存在");
errorLineinfoList.add(errorLineinfoDto);
}
}
}
return errorLineinfoList;
}
@Override
public List<PartyMembersDTO> exportMoudle() {
List<PartyMembersDTO> partyMembersDTOList = new ArrayList<>();
PartyMembersDTO partyMembersDto = new PartyMembersDTO();
partyMembersDto.setRealName("王小花");
partyMembersDto.setMobile("13000000000");
partyMembersDto.setIdentityNo("370681199903038473");
partyMembersDto.setPost("");
partyMembersDto.setCadreFlag("下沉");
partyMembersDto.setRegistFlag("是");
partyMembersDto.setRegistTime(new Date());
partyMembersDto.setStreetName("水清沟街道党工委");
partyMembersDto.setCommunityName("九江社区党委");
partyMembersDto.setGridName("第一网格支部");
PartyMembersDTO partyMembersDtoTwo = new PartyMembersDTO();
partyMembersDtoTwo.setRealName("徐小明");
partyMembersDtoTwo.setMobile("13000000001");
partyMembersDtoTwo.setIdentityNo("37068119499030542");
partyMembersDtoTwo.setPost("");
partyMembersDtoTwo.setCadreFlag("不下沉");
partyMembersDtoTwo.setRegistFlag("否");
partyMembersDtoTwo.setRegistTime(new Date());
partyMembersDtoTwo.setStreetName("水清沟街道党工委");
partyMembersDtoTwo.setCommunityName("九江社区党委");
partyMembersDtoTwo.setGridName("第一网格支部");
PartyMembersDTO partyMembersDtoThrid = new PartyMembersDTO();
partyMembersDtoThrid.setRealName("王红");
partyMembersDtoThrid.setMobile("");
partyMembersDtoThrid.setIdentityNo("37068119499032541");
partyMembersDtoThrid.setPost("");
partyMembersDtoThrid.setCadreFlag("");
partyMembersDtoThrid.setRegistFlag("");
partyMembersDtoThrid.setRegistTime(null);
partyMembersDtoThrid.setStreetName("");
partyMembersDtoThrid.setCommunityName("");
partyMembersDtoThrid.setGridName("");
partyMembersDTOList.add(partyMembersDto);
partyMembersDTOList.add(partyMembersDtoTwo);
partyMembersDTOList.add(partyMembersDtoThrid);
return partyMembersDTOList;
}
}

Loading…
Cancel
Save