Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jy_jxjy
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Administrator
jy_jxjy
Commits
f0ca44ad
提交
f0ca44ad
authored
11月 24, 2025
作者:
wangmenglong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加统计
上级
2b6b69dd
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
418 行增加
和
1 行删除
+418
-1
Person.java
jxjy-lib/src/main/java/data/system/Person.java
+18
-0
BiController.java
...rc/main/java/com/jxjy/system/controller/BiController.java
+87
-0
OrgMapper.java
...ystem/src/main/java/com/jxjy/system/mapper/OrgMapper.java
+10
-0
PersonMapper.java
...em/src/main/java/com/jxjy/system/mapper/PersonMapper.java
+10
-0
SignRecordMapper.java
...rc/main/java/com/jxjy/system/mapper/SignRecordMapper.java
+70
-0
BiService.java
...stem/src/main/java/com/jxjy/system/service/BiService.java
+29
-0
OrgService.java
...tem/src/main/java/com/jxjy/system/service/OrgService.java
+2
-0
BiServiceImpl.java
...main/java/com/jxjy/system/service/impl/BiServiceImpl.java
+171
-0
OrgServiceImpl.java
...ain/java/com/jxjy/system/service/impl/OrgServiceImpl.java
+19
-0
SignRecordServiceImpl.java
...a/com/jxjy/system/service/impl/SignRecordServiceImpl.java
+2
-1
没有找到文件。
jxjy-lib/src/main/java/data/system/Person.java
浏览文件 @
f0ca44ad
...
@@ -97,4 +97,22 @@ public class Person extends NameObj {
...
@@ -97,4 +97,22 @@ public class Person extends NameObj {
**/
**/
@TableField
(
"header_url"
)
@TableField
(
"header_url"
)
private
String
headerUrl
;
private
String
headerUrl
;
/**
* 省
**/
@TableField
(
"province"
)
private
String
province
;
/**
* 城市
**/
@TableField
(
"city"
)
private
String
city
;
/**
* 区
**/
@TableField
(
"region"
)
private
String
region
;
}
}
jxjy-system/src/main/java/com/jxjy/system/controller/BiController.java
0 → 100644
浏览文件 @
f0ca44ad
package
com
.
jxjy
.
system
.
controller
;
import
base.controller.BaseController
;
import
base.result.BaseResult
;
import
com.jxjy.system.service.BiService
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
/**
* @author wangmenglong
* @description: 统计管理
* @date 2023/12/11 11:35
*/
@RestController
@RequestMapping
(
"/bi"
)
public
class
BiController
extends
BaseController
{
@Resource
BiService
biService
;
/**
* @description: 左上角行政区员工统计
**/
@GetMapping
(
"/biCity"
)
public
BaseResult
biCity
(){
return
BaseResult
.
success
(
biService
.
biCity
());
}
/**
* @description: 中间地图的人员籍贯统计
**/
@GetMapping
(
"/biPersonProvince"
)
public
BaseResult
biPersonProvince
(){
return
BaseResult
.
success
(
biService
.
biPersonProvince
());
}
/**
* @description: 中间地图的企业籍贯统计
**/
@GetMapping
(
"/biOrgProvince"
)
public
BaseResult
biOrgProvince
(){
return
BaseResult
.
success
(
biService
.
biOrgProvince
());
}
/**
* @description: 右边的达成率
**/
@GetMapping
(
"/biRecruit"
)
public
BaseResult
biRecruit
(){
return
BaseResult
.
success
(
biService
.
biRecruit
());
}
/**
* @description: 入职统计
**/
@GetMapping
(
"/biRecruitEntry"
)
public
BaseResult
biRecruitEntry
(){
return
BaseResult
.
success
(
biService
.
biRecruitEntry
());
}
/**
* @description: 报名统计
**/
@GetMapping
(
"/biRecruitReport"
)
public
BaseResult
biRecruitReport
(){
return
BaseResult
.
success
(
biService
.
biRecruitReport
());
}
/**
* @description: 报名统计按照当前月份
**/
@GetMapping
(
"/biRecruitLineByMonth"
)
public
BaseResult
biRecruitLineByMonth
(){
return
BaseResult
.
success
(
biService
.
biRecruitLineByMonth
());
}
/**
* @description: 报名统计按照当前年份
**/
@GetMapping
(
"/biRecruitLineByYear"
)
public
BaseResult
biRecruitLineByYear
(){
return
BaseResult
.
success
(
biService
.
biRecruitLineByYear
());
}
}
jxjy-system/src/main/java/com/jxjy/system/mapper/OrgMapper.java
浏览文件 @
f0ca44ad
...
@@ -3,10 +3,20 @@ package com.jxjy.system.mapper;
...
@@ -3,10 +3,20 @@ package com.jxjy.system.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
data.system.Org
;
import
data.system.Org
;
import
org.apache.ibatis.annotations.Select
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* @Author: wml
* @Author: wml
* @Date 2025/5/9 10:21
* @Date 2025/5/9 10:21
*/
*/
public
interface
OrgMapper
extends
BaseMapper
<
Org
>
{
public
interface
OrgMapper
extends
BaseMapper
<
Org
>
{
@Select
(
"<script>"
+
"SELECT count(1) AS amount,r.province as province FROM tb_org AS r WHERE r.del = 0 GROUP BY r.province "
+
"</script>"
)
List
<
Map
<
String
,
Object
>>
biOrgAmount
();
}
}
jxjy-system/src/main/java/com/jxjy/system/mapper/PersonMapper.java
浏览文件 @
f0ca44ad
...
@@ -3,10 +3,20 @@ package com.jxjy.system.mapper;
...
@@ -3,10 +3,20 @@ package com.jxjy.system.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
data.system.Person
;
import
data.system.Person
;
import
org.apache.ibatis.annotations.Select
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* @Author: wml
* @Author: wml
* @Date 2025/5/9 10:21
* @Date 2025/5/9 10:21
*/
*/
public
interface
PersonMapper
extends
BaseMapper
<
Person
>
{
public
interface
PersonMapper
extends
BaseMapper
<
Person
>
{
@Select
(
"<script>"
+
"SELECT count( 1 ) AS amount,r.province as province FROM tb_person AS r WHERE r.del = 0 GROUP BY r.province "
+
"</script>"
)
List
<
Map
<
String
,
Object
>>
biPersonAmount
();
}
}
jxjy-system/src/main/java/com/jxjy/system/mapper/SignRecordMapper.java
浏览文件 @
f0ca44ad
...
@@ -3,10 +3,80 @@ package com.jxjy.system.mapper;
...
@@ -3,10 +3,80 @@ package com.jxjy.system.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
data.system.SignRecord
;
import
data.system.SignRecord
;
import
org.apache.ibatis.annotations.Select
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* @Author: wml
* @Author: wml
* @Date 2025/5/9 10:21
* @Date 2025/5/9 10:21
*/
*/
public
interface
SignRecordMapper
extends
BaseMapper
<
SignRecord
>
{
public
interface
SignRecordMapper
extends
BaseMapper
<
SignRecord
>
{
@Select
(
"<script>"
+
"SELECT count( 1 ) AS amount,r.city as city "
+
"FROM tb_recruit AS r "
+
"WHERE r.del = 0 "
+
"AND r.id IN ( SELECT sr.recruit_id FROM tb_sign_record AS sr WHERE sr.del = 0 AND sr.state = \"ON_BOARDING\" ) "
+
"GROUP BY r.city"
+
"</script>"
)
List
<
Map
<
String
,
Object
>>
biCity
();
@Select
(
"<script>"
+
"SELECT r.NAME as recruitName , r.times as amount"
+
",(select COUNT(1) FROM tb_sign_record as sr WHERE sr.recruit_id = r.id AND sr.del = 0 AND sr.state = \"ON_BOARDING\") as entryAmount "
+
//",(select COUNT(1) FROM tb_sign_record as sr WHERE sr.recruit_id = r.id AND sr.del = 0 AND sr.state != \"ON_BOARDING\") as reportAmount " +
"FROM tb_recruit AS r WHERE r.del = 0 AND `status` = \"up\" "
+
"</script>"
)
List
<
Map
<
String
,
Object
>>
biRecruit
();
@Select
(
"<script>"
+
"SELECT r.name AS recruit_name, "
+
"DATE_FORMAT(STR_TO_DATE(sr.update_time, '%Y-%m-%d %H:%i:%s'), '%Y-%m-%d') AS entry_date, COUNT(*) AS entry_count "
+
"FROM tb_sign_record sr INNER JOIN tb_recruit r ON sr.recruit_id = r.id WHERE sr.state = 'ON_BOARDING' "
+
"GROUP BY recruit_name, entry_date ORDER BY entry_date ASC, recruit_name ASC;"
+
"</script>"
)
List
<
Map
<
String
,
Object
>>
biRecruitEntry
();
@Select
(
"<script>"
+
"SELECT r.name AS recruit_name, "
+
"DATE_FORMAT(STR_TO_DATE(sr.create_time, '%Y-%m-%d %H:%i:%s'), '%Y-%m-%d') AS report_date, COUNT(*) AS report_count "
+
"FROM tb_sign_record sr INNER JOIN tb_recruit r ON sr.recruit_id = r.id WHERE sr.state != 'ON_BOARDING' "
+
"GROUP BY recruit_name, report_date ORDER BY report_date ASC, recruit_name ASC;"
+
"</script>"
)
List
<
Map
<
String
,
Object
>>
biRecruitReport
();
@Select
(
"<script>"
+
"SELECT LEFT(sr.update_time, 10) AS day, COUNT(*) AS amount "
+
"FROM tb_sign_record sr WHERE sr.state = 'ON_BOARDING' AND sr.update_time IS NOT NULL "
+
"AND sr.update_time LIKE CONCAT(DATE_FORMAT(NOW(), '%Y-%m'), '%') "
+
"GROUP BY day ORDER BY day ASC;"
+
"</script>"
)
List
<
Map
<
String
,
Object
>>
biEntryByMonth
();
@Select
(
"<script>"
+
"SELECT LEFT(sr.create_time, 10) AS day, COUNT(*) AS amount "
+
"FROM tb_sign_record sr WHERE sr.create_time IS NOT NULL "
+
"AND sr.create_time LIKE CONCAT(DATE_FORMAT(NOW(), '%Y-%m'), '%') "
+
"GROUP BY day ORDER BY day ASC;"
+
"</script>"
)
List
<
Map
<
String
,
Object
>>
biReportByMonth
();
@Select
(
"<script>"
+
"SELECT LEFT(sr.update_time, 7) AS day, COUNT(*) AS amount "
+
"FROM tb_sign_record sr WHERE sr.state = 'ON_BOARDING' AND sr.update_time IS NOT NULL "
+
"AND sr.update_time LIKE CONCAT(DATE_FORMAT(NOW(), '%Y'), '%') "
+
"GROUP BY day ORDER BY day ASC;"
+
"</script>"
)
List
<
Map
<
String
,
Object
>>
biEntryByYear
();
@Select
(
"<script>"
+
"SELECT LEFT(sr.create_time, 7) AS day, COUNT(*) AS amount "
+
"FROM tb_sign_record sr WHERE sr.create_time IS NOT NULL "
+
"AND sr.create_time LIKE CONCAT(DATE_FORMAT(NOW(), '%Y'), '%') "
+
"GROUP BY day ORDER BY day ASC;"
+
"</script>"
)
List
<
Map
<
String
,
Object
>>
biReportByYear
();
}
}
jxjy-system/src/main/java/com/jxjy/system/service/BiService.java
0 → 100644
浏览文件 @
f0ca44ad
package
com
.
jxjy
.
system
.
service
;
import
java.util.List
;
import
java.util.Map
;
/**
*
* @return: 企业管理
* @Author: wml
* @Date 2025/5/9 10:20
*/
public
interface
BiService
{
List
<
Map
<
String
,
Object
>>
biCity
();
List
<
Map
<
String
,
Object
>>
biPersonProvince
();
List
<
Map
<
String
,
Object
>>
biOrgProvince
();
List
<
Map
<
String
,
Object
>>
biRecruit
();
List
<
Map
<
String
,
Object
>>
biRecruitEntry
();
List
<
Map
<
String
,
Object
>>
biRecruitReport
();
List
<
Map
<
String
,
Object
>>
biRecruitLineByMonth
();
List
<
Map
<
String
,
Object
>>
biRecruitLineByYear
();
}
jxjy-system/src/main/java/com/jxjy/system/service/OrgService.java
浏览文件 @
f0ca44ad
...
@@ -16,6 +16,8 @@ public interface OrgService {
...
@@ -16,6 +16,8 @@ public interface OrgService {
List
<
Org
>
list
(
int
pageNum
,
int
pageSize
,
Org
org
);
List
<
Org
>
list
(
int
pageNum
,
int
pageSize
,
Org
org
);
List
<
Org
>
listAllByProvince
(
String
province
);
boolean
create
(
Org
org
);
boolean
create
(
Org
org
);
boolean
update
(
Org
org
);
boolean
update
(
Org
org
);
...
...
jxjy-system/src/main/java/com/jxjy/system/service/impl/BiServiceImpl.java
0 → 100644
浏览文件 @
f0ca44ad
package
com
.
jxjy
.
system
.
service
.
impl
;
import
com.jxjy.system.mapper.OrgMapper
;
import
com.jxjy.system.mapper.PersonMapper
;
import
com.jxjy.system.mapper.SignRecordMapper
;
import
com.jxjy.system.service.BiService
;
import
com.jxjy.system.service.OrgService
;
import
data.system.Org
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.time.LocalDate
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
*
* @return: 统计管理管理
* @Author: wml
* @Date 2025/5/9 10:22
*/
@Service
@Transactional
public
class
BiServiceImpl
implements
BiService
{
@Resource
SignRecordMapper
signRecordMapper
;
@Resource
PersonMapper
personMapper
;
@Resource
OrgMapper
orgMapper
;
@Resource
OrgService
orgService
;
@Override
public
List
<
Map
<
String
,
Object
>>
biCity
()
{
return
signRecordMapper
.
biCity
();
}
@Override
public
List
<
Map
<
String
,
Object
>>
biPersonProvince
()
{
return
personMapper
.
biPersonAmount
();
}
@Override
public
List
<
Map
<
String
,
Object
>>
biOrgProvince
()
{
List
<
Map
<
String
,
Object
>>
list
=
orgMapper
.
biOrgAmount
();
for
(
Map
<
String
,
Object
>
map
:
list
)
{
String
province
=
map
.
get
(
"province"
).
toString
();
List
<
Org
>
orgList
=
orgService
.
listAllByProvince
(
province
);
map
.
put
(
"orgList"
,
orgList
.
stream
().
map
(
Org:
:
getName
).
collect
(
Collectors
.
toList
()));
}
return
list
;
}
@Override
public
List
<
Map
<
String
,
Object
>>
biRecruit
()
{
return
signRecordMapper
.
biRecruit
();
}
@Override
public
List
<
Map
<
String
,
Object
>>
biRecruitEntry
()
{
return
signRecordMapper
.
biRecruitEntry
();
}
@Override
public
List
<
Map
<
String
,
Object
>>
biRecruitReport
()
{
return
signRecordMapper
.
biRecruitReport
();
}
@Override
public
List
<
Map
<
String
,
Object
>>
biRecruitLineByMonth
()
{
List
<
Map
<
String
,
Object
>>
biReportByMonthList
=
signRecordMapper
.
biReportByMonth
();
List
<
Map
<
String
,
Object
>>
biEntryByMonthList
=
signRecordMapper
.
biEntryByMonth
();
int
daysInCurrentMonth
=
LocalDate
.
now
().
lengthOfMonth
();
//循环一下月份,输出一个列表
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
for
(
int
i
=
1
;
i
<=
daysInCurrentMonth
;
i
++)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"reportAmount"
,
"0"
);
map
.
put
(
"entryAmount"
,
"0"
);
//获取当前年月字符串,按照yyyy-MM表示
String
currentYear
=
LocalDate
.
now
().
getYear
()+
""
;
String
currentMonth
=
LocalDate
.
now
().
getMonthValue
()+
""
;
if
(
currentMonth
.
length
()==
1
){
currentMonth
=
"0"
+
currentMonth
;
}
if
(
i
<=
9
){
map
.
put
(
"day"
,
currentYear
+
"-"
+
currentMonth
+
"-0"
+
i
);
}
else
{
map
.
put
(
"day"
,
currentYear
+
"-"
+
currentMonth
+
"-"
+
i
);
}
//循环biReportByMonthList
for
(
Map
<
String
,
Object
>
biReportByMonth
:
biReportByMonthList
)
{
if
(
biReportByMonth
.
get
(
"day"
).
toString
().
equals
(
map
.
get
(
"day"
)))
{
map
.
put
(
"reportAmount"
,
biReportByMonth
.
get
(
"amount"
));
}
}
//循环biReportByMonthList
for
(
Map
<
String
,
Object
>
biEntryByMonth
:
biEntryByMonthList
)
{
if
(
biEntryByMonth
.
get
(
"day"
).
toString
().
equals
(
map
.
get
(
"day"
)))
{
map
.
put
(
"entryAmount"
,
biEntryByMonth
.
get
(
"amount"
));
}
}
list
.
add
(
map
);
}
return
list
;
}
@Override
public
List
<
Map
<
String
,
Object
>>
biRecruitLineByYear
()
{
int
currentYear
=
LocalDate
.
now
().
getYear
();
List
<
Map
<
String
,
Object
>>
biReportByMonthList
=
signRecordMapper
.
biReportByYear
();
List
<
Map
<
String
,
Object
>>
biEntryByMonthList
=
signRecordMapper
.
biEntryByYear
();
//循环一下当年的月份,输出一个列表
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
for
(
int
i
=
1
;
i
<=
12
;
i
++)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"reportAmount"
,
"0"
);
map
.
put
(
"entryAmount"
,
"0"
);
if
(
i
<=
9
){
map
.
put
(
"day"
,
currentYear
+
"-0"
+
i
);
}
else
{
map
.
put
(
"day"
,
currentYear
+
"-"
+
i
);
}
//循环biReportByMonthList
for
(
Map
<
String
,
Object
>
biReportByMonth
:
biReportByMonthList
)
{
if
(
biReportByMonth
.
get
(
"day"
).
toString
().
equals
(
map
.
get
(
"day"
)))
{
map
.
put
(
"reportAmount"
,
biReportByMonth
.
get
(
"amount"
));
}
}
//循环biReportByMonthList
for
(
Map
<
String
,
Object
>
biEntryByMonth
:
biEntryByMonthList
)
{
if
(
biEntryByMonth
.
get
(
"day"
).
toString
().
equals
(
map
.
get
(
"day"
)))
{
map
.
put
(
"entryAmount"
,
biEntryByMonth
.
get
(
"amount"
));
}
}
list
.
add
(
map
);
}
return
list
;
}
}
jxjy-system/src/main/java/com/jxjy/system/service/impl/OrgServiceImpl.java
浏览文件 @
f0ca44ad
...
@@ -57,6 +57,25 @@ public class OrgServiceImpl extends ServiceImpl<OrgMapper, Org> implements OrgSe
...
@@ -57,6 +57,25 @@ public class OrgServiceImpl extends ServiceImpl<OrgMapper, Org> implements OrgSe
return
orgList
;
return
orgList
;
}
}
/**
* @description: 根据省获取企业
* @author: wangmenglong
* @date; 2023/12/11 16:46
* @param: [pageNum, pageSize]
* @return: java.util.List<data.org.Org>
**/
@Override
public
List
<
Org
>
listAllByProvince
(
String
province
)
{
//创建查询条件
LambdaQueryWrapper
<
Org
>
qw
=
new
LambdaQueryWrapper
<>();
qw
.
like
(
StringUtils
.
isNotBlank
(
province
),
Org:
:
getProvince
,
province
)
.
eq
(
Org:
:
getDel
,
false
)
.
orderByDesc
(
Org:
:
getCreateTime
);
List
<
Org
>
orgList
=
super
.
list
(
qw
);
//返回查询结果
return
orgList
;
}
/**
/**
* @description: 新增企业
* @description: 新增企业
...
...
jxjy-system/src/main/java/com/jxjy/system/service/impl/SignRecordServiceImpl.java
浏览文件 @
f0ca44ad
...
@@ -94,7 +94,8 @@ public class SignRecordServiceImpl extends ServiceImpl<SignRecordMapper, SignRec
...
@@ -94,7 +94,8 @@ public class SignRecordServiceImpl extends ServiceImpl<SignRecordMapper, SignRec
LambdaUpdateWrapper
<
SignRecord
>
qw
=
new
LambdaUpdateWrapper
<>();
LambdaUpdateWrapper
<
SignRecord
>
qw
=
new
LambdaUpdateWrapper
<>();
qw
.
eq
(
SignRecord:
:
getDel
,
false
)
qw
.
eq
(
SignRecord:
:
getDel
,
false
)
.
eq
(
SignRecord:
:
getId
,
recordId
)
.
eq
(
SignRecord:
:
getId
,
recordId
)
.
set
(
SignRecord:
:
getState
,
state
);
.
set
(
SignRecord:
:
getState
,
state
)
.
set
(
SignRecord:
:
getUpdateTime
,
DateUtil
.
now
());
return
super
.
update
(
qw
);
return
super
.
update
(
qw
);
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论