Compare commits

10 Commits
Author SHA1 Message Date
c-chenxs1 7faa2730b5 feat: 同步人员时按人员类型或在职状态设置工会会员标记 2026-11-03 17:41:57 +08:00
c-chenxs1 fa019786d6 feat: 完善人员数据同步与筛选
- 在人员来源表中保存专业技术职务代码 ZYJSZWDM
- 支持按所属单位、在职状态和人员类型筛选空数据
- 在获取信息中心数据和更新系统用户数据页面添加搜索重置按钮
- 同步人员时按人员类型或在职状态设置工会会员标记
2026-11-03 17:30:29 +08:00
c-chenxs1 ffe782e538 feat: 人员映射 2026-11-03 15:06:04 +08:00
c-chenxs1 3c65c9d561 feat: 同步职工慰问和困难帮扶 2026-11-02 18:12:23 +08:00
c-chenxs1 89a77c41af Merge branch 'master' into feat_本工会单独业务 2026-11-02 11:30:59 +08:00
c-chenxs1 0f460e6b1a feat: 优化人员拉取和数据字典部分4 2026-11-02 11:22:39 +08:00
c-chenxs1 d1050db6b3 feat: 优化人员拉取和数据字典部分3 2026-10-29 16:14:08 +08:00
c-chenxs1 e3f32fe72b feat: 优化人员拉取和数据字典部分2 2026-10-29 15:52:02 +08:00
c-chenxs1 b885f449c7 feat: 优化人员拉取和数据字典部分 2026-10-29 15:29:55 +08:00
c-chenxs1 3f441828a1 Merge branch 'feat_可同步长江大学的优化_fix' into feat_本工会单独业务 2026-10-29 10:45:35 +08:00
58 changed files with 2160 additions and 266 deletions
@@ -20,6 +20,7 @@ RoleConstant {
SCHOOL_UNION_CHAIRMAN("校工会主席"),
SCHOOL_UNION_VICE_CHAIRMAN("校工会副主席"),
SCHOOL_UNION_WELFARE_ADMIN("校工会福利管理员"),
SCHOOL_UNION_WELFARE_COMMITTEE("校福利委员会"),
SCHOOL_UNION_MEMBER_ADMIN("校工会会员管理员"),
SCHOOL_UNION_TC_ADMIN("校工会教代会管理员"),
SCHOOL_UNION_WC_ADMIN("校工会工代会管理员"),
@@ -0,0 +1,47 @@
package com.budwk.app.flow.handler;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.exception.BaseException;
import com.budwk.app.flow.engine.AssignmentHandler;
import com.budwk.app.flow.engine.core.Execution;
import com.budwk.app.flow.engine.core.ServiceContext;
import com.budwk.app.flow.engine.model.TaskModel;
import com.budwk.app.sys.models.Sys_role;
import com.budwk.app.sys.models.Sys_user_role;
import com.budwk.app.sys.services.SysRoleService;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import java.util.List;
public class FlowSchoolUnionWelfareCommitteeHandler implements AssignmentHandler {
@Override
public List<String> assign(TaskModel model, Execution execution) {
Dao dao = ServiceContext.find(Dao.class);
SysRoleService sysRoleService = ServiceContext.find(SysRoleService.class);
Sys_role role = sysRoleService.getByCode(RoleConstant.SCHOOL_UNION_WELFARE_COMMITTEE);
if (role == null || role.isDisabled()) {
throw new BaseException("校福利委员会角色未配置或已禁用,请联系校工会!");
}
List<Sys_user_role> relations = dao.query(Sys_user_role.class,
Cnd.where(Sys_user_role::getRoleId, "=", role.getId())
.and(Sys_user_role::getEnable, "=", true));
List<String> userIds = relations.stream().map(Sys_user_role::getUserId)
.filter(StrUtil::isNotBlank).distinct().toList();
if (userIds.isEmpty()) {
throw new BaseException("校福利委员没有设置,请联系校工会!");
}
return userIds;
}
@Override
public String getMessage() {
return "获取校福利委员";
}
@Override
public int getOrder() {
return 14;
}
}
@@ -14,6 +14,7 @@ import io.swagger.annotations.ApiOperation;
import org.nutz.dao.Cnd;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.cri.Static;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.annotation.At;
@@ -47,10 +48,10 @@ public class SysDataUserPullController {
cnd.andEX(Sys_user_source::getPullTime, "=", pageForm.getPullTime());
cnd.and(Cnd.likeEX(Sys_user_source::getUsername, pageForm.getUserName()));
cnd.and(Cnd.likeEX(Sys_user_source::getLoginname, pageForm.getLoginName()));
cnd.andEX(Sys_user_source::getUnitName, "=", pageForm.getUnitName());
cnd.andEX(Sys_user_source::getUserState, "=", pageForm.getUserState());
addSourceFilter(cnd, "us.unitName", pageForm.getUnitName());
addSourceFilter(cnd, "us.userState", pageForm.getUserState());
cnd.andEX(Sys_user_source::getPreparedBy, "=", pageForm.getPreparedBy());
cnd.andEX(Sys_user_source::getPersonType, "=", pageForm.getPersonType());
addSourceFilter(cnd, "us.personType", pageForm.getPersonType());
if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
@@ -61,6 +62,15 @@ public class SysDataUserPullController {
return Result.success(pagination);
}
private void addSourceFilter(Cnd cnd, String column, String value) {
if ("__EMPTY__".equals(value)) {
cnd.and(new Static("(%s IS NULL OR LOWER(%s) REGEXP '^[[:space:]]*(null)?[[:space:]]*$')"
.formatted(column, column)));
} else {
cnd.andEX(column, "=", value);
}
}
@At
@SaCheckPermission("sys.data.user.pull")
@ApiOperation("拉取用户数据")
@@ -98,6 +98,7 @@ public class Sys_user extends BaseModel implements Serializable {
@Column
@Comment("证件类型")
@ColDefine(type = ColType.VARCHAR, width = 30)
@DataCenterColumn(name = "证件类型", key = "SFZJLXDM", dict = "USER_ID_CARD_TYPE")
private String idCardType;
@Column
@@ -133,6 +134,7 @@ public class Sys_user extends BaseModel implements Serializable {
@Column
@Comment("岗位类别")
@ColDefine(type = ColType.VARCHAR, width = 50)
@DataCenterColumn(name = "聘岗类型", key = "ZYJSGWLBDMMC")
private String jobCategory;
@Column
@@ -222,7 +224,7 @@ public class Sys_user extends BaseModel implements Serializable {
private Integer pendingConfirmStatus;
@Column
@Comment("编制类别码")
@Comment("编制类别")
@ColDefine(type = ColType.VARCHAR, width = 30)
@DataCenterColumn(name = "编制类别", key = "BZLBDMMC")
private String preparedBy;
@@ -295,6 +297,7 @@ public class Sys_user extends BaseModel implements Serializable {
@Comment("是否双肩挑")
@ColDefine(type = ColType.BOOLEAN)
@Default(value = "0")
@DataCenterColumn(name = "是否双肩挑", key = "SFSJT")
private Boolean manyUnit;
@Column
@@ -1,5 +1,6 @@
package com.budwk.app.sys.models;
import com.budwk.app.sys.annotation.DataCenterColumn;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@@ -31,6 +32,42 @@ public class Sys_user_source extends Sys_user {
@ColDefine(type = ColType.VARCHAR, width = 255)
private String unitName;
@Column
@Comment("最高学历代码")
@ColDefine(type = ColType.VARCHAR, width = 20)
@DataCenterColumn(name = "最高学历代码", key = "ZGXLDM")
private String educationCode;
@Column
@Comment("最高学位代码")
@ColDefine(type = ColType.VARCHAR, width = 50)
@DataCenterColumn(name = "最高学位代码", key = "XWDM")
private String academicDegreeCode;
@Column
@Comment("编制类别代码")
@ColDefine(type = ColType.VARCHAR, width = 30)
@DataCenterColumn(name = "编制类别代码", key = "BZLBDM")
private String preparedByCode;
@Column
@Comment("聘岗类型代码")
@ColDefine(type = ColType.VARCHAR, width = 50)
@DataCenterColumn(name = "聘岗类型代码", key = "ZYJSGWLBDM")
private String jobCategoryCode;
@Column
@Comment("专业技术职务代码")
@ColDefine(type = ColType.VARCHAR, width = 50)
@DataCenterColumn(name = "专业技术职务代码", key = "ZYJSZWDM")
private String professionalTitleCode;
@Column
@Comment("当前状态代码")
@ColDefine(type = ColType.VARCHAR, width = 30)
@DataCenterColumn(name = "当前状态代码", key = "DQZTDM")
private String userStateCode;
@Column
@Comment("拉取时间")
@ColDefine(type = ColType.DATETIME)
@@ -7,4 +7,15 @@ import com.budwk.app.sys.param.SysDataUserUpdateParam;
*/
public interface SysDataUserUpdateService {
String update(SysDataUserUpdateParam updateParam);
static boolean qualifiesAsUnionMember(String personType, String userState) {
if (!"在岗".equals(userState) || personType == null) {
return false;
}
return switch (personType) {
case "在编", "兰溪编制", "聘用合同制(享受人事代理待遇)",
"聘用合同制", "聘用制专家", "人事代理" -> true;
default -> false;
};
}
}
@@ -164,6 +164,9 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
// 创建用户对象
Sys_user u = new Sys_user();
BeanUtils.copyProperties(source, u);
if (SysDataUserUpdateService.qualifiesAsUnionMember(u.getPersonType(), u.getUserState())) {
u.setMember(true);
}
if (user == null) {
// 新增用户,初始化数据
@@ -123,6 +123,9 @@ public class SysDataUserIncrUpdateServiceImpl implements SysDataUserUpdateServic
//加入到系统用户表
List<Sys_user> sysUsers = BeanUtil.copyToList(userSources, Sys_user.class);
for (Sys_user sysUser : sysUsers) {
if (SysDataUserUpdateService.qualifiesAsUnionMember(sysUser.getPersonType(), sysUser.getUserState())) {
sysUser.setMember(true);
}
//重新设置
sysUser.setId(R.UU32());
String salt = R.UU32();
@@ -98,7 +98,7 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl<Sys_user_source>
synchronized (SysDataUserPullServiceImpl.class) {
if (fieldMappings == null) {
List<FieldMapping> mappings = new ArrayList<>();
Field[] fields = Sys_user.class.getDeclaredFields();
Field[] fields = cn.hutool.core.util.ReflectUtil.getFields(Sys_user_source.class);
for (Field field : fields) {
DataCenterColumn annotation = field.getAnnotation(DataCenterColumn.class);
if (annotation != null) {
@@ -200,6 +200,8 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl<Sys_user_source>
mapping.field.set(sysUser, raw.getStr(mapping.key));
}
}
} else if (mapping.field.getType() == Boolean.class) {
mapping.field.set(sysUser, raw.getBool(mapping.key));
} else if (mapping.field.getType() == Date.class) {
String dateText = StrUtil.trim(raw.getStr(mapping.key));
if (StrUtil.isNotBlank(dateText)) {
@@ -127,6 +127,7 @@ public class CondolenceApplyController {
username as userName,
loginname as loginName,
sex,
mobile,
technicalTitle,
IFNULL(unitname, '暂无') as unitName,
unitid as unitId,
@@ -27,34 +27,34 @@ import org.nutz.mvc.annotation.Param;
import java.util.List;
/**
* @ClassName CondolenceBranchUnionApprovalController
* @ClassName CondolenceFirstApprovalController
* @Author JyuHsin
* @Date 2025/7/28 11:33
* @Version 1.0
* @Description TODO
*/
@IocBean
@At("/platform/condolence/branchUnionApproval")
@Api("职工慰问分工会审核")
@At("/platform/condolence/firstApproval")
@Api("职工慰问一级审核")
@Ok("json:full")
public class CondolenceBranchUnionApprovalController {
public class CondolenceFirstApprovalController {
@Inject
private CondolenceService condolenceService;
@At("/")
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/branchUnionApproval/index.html")
@SaCheckPermission("condolence.branchUnionApproval")
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/firstApproval/index.html")
@SaCheckPermission("condolence.firstApproval")
public void index() {}
@At("/h5")
@Ok("beetl:/platform/zhghh5/staffbenefit/condolence/branchUnionApproval/index.html")
@SaCheckPermission("h5.condolence.branchUnionApproval")
@Ok("beetl:/platform/zhghh5/staffbenefit/condolence/firstApproval/index.html")
@SaCheckPermission("h5.condolence.firstApproval")
public void h5Index() {}
@At
@ApiOperation("分页查询")
@SaCheckPermission(value = {"condolence.branchUnionApproval", "h5.condolence.branchUnionApproval"}, mode = SaMode.OR)
@SaCheckPermission(value = {"condolence.firstApproval", "h5.condolence.firstApproval"}, mode = SaMode.OR)
public Result pageData(PageForm pageForm,
@Param(value = "year") Integer year,
@Param(value = "type") String type,
@@ -29,30 +29,30 @@ import java.util.List;
/**
* @author zhf
* @date 2025/12/23 14:13
* @description 校工会预审
* @description 二级审核
*/
@IocBean
@At("/platform/condolence/schoolPrincipalApproval")
@Api("职工慰问校工会预审")
@At("/platform/condolence/secondApproval")
@Api("职工慰问二级审核")
@Ok("json:full")
public class CondolenceSchoolPrincipalApprovalController {
public class CondolenceSecondApprovalController {
@Inject
private CondolenceService condolenceService;
@At("/")
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/schoolPrincipalApproval/index.html")
@SaCheckPermission("condolence.schoolPrincipalApproval")
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/secondApproval/index.html")
@SaCheckPermission("condolence.secondApproval")
public void index() {}
@At("/h5")
@Ok("beetl:/platform/zhghh5/staffbenefit/condolence/schoolPrincipalApproval/index.html")
@SaCheckPermission("h5.condolence.schoolPrincipalApproval")
@Ok("beetl:/platform/zhghh5/staffbenefit/condolence/secondApproval/index.html")
@SaCheckPermission("h5.condolence.secondApproval")
public void h5Index() {}
@At
@ApiOperation("分页查询")
@SaCheckPermission(value = {"condolence.schoolPrincipalApproval", "h5.condolence.schoolPrincipalApproval"}, mode = SaMode.OR)
@SaCheckPermission(value = {"condolence.secondApproval", "h5.condolence.secondApproval"}, mode = SaMode.OR)
public Result pageData(PageForm pageForm,
@Param(value = "year") Integer year,
@Param(value = "type") String type,
@@ -27,34 +27,34 @@ import org.nutz.mvc.annotation.Param;
import java.util.List;
/**
* @ClassName CondolenceSchoolUnionApprovalController
* @ClassName CondolenceThirdApprovalController
* @Author JyuHsin
* @Date 2025/7/29 16:23
* @Version 1.0
* @Description TODO
*/
@IocBean
@At("/platform/condolence/schoolUnionApproval")
@Api("职工慰问校工会审核")
@At("/platform/condolence/thirdApproval")
@Api("职工慰问三级审核")
@Ok("json:full")
public class CondolenceSchoolUnionApprovalController {
public class CondolenceThirdApprovalController {
@Inject
private CondolenceService condolenceService;
@At("/")
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/schoolUnionApproval/index.html")
@SaCheckPermission("condolence.schoolUnionApproval")
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/thirdApproval/index.html")
@SaCheckPermission("condolence.thirdApproval")
public void index() {}
@At("/h5")
@Ok("beetl:/platform/zhghh5/staffbenefit/condolence/schoolUnionApproval/index.html")
@SaCheckPermission("h5.condolence.schoolUnionApproval")
@Ok("beetl:/platform/zhghh5/staffbenefit/condolence/thirdApproval/index.html")
@SaCheckPermission("h5.condolence.thirdApproval")
public void h5Index() {}
@At
@ApiOperation("分页查询")
@SaCheckPermission(value = {"condolence.schoolUnionApproval", "h5.condolence.schoolUnionApproval"}, mode = SaMode.OR)
@SaCheckPermission(value = {"condolence.thirdApproval", "h5.condolence.thirdApproval"}, mode = SaMode.OR)
public Result pageData(PageForm pageForm,
@Param(value = "year") Integer year,
@Param(value = "type") String type,
@@ -184,6 +184,10 @@ public class DifficultHelpApplyController {
birthday,
mobile,
sex,
idCard,
position,
professionalTitle AS officialCapacity,
(SELECT u.homeAddress FROM sys_user u WHERE u.id = vw_user.id) AS homeAddress,
unitName,
unionName,
unionId,
@@ -25,15 +25,15 @@ import java.util.List;
/**
* @version 1.0
* @Author zzr
* @name:DifficultHelpBranchUnionApprovalController
* @name:DifficultHelpFirstApprovalController
* @Date 2025/7/31 11:47
* @注释
*/
@IocBean
@Ok("json")
@ApiOperation("困难补助分工会审核")
@At("/platform/difficultHelp/branchUnionApproval")
public class DifficultHelpBranchUnionApprovalController {
@ApiOperation("困难补助一级审核")
@At("/platform/difficultHelp/firstApproval")
public class DifficultHelpFirstApprovalController {
@Inject
private Dao dao;
@@ -41,27 +41,27 @@ public class DifficultHelpBranchUnionApprovalController {
private DifficultHelpCommonService difficultHelpCommonService;
@At("")
@SaCheckPermission("difficultHelp.branchUnionApproval")
@Ok("beetl:/platform/zhgh/staffbenefit/difficulthelp/branchunionapproval/index.html")
@SaCheckPermission("difficultHelp.firstApproval")
@Ok("beetl:/platform/zhgh/staffbenefit/difficulthelp/firstApproval/index.html")
public void index() {
}
@At
@SaCheckPermission("difficultHelp.branchUnionApproval")
@Ok("beetl:/platform/zhgh/staffbenefit/difficulthelp/branchunionapproval/form.html")
@SaCheckPermission("difficultHelp.firstApproval")
@Ok("beetl:/platform/zhgh/staffbenefit/difficulthelp/firstApproval/form.html")
public void form() {
}
@At
@SaCheckPermission("h5.difficultHelp.branchUnionApproval")
@Ok("beetl:/platform/zhghh5/staffbenefit/difficulthelp/branchunionapproval/index.html")
@SaCheckPermission("h5.difficultHelp.firstApproval")
@Ok("beetl:/platform/zhghh5/staffbenefit/difficulthelp/firstApproval/index.html")
public void h5() {
}
@At
@ApiOperation("困难补助分工会审核列表")
@SaCheckPermission("difficultHelp.branchUnionApproval")
@ApiOperation("困难补助一级审核列表")
@SaCheckPermission("difficultHelp.firstApproval")
public Result pageData(DifficultHelpPageParam pageParam) {
Sql sql = Sqls.create("""
SELECT
@@ -1,6 +1,7 @@
package com.budwk.app.zhgh.staffbenefit.difficulthelp.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaMode;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.page.Pagination;
@@ -68,6 +69,7 @@ public class DifficultHelpMineController {
Sql sql = Sqls.create("""
SELECT
info.id,
info.createdBy,
info.proxyUserName,
info.proxyLoginName,
info.userName,
@@ -103,7 +105,8 @@ public class DifficultHelpMineController {
""");
Cnd cnd = Cnd.NEW();
pageParam.buildSearch(cnd, "info.");
cnd.and("info.createdBy", "=", SecurityUtil.getUserId());
cnd.and(Cnd.exps("info.createdBy", "=", SecurityUtil.getUserId())
.or("info.userId", "=", SecurityUtil.getUserId()));
if (StrUtil.isAllBlank(pageParam.getPageOrderName(), pageParam.getPageOrderBy())) {
cnd.desc("info.applyTime");
} else {
@@ -121,6 +124,10 @@ public class DifficultHelpMineController {
@SaCheckPermission("difficultHelp.mine")
@SLog(tag = "困难补助申请", msg = "删除困难补助申请,id: ${args[0]}")
public Result onDelete(@Valid String id){
DifficultHelpInfo helpInfo = dao.fetch(DifficultHelpInfo.class, id);
if (helpInfo == null || !SecurityUtil.getUserId().equals(helpInfo.getCreatedBy())) {
return Result.error("只能删除自己创建的申请记录");
}
dao.clear(DifficultHelpInfo.class, Cnd.where("id", "=", id));
// 删除流程相关操作
flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id);
@@ -130,7 +137,7 @@ public class DifficultHelpMineController {
@At
@ApiModelProperty("获取困难补助申请")
@SaCheckPermission("difficultHelp.mine")
@SaCheckPermission(value = {"difficultHelp.mine", "difficultHelp.reading"}, mode = SaMode.OR)
public Result findOne(String id) {
DifficultHelpInfo helpInfo = dao.fetch(DifficultHelpInfo.class, id);
return Result.success().addData(helpInfo);
@@ -26,15 +26,15 @@ import java.util.List;
/**
* @version 1.0
* @Author zzr
* @name:DifficultHelpBranchUnionApprovalController
* @name:DifficultHelpSecondApprovalController
* @Date 2025/7/31 11:47
* @注释
*/
@IocBean
@Ok("json")
@ApiOperation("困难补助二级党组织审核")
@At("/platform/difficultHelp/unionLeaderApproval")
public class DifficultHelpBranchUnionLeaderApprovalController {
@ApiOperation("困难补助二级审核")
@At("/platform/difficultHelp/secondApproval")
public class DifficultHelpSecondApprovalController {
@Inject
private Dao dao;
@@ -42,27 +42,27 @@ public class DifficultHelpBranchUnionLeaderApprovalController {
private DifficultHelpCommonService difficultHelpCommonService;
@At("")
@SaCheckPermission("difficultHelp.unionLeaderApproval")
@Ok("beetl:/platform/zhgh/staffbenefit/difficulthelp/unionLeaderApproval/index.html")
@SaCheckPermission("difficultHelp.secondApproval")
@Ok("beetl:/platform/zhgh/staffbenefit/difficulthelp/secondApproval/index.html")
public void index() {
}
@At
@SaCheckPermission("difficultHelp.unionLeaderApproval")
@Ok("beetl:/platform/zhgh/staffbenefit/difficulthelp/unionLeaderApproval/form.html")
@SaCheckPermission("difficultHelp.secondApproval")
@Ok("beetl:/platform/zhgh/staffbenefit/difficulthelp/secondApproval/form.html")
public void form() {
}
@At
@SaCheckPermission("h5.difficultHelp.unionLeaderApproval")
@Ok("beetl:/platform/zhghh5/staffbenefit/difficulthelp/unionLeaderApproval/index.html")
@SaCheckPermission("h5.difficultHelp.secondApproval")
@Ok("beetl:/platform/zhghh5/staffbenefit/difficulthelp/secondApproval/index.html")
public void h5() {
}
@At
@ApiOperation("困难补助分工会审核列表")
@SaCheckPermission("difficultHelp.unionLeaderApproval")
@ApiOperation("困难补助二级审核列表")
@SaCheckPermission("difficultHelp.secondApproval")
public Result pageData(DifficultHelpPageParam pageParam) {
Sql sql = Sqls.create("""
SELECT
@@ -30,15 +30,15 @@ import java.util.List;
/**
* @version 1.0
* @Author zzr
* @name:DifficultHelpSchoolUnionApprovalController
* @name:DifficultHelpThirdApprovalController
* @Date 2025/7/31 11:47
* @注释
*/
@IocBean
@Ok("json")
@ApiOperation("困难补助校工会审核")
@At("/platform/difficultHelp/schoolUnionApproval")
public class DifficultHelpSchoolUnionApprovalController {
@ApiOperation("困难补助三级审核")
@At("/platform/difficultHelp/thirdApproval")
public class DifficultHelpThirdApprovalController {
@Inject
private Dao dao;
@@ -46,26 +46,26 @@ public class DifficultHelpSchoolUnionApprovalController {
private DifficultHelpCommonService difficultHelpCommonService;
@At("")
@SaCheckPermission("difficultHelp.schoolUnionApproval")
@Ok("beetl:/platform/zhgh/staffbenefit/difficulthelp/schoolunionapproval/index.html")
@SaCheckPermission("difficultHelp.thirdApproval")
@Ok("beetl:/platform/zhgh/staffbenefit/difficulthelp/thirdApproval/index.html")
public void index() {
}
@At
@SaCheckPermission("difficultHelp.schoolUnionApproval")
@Ok("beetl:/platform/zhgh/staffbenefit/difficulthelp/schoolunionapproval/form.html")
@SaCheckPermission("difficultHelp.thirdApproval")
@Ok("beetl:/platform/zhgh/staffbenefit/difficulthelp/thirdApproval/form.html")
public void form() {
}
@At
@SaCheckPermission("h5.difficultHelp.schoolUnionApproval")
@Ok("beetl:/platform/zhghh5/staffbenefit/difficulthelp/schoolunionapproval/index.html")
@SaCheckPermission("h5.difficultHelp.thirdApproval")
@Ok("beetl:/platform/zhghh5/staffbenefit/difficulthelp/thirdApproval/index.html")
public void h5() {
}
@At
@ApiOperation("困难补助校工会审核列表")
@SaCheckPermission("difficultHelp.schoolUnionApproval")
@ApiOperation("困难补助三级审核列表")
@SaCheckPermission("difficultHelp.thirdApproval")
public Result pageData(DifficultHelpPageParam pageParam) {
Sql sql = Sqls.create("""
SELECT
@@ -131,7 +131,7 @@ public class DifficultHelpSchoolUnionApprovalController {
@At
@ApiOperation("保存补助金额、级别")
@SaCheckPermission("difficultHelp.schoolUnionApproval")
@SaCheckPermission("difficultHelp.thirdApproval")
@SLog(tag = "困难补助申请", msg = "保存申请,填写人: ${args[0].proxyUserName}")
public Result save(@Param("data") DifficultHelpInfo difficultHelpInfo) {
dao.updateIgnoreNull(difficultHelpInfo);
@@ -25,6 +25,16 @@ public class MemberHistory extends Sys_user {
@ColDefine(type = ColType.VARCHAR, width = 32)
private String id;
@Column
@Comment("编制类别")
@ColDefine(type = ColType.TEXT)
private String preparedBy;
@Column
@Comment("岗位类别")
@ColDefine(type = ColType.TEXT)
private String jobCategory;
@Column
@Comment("年度")
@ColDefine(type = ColType.INT, width = 4)
+11 -5
View File
@@ -7938,7 +7938,7 @@ CREATE TABLE `member_history` (
`modelWorkerFiles` json NULL COMMENT '劳模资料',
`customMenuIds` json NULL COMMENT '常用菜单',
`retireDate` date NULL DEFAULT NULL COMMENT '退休日期',
`preparedBy` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '人事编制',
`preparedBy` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '编制类别',
`customApprovalOpinions` json NULL COMMENT '常用审批意见',
`wxOpenId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '微信openId',
`totalIntegral` int NULL DEFAULT 0 COMMENT '总积分',
@@ -7962,7 +7962,7 @@ CREATE TABLE `member_history` (
`isThirtyTeach` tinyint(1) NULL DEFAULT NULL COMMENT '是否教学30年以上教工',
`preparationMemberFee` decimal(10, 2) NULL DEFAULT NULL COMMENT '编制会费',
`contractMemberFee` decimal(10, 2) NULL DEFAULT NULL COMMENT '合同制会费',
`jobCategory` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '岗位类别',
`jobCategory` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '岗位类别',
`professionalTitle` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '职称',
`professionalLevel` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '职级',
`employeeSource` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '职工来源',
@@ -12460,7 +12460,7 @@ CREATE TABLE `sys_user` (
`arrivalAtSchoolDate` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '来校时间',
`postDoctoralJoinDate` date NULL DEFAULT NULL COMMENT '博士后进站时间',
`personType1` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '人员类别',
`preparedBy` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '聘用方式',
`preparedBy` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '编制类别',
`marriage` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '婚姻状况',
`memberTime` datetime NULL DEFAULT NULL COMMENT '会员加入时间',
`openId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'openId',
@@ -12634,7 +12634,7 @@ CREATE TABLE `sys_user_history` (
`dutySituation` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '在岗情况',
`personType` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '教职工类别码',
`pendingConfirmStatus` tinyint NULL DEFAULT 0 COMMENT '待确认状态:0不用确认、1待确认、2已确认',
`preparedBy` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '编制类别码',
`preparedBy` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '编制类别',
`teachingTime` date NULL DEFAULT NULL COMMENT '从教年月',
`expectedLeaveSchoolDate` date NULL DEFAULT NULL COMMENT '预计离校时间/最后离校时间',
`retireDate` date NULL DEFAULT NULL COMMENT '退休时间',
@@ -12743,7 +12743,9 @@ CREATE TABLE `sys_user_source` (
`idCard` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '证件号码',
`mobile` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号码',
`education` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '学历',
`educationCode` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '最高学历代码',
`academicDegree` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '学位',
`academicDegreeCode` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '最高学位代码',
`technicalTitle` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '技术职称',
`technicalTitleLevel` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '技术职称级别',
`position` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '职务',
@@ -12754,6 +12756,7 @@ CREATE TABLE `sys_user_source` (
`employmentType` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '聘用方式',
`identityType` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '身份类型',
`userState` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '在职状态',
`userStateCode` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '当前状态代码',
`retireDate` date NULL DEFAULT NULL COMMENT '退休时间',
`avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '头像',
`email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '电子邮箱',
@@ -12784,7 +12787,8 @@ CREATE TABLE `sys_user_source` (
`arrivalAtSchoolDate` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '来校时间',
`postDoctoralJoinDate` date NULL DEFAULT NULL COMMENT '博士后进站时间',
`personType` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '人员类别',
`preparedBy` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '聘用方式',
`preparedBy` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '编制类别',
`preparedByCode` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '编制类别代码',
`marriage` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '婚姻状况',
`memberTime` datetime NULL DEFAULT NULL COMMENT '会员加入时间',
`openId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'openId',
@@ -12793,7 +12797,9 @@ CREATE TABLE `sys_user_source` (
`preparationMemberFee` decimal(10, 2) NULL DEFAULT NULL COMMENT '编制会费',
`contractMemberFee` decimal(10, 2) NULL DEFAULT NULL COMMENT '合同制会费',
`jobCategory` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '岗位类别',
`jobCategoryCode` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '聘岗类型代码',
`professionalTitle` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '职称',
`professionalTitleCode` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '专业技术职务代码',
`professionalLevel` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '职级',
`employeeSource` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '职工来源',
`administrativeLevel` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '行政级别(用于管理岗位)',
@@ -0,0 +1,783 @@
-- 人员接口原始代码到名称的映射;系统页面字典另由 sys_dict 保存名称值。
-- 同分类、同代码已有记录更新名称,缺失记录补充,不删除其他记录。
SET NAMES utf8mb4;
START TRANSACTION;
UPDATE sys_data_dict existing
JOIN (
SELECT 'USER_SEX' AS parentCode, '1' AS code, '男' AS name
UNION ALL SELECT 'USER_SEX', '2', '女'
UNION ALL SELECT 'USER_POLITICAL', '01', '中国共产党员'
UNION ALL SELECT 'USER_POLITICAL', '02', '中国共产党预备党员'
UNION ALL SELECT 'USER_POLITICAL', '03', '中国共产主义青年团团员'
UNION ALL SELECT 'USER_POLITICAL', '04', '中国国民党革命委员会会员'
UNION ALL SELECT 'USER_POLITICAL', '05', '中国民主同盟盟员'
UNION ALL SELECT 'USER_POLITICAL', '06', '中国民主建国会会员'
UNION ALL SELECT 'USER_POLITICAL', '07', '中国民主促进会会员'
UNION ALL SELECT 'USER_POLITICAL', '08', '中国农工民主党党员'
UNION ALL SELECT 'USER_POLITICAL', '09', '中国致公党党员'
UNION ALL SELECT 'USER_POLITICAL', '10', '九三学社社员'
UNION ALL SELECT 'USER_POLITICAL', '11', '台湾民主自治同盟盟员'
UNION ALL SELECT 'USER_POLITICAL', '12', '无党派民主人士'
UNION ALL SELECT 'USER_POLITICAL', '13', '群众'
UNION ALL SELECT 'USER_POLITICAL', '14', '入党积极分子'
UNION ALL SELECT 'USER_POLITICAL', '99', '其他'
UNION ALL SELECT 'USER_NATION', '01', '汉族'
UNION ALL SELECT 'USER_NATION', '02', '蒙古族'
UNION ALL SELECT 'USER_NATION', '03', '回族'
UNION ALL SELECT 'USER_NATION', '04', '藏族'
UNION ALL SELECT 'USER_NATION', '05', '维吾尔族'
UNION ALL SELECT 'USER_NATION', '06', '苗族'
UNION ALL SELECT 'USER_NATION', '07', '彝族'
UNION ALL SELECT 'USER_NATION', '08', '壮族'
UNION ALL SELECT 'USER_NATION', '09', '布依族'
UNION ALL SELECT 'USER_NATION', '10', '朝鲜族'
UNION ALL SELECT 'USER_NATION', '11', '满族'
UNION ALL SELECT 'USER_NATION', '12', '侗族'
UNION ALL SELECT 'USER_NATION', '13', '瑶族'
UNION ALL SELECT 'USER_NATION', '14', '白族'
UNION ALL SELECT 'USER_NATION', '15', '土家族'
UNION ALL SELECT 'USER_NATION', '16', '哈尼族'
UNION ALL SELECT 'USER_NATION', '17', '哈萨克族'
UNION ALL SELECT 'USER_NATION', '18', '傣族'
UNION ALL SELECT 'USER_NATION', '19', '黎族'
UNION ALL SELECT 'USER_NATION', '20', '傈僳族'
UNION ALL SELECT 'USER_NATION', '21', '佤族'
UNION ALL SELECT 'USER_NATION', '22', '畲族'
UNION ALL SELECT 'USER_NATION', '23', '高山族'
UNION ALL SELECT 'USER_NATION', '24', '拉祜族'
UNION ALL SELECT 'USER_NATION', '25', '水族'
UNION ALL SELECT 'USER_NATION', '26', '东乡族'
UNION ALL SELECT 'USER_NATION', '27', '纳西族'
UNION ALL SELECT 'USER_NATION', '28', '景颇族'
UNION ALL SELECT 'USER_NATION', '29', '柯尔克孜族'
UNION ALL SELECT 'USER_NATION', '30', '土族'
UNION ALL SELECT 'USER_NATION', '31', '达斡尔族'
UNION ALL SELECT 'USER_NATION', '32', '仫佬族'
UNION ALL SELECT 'USER_NATION', '33', '羌族'
UNION ALL SELECT 'USER_NATION', '34', '布朗族'
UNION ALL SELECT 'USER_NATION', '35', '撒拉族'
UNION ALL SELECT 'USER_NATION', '36', '毛南族'
UNION ALL SELECT 'USER_NATION', '37', '仡佬族'
UNION ALL SELECT 'USER_NATION', '38', '锡伯族'
UNION ALL SELECT 'USER_NATION', '39', '阿昌族'
UNION ALL SELECT 'USER_NATION', '40', '普米族'
UNION ALL SELECT 'USER_NATION', '41', '塔吉克族'
UNION ALL SELECT 'USER_NATION', '42', '怒族'
UNION ALL SELECT 'USER_NATION', '43', '乌孜别克族'
UNION ALL SELECT 'USER_NATION', '44', '俄罗斯族'
UNION ALL SELECT 'USER_NATION', '45', '鄂温克族'
UNION ALL SELECT 'USER_NATION', '46', '崩龙族'
UNION ALL SELECT 'USER_NATION', '47', '保安族'
UNION ALL SELECT 'USER_NATION', '48', '裕固族'
UNION ALL SELECT 'USER_NATION', '49', '京族'
UNION ALL SELECT 'USER_NATION', '50', '塔塔尔族'
UNION ALL SELECT 'USER_NATION', '51', '独龙族'
UNION ALL SELECT 'USER_NATION', '52', '鄂伦春族'
UNION ALL SELECT 'USER_NATION', '53', '赫哲族'
UNION ALL SELECT 'USER_NATION', '54', '门巴族'
UNION ALL SELECT 'USER_NATION', '55', '珞巴族'
UNION ALL SELECT 'USER_NATION', '56', '基诺族'
UNION ALL SELECT 'USER_NATION', '59', '穿青人'
UNION ALL SELECT 'USER_NATION', '60', '革(亻革)家人'
UNION ALL SELECT 'USER_NATION', '90', '藏族(区内)'
UNION ALL SELECT 'USER_NATION', '97', '其他'
UNION ALL SELECT 'USER_NATION', '98', '外国血统中国籍人士'
UNION ALL SELECT 'USER_STATE', '01', '离退休'
UNION ALL SELECT 'USER_STATE', '03', '死亡'
UNION ALL SELECT 'USER_STATE', '04', '退休返聘'
UNION ALL SELECT 'USER_STATE', '05', '调出'
UNION ALL SELECT 'USER_STATE', '06', '辞职'
UNION ALL SELECT 'USER_STATE', '07', '离职'
UNION ALL SELECT 'USER_STATE', '08', '开除'
UNION ALL SELECT 'USER_STATE', '11', '在职'
UNION ALL SELECT 'USER_STATE', '14', '长病假'
UNION ALL SELECT 'USER_STATE', '15', '因公出国'
UNION ALL SELECT 'USER_STATE', '17', '待岗'
UNION ALL SELECT 'USER_STATE', '19', '内退'
UNION ALL SELECT 'USER_STATE', '20', '自主创业'
UNION ALL SELECT 'USER_STATE', '21', '挂职'
UNION ALL SELECT 'USER_STATE', '22', '在岗'
UNION ALL SELECT 'USER_STATE', '98', '病假等'
UNION ALL SELECT 'USER_STATE', '99', '其他'
UNION ALL SELECT 'USER_STATE', '999', '报到办理中'
UNION ALL SELECT 'USER_JOB_CATEGORY', '10', '管理岗位'
UNION ALL SELECT 'USER_JOB_CATEGORY', '20', '专业技术岗位'
UNION ALL SELECT 'USER_JOB_CATEGORY', '21', '教师岗位'
UNION ALL SELECT 'USER_JOB_CATEGORY', '22', '专职辅导员岗位'
UNION ALL SELECT 'USER_JOB_CATEGORY', '23', '其他专业技术岗位'
UNION ALL SELECT 'USER_JOB_CATEGORY', '30', '工勤技能岗位'
UNION ALL SELECT 'USER_JOB_CATEGORY', '125', '编辑'
UNION ALL SELECT 'USER_JOB_CATEGORY', '126', '编审'
UNION ALL SELECT 'USER_JOB_CATEGORY', '127', '大学讲师'
UNION ALL SELECT 'USER_JOB_CATEGORY', '128', '档案'
UNION ALL SELECT 'USER_JOB_CATEGORY', '129', '副教授'
UNION ALL SELECT 'USER_JOB_CATEGORY', '130', '高级工程师'
UNION ALL SELECT 'USER_JOB_CATEGORY', '131', '高级会计师'
UNION ALL SELECT 'USER_JOB_CATEGORY', '132', '高级讲师'
UNION ALL SELECT 'USER_JOB_CATEGORY', '133', '高校讲师'
UNION ALL SELECT 'USER_JOB_CATEGORY', '134', '工程'
UNION ALL SELECT 'USER_JOB_CATEGORY', '135', '馆员'
UNION ALL SELECT 'USER_JOB_CATEGORY', '136', '管理'
UNION ALL SELECT 'USER_JOB_CATEGORY', '137', '会计'
UNION ALL SELECT 'USER_JOB_CATEGORY', '138', '会计审计'
UNION ALL SELECT 'USER_JOB_CATEGORY', '139', '讲师'
UNION ALL SELECT 'USER_JOB_CATEGORY', '140', '教管'
UNION ALL SELECT 'USER_JOB_CATEGORY', '142', '教育管理'
UNION ALL SELECT 'USER_JOB_CATEGORY', '143', '科研'
UNION ALL SELECT 'USER_JOB_CATEGORY', '145', '实验'
UNION ALL SELECT 'USER_JOB_CATEGORY', '146', '实验师'
UNION ALL SELECT 'USER_JOB_CATEGORY', '147', '思政'
UNION ALL SELECT 'USER_JOB_CATEGORY', '148', '图资'
UNION ALL SELECT 'USER_JOB_CATEGORY', '149', '卫计'
UNION ALL SELECT 'USER_JOB_CATEGORY', '150', '卫技'
UNION ALL SELECT 'USER_JOB_CATEGORY', '151', '幼教'
UNION ALL SELECT 'USER_ID_CARD_TYPE', '0', '居民身份证'
UNION ALL SELECT 'USER_ID_CARD_TYPE', '1', '护照'
UNION ALL SELECT 'USER_ID_CARD_TYPE', '2', '港澳台居民身份证'
UNION ALL SELECT 'USER_ID_CARD_TYPE', '4', '旅行证据'
UNION ALL SELECT 'USER_ID_CARD_TYPE', '5', '其他'
UNION ALL SELECT 'USER_MANY_UNIT', '0', '否'
UNION ALL SELECT 'USER_MANY_UNIT', '1', '是'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '000', '无学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '0', '博士后'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '004', '教育学博士后'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '005', '文学博士后'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '006', '历史学博士后'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '008', '工学博士后'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '100', '名誉博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '200', '博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '201', '哲学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '202', '经济学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '203', '法学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '204', '教育学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '205', '文学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '206', '历史学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '207', '理学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '208', '工学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '209', '农学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '210', '医学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '212', '管理学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '213', '艺术学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '242', '教育博士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '245', '临床医学博士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '248', '兽医博士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '250', '口腔医学博士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '300', '硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '301', '哲学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '302', '经济学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '303', '法学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '304', '教育学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '305', '文学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '306', '历史学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '307', '理学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '308', '工学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '309', '农学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '310', '医学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '312', '管理学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '313', '艺术学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '341', '法律硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '342', '教育硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '343', '工程硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '344', '建筑学硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '345', '临床学硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '346', '工商管理硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '347', '农业推广硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '348', '兽医硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '349', '公共管理硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '350', '口腔医学硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '351', '公共卫生硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '352', '军事硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '353', '金融硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '354', '体育硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '355', '艺术硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '356', '风景园林硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '357', '汉语国际教育硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '358', '翻译硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '359', '审计硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '360', '社会工作硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '362', '体育硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '364', '应用心理硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '365', '翻译硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '370', '风景园林硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '375', '会计硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '377', '图书情报硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '379', '艺术硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '400', '学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '401', '哲学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '402', '经济学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '403', '法学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '404', '教育学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '405', '文学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '406', '历史学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '407', '理学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '408', '工学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '409', '农学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '410', '医学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '412', '管理学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '413', '艺术学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '444', '建筑学学士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '900', '境外学位'
UNION ALL SELECT 'USER_EDUCATION', '10', '研究生教育'
UNION ALL SELECT 'USER_EDUCATION', '11', '博士研究生毕业'
UNION ALL SELECT 'USER_EDUCATION', '12', '博士研究生结业'
UNION ALL SELECT 'USER_EDUCATION', '14', '硕士研究生毕业'
UNION ALL SELECT 'USER_EDUCATION', '15', '硕士研究生结业'
UNION ALL SELECT 'USER_EDUCATION', '17', '研究生班毕业'
UNION ALL SELECT 'USER_EDUCATION', '18', '研究生班结业'
UNION ALL SELECT 'USER_EDUCATION', '20', '大学本科教育'
UNION ALL SELECT 'USER_EDUCATION', '21', '大学本科毕业'
UNION ALL SELECT 'USER_EDUCATION', '22', '大学本科结业'
UNION ALL SELECT 'USER_EDUCATION', '25', '双学历毕业'
UNION ALL SELECT 'USER_EDUCATION', '28', '大学普通班毕业'
UNION ALL SELECT 'USER_EDUCATION', '30', '大学专科教育'
UNION ALL SELECT 'USER_EDUCATION', '31', '大学专科毕业'
UNION ALL SELECT 'USER_EDUCATION', '32', '大学专科结业'
UNION ALL SELECT 'USER_EDUCATION', '40', '中等职业教育'
UNION ALL SELECT 'USER_EDUCATION', '41', '中等专科毕业'
UNION ALL SELECT 'USER_EDUCATION', '42', '中等专科结业'
UNION ALL SELECT 'USER_EDUCATION', '43', '中等专科肄业'
UNION ALL SELECT 'USER_EDUCATION', '44', '职业高中毕业'
UNION ALL SELECT 'USER_EDUCATION', '45', '职业高中结业'
UNION ALL SELECT 'USER_EDUCATION', '47', '技工学校毕业'
UNION ALL SELECT 'USER_EDUCATION', '48', '技工学校结业'
UNION ALL SELECT 'USER_EDUCATION', '60', '普通高级中学教育'
UNION ALL SELECT 'USER_EDUCATION', '61', '普通高中毕业'
UNION ALL SELECT 'USER_EDUCATION', '62', '普通高中结业'
UNION ALL SELECT 'USER_EDUCATION', '63', '普通高中肄业'
UNION ALL SELECT 'USER_EDUCATION', '70', '初级中学教育'
UNION ALL SELECT 'USER_EDUCATION', '71', '初中毕业'
UNION ALL SELECT 'USER_EDUCATION', '73', '初中肄业'
UNION ALL SELECT 'USER_EDUCATION', '80', '小学教育'
UNION ALL SELECT 'USER_EDUCATION', '81', '小学毕业'
UNION ALL SELECT 'USER_EDUCATION', '90', '其他'
UNION ALL SELECT 'USER_EDUCATION', '128', '相当大学毕业'
UNION ALL SELECT 'USER_EDUCATION', '138', '相当专科毕业'
UNION ALL SELECT 'USER_EDUCATION', '142', '中技毕业'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '010', '高等学校教师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '011', '教授'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '012', '副教授'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '013', '讲师(高校)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '014', '助教(高校)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '022', '高级讲师(中专)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '023', '讲师(中专)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '024', '助理讲师(中专)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '032', '高级讲师(技校)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '033', '讲师(技校)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '034', '助理讲师(技校)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '043', '一级实习指导教师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '044', '二级实习指导教师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '045', '三级实习指导教师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '052', '高级教师(中学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '053', '一级教师(中学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '054', '二级教师(中学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '061', '正高级教师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '062', '高级教师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '063', '一级教师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '064', '二级教师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '071', '教授级高级实验师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '072', '高级实验师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '073', '实验师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '074', '助理实验师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '075', '实验员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '081', '教授级高级工程师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '082', '高级工程师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '083', '工程师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '084', '助理工程师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '085', '技术员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '093', '农艺师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '110', '农业技术人员(畜牧)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '120', '经济专业人员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '123', '经济师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '124', '助理经济师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '130', '会计专业人员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '132', '高级会计师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '133', '会计师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '134', '助理会计师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '135', '会计员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '140', '统计专业人员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '143', '统计师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '151', '编审'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '152', '副编审'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '153', '编辑'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '202', '主任编辑'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '203', '编辑'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '220', '播音员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '230', '卫生技术人员(医师)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '231', '主任医师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '232', '副主任医师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '233', '主治医师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '234', '医师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '242', '副主任药师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '243', '主管药师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '244', '药师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '250', '卫生技术人员(护理)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '252', '副主任护师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '253', '主管护师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '254', '护师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '263', '卫生主管技师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '413', '高级教师(小学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '414', '一级教师(小学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '430', '船舶技术人员(轮机)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '611', '研究员(自然科学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '612', '副研究员(自然科学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '613', '助理研究员(自然科学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '621', '研究员(社会科学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '622', '副研究员(社会科学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '623', '助理研究员(社会科学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '624', '研究实习员(社会科学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '641', '研究馆员(图书)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '642', '副研究馆员(图书)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '643', '馆员(图书)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '644', '助理馆员(图书)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '653', '馆员(文博)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '661', '研究馆员(档案)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '662', '副研究馆员(档案)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '663', '馆员(档案)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '911', '教授(思想政治教育)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '912', '副教授(思想政治教育)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '913', '讲师(思想政治教育)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '914', '助教(思想政治教育)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '983', '政工师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '984', '助理政工师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '985', '政工员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '992', '副教授(改革)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9061', '研究员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9062', '副研究员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9063', '助理研究员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9064', '研究实习员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9211', '研究馆员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9212', '副研究馆员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9213', '馆员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9214', '助理馆员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9215', '管理员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9581', '幼教一级'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9582', '幼教二级'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9583', '幼教高级'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9621', '研究员(教管)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9622', '副研究员(教管)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9623', '助理研究员(教管)'
) source ON existing.parentCode = source.parentCode AND existing.code = source.code
SET existing.name = source.name, existing.updatedAt = UNIX_TIMESTAMP(NOW()) * 1000
WHERE NOT (existing.name <=> source.name);
INSERT INTO sys_data_dict (
parentCode, name, code, createdBy, createdAt, updatedBy, updatedAt, delFlag
)
SELECT
source.parentCode, source.name, source.code,
'', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
FROM (
SELECT 'USER_SEX' AS parentCode, '1' AS code, '男' AS name
UNION ALL SELECT 'USER_SEX', '2', '女'
UNION ALL SELECT 'USER_POLITICAL', '01', '中国共产党员'
UNION ALL SELECT 'USER_POLITICAL', '02', '中国共产党预备党员'
UNION ALL SELECT 'USER_POLITICAL', '03', '中国共产主义青年团团员'
UNION ALL SELECT 'USER_POLITICAL', '04', '中国国民党革命委员会会员'
UNION ALL SELECT 'USER_POLITICAL', '05', '中国民主同盟盟员'
UNION ALL SELECT 'USER_POLITICAL', '06', '中国民主建国会会员'
UNION ALL SELECT 'USER_POLITICAL', '07', '中国民主促进会会员'
UNION ALL SELECT 'USER_POLITICAL', '08', '中国农工民主党党员'
UNION ALL SELECT 'USER_POLITICAL', '09', '中国致公党党员'
UNION ALL SELECT 'USER_POLITICAL', '10', '九三学社社员'
UNION ALL SELECT 'USER_POLITICAL', '11', '台湾民主自治同盟盟员'
UNION ALL SELECT 'USER_POLITICAL', '12', '无党派民主人士'
UNION ALL SELECT 'USER_POLITICAL', '13', '群众'
UNION ALL SELECT 'USER_POLITICAL', '14', '入党积极分子'
UNION ALL SELECT 'USER_POLITICAL', '99', '其他'
UNION ALL SELECT 'USER_NATION', '01', '汉族'
UNION ALL SELECT 'USER_NATION', '02', '蒙古族'
UNION ALL SELECT 'USER_NATION', '03', '回族'
UNION ALL SELECT 'USER_NATION', '04', '藏族'
UNION ALL SELECT 'USER_NATION', '05', '维吾尔族'
UNION ALL SELECT 'USER_NATION', '06', '苗族'
UNION ALL SELECT 'USER_NATION', '07', '彝族'
UNION ALL SELECT 'USER_NATION', '08', '壮族'
UNION ALL SELECT 'USER_NATION', '09', '布依族'
UNION ALL SELECT 'USER_NATION', '10', '朝鲜族'
UNION ALL SELECT 'USER_NATION', '11', '满族'
UNION ALL SELECT 'USER_NATION', '12', '侗族'
UNION ALL SELECT 'USER_NATION', '13', '瑶族'
UNION ALL SELECT 'USER_NATION', '14', '白族'
UNION ALL SELECT 'USER_NATION', '15', '土家族'
UNION ALL SELECT 'USER_NATION', '16', '哈尼族'
UNION ALL SELECT 'USER_NATION', '17', '哈萨克族'
UNION ALL SELECT 'USER_NATION', '18', '傣族'
UNION ALL SELECT 'USER_NATION', '19', '黎族'
UNION ALL SELECT 'USER_NATION', '20', '傈僳族'
UNION ALL SELECT 'USER_NATION', '21', '佤族'
UNION ALL SELECT 'USER_NATION', '22', '畲族'
UNION ALL SELECT 'USER_NATION', '23', '高山族'
UNION ALL SELECT 'USER_NATION', '24', '拉祜族'
UNION ALL SELECT 'USER_NATION', '25', '水族'
UNION ALL SELECT 'USER_NATION', '26', '东乡族'
UNION ALL SELECT 'USER_NATION', '27', '纳西族'
UNION ALL SELECT 'USER_NATION', '28', '景颇族'
UNION ALL SELECT 'USER_NATION', '29', '柯尔克孜族'
UNION ALL SELECT 'USER_NATION', '30', '土族'
UNION ALL SELECT 'USER_NATION', '31', '达斡尔族'
UNION ALL SELECT 'USER_NATION', '32', '仫佬族'
UNION ALL SELECT 'USER_NATION', '33', '羌族'
UNION ALL SELECT 'USER_NATION', '34', '布朗族'
UNION ALL SELECT 'USER_NATION', '35', '撒拉族'
UNION ALL SELECT 'USER_NATION', '36', '毛南族'
UNION ALL SELECT 'USER_NATION', '37', '仡佬族'
UNION ALL SELECT 'USER_NATION', '38', '锡伯族'
UNION ALL SELECT 'USER_NATION', '39', '阿昌族'
UNION ALL SELECT 'USER_NATION', '40', '普米族'
UNION ALL SELECT 'USER_NATION', '41', '塔吉克族'
UNION ALL SELECT 'USER_NATION', '42', '怒族'
UNION ALL SELECT 'USER_NATION', '43', '乌孜别克族'
UNION ALL SELECT 'USER_NATION', '44', '俄罗斯族'
UNION ALL SELECT 'USER_NATION', '45', '鄂温克族'
UNION ALL SELECT 'USER_NATION', '46', '崩龙族'
UNION ALL SELECT 'USER_NATION', '47', '保安族'
UNION ALL SELECT 'USER_NATION', '48', '裕固族'
UNION ALL SELECT 'USER_NATION', '49', '京族'
UNION ALL SELECT 'USER_NATION', '50', '塔塔尔族'
UNION ALL SELECT 'USER_NATION', '51', '独龙族'
UNION ALL SELECT 'USER_NATION', '52', '鄂伦春族'
UNION ALL SELECT 'USER_NATION', '53', '赫哲族'
UNION ALL SELECT 'USER_NATION', '54', '门巴族'
UNION ALL SELECT 'USER_NATION', '55', '珞巴族'
UNION ALL SELECT 'USER_NATION', '56', '基诺族'
UNION ALL SELECT 'USER_NATION', '59', '穿青人'
UNION ALL SELECT 'USER_NATION', '60', '革(亻革)家人'
UNION ALL SELECT 'USER_NATION', '90', '藏族(区内)'
UNION ALL SELECT 'USER_NATION', '97', '其他'
UNION ALL SELECT 'USER_NATION', '98', '外国血统中国籍人士'
UNION ALL SELECT 'USER_STATE', '01', '离退休'
UNION ALL SELECT 'USER_STATE', '03', '死亡'
UNION ALL SELECT 'USER_STATE', '04', '退休返聘'
UNION ALL SELECT 'USER_STATE', '05', '调出'
UNION ALL SELECT 'USER_STATE', '06', '辞职'
UNION ALL SELECT 'USER_STATE', '07', '离职'
UNION ALL SELECT 'USER_STATE', '08', '开除'
UNION ALL SELECT 'USER_STATE', '11', '在职'
UNION ALL SELECT 'USER_STATE', '14', '长病假'
UNION ALL SELECT 'USER_STATE', '15', '因公出国'
UNION ALL SELECT 'USER_STATE', '17', '待岗'
UNION ALL SELECT 'USER_STATE', '19', '内退'
UNION ALL SELECT 'USER_STATE', '20', '自主创业'
UNION ALL SELECT 'USER_STATE', '21', '挂职'
UNION ALL SELECT 'USER_STATE', '22', '在岗'
UNION ALL SELECT 'USER_STATE', '98', '病假等'
UNION ALL SELECT 'USER_STATE', '99', '其他'
UNION ALL SELECT 'USER_STATE', '999', '报到办理中'
UNION ALL SELECT 'USER_JOB_CATEGORY', '10', '管理岗位'
UNION ALL SELECT 'USER_JOB_CATEGORY', '20', '专业技术岗位'
UNION ALL SELECT 'USER_JOB_CATEGORY', '21', '教师岗位'
UNION ALL SELECT 'USER_JOB_CATEGORY', '22', '专职辅导员岗位'
UNION ALL SELECT 'USER_JOB_CATEGORY', '23', '其他专业技术岗位'
UNION ALL SELECT 'USER_JOB_CATEGORY', '30', '工勤技能岗位'
UNION ALL SELECT 'USER_JOB_CATEGORY', '125', '编辑'
UNION ALL SELECT 'USER_JOB_CATEGORY', '126', '编审'
UNION ALL SELECT 'USER_JOB_CATEGORY', '127', '大学讲师'
UNION ALL SELECT 'USER_JOB_CATEGORY', '128', '档案'
UNION ALL SELECT 'USER_JOB_CATEGORY', '129', '副教授'
UNION ALL SELECT 'USER_JOB_CATEGORY', '130', '高级工程师'
UNION ALL SELECT 'USER_JOB_CATEGORY', '131', '高级会计师'
UNION ALL SELECT 'USER_JOB_CATEGORY', '132', '高级讲师'
UNION ALL SELECT 'USER_JOB_CATEGORY', '133', '高校讲师'
UNION ALL SELECT 'USER_JOB_CATEGORY', '134', '工程'
UNION ALL SELECT 'USER_JOB_CATEGORY', '135', '馆员'
UNION ALL SELECT 'USER_JOB_CATEGORY', '136', '管理'
UNION ALL SELECT 'USER_JOB_CATEGORY', '137', '会计'
UNION ALL SELECT 'USER_JOB_CATEGORY', '138', '会计审计'
UNION ALL SELECT 'USER_JOB_CATEGORY', '139', '讲师'
UNION ALL SELECT 'USER_JOB_CATEGORY', '140', '教管'
UNION ALL SELECT 'USER_JOB_CATEGORY', '142', '教育管理'
UNION ALL SELECT 'USER_JOB_CATEGORY', '143', '科研'
UNION ALL SELECT 'USER_JOB_CATEGORY', '145', '实验'
UNION ALL SELECT 'USER_JOB_CATEGORY', '146', '实验师'
UNION ALL SELECT 'USER_JOB_CATEGORY', '147', '思政'
UNION ALL SELECT 'USER_JOB_CATEGORY', '148', '图资'
UNION ALL SELECT 'USER_JOB_CATEGORY', '149', '卫计'
UNION ALL SELECT 'USER_JOB_CATEGORY', '150', '卫技'
UNION ALL SELECT 'USER_JOB_CATEGORY', '151', '幼教'
UNION ALL SELECT 'USER_ID_CARD_TYPE', '0', '居民身份证'
UNION ALL SELECT 'USER_ID_CARD_TYPE', '1', '护照'
UNION ALL SELECT 'USER_ID_CARD_TYPE', '2', '港澳台居民身份证'
UNION ALL SELECT 'USER_ID_CARD_TYPE', '4', '旅行证据'
UNION ALL SELECT 'USER_ID_CARD_TYPE', '5', '其他'
UNION ALL SELECT 'USER_MANY_UNIT', '0', '否'
UNION ALL SELECT 'USER_MANY_UNIT', '1', '是'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '000', '无学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '0', '博士后'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '004', '教育学博士后'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '005', '文学博士后'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '006', '历史学博士后'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '008', '工学博士后'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '100', '名誉博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '200', '博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '201', '哲学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '202', '经济学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '203', '法学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '204', '教育学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '205', '文学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '206', '历史学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '207', '理学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '208', '工学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '209', '农学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '210', '医学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '212', '管理学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '213', '艺术学博士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '242', '教育博士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '245', '临床医学博士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '248', '兽医博士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '250', '口腔医学博士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '300', '硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '301', '哲学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '302', '经济学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '303', '法学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '304', '教育学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '305', '文学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '306', '历史学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '307', '理学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '308', '工学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '309', '农学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '310', '医学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '312', '管理学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '313', '艺术学硕士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '341', '法律硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '342', '教育硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '343', '工程硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '344', '建筑学硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '345', '临床学硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '346', '工商管理硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '347', '农业推广硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '348', '兽医硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '349', '公共管理硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '350', '口腔医学硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '351', '公共卫生硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '352', '军事硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '353', '金融硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '354', '体育硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '355', '艺术硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '356', '风景园林硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '357', '汉语国际教育硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '358', '翻译硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '359', '审计硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '360', '社会工作硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '362', '体育硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '364', '应用心理硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '365', '翻译硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '370', '风景园林硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '375', '会计硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '377', '图书情报硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '379', '艺术硕士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '400', '学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '401', '哲学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '402', '经济学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '403', '法学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '404', '教育学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '405', '文学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '406', '历史学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '407', '理学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '408', '工学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '409', '农学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '410', '医学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '412', '管理学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '413', '艺术学学士学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '444', '建筑学学士专业学位'
UNION ALL SELECT 'USER_ACADEMIC_DEGREE', '900', '境外学位'
UNION ALL SELECT 'USER_EDUCATION', '10', '研究生教育'
UNION ALL SELECT 'USER_EDUCATION', '11', '博士研究生毕业'
UNION ALL SELECT 'USER_EDUCATION', '12', '博士研究生结业'
UNION ALL SELECT 'USER_EDUCATION', '14', '硕士研究生毕业'
UNION ALL SELECT 'USER_EDUCATION', '15', '硕士研究生结业'
UNION ALL SELECT 'USER_EDUCATION', '17', '研究生班毕业'
UNION ALL SELECT 'USER_EDUCATION', '18', '研究生班结业'
UNION ALL SELECT 'USER_EDUCATION', '20', '大学本科教育'
UNION ALL SELECT 'USER_EDUCATION', '21', '大学本科毕业'
UNION ALL SELECT 'USER_EDUCATION', '22', '大学本科结业'
UNION ALL SELECT 'USER_EDUCATION', '25', '双学历毕业'
UNION ALL SELECT 'USER_EDUCATION', '28', '大学普通班毕业'
UNION ALL SELECT 'USER_EDUCATION', '30', '大学专科教育'
UNION ALL SELECT 'USER_EDUCATION', '31', '大学专科毕业'
UNION ALL SELECT 'USER_EDUCATION', '32', '大学专科结业'
UNION ALL SELECT 'USER_EDUCATION', '40', '中等职业教育'
UNION ALL SELECT 'USER_EDUCATION', '41', '中等专科毕业'
UNION ALL SELECT 'USER_EDUCATION', '42', '中等专科结业'
UNION ALL SELECT 'USER_EDUCATION', '43', '中等专科肄业'
UNION ALL SELECT 'USER_EDUCATION', '44', '职业高中毕业'
UNION ALL SELECT 'USER_EDUCATION', '45', '职业高中结业'
UNION ALL SELECT 'USER_EDUCATION', '47', '技工学校毕业'
UNION ALL SELECT 'USER_EDUCATION', '48', '技工学校结业'
UNION ALL SELECT 'USER_EDUCATION', '60', '普通高级中学教育'
UNION ALL SELECT 'USER_EDUCATION', '61', '普通高中毕业'
UNION ALL SELECT 'USER_EDUCATION', '62', '普通高中结业'
UNION ALL SELECT 'USER_EDUCATION', '63', '普通高中肄业'
UNION ALL SELECT 'USER_EDUCATION', '70', '初级中学教育'
UNION ALL SELECT 'USER_EDUCATION', '71', '初中毕业'
UNION ALL SELECT 'USER_EDUCATION', '73', '初中肄业'
UNION ALL SELECT 'USER_EDUCATION', '80', '小学教育'
UNION ALL SELECT 'USER_EDUCATION', '81', '小学毕业'
UNION ALL SELECT 'USER_EDUCATION', '90', '其他'
UNION ALL SELECT 'USER_EDUCATION', '128', '相当大学毕业'
UNION ALL SELECT 'USER_EDUCATION', '138', '相当专科毕业'
UNION ALL SELECT 'USER_EDUCATION', '142', '中技毕业'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '010', '高等学校教师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '011', '教授'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '012', '副教授'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '013', '讲师(高校)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '014', '助教(高校)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '022', '高级讲师(中专)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '023', '讲师(中专)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '024', '助理讲师(中专)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '032', '高级讲师(技校)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '033', '讲师(技校)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '034', '助理讲师(技校)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '043', '一级实习指导教师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '044', '二级实习指导教师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '045', '三级实习指导教师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '052', '高级教师(中学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '053', '一级教师(中学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '054', '二级教师(中学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '061', '正高级教师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '062', '高级教师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '063', '一级教师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '064', '二级教师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '071', '教授级高级实验师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '072', '高级实验师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '073', '实验师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '074', '助理实验师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '075', '实验员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '081', '教授级高级工程师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '082', '高级工程师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '083', '工程师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '084', '助理工程师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '085', '技术员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '093', '农艺师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '110', '农业技术人员(畜牧)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '120', '经济专业人员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '123', '经济师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '124', '助理经济师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '130', '会计专业人员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '132', '高级会计师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '133', '会计师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '134', '助理会计师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '135', '会计员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '140', '统计专业人员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '143', '统计师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '151', '编审'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '152', '副编审'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '153', '编辑'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '202', '主任编辑'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '203', '编辑'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '220', '播音员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '230', '卫生技术人员(医师)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '231', '主任医师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '232', '副主任医师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '233', '主治医师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '234', '医师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '242', '副主任药师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '243', '主管药师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '244', '药师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '250', '卫生技术人员(护理)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '252', '副主任护师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '253', '主管护师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '254', '护师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '263', '卫生主管技师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '413', '高级教师(小学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '414', '一级教师(小学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '430', '船舶技术人员(轮机)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '611', '研究员(自然科学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '612', '副研究员(自然科学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '613', '助理研究员(自然科学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '621', '研究员(社会科学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '622', '副研究员(社会科学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '623', '助理研究员(社会科学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '624', '研究实习员(社会科学)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '641', '研究馆员(图书)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '642', '副研究馆员(图书)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '643', '馆员(图书)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '644', '助理馆员(图书)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '653', '馆员(文博)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '661', '研究馆员(档案)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '662', '副研究馆员(档案)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '663', '馆员(档案)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '911', '教授(思想政治教育)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '912', '副教授(思想政治教育)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '913', '讲师(思想政治教育)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '914', '助教(思想政治教育)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '983', '政工师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '984', '助理政工师'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '985', '政工员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '992', '副教授(改革)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9061', '研究员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9062', '副研究员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9063', '助理研究员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9064', '研究实习员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9211', '研究馆员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9212', '副研究馆员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9213', '馆员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9214', '助理馆员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9215', '管理员'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9581', '幼教一级'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9582', '幼教二级'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9583', '幼教高级'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9621', '研究员(教管)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9622', '副研究员(教管)'
UNION ALL SELECT 'TECHNICAL_TITLE_LEVEL', '9623', '助理研究员(教管)'
) source
WHERE NOT EXISTS (
SELECT 1 FROM sys_data_dict existing
WHERE existing.parentCode = source.parentCode AND existing.code = source.code
);
-- 人员类型:独立补充 v3 的 17 项映射,不混入上面的其他字典数据。
UPDATE sys_data_dict existing
JOIN (
SELECT '1' AS code, '在编类' AS name
UNION ALL SELECT '1001', '聘用合同制(享受人事代理待遇)'
UNION ALL SELECT '101', '在编'
UNION ALL SELECT '102', '兰溪编制'
UNION ALL SELECT '2', '非在编类'
UNION ALL SELECT '202', '派遣人员'
UNION ALL SELECT '204', '博士后'
UNION ALL SELECT '206', '挂职人员'
UNION ALL SELECT '208', '外籍教师'
UNION ALL SELECT '209', '兼职教师'
UNION ALL SELECT '210', '非学校聘用人员'
UNION ALL SELECT '214', '单位返聘'
UNION ALL SELECT '215', '附属单位'
UNION ALL SELECT '902', '聘用合同制'
UNION ALL SELECT '904', '聘用制专家'
UNION ALL SELECT '905', '人事代理'
UNION ALL SELECT '909', '其他'
) source ON existing.parentCode = 'USER_PERSON_TYPE' AND existing.code = source.code
SET existing.name = source.name, existing.updatedAt = UNIX_TIMESTAMP(NOW()) * 1000
WHERE NOT (existing.name <=> source.name);
INSERT INTO sys_data_dict (
parentCode, name, code, createdBy, createdAt, updatedBy, updatedAt, delFlag
)
SELECT
'USER_PERSON_TYPE', source.name, source.code,
'', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
FROM (
SELECT '1' AS code, '在编类' AS name
UNION ALL SELECT '1001', '聘用合同制(享受人事代理待遇)'
UNION ALL SELECT '101', '在编'
UNION ALL SELECT '102', '兰溪编制'
UNION ALL SELECT '2', '非在编类'
UNION ALL SELECT '202', '派遣人员'
UNION ALL SELECT '204', '博士后'
UNION ALL SELECT '206', '挂职人员'
UNION ALL SELECT '208', '外籍教师'
UNION ALL SELECT '209', '兼职教师'
UNION ALL SELECT '210', '非学校聘用人员'
UNION ALL SELECT '214', '单位返聘'
UNION ALL SELECT '215', '附属单位'
UNION ALL SELECT '902', '聘用合同制'
UNION ALL SELECT '904', '聘用制专家'
UNION ALL SELECT '905', '人事代理'
UNION ALL SELECT '909', '其他'
) source
WHERE NOT EXISTS (
SELECT 1 FROM sys_data_dict existing
WHERE existing.parentCode = 'USER_PERSON_TYPE' AND existing.code = source.code
);
COMMIT;
@@ -0,0 +1,781 @@
SET NAMES utf8mb4;
START TRANSACTION;
UPDATE sys_dict child
JOIN sys_dict parent ON parent.id = child.parentId
SET child.code = child.name
WHERE parent.code IN ('USER_SEX', 'USER_POLITICAL', 'USER_NATION', 'USER_STATE', 'USER_JOB_CATEGORY', 'USER_ID_CARD_TYPE', 'USER_MANY_UNIT')
AND child.name IS NOT NULL
AND child.name <> ''
AND NOT (child.code <=> child.name);
-- 1. 政治面貌
-- 补充 USER_POLITICAL 的直接子项:code、name 均为全称,remark 为简称。
-- 仅使用指定父节点,已有同编码子项不覆盖;不删除任何记录。
INSERT INTO sys_dict (
id, parentId, path, name, remark, code, disabled, location, hasChildren,
createdBy, createdAt, updatedBy, updatedAt, delFlag
)
SELECT
REPLACE(UUID(), '-', ''), parent.id,
CONCAT(parent.path, LPAD(IFNULL((
SELECT MAX(CAST(RIGHT(child.path, 4) AS UNSIGNED))
FROM sys_dict child
WHERE child.path LIKE CONCAT(parent.path, '____')
), 0) + source.sortOrder, 4, '0')),
source.name, source.shortName, source.name, 0,
IFNULL((SELECT MAX(child.location) FROM sys_dict child WHERE child.parentId = parent.id), 0)
+ source.sortOrder,
0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
FROM sys_dict parent
CROSS JOIN (
SELECT 1 AS sortOrder, '01' AS code, '中国共产党员' AS name, '中共党员' AS shortName
UNION ALL SELECT 2, '02', '中国共产党预备党员', '中共预备党员'
UNION ALL SELECT 3, '03', '中国共产主义青年团团员', '共青团员'
UNION ALL SELECT 4, '04', '中国国民党革命委员会会员', '民革党员'
UNION ALL SELECT 5, '05', '中国民主同盟盟员', '民盟盟员'
UNION ALL SELECT 6, '06', '中国民主建国会会员', '民建会员'
UNION ALL SELECT 7, '07', '中国民主促进会会员', '民进会员'
UNION ALL SELECT 8, '08', '中国农工民主党党员', '农工党党员'
UNION ALL SELECT 9, '09', '中国致公党党员', '致公党党员'
UNION ALL SELECT 10, '10', '九三学社社员', '九三学社社员'
UNION ALL SELECT 11, '11', '台湾民主自治同盟盟员', '台盟盟员'
UNION ALL SELECT 12, '12', '无党派民主人士', '无党派人士'
UNION ALL SELECT 13, '13', '群众', '群众'
UNION ALL SELECT 14, '14', '入党积极分子', '积极分子'
UNION ALL SELECT 15, '99', '其他', '其他'
) source
WHERE parent.id = '4cc380a7a45a43a89410413676c9103e'
AND parent.code = 'USER_POLITICAL'
AND NOT EXISTS (
SELECT 1 FROM sys_dict existing
WHERE existing.parentId = parent.id AND existing.code = source.name
);
UPDATE sys_dict parent
SET parent.hasChildren = 1
WHERE parent.id = '4cc380a7a45a43a89410413676c9103e'
AND parent.code = 'USER_POLITICAL'
AND EXISTS (
SELECT 1 FROM (SELECT DISTINCT parentId FROM sys_dict) child
WHERE child.parentId = parent.id
);
-- 2. 民族
-- 补充 USER_NATION 的 61 个直接子项,保留接口代码前导零及提供的名称原文。
-- 仅新增缺失编码,不删除或覆盖已有记录。
INSERT INTO sys_dict (
id, parentId, path, name, remark, code, disabled, location, hasChildren,
createdBy, createdAt, updatedBy, updatedAt, delFlag
)
SELECT
REPLACE(UUID(), '-', ''), parent.id,
CONCAT(parent.path, LPAD(IFNULL((
SELECT MAX(CAST(RIGHT(child.path, 4) AS UNSIGNED))
FROM sys_dict child
WHERE child.path LIKE CONCAT(parent.path, '____')
), 0) + source.sortOrder, 4, '0')),
source.name, '', source.name, 0,
IFNULL((SELECT MAX(child.location) FROM sys_dict child WHERE child.parentId = parent.id), 0)
+ source.sortOrder,
0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
FROM sys_dict parent
CROSS JOIN (
SELECT 1 AS sortOrder, '01' AS code, '汉族' AS name
UNION ALL SELECT 2, '02', '蒙古族'
UNION ALL SELECT 3, '03', '回族'
UNION ALL SELECT 4, '04', '藏族'
UNION ALL SELECT 5, '05', '维吾尔族'
UNION ALL SELECT 6, '06', '苗族'
UNION ALL SELECT 7, '07', '彝族'
UNION ALL SELECT 8, '08', '壮族'
UNION ALL SELECT 9, '09', '布依族'
UNION ALL SELECT 10, '10', '朝鲜族'
UNION ALL SELECT 11, '11', '满族'
UNION ALL SELECT 12, '12', '侗族'
UNION ALL SELECT 13, '13', '瑶族'
UNION ALL SELECT 14, '14', '白族'
UNION ALL SELECT 15, '15', '土家族'
UNION ALL SELECT 16, '16', '哈尼族'
UNION ALL SELECT 17, '17', '哈萨克族'
UNION ALL SELECT 18, '18', '傣族'
UNION ALL SELECT 19, '19', '黎族'
UNION ALL SELECT 20, '20', '傈僳族'
UNION ALL SELECT 21, '21', '佤族'
UNION ALL SELECT 22, '22', '畲族'
UNION ALL SELECT 23, '23', '高山族'
UNION ALL SELECT 24, '24', '拉祜族'
UNION ALL SELECT 25, '25', '水族'
UNION ALL SELECT 26, '26', '东乡族'
UNION ALL SELECT 27, '27', '纳西族'
UNION ALL SELECT 28, '28', '景颇族'
UNION ALL SELECT 29, '29', '柯尔克孜族'
UNION ALL SELECT 30, '30', '土族'
UNION ALL SELECT 31, '31', '达斡尔族'
UNION ALL SELECT 32, '32', '仫佬族'
UNION ALL SELECT 33, '33', '羌族'
UNION ALL SELECT 34, '34', '布朗族'
UNION ALL SELECT 35, '35', '撒拉族'
UNION ALL SELECT 36, '36', '毛南族'
UNION ALL SELECT 37, '37', '仡佬族'
UNION ALL SELECT 38, '38', '锡伯族'
UNION ALL SELECT 39, '39', '阿昌族'
UNION ALL SELECT 40, '40', '普米族'
UNION ALL SELECT 41, '41', '塔吉克族'
UNION ALL SELECT 42, '42', '怒族'
UNION ALL SELECT 43, '43', '乌孜别克族'
UNION ALL SELECT 44, '44', '俄罗斯族'
UNION ALL SELECT 45, '45', '鄂温克族'
UNION ALL SELECT 46, '46', '崩龙族'
UNION ALL SELECT 47, '47', '保安族'
UNION ALL SELECT 48, '48', '裕固族'
UNION ALL SELECT 49, '49', '京族'
UNION ALL SELECT 50, '50', '塔塔尔族'
UNION ALL SELECT 51, '51', '独龙族'
UNION ALL SELECT 52, '52', '鄂伦春族'
UNION ALL SELECT 53, '53', '赫哲族'
UNION ALL SELECT 54, '54', '门巴族'
UNION ALL SELECT 55, '55', '珞巴族'
UNION ALL SELECT 56, '56', '基诺族'
UNION ALL SELECT 57, '59', '穿青人'
UNION ALL SELECT 58, '60', '革(亻革)家人'
UNION ALL SELECT 59, '90', '藏族(区内)'
UNION ALL SELECT 60, '97', '其他'
UNION ALL SELECT 61, '98', '外国血统中国籍人士'
) source
WHERE parent.id = '456c088b99bb4423a115c0bb5b420a99'
AND parent.code = 'USER_NATION'
AND NOT EXISTS (
SELECT 1 FROM sys_dict existing
WHERE existing.parentId = parent.id AND existing.code = source.name
);
-- 3. 当前状态
-- 补充 USER_STATE 的 18 个直接子项,保留接口代码前导零及提供的名称原文。
-- 仅新增缺失编码,不删除或覆盖已有记录。
INSERT INTO sys_dict (
id, parentId, path, name, remark, code, disabled, location, hasChildren,
createdBy, createdAt, updatedBy, updatedAt, delFlag
)
SELECT
REPLACE(UUID(), '-', ''), parent.id,
CONCAT(parent.path, LPAD(IFNULL((
SELECT MAX(CAST(RIGHT(child.path, 4) AS UNSIGNED))
FROM sys_dict child
WHERE child.path LIKE CONCAT(parent.path, '____')
), 0) + source.sortOrder, 4, '0')),
source.name, '', source.name, 0,
IFNULL((SELECT MAX(child.location) FROM sys_dict child WHERE child.parentId = parent.id), 0)
+ source.sortOrder,
0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
FROM sys_dict parent
CROSS JOIN (
SELECT 1 AS sortOrder, '01' AS code, '离退休' AS name
UNION ALL SELECT 2, '03', '死亡'
UNION ALL SELECT 3, '04', '退休返聘'
UNION ALL SELECT 4, '05', '调出'
UNION ALL SELECT 5, '06', '辞职'
UNION ALL SELECT 6, '07', '离职'
UNION ALL SELECT 7, '08', '开除'
UNION ALL SELECT 8, '11', '在职'
UNION ALL SELECT 9, '14', '长病假'
UNION ALL SELECT 10, '15', '因公出国'
UNION ALL SELECT 11, '17', '待岗'
UNION ALL SELECT 12, '19', '内退'
UNION ALL SELECT 13, '20', '自主创业'
UNION ALL SELECT 14, '21', '挂职'
UNION ALL SELECT 15, '22', '在岗'
UNION ALL SELECT 16, '98', '病假等'
UNION ALL SELECT 17, '99', '其他'
UNION ALL SELECT 18, '999', '报到办理中'
) source
WHERE parent.id = '3709e40a132348be947dcaa553bf8f8a'
AND parent.code = 'USER_STATE'
AND NOT EXISTS (
SELECT 1 FROM sys_dict existing
WHERE existing.parentId = parent.id AND existing.code = source.name
);
-- 4. 岗位类型
-- 岗位类型(USER_JOB_CATEGORY)下的 31 个直接子项,父级须已存在。
-- 仅新增缺失编码,不删除或覆盖已有记录。
INSERT INTO sys_dict (
id, parentId, path, name, remark, code, disabled, location, hasChildren,
createdBy, createdAt, updatedBy, updatedAt, delFlag
)
SELECT
REPLACE(UUID(), '-', ''), parent.id,
CONCAT(parent.path, LPAD(IFNULL((
SELECT MAX(CAST(RIGHT(child.path, 4) AS UNSIGNED))
FROM sys_dict child
WHERE child.path LIKE CONCAT(parent.path, '____')
), 0) + source.sortOrder, 4, '0')),
source.name, '', source.name, 0,
IFNULL((SELECT MAX(child.location) FROM sys_dict child WHERE child.parentId = parent.id), 0)
+ source.sortOrder,
0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
FROM sys_dict parent
CROSS JOIN (
SELECT 1 AS sortOrder, '10' AS code, '管理岗位' AS name
UNION ALL SELECT 2, '20', '专业技术岗位'
UNION ALL SELECT 3, '21', '教师岗位'
UNION ALL SELECT 4, '22', '专职辅导员岗位'
UNION ALL SELECT 5, '23', '其他专业技术岗位'
UNION ALL SELECT 6, '30', '工勤技能岗位'
UNION ALL SELECT 7, '125', '编辑'
UNION ALL SELECT 8, '126', '编审'
UNION ALL SELECT 9, '127', '大学讲师'
UNION ALL SELECT 10, '128', '档案'
UNION ALL SELECT 11, '129', '副教授'
UNION ALL SELECT 12, '130', '高级工程师'
UNION ALL SELECT 13, '131', '高级会计师'
UNION ALL SELECT 14, '132', '高级讲师'
UNION ALL SELECT 15, '133', '高校讲师'
UNION ALL SELECT 16, '134', '工程'
UNION ALL SELECT 17, '135', '馆员'
UNION ALL SELECT 18, '136', '管理'
UNION ALL SELECT 19, '137', '会计'
UNION ALL SELECT 20, '138', '会计审计'
UNION ALL SELECT 21, '139', '讲师'
UNION ALL SELECT 22, '140', '教管'
UNION ALL SELECT 23, '142', '教育管理'
UNION ALL SELECT 24, '143', '科研'
UNION ALL SELECT 25, '145', '实验'
UNION ALL SELECT 26, '146', '实验师'
UNION ALL SELECT 27, '147', '思政'
UNION ALL SELECT 28, '148', '图资'
UNION ALL SELECT 29, '149', '卫计'
UNION ALL SELECT 30, '150', '卫技'
UNION ALL SELECT 31, '151', '幼教'
) source
WHERE parent.code = 'USER_JOB_CATEGORY'
AND NOT EXISTS (
SELECT 1 FROM sys_dict existing
WHERE existing.parentId = parent.id AND existing.code = source.name
);
UPDATE sys_dict parent
SET parent.hasChildren = 1
WHERE parent.code = 'USER_JOB_CATEGORY'
AND EXISTS (
SELECT 1 FROM (SELECT DISTINCT parentId FROM sys_dict) child
WHERE child.parentId = parent.id
);
-- 5. 证件类型
-- 在用户表字段字典下补充证件类型及子项,仅新增缺失编码,不覆盖已有配置。
INSERT INTO sys_dict (
id, parentId, path, name, remark, code, disabled, location, hasChildren,
createdBy, createdAt, updatedBy, updatedAt, delFlag
)
SELECT
REPLACE(UUID(), '-', ''), parent.id,
CONCAT(parent.path, LPAD(IFNULL((
SELECT MAX(CAST(RIGHT(child.path, 4) AS UNSIGNED))
FROM sys_dict child WHERE child.path LIKE CONCAT(parent.path, '____')
), 0) + 1, 4, '0')),
'证件类型', '', 'USER_ID_CARD_TYPE', 0,
IFNULL((SELECT MAX(child.location) FROM sys_dict child WHERE child.parentId = parent.id), 0) + 1,
0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
FROM sys_dict parent
WHERE parent.code = 'USER_TABLE_COLUMN_DICTS'
AND NOT EXISTS (SELECT 1 FROM sys_dict existing WHERE existing.code = 'USER_ID_CARD_TYPE');
INSERT INTO sys_dict (
id, parentId, path, name, remark, code, disabled, location, hasChildren,
createdBy, createdAt, updatedBy, updatedAt, delFlag
)
SELECT
REPLACE(UUID(), '-', ''), parent.id,
CONCAT(parent.path, LPAD(IFNULL((
SELECT MAX(CAST(RIGHT(child.path, 4) AS UNSIGNED))
FROM sys_dict child WHERE child.path LIKE CONCAT(parent.path, '____')
), 0) + source.sortOrder, 4, '0')),
source.name, '', source.name, 0,
IFNULL((SELECT MAX(child.location) FROM sys_dict child WHERE child.parentId = parent.id), 0)
+ source.sortOrder,
0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
FROM sys_dict parent
CROSS JOIN (
SELECT 1 AS sortOrder, '0' AS code, '居民身份证' AS name
UNION ALL SELECT 2, '1', '护照'
UNION ALL SELECT 3, '2', '港澳台居民身份证'
UNION ALL SELECT 4, '4', '旅行证据'
UNION ALL SELECT 5, '5', '其他'
) source
WHERE parent.code = 'USER_ID_CARD_TYPE'
AND NOT EXISTS (
SELECT 1 FROM sys_dict existing
WHERE existing.parentId = parent.id AND existing.code = source.name
);
UPDATE sys_dict parent
SET parent.hasChildren = 1
WHERE parent.code IN ('USER_TABLE_COLUMN_DICTS', 'USER_ID_CARD_TYPE')
AND EXISTS (
SELECT 1 FROM (SELECT DISTINCT parentId FROM sys_dict) child
WHERE child.parentId = parent.id
);
-- 6. 是否双肩挑
-- 在用户表字段字典下补充是否双肩挑及子项,仅新增缺失编码,不覆盖已有配置。
INSERT INTO sys_dict (
id, parentId, path, name, remark, code, disabled, location, hasChildren,
createdBy, createdAt, updatedBy, updatedAt, delFlag
)
SELECT
REPLACE(UUID(), '-', ''), parent.id,
CONCAT(parent.path, LPAD(IFNULL((
SELECT MAX(CAST(RIGHT(child.path, 4) AS UNSIGNED))
FROM sys_dict child WHERE child.path LIKE CONCAT(parent.path, '____')
), 0) + 1, 4, '0')),
'是否双肩挑', '', 'USER_MANY_UNIT', 0,
IFNULL((SELECT MAX(child.location) FROM sys_dict child WHERE child.parentId = parent.id), 0) + 1,
0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
FROM sys_dict parent
WHERE parent.code = 'USER_TABLE_COLUMN_DICTS'
AND NOT EXISTS (SELECT 1 FROM sys_dict existing WHERE existing.code = 'USER_MANY_UNIT');
INSERT INTO sys_dict (
id, parentId, path, name, remark, code, disabled, location, hasChildren,
createdBy, createdAt, updatedBy, updatedAt, delFlag
)
SELECT
REPLACE(UUID(), '-', ''), parent.id,
CONCAT(parent.path, LPAD(IFNULL((
SELECT MAX(CAST(RIGHT(child.path, 4) AS UNSIGNED))
FROM sys_dict child WHERE child.path LIKE CONCAT(parent.path, '____')
), 0) + source.sortOrder, 4, '0')),
source.name, '', source.name, 0,
IFNULL((SELECT MAX(child.location) FROM sys_dict child WHERE child.parentId = parent.id), 0)
+ source.sortOrder,
0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
FROM sys_dict parent
CROSS JOIN (
SELECT 1 AS sortOrder, '0' AS code, '否' AS name
UNION ALL SELECT 2, '1', '是'
) source
WHERE parent.code = 'USER_MANY_UNIT'
AND NOT EXISTS (
SELECT 1 FROM sys_dict existing
WHERE existing.parentId = parent.id AND existing.code = source.name
);
UPDATE sys_dict parent
SET parent.hasChildren = 1
WHERE parent.code IN ('USER_TABLE_COLUMN_DICTS', 'USER_MANY_UNIT')
AND EXISTS (
SELECT 1 FROM (SELECT DISTINCT parentId FROM sys_dict) child
WHERE child.parentId = parent.id
);
-- 7. 学位
UPDATE sys_dict child
JOIN sys_dict parent ON parent.id = child.parentId
SET child.code = child.name
WHERE parent.code IN ('USER_ACADEMIC_DEGREE')
AND child.name IS NOT NULL
AND child.name <> ''
AND NOT (child.code <=> child.name);
-- 补充学位(USER_ACADEMIC_DEGREE)直接子项,父级须已存在。
-- code、name 均保存名称原文,仅新增缺失名称,不删除或覆盖已有记录。
INSERT INTO sys_dict (
id, parentId, path, name, remark, code, disabled, location, hasChildren,
createdBy, createdAt, updatedBy, updatedAt, delFlag
)
SELECT
REPLACE(UUID(), '-', ''), parent.id,
CONCAT(parent.path, LPAD(IFNULL((
SELECT MAX(CAST(RIGHT(child.path, 4) AS UNSIGNED))
FROM sys_dict child WHERE child.path LIKE CONCAT(parent.path, '____')
), 0) + source.sortOrder, 4, '0')),
source.name, '', source.name, 0,
IFNULL((SELECT MAX(child.location) FROM sys_dict child WHERE child.parentId = parent.id), 0)
+ source.sortOrder,
0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
FROM sys_dict parent
CROSS JOIN (
SELECT 1 AS sortOrder, '000' AS code, '无学位' AS name
UNION ALL SELECT 2, '0', '博士后'
UNION ALL SELECT 3, '004', '教育学博士后'
UNION ALL SELECT 4, '005', '文学博士后'
UNION ALL SELECT 5, '006', '历史学博士后'
UNION ALL SELECT 6, '008', '工学博士后'
UNION ALL SELECT 7, '100', '名誉博士学位'
UNION ALL SELECT 8, '200', '博士学位'
UNION ALL SELECT 9, '201', '哲学博士学位'
UNION ALL SELECT 10, '202', '经济学博士学位'
UNION ALL SELECT 11, '203', '法学博士学位'
UNION ALL SELECT 12, '204', '教育学博士学位'
UNION ALL SELECT 13, '205', '文学博士学位'
UNION ALL SELECT 14, '206', '历史学博士学位'
UNION ALL SELECT 15, '207', '理学博士学位'
UNION ALL SELECT 16, '208', '工学博士学位'
UNION ALL SELECT 17, '209', '农学博士学位'
UNION ALL SELECT 18, '210', '医学博士学位'
UNION ALL SELECT 19, '212', '管理学博士学位'
UNION ALL SELECT 20, '213', '艺术学博士学位'
UNION ALL SELECT 21, '242', '教育博士专业学位'
UNION ALL SELECT 22, '245', '临床医学博士专业学位'
UNION ALL SELECT 23, '248', '兽医博士专业学位'
UNION ALL SELECT 24, '250', '口腔医学博士专业学位'
UNION ALL SELECT 25, '300', '硕士学位'
UNION ALL SELECT 26, '301', '哲学硕士学位'
UNION ALL SELECT 27, '302', '经济学硕士学位'
UNION ALL SELECT 28, '303', '法学硕士学位'
UNION ALL SELECT 29, '304', '教育学硕士学位'
UNION ALL SELECT 30, '305', '文学硕士学位'
UNION ALL SELECT 31, '306', '历史学硕士学位'
UNION ALL SELECT 32, '307', '理学硕士学位'
UNION ALL SELECT 33, '308', '工学硕士学位'
UNION ALL SELECT 34, '309', '农学硕士学位'
UNION ALL SELECT 35, '310', '医学硕士学位'
UNION ALL SELECT 36, '312', '管理学硕士学位'
UNION ALL SELECT 37, '313', '艺术学硕士学位'
UNION ALL SELECT 38, '341', '法律硕士专业学位'
UNION ALL SELECT 39, '342', '教育硕士专业学位'
UNION ALL SELECT 40, '343', '工程硕士专业学位'
UNION ALL SELECT 41, '344', '建筑学硕士专业学位'
UNION ALL SELECT 42, '345', '临床学硕士专业学位'
UNION ALL SELECT 43, '346', '工商管理硕士专业学位'
UNION ALL SELECT 44, '347', '农业推广硕士专业学位'
UNION ALL SELECT 45, '348', '兽医硕士专业学位'
UNION ALL SELECT 46, '349', '公共管理硕士专业学位'
UNION ALL SELECT 47, '350', '口腔医学硕士专业学位'
UNION ALL SELECT 48, '351', '公共卫生硕士专业学位'
UNION ALL SELECT 49, '352', '军事硕士专业学位'
UNION ALL SELECT 50, '353', '金融硕士专业学位'
UNION ALL SELECT 51, '354', '体育硕士专业学位'
UNION ALL SELECT 52, '355', '艺术硕士专业学位'
UNION ALL SELECT 53, '356', '风景园林硕士专业学位'
UNION ALL SELECT 54, '357', '汉语国际教育硕士专业学位'
UNION ALL SELECT 55, '358', '翻译硕士专业学位'
UNION ALL SELECT 56, '359', '审计硕士专业学位'
UNION ALL SELECT 57, '360', '社会工作硕士专业学位'
UNION ALL SELECT 58, '362', '体育硕士专业学位'
UNION ALL SELECT 59, '364', '应用心理硕士专业学位'
UNION ALL SELECT 60, '365', '翻译硕士专业学位'
UNION ALL SELECT 61, '370', '风景园林硕士专业学位'
UNION ALL SELECT 62, '375', '会计硕士专业学位'
UNION ALL SELECT 63, '377', '图书情报硕士专业学位'
UNION ALL SELECT 64, '379', '艺术硕士专业学位'
UNION ALL SELECT 65, '400', '学士学位'
UNION ALL SELECT 66, '401', '哲学学士学位'
UNION ALL SELECT 67, '402', '经济学学士学位'
UNION ALL SELECT 68, '403', '法学学士学位'
UNION ALL SELECT 69, '404', '教育学学士学位'
UNION ALL SELECT 70, '405', '文学学士学位'
UNION ALL SELECT 71, '406', '历史学学士学位'
UNION ALL SELECT 72, '407', '理学学士学位'
UNION ALL SELECT 73, '408', '工学学士学位'
UNION ALL SELECT 74, '409', '农学学士学位'
UNION ALL SELECT 75, '410', '医学学士学位'
UNION ALL SELECT 76, '412', '管理学学士学位'
UNION ALL SELECT 77, '413', '艺术学学士学位'
UNION ALL SELECT 78, '444', '建筑学学士专业学位'
UNION ALL SELECT 79, '900', '境外学位'
) source
WHERE parent.code = 'USER_ACADEMIC_DEGREE'
AND NOT EXISTS (
SELECT 1 FROM sys_dict existing
WHERE existing.parentId = parent.id AND existing.code = source.name
);
UPDATE sys_dict parent
SET parent.hasChildren = 1
WHERE parent.code = 'USER_ACADEMIC_DEGREE'
AND EXISTS (
SELECT 1 FROM (SELECT DISTINCT parentId FROM sys_dict) child
WHERE child.parentId = parent.id
);
-- 8. 学历
UPDATE sys_dict child
JOIN sys_dict parent ON parent.id = child.parentId
SET child.code = child.name
WHERE parent.code IN ('USER_EDUCATION')
AND child.name IS NOT NULL
AND child.name <> ''
AND NOT (child.code <=> child.name);
-- 补充学历(USER_EDUCATION)直接子项,父级须已存在。
-- code、name 均保存名称原文,仅新增缺失名称,不删除或覆盖已有记录。
INSERT INTO sys_dict (
id, parentId, path, name, remark, code, disabled, location, hasChildren,
createdBy, createdAt, updatedBy, updatedAt, delFlag
)
SELECT
REPLACE(UUID(), '-', ''), parent.id,
CONCAT(parent.path, LPAD(IFNULL((
SELECT MAX(CAST(RIGHT(child.path, 4) AS UNSIGNED))
FROM sys_dict child WHERE child.path LIKE CONCAT(parent.path, '____')
), 0) + source.sortOrder, 4, '0')),
source.name, '', source.name, 0,
IFNULL((SELECT MAX(child.location) FROM sys_dict child WHERE child.parentId = parent.id), 0)
+ source.sortOrder,
0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
FROM sys_dict parent
CROSS JOIN (
SELECT 1 AS sortOrder, '10' AS code, '研究生教育' AS name
UNION ALL SELECT 2, '11', '博士研究生毕业'
UNION ALL SELECT 3, '12', '博士研究生结业'
UNION ALL SELECT 4, '14', '硕士研究生毕业'
UNION ALL SELECT 5, '15', '硕士研究生结业'
UNION ALL SELECT 6, '17', '研究生班毕业'
UNION ALL SELECT 7, '18', '研究生班结业'
UNION ALL SELECT 8, '20', '大学本科教育'
UNION ALL SELECT 9, '21', '大学本科毕业'
UNION ALL SELECT 10, '22', '大学本科结业'
UNION ALL SELECT 11, '25', '双学历毕业'
UNION ALL SELECT 12, '28', '大学普通班毕业'
UNION ALL SELECT 13, '30', '大学专科教育'
UNION ALL SELECT 14, '31', '大学专科毕业'
UNION ALL SELECT 15, '32', '大学专科结业'
UNION ALL SELECT 16, '40', '中等职业教育'
UNION ALL SELECT 17, '41', '中等专科毕业'
UNION ALL SELECT 18, '42', '中等专科结业'
UNION ALL SELECT 19, '43', '中等专科肄业'
UNION ALL SELECT 20, '44', '职业高中毕业'
UNION ALL SELECT 21, '45', '职业高中结业'
UNION ALL SELECT 22, '47', '技工学校毕业'
UNION ALL SELECT 23, '48', '技工学校结业'
UNION ALL SELECT 24, '60', '普通高级中学教育'
UNION ALL SELECT 25, '61', '普通高中毕业'
UNION ALL SELECT 26, '62', '普通高中结业'
UNION ALL SELECT 27, '63', '普通高中肄业'
UNION ALL SELECT 28, '70', '初级中学教育'
UNION ALL SELECT 29, '71', '初中毕业'
UNION ALL SELECT 30, '73', '初中肄业'
UNION ALL SELECT 31, '80', '小学教育'
UNION ALL SELECT 32, '81', '小学毕业'
UNION ALL SELECT 33, '90', '其他'
UNION ALL SELECT 34, '128', '相当大学毕业'
UNION ALL SELECT 35, '138', '相当专科毕业'
UNION ALL SELECT 36, '142', '中技毕业'
) source
WHERE parent.code = 'USER_EDUCATION'
AND NOT EXISTS (
SELECT 1 FROM sys_dict existing
WHERE existing.parentId = parent.id AND existing.code = source.name
);
UPDATE sys_dict parent
SET parent.hasChildren = 1
WHERE parent.code = 'USER_EDUCATION'
AND EXISTS (
SELECT 1 FROM (SELECT DISTINCT parentId FROM sys_dict) child
WHERE child.parentId = parent.id
);
-- 9. 职称
-- 复用会员职称表单字典 TECHNICAL_TITLE_LEVEL,code、name 均保存名称。
-- 同名职称在页面字典中仅保留一个,原始代码另存 sys_data_dict。
INSERT INTO sys_dict (
id, parentId, path, name, remark, code, disabled, location, hasChildren,
createdBy, createdAt, updatedBy, updatedAt, delFlag
)
SELECT
REPLACE(UUID(), '-', ''), parent.id,
CONCAT(parent.path, LPAD(IFNULL((
SELECT MAX(CAST(RIGHT(child.path, 4) AS UNSIGNED))
FROM sys_dict child WHERE child.path LIKE CONCAT(parent.path, '____')
), 0) + 1, 4, '0')),
'职称', '', 'TECHNICAL_TITLE_LEVEL', 0,
IFNULL((SELECT MAX(child.location) FROM sys_dict child WHERE child.parentId = parent.id), 0) + 1,
0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
FROM sys_dict parent
WHERE parent.code = 'USER_TABLE_COLUMN_DICTS'
AND NOT EXISTS (SELECT 1 FROM sys_dict existing WHERE existing.code = 'TECHNICAL_TITLE_LEVEL');
UPDATE sys_dict child
JOIN sys_dict parent ON parent.id = child.parentId
SET child.code = child.name
WHERE parent.code = 'TECHNICAL_TITLE_LEVEL'
AND child.name IS NOT NULL AND child.name <> ''
AND NOT (child.code <=> child.name);
INSERT INTO sys_dict (
id, parentId, path, name, remark, code, disabled, location, hasChildren,
createdBy, createdAt, updatedBy, updatedAt, delFlag
)
SELECT
REPLACE(UUID(), '-', ''), parent.id,
CONCAT(parent.path, LPAD(IFNULL((
SELECT MAX(CAST(RIGHT(child.path, 4) AS UNSIGNED))
FROM sys_dict child WHERE child.path LIKE CONCAT(parent.path, '____')
), 0) + source.sortOrder, 4, '0')),
source.name, '', source.name, 0,
IFNULL((SELECT MAX(child.location) FROM sys_dict child WHERE child.parentId = parent.id), 0)
+ source.sortOrder,
0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
FROM sys_dict parent
CROSS JOIN (
SELECT 1 AS sortOrder, '高等学校教师' AS name
UNION ALL SELECT 2, '教授'
UNION ALL SELECT 3, '副教授'
UNION ALL SELECT 4, '讲师(高校)'
UNION ALL SELECT 5, '助教(高校)'
UNION ALL SELECT 6, '高级讲师(中专)'
UNION ALL SELECT 7, '讲师(中专)'
UNION ALL SELECT 8, '助理讲师(中专)'
UNION ALL SELECT 9, '高级讲师(技校)'
UNION ALL SELECT 10, '讲师(技校)'
UNION ALL SELECT 11, '助理讲师(技校)'
UNION ALL SELECT 12, '一级实习指导教师'
UNION ALL SELECT 13, '二级实习指导教师'
UNION ALL SELECT 14, '三级实习指导教师'
UNION ALL SELECT 15, '高级教师(中学)'
UNION ALL SELECT 16, '一级教师(中学)'
UNION ALL SELECT 17, '二级教师(中学)'
UNION ALL SELECT 18, '正高级教师'
UNION ALL SELECT 19, '高级教师'
UNION ALL SELECT 20, '一级教师'
UNION ALL SELECT 21, '二级教师'
UNION ALL SELECT 22, '教授级高级实验师'
UNION ALL SELECT 23, '高级实验师'
UNION ALL SELECT 24, '实验师'
UNION ALL SELECT 25, '助理实验师'
UNION ALL SELECT 26, '实验员'
UNION ALL SELECT 27, '教授级高级工程师'
UNION ALL SELECT 28, '高级工程师'
UNION ALL SELECT 29, '工程师'
UNION ALL SELECT 30, '助理工程师'
UNION ALL SELECT 31, '技术员'
UNION ALL SELECT 32, '农艺师'
UNION ALL SELECT 33, '农业技术人员(畜牧)'
UNION ALL SELECT 34, '经济专业人员'
UNION ALL SELECT 35, '经济师'
UNION ALL SELECT 36, '助理经济师'
UNION ALL SELECT 37, '会计专业人员'
UNION ALL SELECT 38, '高级会计师'
UNION ALL SELECT 39, '会计师'
UNION ALL SELECT 40, '助理会计师'
UNION ALL SELECT 41, '会计员'
UNION ALL SELECT 42, '统计专业人员'
UNION ALL SELECT 43, '统计师'
UNION ALL SELECT 44, '编审'
UNION ALL SELECT 45, '副编审'
UNION ALL SELECT 46, '编辑'
UNION ALL SELECT 47, '主任编辑'
UNION ALL SELECT 48, '播音员'
UNION ALL SELECT 49, '卫生技术人员(医师)'
UNION ALL SELECT 50, '主任医师'
UNION ALL SELECT 51, '副主任医师'
UNION ALL SELECT 52, '主治医师'
UNION ALL SELECT 53, '医师'
UNION ALL SELECT 54, '副主任药师'
UNION ALL SELECT 55, '主管药师'
UNION ALL SELECT 56, '药师'
UNION ALL SELECT 57, '卫生技术人员(护理)'
UNION ALL SELECT 58, '副主任护师'
UNION ALL SELECT 59, '主管护师'
UNION ALL SELECT 60, '护师'
UNION ALL SELECT 61, '卫生主管技师'
UNION ALL SELECT 62, '高级教师(小学)'
UNION ALL SELECT 63, '一级教师(小学)'
UNION ALL SELECT 64, '船舶技术人员(轮机)'
UNION ALL SELECT 65, '研究员(自然科学)'
UNION ALL SELECT 66, '副研究员(自然科学)'
UNION ALL SELECT 67, '助理研究员(自然科学)'
UNION ALL SELECT 68, '研究员(社会科学)'
UNION ALL SELECT 69, '副研究员(社会科学)'
UNION ALL SELECT 70, '助理研究员(社会科学)'
UNION ALL SELECT 71, '研究实习员(社会科学)'
UNION ALL SELECT 72, '研究馆员(图书)'
UNION ALL SELECT 73, '副研究馆员(图书)'
UNION ALL SELECT 74, '馆员(图书)'
UNION ALL SELECT 75, '助理馆员(图书)'
UNION ALL SELECT 76, '馆员(文博)'
UNION ALL SELECT 77, '研究馆员(档案)'
UNION ALL SELECT 78, '副研究馆员(档案)'
UNION ALL SELECT 79, '馆员(档案)'
UNION ALL SELECT 80, '教授(思想政治教育)'
UNION ALL SELECT 81, '副教授(思想政治教育)'
UNION ALL SELECT 82, '讲师(思想政治教育)'
UNION ALL SELECT 83, '助教(思想政治教育)'
UNION ALL SELECT 84, '政工师'
UNION ALL SELECT 85, '助理政工师'
UNION ALL SELECT 86, '政工员'
UNION ALL SELECT 87, '副教授(改革)'
UNION ALL SELECT 88, '研究员'
UNION ALL SELECT 89, '副研究员'
UNION ALL SELECT 90, '助理研究员'
UNION ALL SELECT 91, '研究实习员'
UNION ALL SELECT 92, '研究馆员'
UNION ALL SELECT 93, '副研究馆员'
UNION ALL SELECT 94, '馆员'
UNION ALL SELECT 95, '助理馆员'
UNION ALL SELECT 96, '管理员'
UNION ALL SELECT 97, '幼教一级'
UNION ALL SELECT 98, '幼教二级'
UNION ALL SELECT 99, '幼教高级'
UNION ALL SELECT 100, '研究员(教管)'
UNION ALL SELECT 101, '副研究员(教管)'
UNION ALL SELECT 102, '助理研究员(教管)'
) source
WHERE parent.code = 'TECHNICAL_TITLE_LEVEL'
AND NOT EXISTS (
SELECT 1 FROM sys_dict existing
WHERE existing.parentId = parent.id AND existing.code = source.name
);
UPDATE sys_dict parent
SET parent.hasChildren = 1
WHERE parent.code IN ('USER_TABLE_COLUMN_DICTS', 'TECHNICAL_TITLE_LEVEL')
AND EXISTS (
SELECT 1 FROM (SELECT DISTINCT parentId FROM sys_dict) child
WHERE child.parentId = parent.id
);
-- 10. 人员类型:沿用 v3 的 17 个名称,code、name 均保存名称。
INSERT INTO sys_dict (
id, parentId, path, name, remark, code, disabled, location, hasChildren,
createdBy, createdAt, updatedBy, updatedAt, delFlag
)
SELECT
REPLACE(UUID(), '-', ''), parent.id,
CONCAT(parent.path, LPAD(IFNULL((
SELECT MAX(CAST(RIGHT(child.path, 4) AS UNSIGNED))
FROM sys_dict child WHERE child.path LIKE CONCAT(parent.path, '____')
), 0) + source.sortOrder, 4, '0')),
source.name, '', source.name, 0,
IFNULL((SELECT MAX(child.location) FROM sys_dict child WHERE child.parentId = parent.id), 0)
+ source.sortOrder,
0, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0
FROM sys_dict parent
CROSS JOIN (
SELECT 1 AS sortOrder, '在编类' AS name
UNION ALL SELECT 2, '聘用合同制(享受人事代理待遇)'
UNION ALL SELECT 3, '在编'
UNION ALL SELECT 4, '兰溪编制'
UNION ALL SELECT 5, '非在编类'
UNION ALL SELECT 6, '派遣人员'
UNION ALL SELECT 7, '博士后'
UNION ALL SELECT 8, '挂职人员'
UNION ALL SELECT 9, '外籍教师'
UNION ALL SELECT 10, '兼职教师'
UNION ALL SELECT 11, '非学校聘用人员'
UNION ALL SELECT 12, '单位返聘'
UNION ALL SELECT 13, '附属单位'
UNION ALL SELECT 14, '聘用合同制'
UNION ALL SELECT 15, '聘用制专家'
UNION ALL SELECT 16, '人事代理'
UNION ALL SELECT 17, '其他'
) source
WHERE parent.code = 'USER_PERSON_TYPE'
AND NOT EXISTS (
SELECT 1 FROM sys_dict existing
WHERE existing.parentId = parent.id AND existing.code = source.name
);
UPDATE sys_dict parent
SET parent.hasChildren = 1
WHERE parent.code = 'USER_PERSON_TYPE'
AND EXISTS (
SELECT 1 FROM (SELECT DISTINCT parentId FROM sys_dict) child
WHERE child.parentId = parent.id
);
COMMIT;
@@ -0,0 +1,11 @@
COMMIT;
-- 在源表补充接口原始代码,原有字段继续保存名称。
ALTER TABLE sys_user_source
ADD COLUMN educationCode varchar(20) NULL DEFAULT NULL COMMENT '最高学历代码' AFTER education,
ADD COLUMN academicDegreeCode varchar(50) NULL DEFAULT NULL COMMENT '最高学位代码' AFTER academicDegree,
ADD COLUMN preparedByCode varchar(30) NULL DEFAULT NULL COMMENT '编制类别代码' AFTER preparedBy,
ADD COLUMN jobCategoryCode varchar(50) NULL DEFAULT NULL COMMENT '聘岗类型代码' AFTER jobCategory,
ADD COLUMN userStateCode varchar(30) NULL DEFAULT NULL COMMENT '当前状态代码' AFTER userState;
COMMIT;
@@ -0,0 +1,2 @@
ALTER TABLE `sys_user_source`
ADD COLUMN `professionalTitleCode` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '专业技术职务代码' AFTER `professionalTitle`;
@@ -3,6 +3,7 @@
<slot></slot>
<div class="search-query" v-if="isSearchButton">
<el-button type="primary" icon="el-icon-search" @click="$emit('search', null)">搜索</el-button>
<slot name="actions"></slot>
</div>
</div>
</template>
@@ -38,13 +38,13 @@ layout("/layouts/platform.html"){
<el-input placeholder="请输入工号" clearable v-model="pageForm.loginName" style="width: 100%"></el-input>
</search-item>
<search-item label="所属单位">
<el-select placeholder="请选择所属单位" v-model="pageForm.unitName" clearable filterable>
<el-option v-for="item in unitNameOptions" :key="item" :label="item" :value="item"></el-option>
<el-select placeholder="全部" v-model="pageForm.unitName" clearable filterable>
<el-option v-for="item in unitNameOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</search-item>
<search-item label="在职状态">
<el-select v-model="pageForm.userState" clearable filterable>
<el-option v-for="item in userStateOptions" :label="item" :value="item"></el-option>
<el-select placeholder="全部" v-model="pageForm.userState" clearable filterable>
<el-option v-for="item in userStateOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</search-item>
<!-- 暂停用人方式筛选,保留查询控件供后续恢复。
@@ -55,10 +55,11 @@ layout("/layouts/platform.html"){
</search-item>
-->
<search-item label="人员类型">
<el-select v-model="pageForm.personType" clearable filterable>
<el-option v-for="item in personTypeOptions" :label="item" :value="item"></el-option>
<el-select placeholder="全部" v-model="pageForm.personType" clearable filterable>
<el-option v-for="item in personTypeOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</search-item>
<el-button slot="actions" icon="el-icon-refresh-left" @click="resetSearch">重置</el-button>
</search>
</el-card>
@@ -125,6 +126,16 @@ layout("/layouts/platform.html"){
}
},
methods: {
resetSearch() {
this.$set(this.pageForm, "userName", "")
this.$set(this.pageForm, "loginName", "")
this.$set(this.pageForm, "unitName", "")
this.$set(this.pageForm, "userState", "")
this.$set(this.pageForm, "personType", "")
this.$set(this.pageForm, "preparedBy", "")
this.$set(this.pageForm, "pullTime", (this.pullTimeOptions[0] || {}).pullTime || "")
this.doSearch()
},
pull() {
// 拉取未结束时不再打开确认框或发送重复请求。
if (this.pullLoading) return
@@ -149,6 +160,7 @@ layout("/layouts/platform.html"){
.then((resp) => {
if (resp.code === 0) {
this.$message.success(resp.msg)
this.getSearchOptions()
this.getPullTimeOptions()
this.doSearch()
}
@@ -162,12 +174,24 @@ layout("/layouts/platform.html"){
.catch(() => {})
},
buildSearchOptions(values) {
const optionValues = new Set(values.map(value =>
value == null || /^(?:null)?$/i.test(value.trim()) ? "__EMPTY__" : value
))
const hasEmpty = optionValues.delete("__EMPTY__")
const options = Array.from(optionValues, value => ({ label: value, value }))
if (hasEmpty) {
options.push({ label: "空数据", value: "__EMPTY__" })
}
return options
},
getSearchOptions() {
this.$axios.post("/platform/sys/data/user/pull/searchOptions").then((resp) => {
if (resp.code === 0) {
this.unitNameOptions = resp.data.unitNames
this.userStateOptions = resp.data.userStates
this.personTypeOptions = resp.data.personTypes
this.unitNameOptions = this.buildSearchOptions(resp.data.unitNames)
this.userStateOptions = this.buildSearchOptions(resp.data.userStates)
this.personTypeOptions = this.buildSearchOptions(resp.data.personTypes)
this.preparedByOptions = resp.data.preparedBys
}
})
@@ -206,6 +230,7 @@ layout("/layouts/platform.html"){
if (resp.code === 0) {
this.$message.success(resp.msg)
this.pullTimeDialogVisible = false
this.getSearchOptions()
this.doSearch()
}
})
@@ -42,6 +42,7 @@ layout("/layouts/platform.html"){
<search-item label="人员类型">
<dict-select v-model="pageForm.personType" code="USER_PERSON_TYPE" style="width: 100%"></dict-select>
</search-item>
<el-button slot="actions" icon="el-icon-refresh-left" @click="resetSearch">重置</el-button>
</search>
</el-card>
@@ -173,6 +174,14 @@ layout("/layouts/platform.html"){
"member-all-change-info": MEMBER_ALL_CHANGE_INFO
},
methods: {
resetSearch() {
this.$set(this.pageForm, "userName", "")
this.$set(this.pageForm, "loginName", "")
this.$set(this.pageForm, "unitId", "")
this.$set(this.pageForm, "userState", "")
this.$set(this.pageForm, "personType", "")
this.doSearch()
},
// 更新单位数据
updateUnits() {
if (this.unitUpdateLoading || this.updateLoading) return
@@ -55,7 +55,7 @@ layout("/layouts/platform.html"){
</el-select>
</el-form-item>
</el-descriptions-item>-->
<el-descriptions-item label="证明人">
<!-- <el-descriptions-item label="证明人">
<el-form-item prop="certifierUserId" label="证明人">
<el-select
style="width: 100%"
@@ -75,7 +75,7 @@ layout("/layouts/platform.html"){
</el-option>
</el-select>
</el-form-item>
</el-descriptions-item>
</el-descriptions-item> -->
<el-descriptions-item label="慰问类型">
<el-form-item prop="type" label="慰问类型">
<el-select v-model="formData.type" @change="typeChange" style="width: 100%"
@@ -112,14 +112,14 @@ layout("/layouts/platform.html"){
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="收款账户">
<el-descriptions-item label="收款账户" v-if="!['A', 'D'].includes(formData.typeCode)">
<el-form-item prop="bankCardNumber" label="收款账户">
<el-input maxlength="20" v-model="formData.bankCardNumber" placeholder="请填写收款账户"
<el-input maxlength="30" v-model="formData.bankCardNumber" placeholder="请填写银行卡号或对公账户号"
></el-input>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="户名">
<el-descriptions-item label="户名" v-if="!['A', 'D'].includes(formData.typeCode)">
<el-form-item prop="bankUserName" label="户名">
<el-input maxlength="20" v-model="formData.bankUserName"
placeholder="请填写户名"
@@ -127,7 +127,7 @@ layout("/layouts/platform.html"){
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="开户行" >
<el-descriptions-item label="开户行" v-if="!['A', 'D'].includes(formData.typeCode)">
<el-form-item prop="bankOfDeposit" label="开户行">
<el-input maxlength="20" v-model="formData.bankOfDeposit"
placeholder="请填写开户行"
@@ -173,10 +173,12 @@ layout("/layouts/platform.html"){
</template>
</el-descriptions>
<el-descriptions :column="3" border>
<el-descriptions-item label="申请事由" :span="3">
<el-form-item prop="remark" label="申请事由">
<el-input maxlength="500" v-model="formData.remark" placeholder="请填写申请事由"
type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>
type="textarea" :rows="3" resize="none"></el-input>
</el-form-item>
</el-descriptions-item>
@@ -219,6 +221,15 @@ layout("/layouts/platform.html"){
new Vue({
el: "#app",
store,
components: {
ElDatePicker: {
extends: ELEMENT.DatePicker,
mounted() {
// 手动输入触发 change 前初始化日期面板,避免 picker 尚未创建。
if (!this.picker) this.mountPicker()
}
}
},
data() {
return {
bizId: GetQueryString("bizId"),
@@ -229,7 +240,10 @@ layout("/layouts/platform.html"){
payUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
type: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
way: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
money: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
money: [
{ required: true, message: "请填写慰问金额", trigger: ["change", "blur"] },
{ validator: (rule, value, callback) => callback(this.validateMoney(value) ? undefined : new Error("慰问金额须大于0且不超过10000元,最多两位小数")), trigger: ["change", "blur"] }
],
occurTime: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
child: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
hospital: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
@@ -238,14 +252,20 @@ layout("/layouts/platform.html"){
hospitalBy: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
deadImmediateFamily: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
remark: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
files: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
files: [{ required: true, type: "array", min: 1, max: 5, message: "请上传1至5个附件", trigger: ["change", "blur"] }],
signature: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
handlerUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
certifierUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
bankCardNumber: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
// certifierUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
bankCardNumber: [
{ required: true, message: "请填写银行卡号或对公账户号", trigger: ["change", "blur"] },
{ pattern: /^[0-9]{6,30}$/, message: "收款账户须为6至30位数字(银行卡号或对公账户号)", trigger: ["change", "blur"] }
],
bankUserName: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
bankOfDeposit: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
thisYearHospitalizationNum: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
thisYearHospitalizationNum: [
{ required: true, message: "必填", trigger: ["change", "blur"] },
{ type: "integer", min: 0, max: 10000, message: "住院次数须为0至10000的整数", trigger: ["change", "blur"] }
],
leaveHospitalTime: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
hospitalizationTime: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
},
@@ -259,6 +279,9 @@ layout("/layouts/platform.html"){
}
},
methods: {
validateMoney(value) {
return /^(0|[1-9][0-9]*)(\.[0-9]{1,2})?$/.test(String(value)) && Number(value) > 0 && Number(value) <= 10000
},
createRemoteMethod(options) {
return (keyword) => {
this.selectQueryUser(keyword, options)
@@ -43,7 +43,7 @@ const condolenceInfo = {
<template v-for="task in doneTasks">
<div class="mt10">
<div class="process-title">{{ task.displayName }}</div>
<div class="process-title">{{ ({'分工会审核':'一级审核','校工会预审':'二级审核','校工会审核':'三级审核'}[task.displayName] || task.displayName) }}</div>
<el-descriptions border class="flow-task-form" :column="3" :key="task.id"
v-if="task.ext.isFirstTaskNode">
<el-descriptions-item label="申请用户">{{ task.ext.initiatorName
@@ -65,6 +65,9 @@ const condolenceInfo = {
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
:value="task.ext.submitType"></dict-tag>
</el-descriptions-item>
<el-descriptions-item label="审批签字" :span="3" v-if="task.taskFormData && task.taskFormData.sign">
<el-image :src="task.taskFormData.sign" style="height: 80px" fit="contain"></el-image>
</el-descriptions-item>
<el-descriptions-item label="办理意见" v-if="!task.ext.isFirstTaskNode">{{
task.taskFormData.opinion }}
</el-descriptions-item>
@@ -37,12 +37,12 @@ const basicForm = {
<el-radio-button :label="false">不上传</el-radio-button>
</el-radio-group>
</el-form-item>-->
<!-- <el-form-item label="是否上传附件" prop="isUploadFile">-->
<!-- <el-radio-group v-model="formData.isUploadFile">-->
<!-- <el-radio-button :label="true">是</el-radio-button>-->
<!-- <el-radio-button :label="false">否</el-radio-button>-->
<!-- </el-radio-group>-->
<!-- </el-form-item>-->
<el-form-item label="是否上传附件" prop="isUploadFile">
<el-radio-group v-model="formData.isUploadFile">
<el-radio-button :label="true">是</el-radio-button>
<el-radio-button :label="false">否</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item label="上传附件说明" prop="uploadFileDesc" v-if="formData.isUploadFile">
<el-input v-model="formData.uploadFileDesc" maxlength="50" clearable placeholder="请填写上传附件说明"></el-input>
</el-form-item>
@@ -17,7 +17,7 @@
@change="modeChange"
:disabled="formData.id" style="width: 100%">
<el-option label="本人申请" value="1"></el-option>
<el-option v-if="$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN, BRANCH_UNION_CHAIRMAN, BRANCH_UNION_OPERATOR')"
<el-option v-if="$auth.hasRoleOr('BRANCH_UNION_CHAIRMAN')"
label="替他人申请" value="2"></el-option>
</el-select>
</el-form-item>
@@ -263,6 +263,9 @@
methods: {
// 查询受助人
queryRecipients(key) {
if (String(this.formData.mode) !== "2" || !this.$auth.hasRoleOr('BRANCH_UNION_CHAIRMAN')) {
return
}
this.$axios.get("/platform/difficultHelp/apply/queryRecipients", {
key
}).then(res => {
@@ -417,10 +420,10 @@
this.$set(this.formData, 'proxyLoginName', user.loginname)
this.$set(this.formData, 'mode', "1")
this.$set(this.formData, 'sex', user.sex)
this.$set(this.formData, 'unitId', user.unit.id)
this.$set(this.formData, 'unitName', user.unit.name)
this.$set(this.formData, 'unionId', user.union.id)
this.$set(this.formData, 'unionName', user.union.name)
this.$set(this.formData, 'unitId', (user.unit || {}).id || user.unitId || null)
this.$set(this.formData, 'unitName', (user.unit || {}).name || '')
this.$set(this.formData, 'unionId', (user.union || {}).id || (user.unit || {}).unionId || null)
this.$set(this.formData, 'unionName', (user.union || {}).name || '')
this.$set(this.formData, 'monthlyIncome', null)
this.$set(this.formData, 'birthday', user.birthday)
this.$set(this.formData, 'mobile', user.mobile)
@@ -1,8 +1,9 @@
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app">
<el-card shadow="never" v-if="isShow">
<div id="app" v-cloak>
<el-card shadow="never" v-if="pageLoading" v-loading="pageLoading" element-loading-text="正在加载申请信息" style="min-height: 300px"></el-card>
<el-card shadow="never" v-else-if="isShow">
<snaker-start slot="header" label="困难帮扶申请" define_key="KNBF"></snaker-start>
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="0" label-suffix=":" class="flow-task-form">
<el-descriptions :column="3" border>
@@ -15,7 +16,7 @@ layout("/layouts/platform.html"){
<el-form-item prop="mode">
<el-select v-model="formData.mode" placeholder="申请模式" @change="modeChange" style="width: 100%">
<el-option label="本人申请" value="1"></el-option>
<el-option v-if="$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN, BRANCH_UNION_CHAIRMAN, BRANCH_UNION_OPERATOR')"
<el-option v-if="canApplyForOthers"
label="替他人申请" value="2"></el-option>
</el-select>
</el-form-item>
@@ -26,7 +27,7 @@ layout("/layouts/platform.html"){
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="受补助人">
<el-form-item prop="userName">
<el-form-item prop="userId">
<template v-if="formData.mode == 2">
<el-select :remote-method="queryRecipients"
@change="userChange" clearable filterable
@@ -51,7 +52,7 @@ layout("/layouts/platform.html"){
</el-descriptions-item>
<el-descriptions-item label="身份证号" :span="2">
<el-form-item prop="idCard">
<el-input maxlength="20" clearable placeholder="请填写身份证号"
<el-input clearable placeholder="请填写身份证号"
v-model="formData.idCard" maxlength="18"></el-input>
</el-form-item>
</el-descriptions-item>
@@ -84,7 +85,7 @@ layout("/layouts/platform.html"){
<el-descriptions-item label="手机号码">
<el-form-item prop="mobile">
<el-input maxlength="11" clearable placeholder="请填写手机号码"
v-model="formData.mobile" maxlength="11"></el-input>
v-model="formData.mobile"></el-input>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="家庭年总收入(万元)">
@@ -103,6 +104,7 @@ layout("/layouts/platform.html"){
<el-input-number
v-model="formData.homeNumber"
:min="1"
:precision="0"
:step="1"
style="width: 100%"
placeholder="请填写家庭人数">
@@ -113,7 +115,7 @@ layout("/layouts/platform.html"){
<el-form-item prop="homeAddress">
<el-input clearable
style="width: 100%"
v-model="formData.homeAddress"
v-model="formData.homeAddress" maxlength="200"
placeholder="请填写家庭住址">
</el-input>
</el-form-item>
@@ -132,7 +134,7 @@ layout("/layouts/platform.html"){
<!-- </el-descriptions-item>-->
<el-descriptions-item label="银行卡号" >
<el-form-item prop="bankCardNum">
<el-input maxlength="20" clearable placeholder="请填写银行卡号"
<el-input maxlength="19" clearable placeholder="请填写银行卡号"
v-model="formData.bankCardNum"></el-input>
</el-form-item>
</el-descriptions-item>
@@ -151,7 +153,7 @@ layout("/layouts/platform.html"){
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="生活致困原因" :span="3">
<el-descriptions-item label="生活致困原因" :span="3">
<el-form-item prop="reason">
<el-input maxlength="500" :autosize="{ minRows: 5, maxRows: 10}"
placeholder="请简述生活致困原因"
@@ -193,8 +195,8 @@ layout("/layouts/platform.html"){
<template slot-scope="{row,$index}">
<el-form-item label-width="0"
:prop="'familyList.'+$index+'.relation'"
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
<el-input v-model="row.relation" placeholder="请填写与本人关系" clearable></el-input>
:rules="textRules('与本人关系', 50)">
<el-input v-model="row.relation" maxlength="50" placeholder="请填写与本人关系" clearable></el-input>
</el-form-item>
</template>
</el-table-column>
@@ -202,8 +204,8 @@ layout("/layouts/platform.html"){
<template slot-scope="{row,$index}">
<el-form-item label-width="0"
:prop="'familyList.'+$index+'.name'"
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
<el-input v-model="row.name" placeholder="请填写姓名" clearable></el-input>
:rules="textRules('姓名', 100)">
<el-input v-model="row.name" maxlength="100" placeholder="请填写姓名" clearable></el-input>
</el-form-item>
</template>
</el-table-column>
@@ -211,9 +213,9 @@ layout("/layouts/platform.html"){
<template slot-scope="{row,$index}">
<el-form-item label-width="0"
:prop="'familyList.'+$index+'.age'"
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
:rules="[{required:true,type:'integer',min:1,max:100,message:'年龄须为1至100的整数',trigger:['change','blur']}]">
<el-input-number v-model="row.age" placeholder="年龄" :min="1"
:max="100" :step="1" style="width: 100%" clearable></el-input-number>
:max="100" :precision="0" :step="1" style="width: 100%" clearable></el-input-number>
</el-form-item>
</template>
</el-table-column>
@@ -221,8 +223,8 @@ layout("/layouts/platform.html"){
<template slot-scope="{row,$index}">
<el-form-item label-width="0"
:prop="'familyList.'+$index+'.homeUnit'"
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
<el-input v-model="row.homeUnit" placeholder="请填写工作单位" clearable></el-input>
:rules="textRules('工作单位', 200)">
<el-input v-model="row.homeUnit" maxlength="200" placeholder="请填写工作单位" clearable></el-input>
</el-form-item>
</template>
</el-table-column>
@@ -230,9 +232,9 @@ layout("/layouts/platform.html"){
<template slot-scope="{row,$index}">
<el-form-item label-width="0"
:prop="'familyList.'+$index+'.yearIncome'"
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
:rules="[{validator:validateIncome,required:true,trigger:['change','blur']}]">
<el-input-number v-model="row.yearIncome" placeholder="年收入"
:min="0" :step="1" style="width: 100%" clearable></el-input-number>
:min="0" :precision="2" :step="1" style="width: 100%" clearable></el-input-number>
</el-form-item>
</template>
</el-table-column>
@@ -240,8 +242,8 @@ layout("/layouts/platform.html"){
<template slot-scope="{row,$index}">
<el-form-item label-width="0"
:prop="'familyList.'+$index+'.remarks'"
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
<el-input v-model="row.remarks" placeholder="请填写备注" clearable></el-input>
:rules="textRules('备注', 500)">
<el-input v-model="row.remarks" maxlength="500" placeholder="请填写备注" clearable></el-input>
</el-form-item>
</template>
</el-table-column>
@@ -292,7 +294,7 @@ layout("/layouts/platform.html"){
</el-card>
<div v-else>
<el-card class="box-card" style="height: 92vh" shadow="never">
<el-result icon="warning" title="温馨提醒" subTitle="">
<el-result icon="warning" title="温馨提醒" sub-title="">
<template slot="extra">
<span v-if="blockMessage">{{blockMessage}}</span>
<span v-else>抱歉,当前时间不能申请,可申请时间为{{time}}。</span>
@@ -312,6 +314,7 @@ layout("/layouts/platform.html"){
bizId: GetQueryString("bizId"),
taskId: GetQueryString("taskId"),
isShow: false,
pageLoading: true,
time: '',
blockMessage: '',
formData: {
@@ -320,30 +323,55 @@ layout("/layouts/platform.html"){
applyCount: '1',
},
formRules: {
proxyUserName: [{required: true, message: '必填', trigger: ['blur', 'change']}],
proxyLoginName: [{required: true, message: '必填', trigger: ['blur', 'change']}],
sex: [{required: true, message: '请填写性别', trigger: ['blur', 'change']}],
userName: [{required: true, message: '请填写受补助人', trigger: ['blur', 'change']}],
unitName: [{required: true, message: '请填写所属单位', trigger: ['blur', 'change']}],
proxyUserName: this.textRules('填写人姓名', 100),
proxyLoginName: this.textRules('填写人工号', 100),
mode: [{required: true, type: 'enum', enum: ['1', '2'], message: '请选择申请模式', trigger: ['blur', 'change']}],
sex: [{required: true, type: 'enum', enum: ['男', '女'], message: '请选择性别', trigger: ['blur', 'change']}],
userId: [{required: true, message: '请选择受补助人', trigger: ['blur', 'change']}],
unitName: this.textRules('所属单位', 500),
unionName: [{required: true, message: '请填写所属工会', trigger: ['blur', 'change']}],
homeAddress: [{required: true, message: '请填写家庭住址', trigger: ['blur', 'change']}],
mobile: [{required: true, message: '请填写手机号码', trigger: ['blur', 'change']}],
idCard: [{required: true, message: '请填写身份证号', trigger: ['blur', 'change']}],
bankCardNum: [{required: true, message: '请填写收款账户卡号', trigger: ['blur', 'change']}],
homeAddress: this.textRules('家庭住址', 200),
mobile: [
{required: true, message: '请填写手机号码', trigger: ['blur', 'change']},
{pattern: /^1[3-9]\d{9}$/, message: '请输入正确的11位手机号码', trigger: ['blur', 'change']}
],
idCard: [{validator: (rule, value, callback) => {
const result = this.isValidIdCard(value || '')
callback(result.status === 0 ? new Error(result.msg) : undefined)
}, required: true, trigger: ['blur', 'change']}],
bankCardNum: [{validator: (rule, value, callback) => {
const result = this.validateCard(value || '')
callback(result.status === 0 ? new Error(result.msg) : undefined)
}, required: true, trigger: ['blur', 'change']}],
bankUserName: [{required: true, message: '请填写户名', trigger: ['blur', 'change']}],
bankOfDeposit: [{required: true, message: '请填写开户行', trigger: ['blur', 'change']}],
position: [{required: true, message: '请填写职务', trigger: ['blur', 'change']}],
officialCapacity: [{required: true, message: '请填写职称', trigger: ['blur', 'change']}],
subsidyStandards: [{required: true, message: '请选择困难类型', trigger: ['blur', 'change']}],
reason: [{required: true, message: '请填写申请原因', trigger: ['blur', 'change']}],
sign: [{required: true, message: '请签字', trigger: ['blur', 'change']}]
bankOfDeposit: this.textRules('开户行', 30),
position: this.textRules('职务', 20),
officialCapacity: this.textRules('职称', 20),
homeIncome: [{validator: this.validateIncome, required: true, trigger: ['blur', 'change']}],
homeNumber: [{required: true, type: 'integer', min: 1, message: '家庭人数须为大于零的整数', trigger: ['blur', 'change']}],
subsidy: this.textRules('补助类型', 500),
subsidyStandards: this.textRules('困难类型', 500),
reason: this.textRules('生活致困原因', 500),
sign: [{required: true, whitespace: true, message: '请完成签字', trigger: ['blur', 'change']}],
},
// 替他人申请相关
subsidizedList: []
}
},
computed: {
canApplyForOthers() {
return this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN, BRANCH_UNION_CHAIRMAN, BRANCH_UNION_OPERATOR')
}
},
methods: {
textRules(label, max) {
return [{required: true, whitespace: true, max, message: '请填写' + label + ',且不超过' + max + '个字符', trigger: ['blur', 'change']}]
},
validateIncome(rule, value, callback) {
const valid = typeof value === 'number' && Number.isFinite(value) && value >= 0 && /^\d+(\.\d{1,2})?$/.test(String(value))
callback(valid ? undefined : new Error('收入须为不小于零的数字,最多保留两位小数'))
},
// 保存
onSave() {
this.$confirm("您确定保存吗?", "提示", {
@@ -362,24 +390,13 @@ layout("/layouts/platform.html"){
// 提交
async onSubmit() {
this.$refs.formRef.validate().then((valid) => {
this.$refs.formRef.validate().catch(() => false).then((valid) => {
if (valid) {
this.$confirm("您确定要提交吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
const result = this.isValidIdCard(this.formData.idCard)
if (result.status === 0) {
this.$message.warning(result.msg)
return
}
const bankRes = this.validateCard(this.formData.bankCardNum)
if (bankRes.status === 0) {
this.$message.warning(bankRes.msg)
return;
}
this.$axios.post('/platform/difficultHelp/apply/submit', {
data: JSON.stringify(this.formData)
}).then(res => {
@@ -394,7 +411,7 @@ layout("/layouts/platform.html"){
},
async onFinishTask() {
this.$refs.formRef.validate().then((valid) => {
this.$refs.formRef.validate().catch(() => false).then((valid) => {
if (valid) {
this.$confirm("您确定要提交吗?", "提示", {
confirmButtonText: "确定",
@@ -402,17 +419,6 @@ layout("/layouts/platform.html"){
type: "warning"
}).then(() => {
const result = this.isValidIdCard(this.formData.idCard)
if (result.status === 0) {
this.$message.warning(result.msg)
return
}
const bankRes = this.validateCard(this.formData.bankCardNum)
if (bankRes.status === 0) {
this.$message.warning(bankRes.msg)
return;
}
this.$axios.post('/platform/difficultHelp/apply/submitAgain', {
data: JSON.stringify(this.formData),
taskId: GetQueryString("taskId")
@@ -429,6 +435,9 @@ layout("/layouts/platform.html"){
// 查询受助人
queryRecipients(key) {
if (String(this.formData.mode) !== "2" || !this.canApplyForOthers) {
return
}
this.$axios.post("/platform/difficultHelp/apply/queryRecipients", {
key
}).then(res => {
@@ -438,10 +447,12 @@ layout("/layouts/platform.html"){
})
},
findOne(id) {
this.$axios.post('/platform/difficultHelp/mine/findOne', { id }).then(res => {
return this.$axios.post('/platform/difficultHelp/mine/findOne', { id }).then(res => {
if (res.code === 0) {
this.formData = res.data
this.queryRecipients(res.data.loginName)
} else {
throw new Error(res.msg || '申请信息加载失败,请刷新页面重试')
}
})
},
@@ -459,6 +470,9 @@ layout("/layouts/platform.html"){
this.$set(this.formData, 'birthday', user.birthday)
this.$set(this.formData, 'mobile', user.mobile)
this.$set(this.formData, 'idCard', user.idCard)
this.$set(this.formData, 'position', user.position || '')
this.$set(this.formData, 'officialCapacity', user.officialCapacity || '')
this.$set(this.formData, 'homeAddress', user.homeAddress || '')
} else {
this.$set(this.formData, 'userId', null)
@@ -471,6 +485,10 @@ layout("/layouts/platform.html"){
this.$set(this.formData, 'unionName', null)
this.$set(this.formData, 'birthday', null)
this.$set(this.formData, 'mobile', null)
this.$set(this.formData, 'idCard', null)
this.$set(this.formData, 'position', '')
this.$set(this.formData, 'officialCapacity', '')
this.$set(this.formData, 'homeAddress', '')
}
},
// 申请模式
@@ -486,15 +504,17 @@ layout("/layouts/platform.html"){
this.$set(this.formData, 'proxyLoginName', user.loginname)
this.$set(this.formData, 'mode', "1")
this.$set(this.formData, 'sex', user.sex)
this.$set(this.formData, 'unitId', user.unit.id)
this.$set(this.formData, 'unitName', user.unit.name)
this.$set(this.formData, 'unionId', user.union.id)
this.$set(this.formData, 'unionName', user.union.name)
this.$set(this.formData, 'unitId', (user.unit || {}).id || user.unitId || null)
this.$set(this.formData, 'unitName', (user.unit || {}).name || '')
this.$set(this.formData, 'unionId', (user.union || {}).id || (user.unit || {}).unionId || null)
this.$set(this.formData, 'unionName', (user.union || {}).name || '')
this.$set(this.formData, 'yearIncome', null)
this.$set(this.formData, 'birthday', user.birthday)
this.$set(this.formData, 'idCard', user.idCard)
this.$set(this.formData, 'mobile', user.mobile)
this.$set(this.formData, 'homeAddress', user.homeAddress)
this.$set(this.formData, 'position', user.position || '')
this.$set(this.formData, 'officialCapacity', user.professionalTitle || '')
this.$set(this.formData, 'subsidyStandards', null)
this.$set(this.formData, 'reason', null)
this.$set(this.formData, 'remarks', null)
@@ -602,10 +622,10 @@ layout("/layouts/platform.html"){
return { status: 200, msg: "卡号有效。" };
},
async getIsCanPlay() {
this.$axios.post('/platform/difficultHelp/apply/getIsCanPlay').then(res => {
return this.$axios.post('/platform/difficultHelp/apply/getIsCanPlay').then(res => {
if (res.code === 0) {
// 新增申请进入页面时,优先校验当前登录人本年度是否已经申请过,已申请则直接拦截新增。
if (!this.bizId && res.data.hasCurrentYearApply) {
if (!this.bizId && res.data.hasCurrentYearApply && !this.canApplyForOthers) {
this.isShow = false
this.$set(this, 'blockMessage', '抱歉,您本年度已申请困难帮扶,不能重复申请。')
} else {
@@ -616,16 +636,25 @@ layout("/layouts/platform.html"){
if (res.data.applyCount !== null && res.data.applyCount !== undefined && res.data.applyCount !== 0) {
this.$set(this.formData, 'applyCount', res.data.applyCount)
}
} else {
throw new Error(res.msg || '申请资格加载失败,请刷新页面重试')
}
})
}
},
async created() {
await this.getIsCanPlay();
if (this.bizId) {
this.findOne(this.bizId)
} else {
this.modeChange("1")
try {
await this.getIsCanPlay();
if (this.bizId) {
await this.findOne(this.bizId)
} else {
this.modeChange("1")
}
} catch (error) {
this.isShow = false
this.blockMessage = error.message || '申请信息加载失败,请刷新页面重试'
} finally {
this.pageLoading = false
}
}
})
@@ -24,6 +24,12 @@ const INFO = {
<el-descriptions-item label="申请次数" >{{ 1 }}</el-descriptions-item>
<el-descriptions-item label="家庭住址" :span="2">{{ viewData.homeAddress }}</el-descriptions-item>
<el-descriptions-item label="补助类型">
<dict-tag :options="dict.type.DIFFICULT_SUBSIDY_TYPE" :value="viewData.subsidy"></dict-tag>
</el-descriptions-item>
<el-descriptions-item label="困难类型">
<dict-tag :options="dict.type.DIFFICULT_TYPE" :value="viewData.subsidyStandards"></dict-tag>
</el-descriptions-item>
<el-descriptions-item label="家庭主要成员(在一起生活的直系亲属)经济收入情况" :span="3">
@@ -64,7 +70,7 @@ const INFO = {
<template v-for="task in doneTasks">
<div class="task-panel mt10">
<div class="process-title">{{ task.displayName }}</div>
<div class="process-title">{{ ({'分工会审核':'一级审核','二级党组织审核':'二级审核','校工会审核':'三级审核'}[task.displayName] || task.displayName) }}</div>
<el-descriptions border class="flow-task-form" :column="3" :key="task.id"
v-if="task.ext.isFirstTaskNode">
<el-descriptions-item label="申请用户">{{ task.ext.initiatorName
@@ -106,7 +112,7 @@ const INFO = {
</div>
`,
store,
dicts: ["PROCESS_TASK_SUBMIT_TYPE"],
dicts: ["PROCESS_TASK_SUBMIT_TYPE", "DIFFICULT_SUBSIDY_TYPE", "DIFFICULT_TYPE"],
data() {
return {
viewData: {},
@@ -1,4 +1,4 @@
<div id="difficult_help_branch_union_approval_form">
<div id="difficult_help_first_approval_form">
<el-form :model="formData" ref="formRef" label-width="0" label-suffix=":" class="flow-task-form">
<el-form-item label="审批意见" prop="tf_opinion" :rules="[{required:true,message:'必填',trigger:['change','blur']}]">
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
@@ -9,7 +9,7 @@
<script nonce="${cspNonce!}">
new Vue({
el: "#difficult_help_branch_union_approval_form",
el: "#difficult_help_first_approval_form",
data() {
return {
businessId: GetQueryString("businessId"),
@@ -64,16 +64,16 @@ layout("/layouts/platform.html"){
size="small"></enum-tag>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" width="300px">
<el-table-column label="操作" fixed="right" width="300px" class-name="difficult-help-mine-actions">
<template slot-scope="{row}">
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
<el-button v-if="row.taskKey === 'startTask' || !row.instanceId" @click="onEdit(row)" size="mini" type="primary">
<el-button v-if="row.createdBy === $store.state.user.id && (row.taskKey === 'startTask' || !row.instanceId)" @click="onEdit(row)" size="mini" type="primary">
编辑
</el-button>
<el-button v-if="row.canRevoke" @click="onRevoke(row)" size="mini" type="danger">撤回
<el-button v-if="row.createdBy === $store.state.user.id && row.canRevoke" @click="onRevoke(row)" size="mini" type="danger">撤回
</el-button>
<el-button @click="doExportApply(row)" size="mini" type="primary">打印</el-button>
<el-button v-if="row.taskKey === 'startTask' || !row.instanceId" @click="onDelete(row.id)" size="mini" type="danger">删除</el-button>
<el-button v-if="row.createdBy === $store.state.user.id && row.instanceState == 20" @click="doExportApply(row)" size="mini" type="primary">导出</el-button>
<el-button v-if="row.createdBy === $store.state.user.id && (row.taskKey === 'startTask' || !row.instanceId)" @click="onDelete(row.id)" size="mini" type="danger">删除</el-button>
</template>
</el-table-column>
</el-table>
@@ -87,6 +87,18 @@ layout("/layouts/platform.html"){
</div>
<style nonce="${cspNonce!}">
#app .difficult-help-mine-actions .cell {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
}
#app .difficult-help-mine-actions .cell > .el-button {
margin-left: 0;
}
</style>
<script nonce="${cspNonce!}">
<!--#include("../common/info.js"){}#-->
@@ -165,11 +177,11 @@ layout("/layouts/platform.html"){
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
this.units = await this.$businessTool.listUnit(this.pageForm.unionId)
} else {
this.units = await this.$businessTool.listUnit(this.$store.state.user.union.id)
this.units = await this.$businessTool.listUnit((this.$store.state.user.union || {}).id || this.pageForm.unionId)
}
},
doExportApply(row) {
this.$downLoad('/platform/difficultHelp/reading/doExportApply?id=' + row.id + '&print=true')
this.$downLoad('/platform/difficultHelp/reading/doExportApply?id=' + row.id + '&print=false')
}
},
async created() {
@@ -177,7 +189,7 @@ layout("/layouts/platform.html"){
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
this.unions = await this.$businessTool.listUnion()
} else {
this.unions = await this.$businessTool.listUnion(this.$store.state.user.union.id)
this.unions = await this.$businessTool.listUnion((this.$store.state.user.union || {}).id)
}
}
})
@@ -1,4 +1,4 @@
<div id="difficult_help_branch_union_approval_form">
<div id="difficult_help_second_approval_form">
<el-form :model="formData" ref="formRef" label-width="0" label-suffix=":" class="flow-task-form">
<el-form-item label="审批意见" prop="tf_opinion" :rules="[{required:true,message:'必填',trigger:['change','blur']}]">
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
@@ -9,7 +9,7 @@
<script nonce="${cspNonce!}">
new Vue({
el: "#difficult_help_branch_union_approval_form",
el: "#difficult_help_second_approval_form",
data() {
return {
businessId: GetQueryString("businessId"),
@@ -1,4 +1,4 @@
<div id="difficult_help_school_union_approval_form">
<div id="difficult_help_third_approval_form">
<el-form :model="formData" ref="formRef" label-width="0" label-suffix=":" class="flow-task-form">
<el-form-item label="审核金额" prop="tf_money" :rules="[{required:true,message:'必填',trigger:['change','blur']}]">
<el-input-number placeholder="请输入金额" v-model="formData.tf_money"></el-input-number>
@@ -12,7 +12,7 @@
<script nonce="${cspNonce!}">
new Vue({
el: "#difficult_help_school_union_approval_form",
el: "#difficult_help_third_approval_form",
data() {
return {
businessId: GetQueryString("businessId"),
@@ -256,7 +256,7 @@ layout("/layouts/platform.html"){
approveSingleItem(item) {
return new Promise((resolve, reject) => {
this.$axios.post("/platform/difficultHelp/schoolUnionApproval/save", {
this.$axios.post("/platform/difficultHelp/thirdApproval/save", {
data: JSON.stringify({
...this.formData,
id: item.id
@@ -301,7 +301,7 @@ layout("/layouts/platform.html"){
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.$axios.post("/platform/difficultHelp/schoolUnionApproval/save", {
this.$axios.post("/platform/difficultHelp/thirdApproval/save", {
data: JSON.stringify({
...this.formData,
})
@@ -851,7 +851,10 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
cancelButtonText: '取消',
type: 'warning'
}).then(async () => {
window.top.location.href = '/platform/inclusiveTherapyV3/lineXghSelect?mode=2'
const targetMenu = window.parent.document.querySelector('#sidebar-menu a[data-pjax][href="/platform/inclusiveTherapyV3/lineXghSelect?mode=2"]')
if (targetMenu) {
targetMenu.click()
}
}).catch(() => {
this.$refs.guava.index()
this.pageData()
@@ -32,6 +32,11 @@ ELEMENT.Table.props.border.default = true;
ELEMENT.TableColumn.props.headerAlign.default = 'center';
ELEMENT.TableColumn.props.align.default = 'center';
Vue.use(ELEMENT, {zIndex: 20000});
if (window.parent !== window) {
Vue.prototype.$confirm = function(...args) {
return window.parent.ELEMENT.MessageBox.confirm(...args);
};
}
</script>
<script src="${base!}/assets/platform/plugins/wangEditor4/wangEditor.js"></script>
<script src="${base!}/assets/platform/plugins/sortablejs/sortable.min.js"></script>
@@ -255,7 +255,7 @@ layout("/layouts/platform_h5.html"){
<van-empty description="暂无数据" v-else></van-empty>
</van-action-sheet>-->
<van-field
<!-- <van-field
v-model="formData.certifierUserName"
name="certifierUserName"
label="证明人"
@@ -288,7 +288,7 @@ layout("/layouts/platform_h5.html"){
</template>
</div>
<van-empty description="暂无数据" v-else></van-empty>
</van-action-sheet>
</van-action-sheet> -->
<van-field
v-model="formData.typeName"
@@ -322,7 +322,7 @@ layout("/layouts/platform_h5.html"){
name="money"
label="慰问金额"
required
:rules="[{ required: true }]"
:rules="[{ required: true, message: '请填写慰问金额' }, { validator: validateMoney, message: '慰问金额须大于0且不超过10000元,最多两位小数' }]"
placeholder="选择慰问类型自动匹配金额"
clickable
type="number"
@@ -353,17 +353,19 @@ layout("/layouts/platform_h5.html"){
</van-popup>
<van-field
v-if="!['A', 'D'].includes(formData.typeCode)"
v-model="formData.bankCardNumber"
label="收款账户"
maxlength="20"
maxlength="30"
clearable
name="bankCardNumber"
placeholder="请填写收款账户"
:rules="[{ required: true }]"
placeholder="请填写银行卡号或对公账户号"
:rules="[{ required: true, message: '请填写银行卡号或对公账户号' }, { pattern: /^[0-9]{6,30}$/, message: '收款账户须为6至30位数字(银行卡号或对公账户号)' }]"
required
></van-field>
<van-field
v-if="!['A', 'D'].includes(formData.typeCode)"
v-model="formData.bankUserName"
label="户名"
placeholder="请填写户名"
@@ -373,12 +375,10 @@ layout("/layouts/platform_h5.html"){
name="bankUserName"
></van-field>
<van-field
v-if="!['A', 'D'].includes(formData.typeCode)"
v-model="formData.bankOfDeposit"
label="开户行"
maxlength="30"
type="textarea"
rows="4"
autosize
maxlength="20"
placeholder="请填写开户行"
:rules="[{ required: true }]"
required
@@ -433,8 +433,8 @@ layout("/layouts/platform_h5.html"){
></van-datetime-picker>
</van-popup>
<van-field type="digit" label="当年第几次住院"
:rules="[{ required: true }]"
<van-field type="digit" label="当年第几次住院" name="thisYearHospitalizationNum"
:rules="[{ required: true }, { validator: value => /^[0-9]+$/.test(String(value)) && Number(value) <= 10000, message: '住院次数须为0至10000的整数' }]"
required
placeholder="请输入当年第几次住院"
v-model="formData.thisYearHospitalizationNum"></van-field>
@@ -443,6 +443,7 @@ layout("/layouts/platform_h5.html"){
<van-field
v-model="formData.remark"
name="remark"
maxlength="500"
label="申请事由"
type="textarea"
rows="4"
@@ -460,15 +461,18 @@ layout("/layouts/platform_h5.html"){
{{ '附件说明:' + chooseType.uploadFileDesc }}
</div>
<van-cell-group :border="false">
<van-field class="direction-column-field" name="avatar" label="">
<van-field class="direction-column-field" name="files" label="附件" required
:rules="[{ validator: () => Array.isArray(formData.files) && formData.files.length > 0 && formData.files.length <= 5, message: '请上传1至5个附件' }]">
<template #input>
<h5-file-upload
slot="input"
:value.sync="formData.files"
:upload_number="5"
upload_text="上传附件"
upload_result_category="array"
complete_result
></h5-file-upload>
<div class="condolence-card__desc">最多上传 5 个文件</div>
</template>
</van-field>
</van-cell-group>
@@ -477,7 +481,8 @@ layout("/layouts/platform_h5.html"){
<section class="form-section">
<h2 class="condolence-card__title">签字确认</h2>
<van-cell-group :border="false">
<van-field class="direction-column-field" name="signature" label="">
<van-field class="direction-column-field" name="signature" label="" :value="formData.signature"
:rules="[{ required: true, message: '请填写签字' }]">
<template #input>
<h5-signature v-model="formData.signature" slot="input"></h5-signature>
</template>
@@ -532,6 +537,9 @@ layout("/layouts/platform_h5.html"){
}
},
methods: {
validateMoney(value) {
return /^(0|[1-9][0-9]*)(\.[0-9]{1,2})?$/.test(String(value)) && Number(value) > 0 && Number(value) <= 10000
},
// 选择出院时间
showLeaveHospitalTimePickerClick() {
if (this.formData.leaveHospitalTime) {
@@ -158,19 +158,44 @@
}
.condolence-info-long-cell {
display: flex;
align-items: flex-start;
}
.condolence-info-card .condolence-attachments .empty-container {
height: auto;
justify-content: flex-start;
color: inherit;
}
.condolence-info-card .condolence-attachments .empty-text {
font-size: inherit;
line-height: inherit;
}
.condolence-info-opinion > :first-child {
margin-top: 0;
}
.condolence-info-opinion > :last-child {
margin-bottom: 0;
}
.condolence-signature-image,
.condolence-approval-signature-image {
display: block;
}
.condolence-info-long-cell .van-cell__title {
width: auto;
width: 100%;
max-width: 100%;
height: 80px;
}
.condolence-info-long-cell .van-cell__value {
margin-top: 7px;
.condolence-signature-image .van-image__img,
.condolence-approval-signature-image {
object-fit: contain;
object-position: left center;
}
.condolence-signature-image {
display: block;
.condolence-info-opinion img {
max-width: 100%;
height: auto;
}
@@ -25,13 +25,13 @@ const condolenceInfo = {
<van-cell title="申请人单位">{{ viewData.applyUnitName || '--' }}</van-cell>
<van-cell title="申请人工会">{{ viewData.applyUnionName || '--' }}</van-cell>
<van-cell title="慰问对象">{{ viewData.helpUserName || '--' }}</van-cell>
<van-cell title="证明人">{{ viewData.certifierUserName || '--' }}</van-cell>
<!-- <van-cell title="证明人">{{ viewData.certifierUserName || '--' }}</van-cell> -->
<van-cell title="慰问类型">{{ viewData.typeName || '--' }}</van-cell>
<van-cell title="慰问金额">{{ viewData.money || '--' }}</van-cell>
<van-cell title="慰问时间">{{ viewData.occurTime || '--' }}</van-cell>
<van-cell title="收款账户">{{ viewData.bankCardNumber || '--' }}</van-cell>
<van-cell title="户名">{{ viewData.bankUserName || '--' }}</van-cell>
<van-cell class="condolence-info-long-cell" title="开户行">
<van-cell title="开户行">
{{ viewData.bankOfDeposit || '暂无' }}
</van-cell>
<template v-if="['2'].includes(viewData.typeCode)">
@@ -39,17 +39,18 @@ const condolenceInfo = {
<van-cell title="出院时间">{{ viewData.leaveHospitalTime || '--' }}</van-cell>
<van-cell title="当年第几次住院(次)">{{ viewData.thisYearHospitalizationNum || '--' }}</van-cell>
</template>
<van-cell class="condolence-info-long-cell" title="申请事由">
<van-cell title="申请事由">
{{ viewData.remark || '暂无' }}
</van-cell>
<van-cell class="condolence-info-long-cell" title="附件">
<file-preview :files="viewData.files" complete_result></file-preview>
<file-preview class="condolence-attachments" :files="viewData.files" complete_result></file-preview>
</van-cell>
<van-cell class="condolence-info-long-cell" title="签字">
<van-image
v-if="viewData.signature"
:src="viewData.signature"
class="condolence-signature-image"
fit="contain"
></van-image>
<span v-else>暂无签字</span>
</van-cell>
@@ -61,7 +62,7 @@ const condolenceInfo = {
:key="task.id || index"
class="condolence-info-card"
>
<h2 class="condolence-info-card__title">{{ task.displayName || '办理记录' }}</h2>
<h2 class="condolence-info-card__title">{{ ({'分工会审核':'一级审核','校工会预审':'二级审核','校工会审核':'三级审核'}[task.displayName] || task.displayName) || '办理记录' }}</h2>
<van-cell-group :border="false" v-if="task.ext && task.ext.isFirstTaskNode">
<van-cell title="申请用户">
{{ task.ext.initiatorName || '--' }}({{ task.ext.initiatorAccount || '--' }})
@@ -85,8 +86,11 @@ const condolenceInfo = {
:value="task.ext && task.ext.submitType"
></dict-tag>
</van-cell>
<van-cell class="condolence-info-long-cell" title="办理意见">
<div v-html="task.taskFormData && task.taskFormData.tf_opinion || '暂无'"></div>
<van-cell v-if="task.taskFormData && task.taskFormData.sign" title="审批签字">
<img :src="task.taskFormData.sign" class="condolence-approval-signature-image">
</van-cell>
<van-cell title="办理意见">
<div class="condolence-info-opinion" v-html="task.taskFormData && task.taskFormData.tf_opinion || '暂无'"></div>
</van-cell>
</van-cell-group>
</section>
@@ -55,7 +55,7 @@ layout("/layouts/platform_h5.html"){
<div id="app">
<div class="condolence-list-page">
<van-nav-bar title="分工会审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
<van-nav-bar title="一级审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
<van-sticky offset-top="46px">
<div class="condolence-list-sticky">
@@ -84,7 +84,7 @@ layout("/layouts/platform_h5.html"){
<van-skeleton title :row="5" animated></van-skeleton>
</div>
</div>
<table-list api="/platform/condolence/branchUnionApproval/pageData" :page_form.sync="pageForm" ref="tableListRef"
<table-list api="/platform/condolence/firstApproval/pageData" :page_form.sync="pageForm" ref="tableListRef"
v-show="!skeletonLoading" :show_loading_overlay="false" @ready="onReady"
@loading-change="handleListLoadingChange">
<template #header="{index,row}">
@@ -55,7 +55,7 @@ layout("/layouts/platform_h5.html"){
<div id="app">
<div class="condolence-list-page">
<van-nav-bar title="校工会预审" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
<van-nav-bar title="二级审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
<van-sticky offset-top="46px">
<div class="condolence-list-sticky">
@@ -84,7 +84,7 @@ layout("/layouts/platform_h5.html"){
<van-skeleton title :row="5" animated></van-skeleton>
</div>
</div>
<table-list api="/platform/condolence/schoolPrincipalApproval/pageData" :page_form.sync="pageForm" ref="tableListRef"
<table-list api="/platform/condolence/secondApproval/pageData" :page_form.sync="pageForm" ref="tableListRef"
v-show="!skeletonLoading" :show_loading_overlay="false" @ready="onReady"
@loading-change="handleListLoadingChange">
<template #header="{index,row}">
@@ -55,7 +55,7 @@ layout("/layouts/platform_h5.html"){
<div id="app">
<div class="condolence-list-page">
<van-nav-bar title="校工会审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
<van-nav-bar title="三级审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
<van-sticky offset-top="46px">
<div class="condolence-list-sticky">
@@ -84,7 +84,7 @@ layout("/layouts/platform_h5.html"){
<van-skeleton title :row="5" animated></van-skeleton>
</div>
</div>
<table-list api="/platform/condolence/schoolUnionApproval/pageData" :page_form.sync="pageForm" ref="tableListRef"
<table-list api="/platform/condolence/thirdApproval/pageData" :page_form.sync="pageForm" ref="tableListRef"
v-show="!skeletonLoading" :show_loading_overlay="false" @ready="onReady"
@loading-change="handleListLoadingChange">
<template #header="{index,row}">
@@ -94,6 +94,22 @@ layout("/layouts/platform_h5.html"){
color: #f06464;
}
.difficult-help-apply-form .difficult-help-apply-mode {
flex-wrap: nowrap;
gap: 8px;
}
.difficult-help-apply-form .difficult-help-apply-mode .van-radio {
flex-shrink: 0;
margin-right: 0;
}
.difficult-help-apply-form .difficult-help-apply-mode .van-radio__label {
margin-left: 4px;
font-size: 12px;
white-space: nowrap;
}
.difficult-help-apply-actions {
position: fixed;
z-index: 100;
@@ -308,10 +324,10 @@ layout("/layouts/platform_h5.html"){
required name="proxyLoginName"></van-field>
<van-field label="申请模式" name="mode" required :rules="[{ required: true }]">
<template #input>
<van-radio-group v-model="formData.mode" @change="modeChange" direction="horizontal">
<van-radio-group class="difficult-help-apply-mode" :value="formData.mode" @input="formData.mode !== $event && modeChange($event)" direction="horizontal" icon-size="14px">
<van-radio name="1" shape="square">本人申请</van-radio>
<van-radio
v-if="$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN, BRANCH_UNION_CHAIRMAN, BRANCH_UNION_OPERATOR')"
v-if="canApplyForOthers"
name="2" shape="square">替他人申请
</van-radio>
</van-radio-group>
@@ -707,11 +723,16 @@ layout("/layouts/platform_h5.html"){
return false;
}
},
computed: {
canApplyForOthers() {
return this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN, BRANCH_UNION_CHAIRMAN, BRANCH_UNION_OPERATOR')
}
},
methods: {
historyBack,
// 替他人申请时由只读字段主动打开受助人选择,已有业务数据时保持原禁止更换规则。
openRecipientPopup() {
if (this.formData.mode !== "2" || this.formData.id) return
if (this.formData.mode !== "2" || this.formData.id || !this.canApplyForOthers) return
this.$set(this, "recipientSearchKey", "")
this.$set(this, "recipientHasSearched", false)
this.$set(this, "subsidizedList", [])
@@ -975,7 +996,7 @@ layout("/layouts/platform_h5.html"){
* recipientSearchKey 传搜索关键词;接口返回用户数组,列表仅展示姓名和单位。
*/
queryRecipients() {
if (this.formData.mode !== "2") {
if (this.formData.mode !== "2" || !this.canApplyForOthers) {
return
}
const key = (this.recipientSearchKey || "").trim()
@@ -1024,6 +1045,7 @@ layout("/layouts/platform_h5.html"){
this.$set(this.formData, "userName", null)
this.$set(this.formData, "loginName", null)
this.$set(this.formData, "sex", null)
this.$set(this.formData, "birthday", null)
this.$set(this.formData, "unitId", null)
this.$set(this.formData, "unitName", null)
this.$set(this.formData, "unionId", null)
@@ -1088,6 +1110,8 @@ layout("/layouts/platform_h5.html"){
this.$set(this.formData, 'idCard', user.idCard)
this.$set(this.formData, 'mobile', user.mobile)
this.$set(this.formData, 'homeAddress', user.homeAddress)
this.$set(this.formData, 'position', user.position || '')
this.$set(this.formData, 'officialCapacity', user.professionalTitle || '')
this.$set(this.formData, 'subsidyStandards', null)
this.$set(this.formData, 'reason', null)
this.$set(this.formData, 'remarks', null)
@@ -167,11 +167,11 @@
}
.difficult-help-info-card .van-cell__title {
width: 112px;
width: 102px;
color: #596779;
font-size: 12px;
line-height: 24px;
flex: 0 0 112px;
flex: 0 0 102px;
}
.difficult-help-info-card .van-cell__value {
@@ -184,16 +184,8 @@
}
.difficult-help-info-long-cell {
display: block;
}
.difficult-help-info-long-cell .van-cell__title {
width: auto;
max-width: 100%;
}
.difficult-help-info-long-cell .van-cell__value {
margin-top: 7px;
display: flex;
align-items: flex-start;
}
.difficult-help-info-pre-line {
@@ -165,11 +165,11 @@ const INFO = {
:class="{'difficult-help-info-card': fullScreen}"
>
<h2 v-if="fullScreen" class="difficult-help-info-card__title">
{{ task.displayName || '办理记录' }}
{{ ({'分工会审核':'一级审核','二级党组织审核':'二级审核','校工会审核':'三级审核'}[task.displayName] || task.displayName) || '办理记录' }}
</h2>
<van-cell-group
v-if="task.ext && task.ext.isFirstTaskNode"
:title="fullScreen ? '' : task.displayName"
:title="fullScreen ? '' : ({'分工会审核':'一级审核','二级党组织审核':'二级审核','校工会审核':'三级审核'}[task.displayName] || task.displayName)"
:border="!fullScreen"
>
<van-cell title="申请用户">
@@ -183,7 +183,7 @@ const INFO = {
></dict-tag>
</van-cell>
</van-cell-group>
<van-cell-group v-else :title="fullScreen ? '' : task.displayName" :border="!fullScreen">
<van-cell-group v-else :title="fullScreen ? '' : ({'分工会审核':'一级审核','二级党组织审核':'二级审核','校工会审核':'三级审核'}[task.displayName] || task.displayName)" :border="!fullScreen">
<van-cell title="办理用户">
{{ task.taskFormData && task.taskFormData.userName || '--' }}{{ task.taskFormData && task.taskFormData.loginName ? '(' + task.taskFormData.loginName + ')' : '' }}
</van-cell>
@@ -9,7 +9,7 @@ layout("/layouts/platform_h5.html"){
</style>
<div id="app">
<div class="difficult-help-approval-page">
<van-nav-bar title="帮扶分工会审核" left-text="返回" left-arrow @click-left="historyBack" placeholder fixed></van-nav-bar>
<van-nav-bar title="一级审核" left-text="返回" left-arrow @click-left="historyBack" placeholder fixed></van-nav-bar>
<van-sticky offset-top="46px">
<div class="difficult-help-approval-sticky">
<van-search
@@ -61,7 +61,7 @@ layout("/layouts/platform_h5.html"){
<van-skeleton title :row="5" animated></van-skeleton>
</div>
</div>
<table-list api="/platform/difficultHelp/branchUnionApproval/pageData" :page_form.sync="pageForm" ref="tableListRef" title="userName"
<table-list api="/platform/difficultHelp/firstApproval/pageData" :page_form.sync="pageForm" ref="tableListRef" title="userName"
v-show="!skeletonLoading" :show_loading_overlay="false" @ready="onReady"
@loading-change="handleListLoadingChange">
<template #header="{index,row}">
@@ -318,7 +318,7 @@ layout("/layouts/platform_h5.html"){
</style>
<div id="app">
<div class="difficult-help-list-page">
<van-nav-bar title="帮扶申请记录" left-text="返回" left-arrow @click-left="historyBack" placeholder fixed></van-nav-bar>
<van-nav-bar title="我的申请" left-text="返回" left-arrow @click-left="historyBack" placeholder fixed></van-nav-bar>
<van-sticky offset-top="46px">
<div class="difficult-help-list-sticky">
<van-search
@@ -388,16 +388,16 @@ layout("/layouts/platform_h5.html"){
<van-icon name="eye-o"></van-icon>
<span>查看</span>
</div>
<div class="action-btn" v-if="row.taskKey === 'startTask' || !row.instanceId"
<div class="action-btn" v-if="row.createdBy === $store.state.user.id && (row.taskKey === 'startTask' || !row.instanceId)"
@click="onEdit(row)">
<van-icon name="edit"></van-icon>
<span>编辑</span>
</div>
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
<div class="action-btn delete" v-if="row.createdBy === $store.state.user.id && row.canRevoke" @click="onRevoke(row)">
<van-icon name="revoke"></van-icon>
<span>撤回</span>
</div>
<div class="action-btn delete" v-if="row.taskKey === 'startTask' || !row.instanceId"
<div class="action-btn delete" v-if="row.createdBy === $store.state.user.id && (row.taskKey === 'startTask' || !row.instanceId)"
@click="onDelete(row.id)">
<van-icon name="delete-o"></van-icon>
<span>删除</span>
@@ -9,7 +9,7 @@ layout("/layouts/platform_h5.html"){
</style>
<div id="app">
<div class="difficult-help-approval-page">
<van-nav-bar title="帮扶二级党组织审核" left-text="返回" left-arrow @click-left="historyBack" placeholder fixed></van-nav-bar>
<van-nav-bar title="二级审核" left-text="返回" left-arrow @click-left="historyBack" placeholder fixed></van-nav-bar>
<van-sticky offset-top="46px">
<div class="difficult-help-approval-sticky">
<van-search
@@ -61,7 +61,7 @@ layout("/layouts/platform_h5.html"){
<van-skeleton title :row="5" animated></van-skeleton>
</div>
</div>
<table-list api="/platform/difficultHelp/unionLeaderApproval/pageData" :page_form.sync="pageForm" ref="tableListRef" title="userName"
<table-list api="/platform/difficultHelp/secondApproval/pageData" :page_form.sync="pageForm" ref="tableListRef" title="userName"
v-show="!skeletonLoading" :show_loading_overlay="false" @ready="onReady"
@loading-change="handleListLoadingChange">
<template #header="{index,row}">
@@ -9,7 +9,7 @@ layout("/layouts/platform_h5.html"){
</style>
<div id="app">
<div class="difficult-help-approval-page">
<van-nav-bar title="帮扶校工会审核" left-text="返回" left-arrow @click-left="historyBack" placeholder fixed></van-nav-bar>
<van-nav-bar title="三级审核" left-text="返回" left-arrow @click-left="historyBack" placeholder fixed></van-nav-bar>
<van-sticky offset-top="46px">
<div class="difficult-help-approval-sticky">
<van-search
@@ -61,7 +61,7 @@ layout("/layouts/platform_h5.html"){
<van-skeleton title :row="5" animated></van-skeleton>
</div>
</div>
<table-list api="/platform/difficultHelp/schoolUnionApproval/pageData" :page_form.sync="pageForm" ref="tableListRef" title="userName"
<table-list api="/platform/difficultHelp/thirdApproval/pageData" :page_form.sync="pageForm" ref="tableListRef" title="userName"
v-show="!skeletonLoading" :show_loading_overlay="false" @ready="onReady"
@loading-change="handleListLoadingChange">
<template #header="{index,row}">
@@ -328,7 +328,7 @@ layout("/layouts/platform_h5.html"){
// 先保存级别和金额,再提交 processTaskId、审批意见及流程提交类型。
submitTaskAction() {
this.$set(this, "formLoading", true)
this.$axios.post("/platform/difficultHelp/schoolUnionApproval/save", {
this.$axios.post("/platform/difficultHelp/thirdApproval/save", {
data: JSON.stringify({...this.formData})
})
.then((saveRes) => {