commit
This commit is contained in:
+1
-2
@@ -5,7 +5,6 @@ import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
@@ -14,7 +13,6 @@ import com.budwk.app.base.model.ExcelImportRes;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.utils.CommonDownloadUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.staffbenefit.mutualInsurance.model.MutualInsuranceProject;
|
||||
import com.budwk.app.zhgh.staffbenefit.mutualInsurance.param.MutualInsuranceRosterUserPageForm;
|
||||
@@ -154,6 +152,7 @@ public class MutualInsuranceRosterController {
|
||||
entities.add(new ExcelExportEntity("工号", "loginName", 20));
|
||||
entities.add(new ExcelExportEntity("姓名", "userName", 20));
|
||||
entities.add(new ExcelExportEntity("证件类型", "idCardType", 20));
|
||||
entities.add(new ExcelExportEntity("手机号", "mobile", 20));
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, entities, Collections.emptyList());
|
||||
|
||||
+19
-3
@@ -32,10 +32,13 @@ import java.io.File;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class MutualInsuranceRosterUserServiceImpl extends BaseServiceImpl<MutualInsuranceRosterUser> implements MutualInsuranceRosterUserService {
|
||||
private static final Pattern MOBILE_PATTERN = Pattern.compile("^1[3456789]\\d{9}$");
|
||||
|
||||
public MutualInsuranceRosterUserServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
@@ -100,6 +103,10 @@ public class MutualInsuranceRosterUserServiceImpl extends BaseServiceImpl<Mutual
|
||||
row.setErrInfo("导入文件中工号重复", i + 1);
|
||||
continue;
|
||||
}
|
||||
if (!isValidImportMobile(row.getMobile())) {
|
||||
row.setErrInfo("手机号格式不正确", i + 1);
|
||||
continue;
|
||||
}
|
||||
View_user user = users.stream()
|
||||
.filter(item -> loginName.equals(item.getLoginname()))
|
||||
.findFirst()
|
||||
@@ -108,7 +115,7 @@ public class MutualInsuranceRosterUserServiceImpl extends BaseServiceImpl<Mutual
|
||||
row.setErrInfo("工号在系统中不存在", i + 1);
|
||||
continue;
|
||||
}
|
||||
upsertRosterUser(project, user);
|
||||
upsertRosterUser(project, user, row);
|
||||
successCount++;
|
||||
}
|
||||
fillImportResult(result, importRows, successCount);
|
||||
@@ -318,7 +325,7 @@ public class MutualInsuranceRosterUserServiceImpl extends BaseServiceImpl<Mutual
|
||||
return sql;
|
||||
}
|
||||
|
||||
private void upsertRosterUser(MutualInsuranceProject project, View_user user) {
|
||||
private void upsertRosterUser(MutualInsuranceProject project, View_user user, MutualInsuranceUserImportTemp row) {
|
||||
MutualInsuranceRosterUser info = dao().fetch(MutualInsuranceRosterUser.class,
|
||||
Cnd.where("projectId", "=", project.getId()).and("userId", "=", user.getId()));
|
||||
if (info == null) {
|
||||
@@ -338,7 +345,8 @@ public class MutualInsuranceRosterUserServiceImpl extends BaseServiceImpl<Mutual
|
||||
info.setUnitName(user.getUnitName());
|
||||
info.setUnionId(user.getUnionId());
|
||||
info.setUnionName(user.getUnionName());
|
||||
info.setMobile(user.getMobile());
|
||||
// 导入名单时手机号允许按 Excel 覆盖;未填写时继续使用系统用户档案中的手机号。
|
||||
info.setMobile(StrUtil.blankToDefault(Strings.trim(row.getMobile()), user.getMobile()));
|
||||
info.setIdCardType(user.getIdCardType());
|
||||
info.setIdCard(user.getIdCard());
|
||||
dao().insertOrUpdate(info);
|
||||
@@ -445,4 +453,12 @@ public class MutualInsuranceRosterUserServiceImpl extends BaseServiceImpl<Mutual
|
||||
result.setErrorDetails(rows.stream().filter(row -> StrUtil.isNotBlank(row.getErrMsg())).collect(Collectors.toList()));
|
||||
result.setFailedCount(result.getErrorDetails().size());
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入手机号允许为空,非空时必须是 11 位中国大陆手机号,避免错误联系方式写入名单快照。
|
||||
*/
|
||||
private boolean isValidImportMobile(String mobile) {
|
||||
String value = Strings.trim(mobile);
|
||||
return StrUtil.isBlank(value) || MOBILE_PATTERN.matcher(value).matches();
|
||||
}
|
||||
}
|
||||
|
||||
+3
@@ -23,4 +23,7 @@ public class MutualInsuranceUserImportTemp extends ExcelImportError {
|
||||
|
||||
@ExcelProperty("证件类型")
|
||||
private String idCardType;
|
||||
|
||||
@ExcelProperty("手机号")
|
||||
private String mobile;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user