This commit is contained in:
2026-05-20 09:51:49 +08:00
parent eb01d6b109
commit fe5dcf2ad9
6 changed files with 53 additions and 8 deletions
@@ -153,6 +153,7 @@ public class MutualInsuranceRosterController {
List<ExcelExportEntity> entities = new ArrayList<>();
entities.add(new ExcelExportEntity("工号", "loginName", 20));
entities.add(new ExcelExportEntity("姓名", "userName", 20));
entities.add(new ExcelExportEntity("证件类型", "idCardType", 20));
ExportParams exportParams = new ExportParams();
exportParams.setType(ExcelType.XSSF);
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, entities, Collections.emptyList());
@@ -233,10 +234,8 @@ public class MutualInsuranceRosterController {
entityList.add(new ExcelExportEntity("性别", "sex", 20));
entityList.add(new ExcelExportEntity("所属工会", "unionName", 20));
entityList.add(new ExcelExportEntity("所属单位", "unitName", 20));
if (AuthUtil.hasRoleOr("SYSADMIN", "SCHOOL_UNION_ADMIN")) {
entityList.add(new ExcelExportEntity("事项名称", "projectName", 30));
}
entityList.add(new ExcelExportEntity("手机号", "mobile", 20));
entityList.add(new ExcelExportEntity("证件类型", "idCardType", 20));
entityList.add(new ExcelExportEntity("身份证号", "idCard", 25));
entityList.add(new ExcelExportEntity("是否确认", "isAuditText", 20));
entityList.add(new ExcelExportEntity("确认时间", "auditTimeText", 25));
@@ -85,6 +85,11 @@ public class MutualInsuranceRosterUser extends BaseModel implements Serializable
@ColDefine(type = ColType.VARCHAR, width = 50)
private String mobile;
@Column
@Comment("证件类型")
@ColDefine(type = ColType.VARCHAR, width = 50)
private String idCardType;
@Column
@Comment("身份证号")
@ColDefine(type = ColType.VARCHAR, width = 20)
@@ -43,6 +43,9 @@ public class MutualInsuranceRosterUserPageForm extends PageForm {
@ApiModelProperty("人员类型")
private String[] personTypes;
@ApiModelProperty("证件类型")
private String[] idCardTypes;
@ApiModelProperty("聘用方式")
private String[] preparedBys;
@@ -131,7 +131,8 @@ public class MutualInsuranceRosterUserServiceImpl extends BaseServiceImpl<Mutual
u.unitName,
u.unionId,
u.unionName,
u.member
u.member,
u.idCardType
FROM vw_user u
LEFT JOIN mutual_insurance_roster_user info ON u.id = info.userId
AND info.projectId = @projectId
@@ -162,6 +163,7 @@ public class MutualInsuranceRosterUserServiceImpl extends BaseServiceImpl<Mutual
u.unionId,
u.unionName,
u.mobile,
u.idCardType,
u.idCard
FROM vw_user u
$condition
@@ -255,12 +257,33 @@ public class MutualInsuranceRosterUserServiceImpl extends BaseServiceImpl<Mutual
private Sql buildRosterSql(Integer year, String projectId, String unionId, String unitId,
String searchKeyword, String isAudit) {
// 列表和导出需展示用户表当前证件类型,避免历史名单快照为空时页面缺失。
Sql sql = Sqls.create("""
SELECT
info.*,
info.id,
info.year,
info.projectId,
info.projectName,
info.userId,
info.loginName,
info.userName,
info.sex,
info.unionId,
info.unionName,
info.unitId,
info.unitName,
info.mobile,
u.idCardType AS idCardType,
info.idCard,
info.importTime,
info.isAudit,
info.auditTime,
info.auditUser,
info.createdAt,
project.year AS projectYear
FROM mutual_insurance_roster_user info
LEFT JOIN mutual_insurance_project project ON project.id = info.projectId
LEFT JOIN sys_user u ON u.id = info.userId
$condition
""");
Cnd cnd = Cnd.NEW();
@@ -316,6 +339,7 @@ public class MutualInsuranceRosterUserServiceImpl extends BaseServiceImpl<Mutual
info.setUnionId(user.getUnionId());
info.setUnionName(user.getUnionName());
info.setMobile(user.getMobile());
info.setIdCardType(user.getIdCardType());
info.setIdCard(user.getIdCard());
dao().insertOrUpdate(info);
}
@@ -341,6 +365,7 @@ public class MutualInsuranceRosterUserServiceImpl extends BaseServiceImpl<Mutual
info.setUnionId(user.getString("unionId"));
info.setUnionName(user.getString("unionName"));
info.setMobile(user.getString("mobile"));
info.setIdCardType(user.getString("idCardType"));
info.setIdCard(user.getString("idCard"));
dao().insertOrUpdate(info);
}
@@ -378,6 +403,7 @@ public class MutualInsuranceRosterUserServiceImpl extends BaseServiceImpl<Mutual
cnd.andEX("u.unionId", "=", pageForm.getUnionId());
cnd.andEX("u.unitId", "in", pageForm.getUnitIds());
cnd.andEX("u.personType", "in", pageForm.getPersonTypes());
cnd.andEX("u.idCardType", "in", pageForm.getIdCardTypes());
cnd.andEX("u.preparedBy", "in", pageForm.getPreparedBys());
cnd.andEX("u.userState", "in", pageForm.getUserStates());
cnd.andEX("u.member", "=", pageForm.getIsMember());
@@ -20,4 +20,7 @@ public class MutualInsuranceUserImportTemp extends ExcelImportError {
@ExcelProperty("姓名")
private String userName;
@ExcelProperty("证件类型")
private String idCardType;
}
@@ -105,10 +105,8 @@ layout("/layouts/platform.html"){
<el-table-column prop="sex" label="性别" align="center" header-align="center"></el-table-column>
<el-table-column prop="unionName" label="所属工会" align="center" header-align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="unitName" label="所属单位" align="center" header-align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="projectName" label="事项名称" min-width="180px" align="center"
v-if="$auth.hasRoleOr(['SYSADMIN', 'SCHOOL_UNION_ADMIN'])"
header-align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="mobile" label="手机号" align="center" header-align="center"></el-table-column>
<el-table-column prop="idCardType" label="证件类型" min-width="170px" align="center" header-align="center"></el-table-column>
<el-table-column prop="idCard" label="身份证号" min-width="170px" align="center" header-align="center"></el-table-column>
<el-table-column prop="isAudit" label="确认状态" align="center" header-align="center">
<template slot-scope="{row}">
@@ -215,6 +213,14 @@ layout("/layouts/platform.html"){
placeholder="请选择人员类型"
v-model="addUserPageForm.personTypes"></dict-select>
</search-item>
<search-item label="证件类型">
<dict-select clearable
code="USER_IDENTITY_TYPE"
multiple
collapse-tags
placeholder="请选择证件类型"
v-model="addUserPageForm.idCardTypes"></dict-select>
</search-item>
<search-item label="编制类别">
<dict-select clearable
code="USER_PREPARED_BY_TYPE"
@@ -254,6 +260,7 @@ layout("/layouts/platform.html"){
<el-table-column prop="personType" label="人员类型" align="center" header-align="center"></el-table-column>
<el-table-column prop="preparedBy" label="编制类别" align="center" header-align="center"></el-table-column>
<el-table-column prop="userState" label="在职状态" align="center" header-align="center"></el-table-column>
<el-table-column prop="idCardType" label="证件类型" min-width="120px" align="center" header-align="center"></el-table-column>
<el-table-column prop="unionName" label="所属工会" align="center" header-align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="unitName" label="所属单位" align="center" header-align="center" show-overflow-tooltip></el-table-column>
</el-table>
@@ -329,6 +336,7 @@ layout("/layouts/platform.html"){
unionId: "",
unitIds: [],
personTypes: [],
idCardTypes: [],
preparedBys: [],
userStates: [],
isMember: null
@@ -432,6 +440,7 @@ layout("/layouts/platform.html"){
unionId: "",
unitIds: [],
personTypes: [],
idCardTypes: [],
preparedBys: [],
userStates: [],
isMember: null