Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Q
qianhe-ydsj
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
jiangyun
qianhe-ydsj
Commits
c0537059
Commit
c0537059
authored
Aug 22, 2025
by
wangqi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
首页统计
parent
c4c6534a
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
851 additions
and
218 deletions
+851
-218
qianhe-system/src/main/resources/mapper/system/SysDeptMapper.xml
+22
-12
qianhe-ydsj/src/main/java/com/qianhe/controller/AmainController.java
+397
-200
qianhe-ydsj/src/main/java/com/qianhe/domain/Amain.java
+1
-0
qianhe-ydsj/src/main/java/com/qianhe/domain/AmainXq.java
+63
-0
qianhe-ydsj/src/main/java/com/qianhe/service/IAmainService.java
+22
-0
qianhe-ydsj/src/main/java/com/qianhe/service/impl/AmainServiceImpl.java
+346
-6
No files found.
qianhe-system/src/main/resources/mapper/system/SysDeptMapper.xml
View file @
c0537059
...
@@ -180,41 +180,51 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
...
@@ -180,41 +180,51 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select
id=
"selectDeptList_ejdw"
parameterType=
"SysDept"
resultMap=
"SysDeptResult"
>
<select
id=
"selectDeptList_ejdw"
parameterType=
"SysDept"
resultMap=
"SysDeptResult"
>
select * from sys_dept d
select d.dept_id, d.parent_id,
d.ancestors,
CONCAT(p.dept_name,'/',d.dept_name) dept_name,
d.order_num, d.leader, d.phone,
d.email, d.status, d.del_flag, d.create_by, d.create_time,d.dwjb, d.dept_lx, d.dept_dfl, d.dept_ywfl from sys_dept d
LEFT JOIN sys_dept p on d.parent_id = p.dept_id
where d.del_flag = '0'
where d.del_flag = '0'
and d.dept_id !='972'
and d.dept_id !='972'
and dwjb = '3'
and d
.d
wjb = '3'
<if
test=
"deptId != null and deptId != 0"
>
<if
test=
"deptId != null and deptId != 0"
>
AND dept_id = #{deptId}
AND d
.d
ept_id = #{deptId}
</if>
</if>
<if
test=
"parentId != null and parentId != 0"
>
<if
test=
"parentId != null and parentId != 0"
>
AND parent_id = #{parentId}
AND
d.
parent_id = #{parentId}
</if>
</if>
<if
test=
"deptName != null and deptName != ''"
>
<if
test=
"deptName != null and deptName != ''"
>
AND dept_name like concat('%', #{deptName}, '%')
AND d
.d
ept_name like concat('%', #{deptName}, '%')
</if>
</if>
<if
test=
"status != null and status != ''"
>
<if
test=
"status != null and status != ''"
>
AND status = #{status}
AND
d.
status = #{status}
</if>
</if>
order by d.parent_id, d.order_num
order by d.parent_id, d.order_num
</select>
</select>
<select
id=
"selectDeptList_sjdw"
parameterType=
"SysDept"
resultMap=
"SysDeptResult"
>
<select
id=
"selectDeptList_sjdw"
parameterType=
"SysDept"
resultMap=
"SysDeptResult"
>
select * from sys_dept d
select d.dept_id, d.parent_id,
d.ancestors,
CONCAT(p.dept_name,'/',d.dept_name) dept_name,
d.order_num, d.leader, d.phone,
d.email, d.status, d.del_flag, d.create_by, d.create_time,d.dwjb, d.dept_lx, d.dept_dfl, d.dept_ywfl from sys_dept d
LEFT JOIN sys_dept p on d.parent_id = p.dept_id
where d.del_flag = '0'
where d.del_flag = '0'
and d.parent_id !='972'
and d.parent_id !='972'
and dwjb = '4'
and d
.d
wjb = '4'
<if
test=
"deptId != null and deptId != 0"
>
<if
test=
"deptId != null and deptId != 0"
>
AND dept_id = #{deptId}
AND d
.d
ept_id = #{deptId}
</if>
</if>
<if
test=
"parentId != null and parentId != 0"
>
<if
test=
"parentId != null and parentId != 0"
>
AND parent_id = #{parentId}
AND
d.
parent_id = #{parentId}
</if>
</if>
<if
test=
"deptName != null and deptName != ''"
>
<if
test=
"deptName != null and deptName != ''"
>
AND dept_name like concat('%', #{deptName}, '%')
AND d
.d
ept_name like concat('%', #{deptName}, '%')
</if>
</if>
<if
test=
"status != null and status != ''"
>
<if
test=
"status != null and status != ''"
>
AND status = #{status}
AND
d.
status = #{status}
</if>
</if>
order by d.parent_id, d.order_num
order by d.parent_id, d.order_num
</select>
</select>
...
...
qianhe-ydsj/src/main/java/com/qianhe/controller/AmainController.java
View file @
c0537059
...
@@ -14,6 +14,7 @@ import com.qianhe.domain.*;
...
@@ -14,6 +14,7 @@ import com.qianhe.domain.*;
import
com.qianhe.domain.Vo.SjLhscVo
;
import
com.qianhe.domain.Vo.SjLhscVo
;
import
com.qianhe.service.*
;
import
com.qianhe.service.*
;
import
com.qianhe.system.service.ISysDeptService
;
import
com.qianhe.system.service.ISysDeptService
;
import
lombok.Data
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -61,30 +62,74 @@ public class AmainController extends BaseController
...
@@ -61,30 +62,74 @@ public class AmainController extends BaseController
return
AjaxResult
.
success
(
sjBzxxService
.
selectBzxxTj
(
sjBzxx
));
return
AjaxResult
.
success
(
sjBzxxService
.
selectBzxxTj
(
sjBzxx
));
}
}
/**
* 例会 start------------------------------------------------------------------------------------------------------------------------------------
*/
@Data
class
CommonLhData
{
private
List
<
SysDept
>
depts
;
private
List
<
SjLhsc
>
lhList
;
private
String
title
;
}
/**
/**
* 查询例会查询情况, 看二级例会情况,看三级例会情况
* 查询例会查询情况, 看二级例会情况,看三级例会情况
*/
*/
@GetMapping
(
"/lhQk"
)
@GetMapping
(
"/lhQk"
)
public
AjaxResult
lhQk
(
Amain
vo
)
public
AjaxResult
lhQk
(
Amain
vo
)
{
{
// 调用公共方法获取数据
CommonLhData
commonData
=
getCommonData_Lh
(
vo
);
// 处理当前接口的业务逻辑
Map
<
String
,
Map
<
String
,
Integer
>>
lhQkMap
=
amainServiceImpl
.
statisticsMeetings
(
commonData
.
getDepts
(),
commonData
.
getLhList
());
Map
map
=
new
HashMap
();
map
.
put
(
"title"
,
commonData
.
getTitle
());
map
.
put
(
"meetingStats"
,
lhQkMap
);
return
AjaxResult
.
success
(
map
);
}
/**
* 查询例会查询情况, 看二级例会情况,看三级例会情况
*/
@GetMapping
(
"/lhXq"
)
public
TableDataInfo
lhXq
(
Amain
vo
)
{
// 调用公共方法获取数据
CommonLhData
commonData
=
getCommonData_Lh
(
vo
);
// 处理当前接口的业务逻辑
List
<
AmainXq
>
lhXqList
=
amainServiceImpl
.
getDeptQuarterlyStatus
(
commonData
.
getDepts
(),
commonData
.
getLhList
());
return
getDataTable
(
lhXqList
);
}
/**
* 抽取公共逻辑:获取单位列表、例会列表和标题
*/
private
CommonLhData
getCommonData_Lh
(
Amain
vo
)
{
String
nd
=
vo
.
getNd
();
String
nd
=
vo
.
getNd
();
String
startJd
=
nd
+
"-01"
;
String
startJd
=
nd
+
"-01"
;
String
endJd
=
nd
+
"-12"
;
String
endJd
=
nd
+
"-12"
;
// 获取角色和部门ID(公共参数)
List
<
SysRole
>
rolelist
=
SecurityUtils
.
getLoginUser
().
getUser
().
getRoles
();
List
<
SysRole
>
rolelist
=
SecurityUtils
.
getLoginUser
().
getUser
().
getRoles
();
// A看所有 B直属单位以下 C基层单位自己 D空白
String
sylx
=
getHighestLevel
(
rolelist
);
// A/B/C/D角色判断
String
sylx
=
getHighestLevel
(
rolelist
);
Long
deptId
=
SecurityUtils
.
getDeptId
();
Long
deptId
=
SecurityUtils
.
getDeptId
();
List
<
SysDept
>
depts
=
null
;
// 单位信息
// 初始化返回数据
List
<
SjLhsc
>
lhList
=
null
;
// 例会信息
CommonLhData
data
=
new
CommonLhData
();
String
title
=
"单位例会提交情况"
;
List
<
SysDept
>
depts
=
null
;
if
(
"A"
.
equals
(
sylx
)){
List
<
SjLhsc
>
lhList
=
null
;
String
title
=
"单位例会提交情况"
;
// 默认标题
// 根据角色类型处理(公共逻辑)
if
(
"A"
.
equals
(
sylx
))
{
title
=
"直属单位例会提交情况"
;
title
=
"直属单位例会提交情况"
;
// 单位信息
// 单位信息
SysDept
dept
=
new
SysDept
();
SysDept
dept
=
new
SysDept
();
depts
=
deptService
.
selectDeptList_ejdw
(
dept
);
depts
=
deptService
.
selectDeptList_ejdw
(
dept
);
// 例会信息
// 例会信息
SjLhsc
sjLhsc
=
new
SjLhsc
();
SjLhsc
sjLhsc
=
new
SjLhsc
();
sjLhsc
.
setStartJd
(
startJd
);
sjLhsc
.
setStartJd
(
startJd
);
...
@@ -92,42 +137,58 @@ public class AmainController extends BaseController
...
@@ -92,42 +137,58 @@ public class AmainController extends BaseController
sjLhsc
.
setZt
(
"已提交"
);
sjLhsc
.
setZt
(
"已提交"
);
sjLhsc
.
setDwjb
(
"3"
);
sjLhsc
.
setDwjb
(
"3"
);
lhList
=
sjLhscService
.
selectSjLhscList_main
(
sjLhsc
);
lhList
=
sjLhscService
.
selectSjLhscList_main
(
sjLhsc
);
}
else
if
(
"B"
.
equals
(
sylx
)){
}
else
if
(
"B"
.
equals
(
sylx
))
{
title
=
"基层单位例会提交情况"
;
title
=
"基层单位例会提交情况"
;
// 单位信息
// 单位信息
SysDept
dept
=
new
SysDept
();
SysDept
dept
=
new
SysDept
();
dept
.
setParentId
(
deptId
);
dept
.
setParentId
(
deptId
);
depts
=
deptService
.
selectDeptList_sjdw
(
dept
);
depts
=
deptService
.
selectDeptList_sjdw
(
dept
);
// 例会信息
// 例会信息
SjLhsc
sjLhsc
=
new
SjLhsc
();
SjLhsc
sjLhsc
=
new
SjLhsc
();
sjLhsc
.
setStartJd
(
startJd
);
sjLhsc
.
setStartJd
(
startJd
);
sjLhsc
.
setEndJd
(
endJd
);
sjLhsc
.
setEndJd
(
endJd
);
sjLhsc
.
setZt
(
"已提交"
);
sjLhsc
.
setZt
(
"已提交"
);
sjLhsc
.
setDwjb
(
"4"
);
sjLhsc
.
setDwjb
(
"4"
);
sjLhsc
.
setParentId
(
deptId
+
""
);
sjLhsc
.
setParentId
(
deptId
+
""
);
lhList
=
sjLhscService
.
selectSjLhscList_main
(
sjLhsc
);
lhList
=
sjLhscService
.
selectSjLhscList_main
(
sjLhsc
);
}
else
if
(
"C"
.
equals
(
sylx
)){
}
else
if
(
"C"
.
equals
(
sylx
))
{
title
=
"单位例会提交情况"
;
title
=
"单位例会提交情况"
;
// 单位信息
SysDept
dept
=
new
SysDept
();
SysDept
dept
=
new
SysDept
();
dept
.
setDeptId
(
deptId
);
dept
.
setDeptId
(
deptId
);
depts
=
deptService
.
selectDeptList_sjdw
(
dept
);
depts
=
deptService
.
selectDeptList_sjdw
(
dept
);
// 例会信息
// 例会信息
SjLhsc
sjLhsc
=
new
SjLhsc
();
SjLhsc
sjLhsc
=
new
SjLhsc
();
sjLhsc
.
setStartJd
(
startJd
);
sjLhsc
.
setStartJd
(
startJd
);
sjLhsc
.
setEndJd
(
endJd
);
sjLhsc
.
setEndJd
(
endJd
);
sjLhsc
.
setZt
(
"已提交"
);
sjLhsc
.
setZt
(
"已提交"
);
sjLhsc
.
setDwjb
(
"4"
);
sjLhsc
.
setDwjb
(
"4"
);
sjLhsc
.
setDeptId
(
deptId
+
""
);
sjLhsc
.
setDeptId
(
deptId
+
""
);
lhList
=
sjLhscService
.
selectSjLhscList_main
(
sjLhsc
);
lhList
=
sjLhscService
.
selectSjLhscList_main
(
sjLhsc
);
}
}
Map
<
String
,
Map
<
String
,
Integer
>>
lhQkMap
=
amainServiceImpl
.
statisticsMeetings
(
depts
,
lhList
);
Map
map
=
new
HashMap
();
// 封装公共数据并返回
map
.
put
(
"title"
,
title
);
data
.
setDepts
(
depts
);
map
.
put
(
"meetingStats"
,
lhQkMap
);
data
.
setLhList
(
lhList
);
return
AjaxResult
.
success
(
map
);
data
.
setTitle
(
title
);
return
data
;
}
/**
* 例会 end------------------------------------------------------------------------------------------------------------------------------------
*/
/**
* 费用 start------------------------------------------------------------------------------------------------------------------------------------
*/
@Data
class
CommonFyData
{
private
List
<
SysDept
>
depts
;
// 单位列表
private
List
<
SjFybpZb
>
fyList
;
// 费用信息列表
private
String
title
;
// 标题
}
}
...
@@ -137,241 +198,377 @@ public class AmainController extends BaseController
...
@@ -137,241 +198,377 @@ public class AmainController extends BaseController
@GetMapping
(
"/fybbQk"
)
@GetMapping
(
"/fybbQk"
)
public
AjaxResult
fybbQk
(
Amain
vo
)
public
AjaxResult
fybbQk
(
Amain
vo
)
{
{
String
nd
=
vo
.
getNd
();
CommonFyData
commonData
=
getCommonData_fy
(
vo
);
List
<
SysRole
>
rolelist
=
SecurityUtils
.
getLoginUser
().
getUser
().
getRoles
();
Map
<
String
,
Map
<
String
,
Integer
>>
fyQkMap
=
amainServiceImpl
.
countDepartmentExpenses
(
commonData
.
getDepts
(),
commonData
.
getFyList
());
// A看所有 B直属单位以下 C基层单位自己 D空白
String
sylx
=
getHighestLevel
(
rolelist
);
Long
deptId
=
SecurityUtils
.
getDeptId
();
List
<
SysDept
>
depts
=
null
;
// 单位信息
List
<
SjFybpZb
>
fyList
=
null
;
// 费用信息
String
title
=
"费用报批提交情况"
;
if
(
"A"
.
equals
(
sylx
)){
// 单位信息
SysDept
dept
=
new
SysDept
();
depts
=
deptService
.
selectDeptList_ejdw
(
dept
);
SjFybpZb
sjFybpZb
=
new
SjFybpZb
();
sjFybpZb
.
setFyrq
(
nd
);
sjFybpZb
.
setSpcx
(
"1"
);
fyList
=
sjFybpZbService
.
selectSjFybpZbList_main
(
sjFybpZb
);
}
else
if
(
"B"
.
equals
(
sylx
)){
// 单位信息
SysDept
dept
=
new
SysDept
();
dept
.
setParentId
(
deptId
);
depts
=
deptService
.
selectDeptList_sjdw
(
dept
);
SjFybpZb
sjFybpZb
=
new
SjFybpZb
();
sjFybpZb
.
setFyrq
(
nd
);
sjFybpZb
.
setSpcx
(
"1"
);
sjFybpZb
.
setDeptId
(
deptId
+
""
);
fyList
=
sjFybpZbService
.
selectSjFybpZbList_main
(
sjFybpZb
);
}
Map
<
String
,
Map
<
String
,
Integer
>>
fyQkMap
=
amainServiceImpl
.
countDepartmentExpenses
(
depts
,
fyList
);
Map
map
=
new
HashMap
();
Map
map
=
new
HashMap
();
map
.
put
(
"title"
,
title
);
map
.
put
(
"title"
,
commonData
.
getTitle
()
);
map
.
put
(
"expenseStats"
,
fyQkMap
);
map
.
put
(
"expenseStats"
,
fyQkMap
);
return
AjaxResult
.
success
(
map
);
return
AjaxResult
.
success
(
map
);
}
}
/**
/**
* 查询
直属单位对基层单位的分档评价
情况
* 查询
费用提交
情况
*/
*/
@GetMapping
(
"/
zsdwDdpjQk
"
)
@GetMapping
(
"/
fybbXq
"
)
public
AjaxResult
zsdwDdpjQk
(
Amain
vo
)
public
TableDataInfo
fybbXq
(
Amain
vo
)
{
{
String
nd
=
vo
.
getNd
();
CommonFyData
commonData
=
getCommonData_fy
(
vo
);
List
<
SysRole
>
rolelist
=
SecurityUtils
.
getLoginUser
().
getUser
().
getRoles
();
List
<
AmainXq
>
fyXqList
=
amainServiceImpl
.
getExpenseStatus
(
commonData
.
getDepts
(),
commonData
.
getFyList
());
// A看所有 B直属单位以下 C基层单位自己 D空白
return
getDataTable
(
fyXqList
);
String
sylx
=
getHighestLevel
(
rolelist
);
}
Long
deptId
=
SecurityUtils
.
getDeptId
();
List
<
SysDept
>
depts
=
null
;
// 单位信息
/**
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
=
null
;
// 分档评价信息
* 抽取公共逻辑:根据角色和年份获取单位列表、费用列表和标题
String
title
=
"直属单位对基层单位的分档评价统计"
;
* 专注处理两段代码中完全重复的部分,不干涉各自接口的特有参数
if
(
"A"
.
equals
(
sylx
)){
*/
// 单位信息
private
CommonFyData
getCommonData_fy
(
Amain
vo
)
{
SysDept
dept
=
new
SysDept
();
// 1. 获取公共参数
depts
=
deptService
.
selectDeptList_sjdw
(
dept
);
String
nd
=
vo
.
getNd
();
// 年份(从vo中获取,公共参数)
List
<
SysRole
>
rolelist
=
SecurityUtils
.
getLoginUser
().
getUser
().
getRoles
();
String
sylx
=
getHighestLevel
(
rolelist
);
// 角色级别(A/B/C/D)
Long
deptId
=
SecurityUtils
.
getDeptId
();
// 当前部门ID
// 2. 初始化公共数据
CommonFyData
data
=
new
CommonFyData
();
List
<
SysDept
>
depts
=
null
;
List
<
SjFybpZb
>
fyList
=
null
;
String
title
=
"费用报批提交情况"
;
// 默认标题
// 3. 根据角色类型查询对应的单位和费用列表(完全重复的逻辑)
if
(
"A"
.
equals
(
sylx
))
{
// A角色:查询二级单位及对应费用
SysDept
deptQuery
=
new
SysDept
();
depts
=
deptService
.
selectDeptList_ejdw
(
deptQuery
);
SjFybpZb
fyQuery
=
new
SjFybpZb
();
fyQuery
.
setFyrq
(
nd
);
// 按年份筛选
fyQuery
.
setSpcx
(
"1"
);
// 固定参数
fyList
=
sjFybpZbService
.
selectSjFybpZbList_main
(
fyQuery
);
}
else
if
(
"B"
.
equals
(
sylx
))
{
// B角色:查询下属基层单位及对应费用
SysDept
deptQuery
=
new
SysDept
();
deptQuery
.
setParentId
(
deptId
);
// 按当前部门ID筛选子单位
depts
=
deptService
.
selectDeptList_sjdw
(
deptQuery
);
SjFybpZb
fyQuery
=
new
SjFybpZb
();
fyQuery
.
setFyrq
(
nd
);
// 按年份筛选
fyQuery
.
setSpcx
(
"1"
);
// 固定参数
fyQuery
.
setDeptId
(
deptId
+
""
);
// 按当前部门ID筛选费用
fyList
=
sjFybpZbService
.
selectSjFybpZbList_main
(
fyQuery
);
}
SjGfjsZsdwkhpjZb
sjGfjsZsdwkhpjZb
=
new
SjGfjsZsdwkhpjZb
();
// 4. 封装并返回公共数据
sjGfjsZsdwkhpjZb
.
setNd
(
nd
);
data
.
setDepts
(
depts
);
sjGfjsZsdwkhpjZb
.
setZt
(
"1"
);
data
.
setFyList
(
fyList
);
sjGfjsZsdwkhpjZb
.
setJb
(
"直属单位"
);
data
.
setTitle
(
title
);
fdpjList
=
sjGfjsZsdwkhpjZbService
.
selectSjGfjsZsdwkhpjZbList_main
(
sjGfjsZsdwkhpjZb
);
return
data
;
}
}
else
if
(
"B"
.
equals
(
sylx
)){
/**
// 单位信息
* 费用 end------------------------------------------------------------------------------------------------------------------------------------
SysDept
dept
=
new
SysDept
();
*/
dept
.
setParentId
(
deptId
);
depts
=
deptService
.
selectDeptList_sjdw
(
dept
);
SjGfjsZsdwkhpjZb
sjGfjsZsdwkhpjZb
=
new
SjGfjsZsdwkhpjZb
();
/**
sjGfjsZsdwkhpjZb
.
setNd
(
nd
);
* 直属单位对基层单位的分档评价 start------------------------------------------------------------------------------------------------------------------------------------
sjGfjsZsdwkhpjZb
.
setZt
(
"1"
);
*/
sjGfjsZsdwkhpjZb
.
setJb
(
"直属单位"
);
sjGfjsZsdwkhpjZb
.
setDeptId
(
deptId
);
fdpjList
=
sjGfjsZsdwkhpjZbService
.
selectSjGfjsZsdwkhpjZbList_main
(
sjGfjsZsdwkhpjZb
);
@Data
class
CommonFdpjData
{
private
List
<
SysDept
>
depts
;
// 单位列表
private
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
;
// 分档评价信息列表
private
String
title
;
// 标题
}
}
/**
Map
<
String
,
Map
<
String
,
Integer
>>
fyQkMap
=
amainServiceImpl
.
statisticsGradingEvaluation
(
depts
,
fdpjList
);
* 查询直属单位对基层单位的分档评价情况
*/
@GetMapping
(
"/zsdwDdpjQk"
)
public
AjaxResult
zsdwDdpjQk
(
Amain
vo
)
{
CommonFdpjData
commonData
=
getCommonData_Fdpj
(
vo
);
Map
<
String
,
Map
<
String
,
Integer
>>
fdpjQkMap
=
amainServiceImpl
.
statisticsGradingEvaluation
(
commonData
.
getDepts
(),
commonData
.
getFdpjList
());
Map
map
=
new
HashMap
();
Map
map
=
new
HashMap
();
map
.
put
(
"title"
,
title
);
map
.
put
(
"title"
,
commonData
.
getTitle
()
);
map
.
put
(
"expenseStats"
,
f
y
QkMap
);
map
.
put
(
"expenseStats"
,
f
dpj
QkMap
);
return
AjaxResult
.
success
(
map
);
return
AjaxResult
.
success
(
map
);
}
}
/**
/**
* 查询
基层单位月度问题清单提交
情况
* 查询
直属单位对基层单位的分档评价
情况
*/
*/
@GetMapping
(
"/
jcdwYdwtQk
"
)
@GetMapping
(
"/
zsdwDdpjXq
"
)
public
AjaxResult
jcdwYdwtQk
(
Amain
vo
)
public
TableDataInfo
zsdwDdpjXq
(
Amain
vo
)
{
{
String
nd
=
vo
.
getNd
();
CommonFdpjData
commonData
=
getCommonData_Fdpj
(
vo
);
String
startJd
=
nd
+
"-01"
;
List
<
AmainXq
>
fdpjXqList
=
amainServiceImpl
.
getEvaluationStatus
(
commonData
.
getDepts
(),
commonData
.
getFdpjList
());
String
endJd
=
nd
+
"-12"
;
return
getDataTable
(
fdpjXqList
);
List
<
SysRole
>
rolelist
=
SecurityUtils
.
getLoginUser
().
getUser
().
getRoles
();
}
// A看所有 B直属单位以下 C基层单位自己 D空白
String
sylx
=
getHighestLevel
(
rolelist
);
Long
deptId
=
SecurityUtils
.
getDeptId
();
List
<
SysDept
>
depts
=
null
;
// 单位信息
List
<
SjGfjsYdjcjl
>
ydwtList
=
null
;
// 月度问题
String
title
=
"基层单位月度问题清单提交情况"
;
if
(
"A"
.
equals
(
sylx
)){
// 单位信息
SysDept
dept
=
new
SysDept
();
depts
=
deptService
.
selectDeptList_sjdw
(
dept
);
/**
* 抽取公共逻辑:根据角色和年份获取单位列表、分档评价列表和标题
* 专注处理两段代码中完全重复的部分
*/
private
CommonFdpjData
getCommonData_Fdpj
(
Amain
vo
)
{
// 1. 获取公共参数
String
nd
=
vo
.
getNd
();
// 年份(公共参数)
List
<
SysRole
>
rolelist
=
SecurityUtils
.
getLoginUser
().
getUser
().
getRoles
();
String
sylx
=
getHighestLevel
(
rolelist
);
// 角色级别(A/B/C/D)
Long
deptId
=
SecurityUtils
.
getDeptId
();
// 当前部门ID
// 2. 初始化公共数据
CommonFdpjData
data
=
new
CommonFdpjData
();
List
<
SysDept
>
depts
=
null
;
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
=
null
;
String
title
=
"直属单位对基层单位的分档评价统计"
;
// 默认标题
// 3. 根据角色类型查询对应的单位和分档评价列表(完全重复的逻辑)
if
(
"A"
.
equals
(
sylx
))
{
// A角色:查询所有基层单位及分档评价
SysDept
deptQuery
=
new
SysDept
();
depts
=
deptService
.
selectDeptList_sjdw
(
deptQuery
);
SjGfjsZsdwkhpjZb
fdpjQuery
=
new
SjGfjsZsdwkhpjZb
();
fdpjQuery
.
setNd
(
nd
);
// 按年份筛选
fdpjQuery
.
setZt
(
"1"
);
// 固定参数(状态)
fdpjQuery
.
setJb
(
"直属单位"
);
// 固定参数(级别)
fdpjList
=
sjGfjsZsdwkhpjZbService
.
selectSjGfjsZsdwkhpjZbList_main
(
fdpjQuery
);
}
else
if
(
"B"
.
equals
(
sylx
))
{
// B角色:查询当前部门下属的基层单位及分档评价
SysDept
deptQuery
=
new
SysDept
();
deptQuery
.
setParentId
(
deptId
);
// 按当前部门ID筛选子单位
depts
=
deptService
.
selectDeptList_sjdw
(
deptQuery
);
SjGfjsZsdwkhpjZb
fdpjQuery
=
new
SjGfjsZsdwkhpjZb
();
fdpjQuery
.
setNd
(
nd
);
// 按年份筛选
fdpjQuery
.
setZt
(
"1"
);
// 固定参数(状态)
fdpjQuery
.
setJb
(
"直属单位"
);
// 固定参数(级别)
fdpjQuery
.
setDeptId
(
deptId
);
// 按当前部门ID筛选评价
fdpjList
=
sjGfjsZsdwkhpjZbService
.
selectSjGfjsZsdwkhpjZbList_main
(
fdpjQuery
);
}
SjGfjsYdjcjl
sjGfjsYdjcjl
=
new
SjGfjsYdjcjl
();
// 4. 封装并返回公共数据
sjGfjsYdjcjl
.
setJcjb
(
"基层单位自查"
);
data
.
setDepts
(
depts
);
sjGfjsYdjcjl
.
setStartRq
(
startJd
);
data
.
setFdpjList
(
fdpjList
);
sjGfjsYdjcjl
.
setEndRq
(
endJd
);
data
.
setTitle
(
title
);
sjGfjsYdjcjl
.
setZt
(
"1"
)
;
return
data
;
ydwtList
=
sjGfjsYdjcjlService
.
selectSjGfjsYdjcjlList_main
(
sjGfjsYdjcjl
);
}
/**
* 直属单位对基层单位的分档评价 end------------------------------------------------------------------------------------------------------------------------------------
*/
}
else
if
(
"B"
.
equals
(
sylx
)){
// 单位信息
SysDept
dept
=
new
SysDept
();
dept
.
setParentId
(
deptId
);
depts
=
deptService
.
selectDeptList_sjdw
(
dept
);
SjGfjsYdjcjl
sjGfjsYdjcjl
=
new
SjGfjsYdjcjl
();
/**
sjGfjsYdjcjl
.
setDeptId
(
deptId
);
* 查询基层单位月度问题清单 start------------------------------------------------------------------------------------------------------------------------------------
sjGfjsYdjcjl
.
setJcjb
(
"基层单位自查"
);
*/
sjGfjsYdjcjl
.
setStartRq
(
startJd
);
sjGfjsYdjcjl
.
setEndRq
(
endJd
);
sjGfjsYdjcjl
.
setZt
(
"1"
);
ydwtList
=
sjGfjsYdjcjlService
.
selectSjGfjsYdjcjlList_main
(
sjGfjsYdjcjl
);
@Data
class
CommonYdwtData
{
private
List
<
SysDept
>
depts
;
// 单位列表
private
List
<
SjGfjsYdjcjl
>
ydwtList
;
// 月度问题列表
private
String
title
;
// 标题
}
/**
* 查询基层单位月度问题清单提交情况
*/
@GetMapping
(
"/jcdwYdwtQk"
)
public
AjaxResult
jcdwYdwtQk
(
Amain
vo
)
{
CommonYdwtData
commonData
=
getCommonData_Ydwt
(
vo
);
Map
<
String
,
Map
<
String
,
Integer
>>
ydwtXkMap
=
amainServiceImpl
.
statisticsMonthlyIssues
(
commonData
.
getDepts
(),
commonData
.
getYdwtList
());
Map
map
=
new
HashMap
();
map
.
put
(
"title"
,
commonData
.
getTitle
());
map
.
put
(
"expenseStats"
,
ydwtXkMap
);
return
AjaxResult
.
success
(
map
);
}
}
else
if
(
"C"
.
equals
(
sylx
)){
// 单位信息
SysDept
dept
=
new
SysDept
();
dept
.
setDeptId
(
deptId
);
depts
=
deptService
.
selectDeptList_sjdw
(
dept
);
/**
* 查询基层单位月度问题清单提交情况
*/
@GetMapping
(
"/jcdwYdwtXq"
)
public
TableDataInfo
jcdwYdwtXq
(
Amain
vo
)
{
CommonYdwtData
commonData
=
getCommonData_Ydwt
(
vo
);
List
<
AmainXq
>
ydwtXqList
=
amainServiceImpl
.
getMonthlyIssueStatus
(
commonData
.
getDepts
(),
commonData
.
getYdwtList
());
return
getDataTable
(
ydwtXqList
);
}
SjGfjsYdjcjl
sjGfjsYdjcjl
=
new
SjGfjsYdjcjl
();
sjGfjsYdjcjl
.
setDeptId
(
deptId
);
sjGfjsYdjcjl
.
setJcjb
(
"基层单位自查"
);
sjGfjsYdjcjl
.
setStartRq
(
startJd
);
sjGfjsYdjcjl
.
setEndRq
(
endJd
);
sjGfjsYdjcjl
.
setZt
(
"1"
);
ydwtList
=
sjGfjsYdjcjlService
.
selectSjGfjsYdjcjlList_main
(
sjGfjsYdjcjl
);
private
CommonYdwtData
getCommonData_Ydwt
(
Amain
vo
)
{
// 1. 获取公共参数并处理
String
nd
=
vo
.
getNd
();
String
startJd
=
nd
+
"-01"
;
String
endJd
=
nd
+
"-12"
;
List
<
SysRole
>
rolelist
=
SecurityUtils
.
getLoginUser
().
getUser
().
getRoles
();
String
sylx
=
getHighestLevel
(
rolelist
);
// 角色级别(A/B/C/D)
Long
deptId
=
SecurityUtils
.
getDeptId
();
// 当前部门ID
// 2. 初始化公共数据
CommonYdwtData
data
=
new
CommonYdwtData
();
List
<
SysDept
>
depts
=
null
;
List
<
SjGfjsYdjcjl
>
ydwtList
=
null
;
String
title
=
"基层单位月度问题清单提交情况"
;
// 默认标题
// 3. 根据角色类型查询对应的单位和月度问题列表(完全重复的逻辑)
if
(
"A"
.
equals
(
sylx
))
{
// A角色:查询所有基层单位及月度问题
SysDept
deptQuery
=
new
SysDept
();
depts
=
deptService
.
selectDeptList_sjdw
(
deptQuery
);
SjGfjsYdjcjl
ydwtQuery
=
new
SjGfjsYdjcjl
();
ydwtQuery
.
setJcjb
(
"基层单位自查"
);
// 固定参数
ydwtQuery
.
setStartRq
(
startJd
);
// 时间范围起始
ydwtQuery
.
setEndRq
(
endJd
);
// 时间范围结束
ydwtQuery
.
setZt
(
"1"
);
// 固定状态参数
ydwtList
=
sjGfjsYdjcjlService
.
selectSjGfjsYdjcjlList_main
(
ydwtQuery
);
}
else
if
(
"B"
.
equals
(
sylx
))
{
// B角色:查询当前部门下属的基层单位及月度问题
SysDept
deptQuery
=
new
SysDept
();
deptQuery
.
setParentId
(
deptId
);
// 按父部门ID筛选
depts
=
deptService
.
selectDeptList_sjdw
(
deptQuery
);
SjGfjsYdjcjl
ydwtQuery
=
new
SjGfjsYdjcjl
();
ydwtQuery
.
setDeptId
(
deptId
);
// 按部门ID筛选
ydwtQuery
.
setJcjb
(
"基层单位自查"
);
// 固定参数
ydwtQuery
.
setStartRq
(
startJd
);
// 时间范围起始
ydwtQuery
.
setEndRq
(
endJd
);
// 时间范围结束
ydwtQuery
.
setZt
(
"1"
);
// 固定状态参数
ydwtList
=
sjGfjsYdjcjlService
.
selectSjGfjsYdjcjlList_main
(
ydwtQuery
);
}
else
if
(
"C"
.
equals
(
sylx
))
{
// C角色:查询本单位的月度问题
SysDept
deptQuery
=
new
SysDept
();
deptQuery
.
setDeptId
(
deptId
);
// 按本部门ID筛选
depts
=
deptService
.
selectDeptList_sjdw
(
deptQuery
);
SjGfjsYdjcjl
ydwtQuery
=
new
SjGfjsYdjcjl
();
ydwtQuery
.
setDeptId
(
deptId
);
// 按部门ID筛选
ydwtQuery
.
setJcjb
(
"基层单位自查"
);
// 固定参数
ydwtQuery
.
setStartRq
(
startJd
);
// 时间范围起始
ydwtQuery
.
setEndRq
(
endJd
);
// 时间范围结束
ydwtQuery
.
setZt
(
"1"
);
// 固定状态参数
ydwtList
=
sjGfjsYdjcjlService
.
selectSjGfjsYdjcjlList_main
(
ydwtQuery
);
}
}
Map
<
String
,
Map
<
String
,
Integer
>>
fyQkMap
=
amainServiceImpl
.
statisticsMonthlyIssues
(
depts
,
ydwtList
);
// 4. 封装并返回公共数据
Map
map
=
new
HashMap
(
);
data
.
setDepts
(
depts
);
map
.
put
(
"title"
,
title
);
data
.
setYdwtList
(
ydwtList
);
map
.
put
(
"expenseStats"
,
fyQkMap
);
data
.
setTitle
(
title
);
return
AjaxResult
.
success
(
map
)
;
return
data
;
}
}
/**
* 查询基层单位月度问题清单 end------------------------------------------------------------------------------------------------------------------------------------
*/
/**
* 基层单位季度自测提 start------------------------------------------------------------------------------------------------------------------------------------
*/
@Data
class
CommonJczcData
{
private
List
<
SysDept
>
depts
;
// 单位列表
private
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
;
// 季度自测列表
private
String
title
;
// 标题
}
/**
/**
* 查询基层单位季度自测提交情况
* 查询基层单位季度自测提交情况
*/
*/
@GetMapping
(
"/jcdwJdzcQk"
)
@GetMapping
(
"/jcdwJdzcQk"
)
public
AjaxResult
jcdwJdzcQk
(
Amain
vo
)
public
AjaxResult
jcdwJdzcQk
(
Amain
vo
)
{
{
String
nd
=
vo
.
getNd
();
CommonJczcData
commonData
=
getCommonData_Jczc
(
vo
);
Map
<
String
,
Map
<
String
,
Integer
>>
jczcQkMap
=
amainServiceImpl
.
statisticsQuarterlyTests
(
commonData
.
getDepts
(),
commonData
.
getFdpjList
());
List
<
SysRole
>
rolelist
=
SecurityUtils
.
getLoginUser
().
getUser
().
getRoles
();
Map
map
=
new
HashMap
();
// A看所有 B直属单位以下 C基层单位自己 D空白
map
.
put
(
"title"
,
commonData
.
getTitle
());
String
sylx
=
getHighestLevel
(
rolelist
);
map
.
put
(
"expenseStats"
,
jczcQkMap
);
Long
deptId
=
SecurityUtils
.
getDeptId
();
return
AjaxResult
.
success
(
map
);
}
List
<
SysDept
>
depts
=
null
;
// 单位信息
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
=
null
;
// 季度自测
String
title
=
"基层单位季度自测提交情况"
;
if
(
"A"
.
equals
(
sylx
)){
// 单位信息
SysDept
dept
=
new
SysDept
();
depts
=
deptService
.
selectDeptList_sjdw
(
dept
);
SjGfjsZsdwkhpjZb
sjGfjsZsdwkhpjZb
=
new
SjGfjsZsdwkhpjZb
();
sjGfjsZsdwkhpjZb
.
setNd
(
nd
);
sjGfjsZsdwkhpjZb
.
setZt
(
"1"
);
sjGfjsZsdwkhpjZb
.
setJb
(
"基层单位"
);
fdpjList
=
sjGfjsZsdwkhpjZbService
.
selectSjGfjsZsdwkhpjZbList_main
(
sjGfjsZsdwkhpjZb
);
}
else
if
(
"B"
.
equals
(
sylx
)){
// 单位信息
SysDept
dept
=
new
SysDept
();
dept
.
setParentId
(
deptId
);
depts
=
deptService
.
selectDeptList_sjdw
(
dept
);
SjGfjsZsdwkhpjZb
sjGfjsZsdwkhpjZb
=
new
SjGfjsZsdwkhpjZb
();
sjGfjsZsdwkhpjZb
.
setNd
(
nd
);
sjGfjsZsdwkhpjZb
.
setZt
(
"1"
);
sjGfjsZsdwkhpjZb
.
setJb
(
"基层单位"
);
sjGfjsZsdwkhpjZb
.
setDeptId
(
deptId
);
fdpjList
=
sjGfjsZsdwkhpjZbService
.
selectSjGfjsZsdwkhpjZbList_main
(
sjGfjsZsdwkhpjZb
);
}
else
if
(
"C"
.
equals
(
sylx
)){
// 单位信息
SysDept
dept
=
new
SysDept
();
dept
.
setDeptId
(
deptId
);
depts
=
deptService
.
selectDeptList_sjdw
(
dept
);
SjGfjsZsdwkhpjZb
sjGfjsZsdwkhpjZb
=
new
SjGfjsZsdwkhpjZb
();
/**
sjGfjsZsdwkhpjZb
.
setNd
(
nd
);
* 查询基层单位季度自测提交情况
sjGfjsZsdwkhpjZb
.
setZt
(
"1"
);
*/
sjGfjsZsdwkhpjZb
.
setJb
(
"基层单位"
);
@GetMapping
(
"/jcdwJdzcXq"
)
sjGfjsZsdwkhpjZb
.
setDeptId
(
deptId
);
public
TableDataInfo
jcdwJdzcXq
(
Amain
vo
)
fdpjList
=
sjGfjsZsdwkhpjZbService
.
selectSjGfjsZsdwkhpjZbList_main
(
sjGfjsZsdwkhpjZb
);
{
CommonJczcData
commonData
=
getCommonData_Jczc
(
vo
);
List
<
AmainXq
>
jczcXqList
=
amainServiceImpl
.
getQuarterlyTestStatus
(
commonData
.
getDepts
(),
commonData
.
getFdpjList
());
return
getDataTable
(
jczcXqList
);
}
private
CommonJczcData
getCommonData_Jczc
(
Amain
vo
)
{
// 1. 获取公共参数
String
nd
=
vo
.
getNd
();
List
<
SysRole
>
rolelist
=
SecurityUtils
.
getLoginUser
().
getUser
().
getRoles
();
String
sylx
=
getHighestLevel
(
rolelist
);
// 角色级别(A/B/C/D)
Long
deptId
=
SecurityUtils
.
getDeptId
();
// 当前部门ID
// 2. 初始化公共数据
CommonJczcData
data
=
new
CommonJczcData
();
List
<
SysDept
>
depts
=
null
;
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
=
null
;
String
title
=
"基层单位季度自测提交情况"
;
// 默认标题
// 3. 根据角色类型查询对应的单位和季度自测列表(完全重复的逻辑)
if
(
"A"
.
equals
(
sylx
))
{
// A角色:查询所有基层单位及季度自测数据
SysDept
deptQuery
=
new
SysDept
();
depts
=
deptService
.
selectDeptList_sjdw
(
deptQuery
);
SjGfjsZsdwkhpjZb
fdpjQuery
=
new
SjGfjsZsdwkhpjZb
();
fdpjQuery
.
setNd
(
nd
);
// 按年份筛选
fdpjQuery
.
setZt
(
"1"
);
// 固定状态参数
fdpjQuery
.
setJb
(
"基层单位"
);
// 固定级别参数
fdpjList
=
sjGfjsZsdwkhpjZbService
.
selectSjGfjsZsdwkhpjZbList_main
(
fdpjQuery
);
}
else
if
(
"B"
.
equals
(
sylx
))
{
// B角色:查询当前部门下属的基层单位及季度自测数据
SysDept
deptQuery
=
new
SysDept
();
deptQuery
.
setParentId
(
deptId
);
// 按父部门ID筛选
depts
=
deptService
.
selectDeptList_sjdw
(
deptQuery
);
SjGfjsZsdwkhpjZb
fdpjQuery
=
new
SjGfjsZsdwkhpjZb
();
fdpjQuery
.
setNd
(
nd
);
// 按年份筛选
fdpjQuery
.
setZt
(
"1"
);
// 固定状态参数
fdpjQuery
.
setJb
(
"基层单位"
);
// 固定级别参数
fdpjQuery
.
setDeptId
(
deptId
);
// 按部门ID筛选
fdpjList
=
sjGfjsZsdwkhpjZbService
.
selectSjGfjsZsdwkhpjZbList_main
(
fdpjQuery
);
}
else
if
(
"C"
.
equals
(
sylx
))
{
// C角色:查询本单位的季度自测数据
SysDept
deptQuery
=
new
SysDept
();
deptQuery
.
setDeptId
(
deptId
);
// 按本部门ID筛选
depts
=
deptService
.
selectDeptList_sjdw
(
deptQuery
);
SjGfjsZsdwkhpjZb
fdpjQuery
=
new
SjGfjsZsdwkhpjZb
();
fdpjQuery
.
setNd
(
nd
);
// 按年份筛选
fdpjQuery
.
setZt
(
"1"
);
// 固定状态参数
fdpjQuery
.
setJb
(
"基层单位"
);
// 固定级别参数
fdpjQuery
.
setDeptId
(
deptId
);
// 按部门ID筛选
fdpjList
=
sjGfjsZsdwkhpjZbService
.
selectSjGfjsZsdwkhpjZbList_main
(
fdpjQuery
);
}
}
Map
<
String
,
Map
<
String
,
Integer
>>
fyQkMap
=
amainServiceImpl
.
statisticsQuarterlyTests
(
depts
,
fdpjList
);
// 4. 封装并返回公共数据
Map
map
=
new
HashMap
(
);
data
.
setDepts
(
depts
);
map
.
put
(
"title"
,
title
);
data
.
setFdpjList
(
fdpjList
);
map
.
put
(
"expenseStats"
,
fyQkMap
);
data
.
setTitle
(
title
);
return
AjaxResult
.
success
(
map
)
;
return
data
;
}
}
/**
* 基层单位季度自测提 end------------------------------------------------------------------------------------------------------------------------------------
*/
...
...
qianhe-ydsj/src/main/java/com/qianhe/domain/Amain.java
View file @
c0537059
...
@@ -18,4 +18,5 @@ public class Amain extends BaseEntity
...
@@ -18,4 +18,5 @@ public class Amain extends BaseEntity
private
String
nd
;
private
String
nd
;
}
}
qianhe-ydsj/src/main/java/com/qianhe/domain/AmainXq.java
0 → 100644
View file @
c0537059
package
com
.
qianhe
.
domain
;
import
com.qianhe.common.core.domain.BaseEntity
;
import
lombok.Data
;
/**
* 公共附件对象 gg_fjb
*
* @author qianhe
* @date 2025-08-04
*/
@Data
public
class
AmainXq
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
private
Long
deptId
;
/** 部门名称 */
private
String
deptName
;
private
String
Q1
;
private
String
Q2
;
private
String
Q3
;
private
String
Q4
;
private
String
Y01
;
private
String
Y02
;
private
String
Y03
;
private
String
Y04
;
private
String
Y05
;
private
String
Y06
;
private
String
Y07
;
private
String
Y08
;
private
String
Y09
;
private
String
Y10
;
private
String
Y11
;
private
String
Y12
;
public
AmainXq
(
Long
deptId
,
String
deptName
)
{
this
.
deptId
=
deptId
;
this
.
deptName
=
deptName
;
this
.
Q1
=
"未提交"
;
this
.
Q2
=
"未提交"
;
this
.
Q3
=
"未提交"
;
this
.
Q4
=
"未提交"
;
this
.
Y01
=
"未提交"
;
this
.
Y02
=
"未提交"
;
this
.
Y03
=
"未提交"
;
this
.
Y04
=
"未提交"
;
this
.
Y05
=
"未提交"
;
this
.
Y06
=
"未提交"
;
this
.
Y07
=
"未提交"
;
this
.
Y08
=
"未提交"
;
this
.
Y09
=
"未提交"
;
this
.
Y10
=
"未提交"
;
this
.
Y11
=
"未提交"
;
this
.
Y12
=
"未提交"
;
}
}
qianhe-ydsj/src/main/java/com/qianhe/service/IAmainService.java
View file @
c0537059
...
@@ -16,14 +16,36 @@ import java.util.stream.Collectors;
...
@@ -16,14 +16,36 @@ import java.util.stream.Collectors;
public
interface
IAmainService
public
interface
IAmainService
{
{
/**
* 查询例会查询情况, 看二级例会情况,看三级例会情况
*/
public
Map
<
String
,
Map
<
String
,
Integer
>>
statisticsMeetings
(
List
<
SysDept
>
depts
,
List
<
SjLhsc
>
lhList
);
public
Map
<
String
,
Map
<
String
,
Integer
>>
statisticsMeetings
(
List
<
SysDept
>
depts
,
List
<
SjLhsc
>
lhList
);
public
List
<
AmainXq
>
getDeptQuarterlyStatus
(
List
<
SysDept
>
depts
,
List
<
SjLhsc
>
lhList
);
/**
* 查询费用提交情况
*/
public
Map
countDepartmentExpenses
(
List
<
SysDept
>
depts
,
List
<
SjFybpZb
>
fyList
);
public
Map
countDepartmentExpenses
(
List
<
SysDept
>
depts
,
List
<
SjFybpZb
>
fyList
);
public
List
<
AmainXq
>
getExpenseStatus
(
List
<
SysDept
>
depts
,
List
<
SjFybpZb
>
fyList
);
/**
* 查询直属单位对基层单位的分档评价情况
*/
public
Map
<
String
,
Map
<
String
,
Integer
>>
statisticsGradingEvaluation
(
List
<
SysDept
>
depts
,
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
);
public
Map
<
String
,
Map
<
String
,
Integer
>>
statisticsGradingEvaluation
(
List
<
SysDept
>
depts
,
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
);
public
List
<
AmainXq
>
getEvaluationStatus
(
List
<
SysDept
>
depts
,
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
);
/**
* 查询基层单位月度问题清单提交情况
*/
public
Map
<
String
,
Map
<
String
,
Integer
>>
statisticsMonthlyIssues
(
List
<
SysDept
>
depts
,
List
<
SjGfjsYdjcjl
>
ydwtList
);
public
Map
<
String
,
Map
<
String
,
Integer
>>
statisticsMonthlyIssues
(
List
<
SysDept
>
depts
,
List
<
SjGfjsYdjcjl
>
ydwtList
);
public
List
<
AmainXq
>
getMonthlyIssueStatus
(
List
<
SysDept
>
depts
,
List
<
SjGfjsYdjcjl
>
ydwtList
)
;
/**
* 查询基层单位季度自测提交情况
*/
public
Map
<
String
,
Map
<
String
,
Integer
>>
statisticsQuarterlyTests
(
List
<
SysDept
>
depts
,
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
);
public
Map
<
String
,
Map
<
String
,
Integer
>>
statisticsQuarterlyTests
(
List
<
SysDept
>
depts
,
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
);
public
List
<
AmainXq
>
getQuarterlyTestStatus
(
List
<
SysDept
>
depts
,
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
);
}
}
qianhe-ydsj/src/main/java/com/qianhe/service/impl/AmainServiceImpl.java
View file @
c0537059
...
@@ -29,6 +29,10 @@ import java.util.stream.Collectors;
...
@@ -29,6 +29,10 @@ import java.util.stream.Collectors;
@Service
@Service
public
class
AmainServiceImpl
implements
IAmainService
public
class
AmainServiceImpl
implements
IAmainService
{
{
/**
* 查询例会查询情况
*/
public
Map
<
String
,
Map
<
String
,
Integer
>>
statisticsMeetings
(
public
Map
<
String
,
Map
<
String
,
Integer
>>
statisticsMeetings
(
List
<
SysDept
>
depts
,
List
<
SjLhsc
>
lhList
)
{
List
<
SysDept
>
depts
,
List
<
SjLhsc
>
lhList
)
{
...
@@ -93,11 +97,89 @@ public class AmainServiceImpl implements IAmainService
...
@@ -93,11 +97,89 @@ public class AmainServiceImpl implements IAmainService
}
}
/**
/**
* 根据月份获取季度
* 统计各单位2025年各季度例会提交情况
* @param depts 单位信息列表(可能为null)
* @param lhList 2025年例会信息列表(可能为null)
* @return 各单位季度提交状态列表
*/
*/
public
List
<
AmainXq
>
getDeptQuarterlyStatus
(
List
<
SysDept
>
depts
,
List
<
SjLhsc
>
lhList
)
{
// 处理null情况,转为空列表
List
<
SysDept
>
safeDepts
=
(
depts
==
null
)
?
Collections
.
emptyList
()
:
depts
;
List
<
SjLhsc
>
safeLhList
=
(
lhList
==
null
)
?
Collections
.
emptyList
()
:
lhList
;
// 初始化所有单位的季度状态(默认未提交)
Map
<
Long
,
AmainXq
>
deptStatusMap
=
safeDepts
.
stream
()
.
map
(
dept
->
new
AmainXq
(
dept
.
getDeptId
(),
dept
.
getDeptName
()))
.
collect
(
Collectors
.
toMap
(
AmainXq:
:
getDeptId
,
status
->
status
));
// 处理例会数据,标记已提交的季度
Calendar
calendar
=
Calendar
.
getInstance
();
for
(
SjLhsc
meeting
:
safeLhList
)
{
// 跳过null记录
if
(
meeting
==
null
)
continue
;
// 获取会议日期和单位ID
Date
meetingDate
=
meeting
.
getHyrq
();
String
deptIdStr
=
meeting
.
getDeptId
();
if
(
meetingDate
==
null
||
deptIdStr
==
null
)
continue
;
// 解析单位ID(字符串转Long)
Long
deptId
;
try
{
deptId
=
Long
.
parseLong
(
deptIdStr
);
}
catch
(
NumberFormatException
e
)
{
// 单位ID格式错误,跳过该记录
continue
;
}
// 检查单位是否存在
if
(!
deptStatusMap
.
containsKey
(
deptId
))
{
continue
;
}
// 检查是否为2025年的会议
calendar
.
setTime
(
meetingDate
);
int
year
=
calendar
.
get
(
Calendar
.
YEAR
);
if
(
year
!=
2025
)
continue
;
// 确定季度
int
month
=
calendar
.
get
(
Calendar
.
MONTH
)
+
1
;
// 月份从0开始
String
quarter
=
getQuarter
(
month
);
// 更新对应季度的状态为"已提交"
AmainXq
status
=
deptStatusMap
.
get
(
deptId
);
switch
(
quarter
)
{
case
"Q1"
:
status
.
setQ1
(
"已提交"
);
break
;
case
"Q2"
:
status
.
setQ2
(
"已提交"
);
break
;
case
"Q3"
:
status
.
setQ3
(
"已提交"
);
break
;
case
"Q4"
:
status
.
setQ4
(
"已提交"
);
break
;
}
}
// 转换为列表并按单位ID排序
return
deptStatusMap
.
values
().
stream
()
.
sorted
(
Comparator
.
comparing
(
AmainXq:
:
getDeptId
))
.
collect
(
Collectors
.
toList
());
}
/**
* 根据月份获取季度
*/
private
static
String
getQuarter
(
int
month
)
{
private
static
String
getQuarter
(
int
month
)
{
if
(
month
>=
1
&&
month
<=
3
)
{
if
(
month
>=
1
&&
month
<=
3
)
{
return
"Q1"
;
return
"Q1"
;
...
@@ -110,7 +192,9 @@ public class AmainServiceImpl implements IAmainService
...
@@ -110,7 +192,9 @@ public class AmainServiceImpl implements IAmainService
}
}
}
}
/**
* 查询费用提交情况
*/
public
Map
countDepartmentExpenses
(
List
<
SysDept
>
depts
,
List
<
SjFybpZb
>
fyList
)
{
public
Map
countDepartmentExpenses
(
List
<
SysDept
>
depts
,
List
<
SjFybpZb
>
fyList
)
{
List
<
SysDept
>
safeDepts
=
(
depts
==
null
)
?
Collections
.
emptyList
()
:
depts
;
List
<
SysDept
>
safeDepts
=
(
depts
==
null
)
?
Collections
.
emptyList
()
:
depts
;
...
@@ -143,6 +227,60 @@ public class AmainServiceImpl implements IAmainService
...
@@ -143,6 +227,60 @@ public class AmainServiceImpl implements IAmainService
}
}
/**
* 统计各单位费用提交情况
* @param depts 单位信息列表(可能为null)
* @param fyList 费用信息列表(可能为null)
* @return 各单位费用提交状态列表
*/
public
List
<
AmainXq
>
getExpenseStatus
(
List
<
SysDept
>
depts
,
List
<
SjFybpZb
>
fyList
)
{
// 处理null情况,转为空列表
List
<
SysDept
>
safeDepts
=
(
depts
==
null
)
?
Collections
.
emptyList
()
:
depts
;
List
<
SjFybpZb
>
safeFyList
=
(
fyList
==
null
)
?
Collections
.
emptyList
()
:
fyList
;
// 初始化所有单位的状态(默认未提交)
Map
<
Long
,
AmainXq
>
statusMap
=
safeDepts
.
stream
()
.
map
(
dept
->
new
AmainXq
(
dept
.
getDeptId
(),
dept
.
getDeptName
()))
.
collect
(
Collectors
.
toMap
(
AmainXq:
:
getDeptId
,
status
->
status
,
(
existing
,
replacement
)
->
existing
// 处理重复deptId
));
// 提取所有有费用信息的单位ID(去重)
Set
<
Long
>
hasExpenseDeptIds
=
safeFyList
.
stream
()
.
filter
(
expense
->
expense
!=
null
&&
expense
.
getDeptId
()
!=
null
)
.
map
(
expense
->
{
// 尝试将字符串deptId转换为Long
try
{
return
Long
.
parseLong
(
expense
.
getDeptId
());
}
catch
(
NumberFormatException
e
)
{
return
null
;
// 转换失败的ID忽略
}
})
.
filter
(
Objects:
:
nonNull
)
// 过滤转换失败的null值
.
filter
(
statusMap:
:
containsKey
)
// 只保留存在于单位列表中的ID
.
collect
(
Collectors
.
toSet
());
// 更新有费用信息的单位状态为"已提交"
for
(
Long
deptId
:
hasExpenseDeptIds
)
{
statusMap
.
get
(
deptId
).
setQ1
(
"已提交"
);
}
// 转换为列表并按单位ID排序
return
statusMap
.
values
().
stream
()
.
sorted
(
Comparator
.
comparing
(
AmainXq:
:
getDeptId
))
.
collect
(
Collectors
.
toList
());
}
/**
* 按上半年和下半年统计各单位分档评价提交情况
* @param depts 单位信息列表(可能为null)
* @param fdpjList 分档评价信息列表(可能为null)
* @return 各单位分档评价提交状态列表
*/
public
Map
<
String
,
Map
<
String
,
Integer
>>
statisticsGradingEvaluation
(
public
Map
<
String
,
Map
<
String
,
Integer
>>
statisticsGradingEvaluation
(
List
<
SysDept
>
depts
,
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
)
{
List
<
SysDept
>
depts
,
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
)
{
...
@@ -194,12 +332,62 @@ public class AmainServiceImpl implements IAmainService
...
@@ -194,12 +332,62 @@ public class AmainServiceImpl implements IAmainService
// 整理最终结果
// 整理最终结果
Map
<
String
,
Map
<
String
,
Integer
>>
result
=
new
HashMap
<>();
Map
<
String
,
Map
<
String
,
Integer
>>
result
=
new
HashMap
<>();
result
.
put
(
"Q1
2
"
,
firstHalfStats
);
result
.
put
(
"Q1"
,
firstHalfStats
);
result
.
put
(
"Q
1234
"
,
secondHalfStats
);
result
.
put
(
"Q
2
"
,
secondHalfStats
);
return
result
;
return
result
;
}
}
/**
* 按上半年和下半年统计各单位分档评价提交情况
* @param depts 单位信息列表(可能为null)
* @param fdpjList 分档评价信息列表(可能为null)
* @return 各单位分档评价提交状态列表
*/
public
List
<
AmainXq
>
getEvaluationStatus
(
List
<
SysDept
>
depts
,
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
)
{
// 处理null情况,转为空列表
List
<
SysDept
>
safeDepts
=
(
depts
==
null
)
?
Collections
.
emptyList
()
:
depts
;
List
<
SjGfjsZsdwkhpjZb
>
safeFdpjList
=
(
fdpjList
==
null
)
?
Collections
.
emptyList
()
:
fdpjList
;
// 初始化所有单位的状态(默认未提交)
Map
<
Long
,
AmainXq
>
statusMap
=
safeDepts
.
stream
()
.
map
(
dept
->
new
AmainXq
(
dept
.
getDeptId
(),
dept
.
getDeptName
()))
.
collect
(
Collectors
.
toMap
(
AmainXq:
:
getDeptId
,
status
->
status
,
(
existing
,
replacement
)
->
existing
// 处理重复deptId
));
// 处理分档评价数据,更新对应周期的状态
for
(
SjGfjsZsdwkhpjZb
evaluation
:
safeFdpjList
)
{
// 跳过null记录
if
(
evaluation
==
null
)
continue
;
Long
deptId
=
evaluation
.
getDeptId
();
String
period
=
evaluation
.
getZqfw
();
// 过滤无效数据
if
(
deptId
==
null
||
period
==
null
||
!
statusMap
.
containsKey
(
deptId
))
{
continue
;
}
// 更新对应周期的状态为"已提交"
AmainXq
status
=
statusMap
.
get
(
deptId
);
if
(
"上半年"
.
equals
(
period
))
{
status
.
setQ1
(
"已提交"
);
}
else
if
(
"全年"
.
equals
(
period
))
{
status
.
setQ2
(
"已提交"
);
}
}
// 转换为列表并按单位ID排序
return
statusMap
.
values
().
stream
()
.
sorted
(
Comparator
.
comparing
(
AmainXq:
:
getDeptId
))
.
collect
(
Collectors
.
toList
());
}
/**
/**
* 统计每个月的月度问题记录填写情况(使用数字月份01-12)
* 统计每个月的月度问题记录填写情况(使用数字月份01-12)
...
@@ -272,6 +460,97 @@ public class AmainServiceImpl implements IAmainService
...
@@ -272,6 +460,97 @@ public class AmainServiceImpl implements IAmainService
}
}
/**
* 按月份统计各单位月度问题提交情况
* @param depts 单位信息列表(可能为null)
* @param ydwtList 月度问题记录列表(可能为null)
* @return 各单位月度问题提交状态列表
*/
public
List
<
AmainXq
>
getMonthlyIssueStatus
(
List
<
SysDept
>
depts
,
List
<
SjGfjsYdjcjl
>
ydwtList
)
{
// 处理null情况,转为空列表
List
<
SysDept
>
safeDepts
=
(
depts
==
null
)
?
Collections
.
emptyList
()
:
depts
;
List
<
SjGfjsYdjcjl
>
safeYdwtList
=
(
ydwtList
==
null
)
?
Collections
.
emptyList
()
:
ydwtList
;
// 初始化所有单位的月度状态(默认未提交)
Map
<
Long
,
AmainXq
>
statusMap
=
safeDepts
.
stream
()
.
map
(
dept
->
new
AmainXq
(
dept
.
getDeptId
(),
dept
.
getDeptName
()))
.
collect
(
Collectors
.
toMap
(
AmainXq:
:
getDeptId
,
status
->
status
,
(
existing
,
replacement
)
->
existing
// 处理重复deptId
));
// 处理月度问题记录数据
for
(
SjGfjsYdjcjl
record
:
safeYdwtList
)
{
// 跳过null的记录
if
(
record
==
null
)
continue
;
Long
deptId
=
record
.
getDeptId
();
String
dateStr
=
record
.
getRq
();
// 过滤无效数据
if
(
deptId
==
null
||
dateStr
==
null
||
!
statusMap
.
containsKey
(
deptId
))
{
continue
;
}
// 解析月份(格式为"yyyy-MM")
String
[]
dateParts
=
dateStr
.
split
(
"-"
);
if
(
dateParts
.
length
!=
2
)
{
continue
;
// 日期格式不正确,跳过
}
String
month
=
dateParts
[
1
];
// 获取月份部分(如"07")
// 根据月份更新对应状态为"已提交"
AmainXq
status
=
statusMap
.
get
(
deptId
);
switch
(
month
)
{
case
"01"
:
status
.
setY01
(
"已提交"
);
break
;
case
"02"
:
status
.
setY02
(
"已提交"
);
break
;
case
"03"
:
status
.
setY03
(
"已提交"
);
break
;
case
"04"
:
status
.
setY04
(
"已提交"
);
break
;
case
"05"
:
status
.
setY05
(
"已提交"
);
break
;
case
"06"
:
status
.
setY06
(
"已提交"
);
break
;
case
"07"
:
status
.
setY07
(
"已提交"
);
break
;
case
"08"
:
status
.
setY08
(
"已提交"
);
break
;
case
"09"
:
status
.
setY09
(
"已提交"
);
break
;
case
"10"
:
status
.
setY10
(
"已提交"
);
break
;
case
"11"
:
status
.
setY11
(
"已提交"
);
break
;
case
"12"
:
status
.
setY12
(
"已提交"
);
break
;
}
}
// 转换为列表并按单位ID排序
return
statusMap
.
values
().
stream
()
.
sorted
(
Comparator
.
comparing
(
AmainXq:
:
getDeptId
))
.
collect
(
Collectors
.
toList
());
}
public
Map
<
String
,
Map
<
String
,
Integer
>>
statisticsQuarterlyTests
(
public
Map
<
String
,
Map
<
String
,
Integer
>>
statisticsQuarterlyTests
(
List
<
SysDept
>
depts
,
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
)
{
List
<
SysDept
>
depts
,
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
)
{
...
@@ -335,5 +614,65 @@ public class AmainServiceImpl implements IAmainService
...
@@ -335,5 +614,65 @@ public class AmainServiceImpl implements IAmainService
}
}
/**
* 按季度统计各单位自测提交情况
* @param depts 单位信息列表(可能为null)
* @param fdpjList 季度自测记录列表(可能为null)
* @return 各单位季度自测提交状态列表
*/
public
List
<
AmainXq
>
getQuarterlyTestStatus
(
List
<
SysDept
>
depts
,
List
<
SjGfjsZsdwkhpjZb
>
fdpjList
)
{
// 处理null情况,转为空列表
List
<
SysDept
>
safeDepts
=
(
depts
==
null
)
?
Collections
.
emptyList
()
:
depts
;
List
<
SjGfjsZsdwkhpjZb
>
safeFdpjList
=
(
fdpjList
==
null
)
?
Collections
.
emptyList
()
:
fdpjList
;
// 初始化所有单位的季度状态(默认未提交)
Map
<
Long
,
AmainXq
>
statusMap
=
safeDepts
.
stream
()
.
map
(
dept
->
new
AmainXq
(
dept
.
getDeptId
(),
dept
.
getDeptName
()))
.
collect
(
Collectors
.
toMap
(
AmainXq:
:
getDeptId
,
status
->
status
,
(
existing
,
replacement
)
->
existing
// 处理重复deptId
));
// 处理季度自测数据,更新对应季度的状态
for
(
SjGfjsZsdwkhpjZb
testRecord
:
safeFdpjList
)
{
// 跳过null记录
if
(
testRecord
==
null
)
continue
;
Long
deptId
=
testRecord
.
getDeptId
();
String
period
=
testRecord
.
getZqfw
();
// 过滤无效数据
if
(
deptId
==
null
||
period
==
null
||
!
statusMap
.
containsKey
(
deptId
))
{
continue
;
}
// 更新对应季度的状态为"已提交"
AmainXq
status
=
statusMap
.
get
(
deptId
);
switch
(
period
)
{
case
"第一季度"
:
status
.
setQ1
(
"已提交"
);
break
;
case
"第二季度"
:
status
.
setQ2
(
"已提交"
);
break
;
case
"第三季度"
:
status
.
setQ3
(
"已提交"
);
break
;
case
"第四季度"
:
status
.
setQ4
(
"已提交"
);
break
;
}
}
// 转换为列表并按单位ID排序
return
statusMap
.
values
().
stream
()
.
sorted
(
Comparator
.
comparing
(
AmainXq:
:
getDeptId
))
.
collect
(
Collectors
.
toList
());
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment