exam-system/src/main/java/com/gkhy/exam/pay/controller/NonCoalPayController.java
@@ -2,6 +2,7 @@ import com.gkhy.exam.pay.dto.rep.NonCoalPayPageRepDto; import com.gkhy.exam.pay.dto.req.NonCoalPayReqDto; import com.gkhy.exam.pay.dto.req.NonCoalPayStuImport; import com.gkhy.exam.pay.dto.req.NonCoalPayStudentReqDto; import com.gkhy.exam.pay.dto.req.NonCoalPayTypeEditReqDto; import com.gkhy.exam.pay.entity.NonCoalPay; @@ -162,9 +163,11 @@ @PostMapping("/stuImportData") @ApiOperation(value = "导入学员") @ApiImplicitParam(name = "nonCoalPayId", dataTypeClass = Long.class, value = "nonCoalPayId", required = true) public AjaxResult importData(MultipartFile file, Long nonCoalPayId) throws Exception { ExcelUtil<NonCoalPayStudent> util = new ExcelUtil<NonCoalPayStudent>(NonCoalPayStudent.class); List<NonCoalPayStudent> nonCoalPayStudents = util.importExcel(file.getInputStream()); ExcelUtil<NonCoalPayStuImport> util = new ExcelUtil<NonCoalPayStuImport>(NonCoalPayStuImport.class); List<NonCoalPayStuImport> nonCoalPayStudents = util.importExcel(file.getInputStream()); String operName = getUsername(); String message = nonCoalPayStudentService.importData(nonCoalPayStudents, operName, nonCoalPayId); return success(message); exam-system/src/main/java/com/gkhy/exam/pay/dto/req/NonCoalPayStuImport.java
对比新文件 @@ -0,0 +1,33 @@ package com.gkhy.exam.pay.dto.req; import com.ruoyi.common.annotation.Excel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class NonCoalPayStuImport { @Excel(name = "姓名") @ApiModelProperty("姓名") private String name; /** * 身份证号 */ @Excel(name = "身份证号") @ApiModelProperty("身份证号") private String idCard; /** * 电话 */ @Excel(name = "手机号") @ApiModelProperty("手机号") private String phone; /** * 0男 1女 2未知 */ @Excel(name = "性别") @ApiModelProperty("性别 0男1女2未知") private String sex; } exam-system/src/main/java/com/gkhy/exam/pay/service/NonCoalPayStudentService.java
@@ -1,6 +1,7 @@ package com.gkhy.exam.pay.service; import com.baomidou.mybatisplus.extension.service.IService; import com.gkhy.exam.pay.dto.req.NonCoalPayStuImport; import com.gkhy.exam.pay.dto.req.NonCoalPayStudentReqDto; import com.gkhy.exam.pay.entity.NonCoalPayStudent; @@ -66,5 +67,5 @@ */ public int deleteNonCoalPayStudentById(Long id); public String importData(List<NonCoalPayStudent> nonCoalPayStudents, String operName, Long nonCoalPayId); public String importData(List<NonCoalPayStuImport> nonCoalPayStudents, String operName, Long nonCoalPayId); } exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayStudentServiceImpl.java
@@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.exam.institutionalaccess.enums.StudentSex; import com.gkhy.exam.pay.dto.req.NonCoalPayStuImport; import com.gkhy.exam.pay.dto.req.NonCoalPayStudentReqDto; import com.gkhy.exam.pay.entity.NonCoalPay; import com.gkhy.exam.pay.entity.NonCoalPayStudent; @@ -164,14 +166,14 @@ } @Override public String importData(List<NonCoalPayStudent> nonCoalPayStudents, String operName, Long nonCoalPayId) { public String importData(List<NonCoalPayStuImport> nonCoalPayStudents, String operName, Long nonCoalPayId) { if (StringUtils.isNull(nonCoalPayStudents) || nonCoalPayStudents.isEmpty()) { throw new ServiceException("导入数据不能为空!"); } NonCoalPay nonCoalPay = checkNonCoalPay(nonCoalPayId); Integer payPersonType = nonCoalPay.getPayPersonType(); Set<String> collect = nonCoalPayStudents.stream() .map(NonCoalPayStudent::getIdCard) .map(NonCoalPayStuImport::getIdCard) .collect(Collectors.toSet()); if (collect.size() != nonCoalPayStudents.size()) { throw new ServiceException("导入数据不能有重复身份证号!"); @@ -192,17 +194,23 @@ int failureNum = 0; StringBuilder successMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder(); for (NonCoalPayStudent stu : nonCoalPayStudents) { for (NonCoalPayStuImport stu : nonCoalPayStudents) { try { if (StringUtils.isEmpty(stu.getIdCard()) || StringUtils.isEmpty(stu.getName()) || StringUtils.isEmpty(stu.getPhone()) || stu.getSex() == null) { failureMsg.append("<br/>" + failureNum + "、导入数据为空: " + stu.getIdCard() + " 数据错误"); } else if (idCardToNameMap.get(stu.getIdCard().trim()) != null) { failureMsg.append("<br/>" + failureNum + "、身份证号: " + stu.getIdCard() + " 数据已存在"); } else { stu.setPayStatus(0L); stu.setPayType(payPersonType.longValue()); stu.setNonCoalPayId(nonCoalPayId); save(stu); NonCoalPayStudent stu1 = new NonCoalPayStudent(); stu1.setPayStatus(0L); stu1.setPayType(payPersonType.longValue()); stu1.setNonCoalPayId(nonCoalPayId); stu1.setCreateBy(operName); stu1.setName(stu.getName()); stu1.setIdCard(stu.getIdCard()); stu1.setPhone(stu.getPhone()); stu1.setSex(StudentSex.BOY.getStatus().equals(stu.getSex().trim()) ? 0L : 1L); nonCoalPayStudentMapper.insertNonCoalPayStudent(stu1); successNum++; successMsg.append("<br/>" + successNum + "、身份证号 " + stu.getIdCard() + " 导入成功"); idCardToNameMap.put(stu.getIdCard(), stu.getIdCard());