Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cmeeting
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
翟斌
cmeeting
Commits
0aab002e
提交
0aab002e
authored
7月 23, 2025
作者:
张开石
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1、添加会议纪要使用情况导出接口
父级
12f463eb
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
95 行增加
和
5 行删除
+95
-5
src/main/java/com/cmeeting/controller/StatisticsController.java
+6
-4
src/main/java/com/cmeeting/service/MeetingInfoService.java
+11
-0
src/main/java/com/cmeeting/service/impl/MeetingInfoServiceImpl.java
+77
-0
src/main/resources/mapper/secondary/SysUserSysMapper.xml
+1
-1
没有找到文件。
src/main/java/com/cmeeting/controller/StatisticsController.java
浏览文件 @
0aab002e
...
@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestParam;
...
@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
reactor.netty.http.server.HttpServerResponse
;
import
reactor.netty.http.server.HttpServerResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -55,11 +56,12 @@ public class StatisticsController {
...
@@ -55,11 +56,12 @@ public class StatisticsController {
*/
*/
@GetMapping
(
"/exportRecordTemplateUsingInfo"
)
@GetMapping
(
"/exportRecordTemplateUsingInfo"
)
public
R
exportRecordTemplateUsingInfo
(
String
searchValue
,
public
R
exportRecordTemplateUsingInfo
(
String
searchValue
,
@RequestParam
(
"createTimeStart"
)
Date
createTimeStart
,
@RequestParam
(
"createTimeStart"
)
Date
createTimeStart
,
@RequestParam
(
"createTimeEnd"
)
Date
createTimeEnd
)
{
@RequestParam
(
"createTimeEnd"
)
Date
createTimeEnd
,
HttpServletResponse
response
)
{
List
<
Map
<
String
,
String
>>
list
=
meetingInfoService
.
statistics
(
searchValue
,
createTimeStart
,
createTimeEnd
);
meetingInfoService
.
exportRecordTemplateUsingInfo
(
searchValue
,
createTimeStart
,
createTimeEnd
,
response
);
return
R
.
ok
(
list
);
return
R
.
ok
();
}
}
}
}
src/main/java/com/cmeeting/service/MeetingInfoService.java
浏览文件 @
0aab002e
...
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
...
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import
com.cmeeting.pojo.MeetingInfo
;
import
com.cmeeting.pojo.MeetingInfo
;
import
com.cmeeting.vo.MeetingInfoVO
;
import
com.cmeeting.vo.MeetingInfoVO
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -25,4 +26,14 @@ public interface MeetingInfoService extends IService<MeetingInfo> {
...
@@ -25,4 +26,14 @@ public interface MeetingInfoService extends IService<MeetingInfo> {
* @return
* @return
*/
*/
List
<
Map
<
String
,
String
>>
statistics
(
String
searchValue
,
Date
createTimeStart
,
Date
createTimeEnd
);
List
<
Map
<
String
,
String
>>
statistics
(
String
searchValue
,
Date
createTimeStart
,
Date
createTimeEnd
);
/**
* 导出
*
* @param searchValue 搜索值
* @param createTimeStart 起始时间
* @param createTimeEnd 截止时间
* @param response
*/
void
exportRecordTemplateUsingInfo
(
String
searchValue
,
Date
createTimeStart
,
Date
createTimeEnd
,
HttpServletResponse
response
);
}
}
src/main/java/com/cmeeting/service/impl/MeetingInfoServiceImpl.java
浏览文件 @
0aab002e
...
@@ -8,8 +8,11 @@ import cn.chatbot.openai.service.LLMService;
...
@@ -8,8 +8,11 @@ import cn.chatbot.openai.service.LLMService;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.date.DateField
;
import
cn.hutool.core.date.DateField
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.io.IoUtil
;
import
cn.hutool.core.util.IdUtil
;
import
cn.hutool.core.util.IdUtil
;
import
cn.hutool.core.util.NumberUtil
;
import
cn.hutool.core.util.NumberUtil
;
import
cn.hutool.poi.excel.ExcelUtil
;
import
cn.hutool.poi.excel.ExcelWriter
;
import
com.alibaba.fastjson2.JSON
;
import
com.alibaba.fastjson2.JSON
;
import
com.alibaba.fastjson2.JSONArray
;
import
com.alibaba.fastjson2.JSONArray
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.alibaba.fastjson2.JSONObject
;
...
@@ -54,8 +57,10 @@ import org.springframework.beans.factory.annotation.Value;
...
@@ -54,8 +57,10 @@ import org.springframework.beans.factory.annotation.Value;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.io.*
;
import
java.math.BigInteger
;
import
java.math.BigInteger
;
import
java.net.URLEncoder
;
import
java.nio.charset.Charset
;
import
java.nio.charset.Charset
;
import
java.nio.charset.StandardCharsets
;
import
java.nio.charset.StandardCharsets
;
import
java.security.SecureRandom
;
import
java.security.SecureRandom
;
...
@@ -289,6 +294,9 @@ public class MeetingInfoServiceImpl extends ServiceImpl<MeetingInfoMapper, Meeti
...
@@ -289,6 +294,9 @@ public class MeetingInfoServiceImpl extends ServiceImpl<MeetingInfoMapper, Meeti
userInfo
.
put
(
"sum"
,
sum
.
toString
());
userInfo
.
put
(
"sum"
,
sum
.
toString
());
}
}
userInfoList
.
removeIf
(
map
->
!
map
.
containsKey
(
"host_uid"
));
userInfoList
.
removeIf
(
map
->
!
map
.
containsKey
(
"host_uid"
));
if
(
userInfoList
.
isEmpty
())
{
return
new
ArrayList
<>();
}
// 初始化一行用来纵向加和
// 初始化一行用来纵向加和
Map
<
String
,
String
>
lastRowMap
=
new
LinkedHashMap
<>();
Map
<
String
,
String
>
lastRowMap
=
new
LinkedHashMap
<>();
...
@@ -307,10 +315,79 @@ public class MeetingInfoServiceImpl extends ServiceImpl<MeetingInfoMapper, Meeti
...
@@ -307,10 +315,79 @@ public class MeetingInfoServiceImpl extends ServiceImpl<MeetingInfoMapper, Meeti
lastRowMap
.
put
(
"userId"
,
"总计"
);
lastRowMap
.
put
(
"userId"
,
"总计"
);
userInfoList
.
add
(
lastRowMap
);
userInfoList
.
add
(
lastRowMap
);
userInfoList
.
forEach
(
map
->
map
.
remove
(
"host_uid"
));
return
userInfoList
;
return
userInfoList
;
}
}
/**
/**
* 导出
*
* @param searchValue 搜索值
* @param createTimeStart 起始时间
* @param createTimeEnd 截止时间
* @param response
*/
@Override
public
void
exportRecordTemplateUsingInfo
(
String
searchValue
,
Date
createTimeStart
,
Date
createTimeEnd
,
HttpServletResponse
response
)
{
List
<
Map
<
String
,
String
>>
statistics
=
statistics
(
searchValue
,
createTimeStart
,
createTimeEnd
);
if
(
statistics
.
isEmpty
())
{
throw
new
RobotBaseException
(
"暂无数据"
);
}
int
column
=
statistics
.
get
(
0
).
keySet
().
size
();
List
<
Map
<
String
,
String
>>
finalStatistics
=
new
ArrayList
<>();
for
(
Map
<
String
,
String
>
statistic
:
statistics
)
{
Map
<
String
,
String
>
newStatistic
=
new
LinkedHashMap
<>();
Set
<
Map
.
Entry
<
String
,
String
>>
entriedSet
=
statistic
.
entrySet
();
for
(
Map
.
Entry
<
String
,
String
>
entry
:
entriedSet
)
{
String
key
=
entry
.
getKey
();
String
value
=
entry
.
getValue
();
if
(
"deptName"
.
equals
(
key
))
{
newStatistic
.
put
(
"部门"
,
value
);
}
else
if
(
"name"
.
equals
(
key
))
{
newStatistic
.
put
(
"姓名"
,
value
);
}
else
if
(
"userId"
.
equals
(
key
))
{
newStatistic
.
put
(
"工号"
,
value
);
}
else
if
(
"sum"
.
equals
(
key
))
{
newStatistic
.
put
(
"总计"
,
value
);
}
else
{
newStatistic
.
put
(
key
,
value
);
}
}
finalStatistics
.
add
(
newStatistic
);
}
// 导出
OutputStream
outputStream
=
null
;
ExcelWriter
writer
=
ExcelUtil
.
getWriter
(
true
);
try
{
String
fileName
=
String
.
format
(
"会议使用次数.xlsx"
);
response
.
setContentType
(
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
URLEncoder
.
encode
(
fileName
,
"utf8"
));
outputStream
=
response
.
getOutputStream
();
// writer.addHeaderAlias("deptName", "部门");
// writer.addHeaderAlias("name", "姓名");
// writer.addHeaderAlias("userId", "工号");
// writer.addHeaderAlias("sum", "总计");
// 合并单元格后的标题行,使用默认标题样式
writer
.
merge
(
column
-
1
,
"会议纪要使用次数"
);
// 一次性写出内容,使用默认样式,强制输出标题
writer
.
write
(
finalStatistics
,
true
);
writer
.
flush
(
outputStream
);
// 关闭writer,释放内存
writer
.
close
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
finally
{
writer
.
close
();
IoUtil
.
close
(
outputStream
);
}
}
/**
* 保存会议纪要相关的文件
* 保存会议纪要相关的文件
* @param content 大模型返回的不规则xml
* @param content 大模型返回的不规则xml
* @param recordData 转录文本
* @param recordData 转录文本
...
...
src/main/resources/mapper/secondary/SysUserSysMapper.xml
浏览文件 @
0aab002e
...
@@ -147,7 +147,7 @@
...
@@ -147,7 +147,7 @@
</select>
</select>
<select
id=
"selectParamByUserIdList"
resultType=
"java.util.Map"
>
<select
id=
"selectParamByUserIdList"
resultType=
"java.util.
LinkedHash
Map"
>
SELECT
SELECT
sys_user_sync_category.`name` as deptName,
sys_user_sync_category.`name` as deptName,
sys_user_sync.`name`,
sys_user_sync.`name`,
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论