依据:《需求规格说明书》第3.9节
设计日期:2026-06-09
设计模式:视图分页查询 + 轻量本地标签表
就业状态自动感知 (顶级菜单, sort_no: 2.00, icon: eye-outlined)
├── 企业就业状态感知 (子菜单, sort_no: 1.00)
└── 个人就业状态感知 (子菜单, sort_no: 2.00)
企业就业状态自动感知,监测企业在岗员工总数、用工工种分布、用工稳定性、薪酬待遇等数据。通过对这些数据的分析,准确掌握就业失业状况及其变化趋势。
所属区县,所属行业,企业名称,企业状态,自定义标签
企业名称,所属区县,企业规模,企业状态,所属行业,企业已发布岗位总数,当前在招岗位数量,备案在岗总人数,平均薪酬,自定义标签,最后通知时间
查看,发送消息,修改标签
CREATE TABLE ENTERPRISE_STATUS_LOCAL (
ID VARCHAR(36) NOT NULL,
ENTERPRISE_ID VARCHAR(36) NOT NULL COMMENT '企业ID(关联ENTERPRISE_INFO.ID)',
CUSTOM_TAGS VARCHAR(500) COMMENT '自定义标签',
LAST_NOTICE_TIME DATETIME COMMENT '最后通知时间',
CREATE_BY VARCHAR(50),
CREATE_TIME DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
UPDATE_BY VARCHAR(50),
UPDATE_TIME DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
SYS_ORG_CODE VARCHAR(50),
PRIMARY KEY (ID)
);
COMMENT ON TABLE ENTERPRISE_STATUS_LOCAL IS '企业就业状态本地信息表';
CREATE UNIQUE INDEX IDX_ESL_ENTERPRISE ON ENTERPRISE_STATUS_LOCAL(ENTERPRISE_ID);
从 ENTERPRISE_INFO + POST_INFO + ENTERPRISE_STATUS_LOCAL 聚合:
CREATE OR REPLACE VIEW V_ENTERPRISE_EMPLOYMENT_STATUS AS
SELECT ei.ID, ei.UNIFIED_CREDIT_CODE, ei.COMPANY_NAME,
ei.REG_ADDR_DISTRICT AS DISTRICT, ei.INDUSTRY,
ei.STAFF_SIZE AS ENTERPRISE_SCALE, ei.BUSINESS_STATUS AS ENTERPRISE_STATUS,
(SELECT COUNT(*) FROM POST_INFO pi WHERE pi.ENTERPRISE_ID = ei.ID) AS TOTAL_POST_COUNT,
(SELECT COUNT(*) FROM POST_INFO pi WHERE pi.ENTERPRISE_ID = ei.ID
AND (pi.POST_VALID_DATE IS NULL OR pi.POST_VALID_DATE >= SYSDATE)) AS ACTIVE_POST_COUNT,
(SELECT COUNT(*) FROM POST_INFO pi WHERE pi.ENTERPRISE_ID = ei.ID
AND pi.POST_VALID_DATE IS NOT NULL AND pi.POST_VALID_DATE < SYSDATE) AS EXPIRED_POST_COUNT,
NULL AS REGISTERED_EMPLOYEE_COUNT,
(SELECT AVG((pi2.SALARY_MIN + pi2.SALARY_MAX) / 2) FROM POST_INFO pi2
WHERE pi2.ENTERPRISE_ID = ei.ID
AND (pi2.POST_VALID_DATE IS NULL OR pi2.POST_VALID_DATE >= SYSDATE)
AND pi2.SALARY_MIN IS NOT NULL AND pi2.SALARY_MAX IS NOT NULL) AS AVERAGE_SALARY,
esl.CUSTOM_TAGS, esl.LAST_NOTICE_TIME
FROM ENTERPRISE_INFO ei
LEFT JOIN ENTERPRISE_STATUS_LOCAL esl ON ei.ID = esl.ENTERPRISE_ID;
| 文件 | 说明 |
|---|---|
| entity/EnterpriseStatusLocal.java | 本地信息实体 |
| entity/EnterpriseStatusPageVo.java | 列表页VO(视图字段) |
| mapper/EnterpriseStatusLocalMapper.java | Mapper(含queryPageList) |
| mapper/xml/EnterpriseStatusLocalMapper.xml | 视图查询SQL |
| service/IEnterpriseStatusService.java | 服务接口 |
| service/impl/EnterpriseStatusServiceImpl.java | 服务实现(含queryPageList) |
| controller/EnterpriseStatusController.java | REST控制器(列表+标签保存) |
| 文件 | 说明 |
|---|---|
| EnterpriseStatusList.vue | 列表页面(含查询表单) |
| EnterpriseStatus.data.ts | 表格列+搜索配置 |
| EnterpriseStatus.api.ts | API接口 |
个人就业状态自动感知,监控求职人员就业情况。
户口所属区域,姓名,学历,性别,年龄,求职状态,就业状态
证件号码,姓名,户口所属区县,性别,学历,年龄,求职状态,就业状态,就业登记累计次数,失业登记累计次数,社保情况,自定义标签,最后通知时间
查看,发送消息,修改标签
CREATE TABLE PERSONAL_STATUS_LOCAL (
ID VARCHAR(36) NOT NULL,
PERSONAL_ID VARCHAR(36) NOT NULL COMMENT '个人ID(关联PERSONAL_INFO.ID)',
CUSTOM_TAGS VARCHAR(500) COMMENT '自定义标签',
LAST_NOTICE_TIME DATETIME COMMENT '最后通知时间',
CREATE_BY VARCHAR(50),
CREATE_TIME DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
UPDATE_BY VARCHAR(50),
UPDATE_TIME DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
SYS_ORG_CODE VARCHAR(50),
PRIMARY KEY (ID)
);
COMMENT ON TABLE PERSONAL_STATUS_LOCAL IS '个人就业状态本地信息表';
CREATE UNIQUE INDEX IDX_PSL_PERSONAL ON PERSONAL_STATUS_LOCAL(PERSONAL_ID);
从 PERSONAL_INFO + EMPLOYMENT_RECORD + UNEMPLOYMENT_RECORD 聚合:
CREATE OR REPLACE VIEW V_PERSONAL_EMPLOYMENT_STATUS AS
SELECT pi.ID, pi.ID_NUMBER, pi.FULL_NAME,
pi.HOUSEHOLD_LOCATION AS HOUSEHOLD_DISTRICT, pi.GENDER, pi.EDUCATION,
FLOOR(MONTHS_BETWEEN(SYSDATE, pi.BIRTH_DATE) / 12) AS AGE,
pi.JOB_SEARCH_STATUS,
CASE WHEN er.PERSONAL_ID IS NOT NULL AND er.EMPLOY_COUNT > 0 THEN '就业中'
WHEN ur.PERSONAL_ID IS NOT NULL AND ur.UNEMPLOY_COUNT > 0 THEN '失业中'
ELSE '未就业'
END AS EMPLOYMENT_STATUS,
NVL(er.EMPLOY_COUNT, 0) AS EMPLOY_REG_COUNT,
NVL(ur.UNEMPLOY_COUNT, 0) AS UNEMPLOY_REG_COUNT,
NULL AS SOCIAL_INSURANCE_STATUS,
psl.CUSTOM_TAGS, psl.LAST_NOTICE_TIME
FROM PERSONAL_INFO pi
LEFT JOIN PERSONAL_STATUS_LOCAL psl ON pi.ID = psl.PERSONAL_ID
LEFT JOIN (SELECT PERSONAL_ID, COUNT(*) AS EMPLOY_COUNT FROM EMPLOYMENT_RECORD GROUP BY PERSONAL_ID) er ON pi.ID = er.PERSONAL_ID
LEFT JOIN (SELECT PERSONAL_ID, COUNT(*) AS UNEMPLOY_COUNT FROM UNEMPLOYMENT_RECORD GROUP BY PERSONAL_ID) ur ON pi.ID = ur.PERSONAL_ID;
| 文件 | 说明 |
|---|---|
| entity/PersonalStatusLocal.java | 本地信息实体 |
| entity/PersonalStatusPageVo.java | 列表页VO(视图字段) |
| mapper/PersonalStatusLocalMapper.java | Mapper(含queryPageList) |
| mapper/xml/PersonalStatusLocalMapper.xml | 视图查询SQL |
| service/IPersonalStatusService.java | 服务接口 |
| service/impl/PersonalStatusServiceImpl.java | 服务实现(含queryPageList) |
| controller/PersonalStatusController.java | REST控制器(列表+标签保存) |
| 文件 | 说明 |
|---|---|
| PersonalStatusList.vue | 列表页面(含查询表单) |
| PersonalStatus.data.ts | 表格列+搜索配置 |
| PersonalStatus.api.ts | API接口 |
EnterpriseStatusController.java / PersonalStatusController.java — javax.servlet → jakarta.servletEnterpriseStatusServiceImpl.java / PersonalStatusServiceImpl.java — javax.annotation.Resource → jakarta.annotation.Resourceorg.jeecg.common.util.ParamUtils 引用,改为手动 req.getParameter() 提取参数IEnterpriseStatusService.java / IPersonalStatusService.java — 补充 queryPageList 方法声明EnterpriseStatusController.java / PersonalStatusController.java — 新增 /exportXls 导出端点,支持 selections 勾选过滤EnterpriseStatusPageVo.java — 新增 registeredEmployeeCount(备案在岗总人数)、averageSalary(平均薪酬)、@Excel 注解PersonalStatusPageVo.java — 新增 socialInsuranceStatus(社保情况)、householdAreaName(户口区县名称)、@Excel 注解EnterpriseStatusLocalMapper.xml — 新增 customTags 查询条件PersonalStatusLocalMapper.xml — 新增 age 查询条件企业就业状态感知:
<a-select> 下拉(BusinessStatus 字典)enterpriseStatus(BusinessStatus)、enterpriseScale(enterprise_scale)、district(XZQH)exportConfigEnterpriseStatusModal.vue + EnterpriseStatusDetail.vue 详情弹窗(j-modal 模式,与重点关注人员一致)已发布岗位总数 → 企业已发布岗位总数个人就业状态感知:
<a-select> 下拉(Gender/Education/JobSeekerStatus/employment_status 字典)householdAreaName 去"广东省湛江市"前缀显示区名exportConfigPersonalStatusModal.vue + PersonalStatusDetail.vue 详情弹窗ENTERPRISE_STATUS_LOCAL、PERSONAL_STATUS_LOCALV_ENTERPRISE_EMPLOYMENT_STATUS、V_PERSONAL_EMPLOYMENT_STATUSemployment_status(就业状态)、enterprise_scale(企业规模)就业状态自动感知(178060400000000) → 企业就业状态感知(178060400000001) → 个人就业状态感知(178060400000002),含 admin 授权