Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wangxiaolu-link-module-bi
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
sfa
wangxiaolu-link-module-bi
Commits
f97a2d75
提交
f97a2d75
authored
2月 07, 2025
作者:
吕本才
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1、成本分析页面增加页面列表导出和订单明细导出
2、财务分析基础数据-直播间分类列表查询接口
上级
bef7e2f4
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
381 行增加
和
15 行删除
+381
-15
FinanceBaseZbjTypeListener.java
...m/link/bi/config/listener/FinanceBaseZbjTypeListener.java
+38
-0
FinanceBaseZbjTypeController.java
...ink/bi/controller/query/FinanceBaseZbjTypeController.java
+43
-0
FinanceOrderQueryController.java
...link/bi/controller/query/FinanceOrderQueryController.java
+1
-10
FinanceBaseZbjTypeVo.java
...n/java/com/link/bi/pojo/request/FinanceBaseZbjTypeVo.java
+49
-0
FinanceCostVo.java
src/main/java/com/link/bi/pojo/request/FinanceCostVo.java
+3
-2
FinanceExportOrderDetailListDto.java
...ink/bi/pojo/response/FinanceExportOrderDetailListDto.java
+165
-0
FinanceOrderDetailListDto.java
.../com/link/bi/pojo/response/FinanceOrderDetailListDto.java
+1
-1
FinanceZbjTypeListDto.java
...java/com/link/bi/pojo/response/FinanceZbjTypeListDto.java
+3
-0
FinanceBaseZbjTypeService.java
...n/java/com/link/bi/service/FinanceBaseZbjTypeService.java
+3
-0
FinanceBaseZbjTypeServiceImpl.java
...m/link/bi/service/impl/FinanceBaseZbjTypeServiceImpl.java
+75
-2
FinanceOrderDetailServiceImpl.java
...m/link/bi/service/impl/FinanceOrderDetailServiceImpl.java
+0
-0
没有找到文件。
src/main/java/com/link/bi/config/listener/FinanceBaseZbjTypeListener.java
0 → 100644
浏览文件 @
f97a2d75
package
com
.
link
.
bi
.
config
.
listener
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.event.AnalysisEventListener
;
import
com.link.bi.domain.entity.FinanceBaseZbjType
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* 直播间分类导入监听
* @author lvbcai
* @date 2025年01月07日10:04:25
*/
@Data
@Slf4j
public
class
FinanceBaseZbjTypeListener
extends
AnalysisEventListener
<
FinanceBaseZbjType
>
{
// 存储解析后的数据
private
List
<
FinanceBaseZbjType
>
dataList
=
new
ArrayList
<>();
@Override
public
void
invoke
(
FinanceBaseZbjType
data
,
AnalysisContext
context
)
{
// 每解析一行数据就会调用该方法
dataList
.
add
(
data
);
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
context
)
{
// 解析完所有数据后调用该方法
}
public
List
<
FinanceBaseZbjType
>
getDataList
()
{
return
dataList
;
}
}
src/main/java/com/link/bi/controller/query/FinanceBaseZbjTypeController.java
0 → 100644
浏览文件 @
f97a2d75
package
com
.
link
.
bi
.
controller
.
query
;
import
com.link.bi.pojo.request.FinanceSelectCommonVo
;
import
com.link.bi.pojo.response.FinanceZbjTypeListDto
;
import
com.link.bi.service.FinanceBaseZbjTypeService
;
import
com.sfa.common.core.web.controller.BaseController
;
import
com.sfa.common.security.annotation.RequiresPermissions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.List
;
/**
* 财务分析-直播间分类基础数据
*
* @author admin
* @date 2024-12-19
*/
@RestController
@RequestMapping
(
"/finance/baseZbjType"
)
public
class
FinanceBaseZbjTypeController
extends
BaseController
{
@Autowired
private
FinanceBaseZbjTypeService
baseZbjTypeService
;
/**
* 直播间分类的页面查询
* @param commonVo
* @return
*/
@RequiresPermissions
(
"bi:livecate:list"
)
@GetMapping
(
"/list"
)
public
List
<
FinanceZbjTypeListDto
>
baseZbjTypeAllList
(
FinanceSelectCommonVo
commonVo
)
{
return
baseZbjTypeService
.
baseZbjTypeAllList
(
commonVo
);
}
@RequiresPermissions
(
"bi:livecate:list"
)
@PostMapping
(
"/import"
)
public
void
importData
(
@RequestParam
(
"file"
)
MultipartFile
file
)
{
baseZbjTypeService
.
importData
(
file
);
}
}
src/main/java/com/link/bi/controller/query/FinanceOrderQueryController.java
浏览文件 @
f97a2d75
...
...
@@ -83,16 +83,7 @@ public class FinanceOrderQueryController extends BaseController {
}
/**
* 直播间分类的页面查询
* @param commonVo
* @return
*/
@RequiresPermissions
(
"bi:finance:list"
)
@GetMapping
(
"/baseZbjType/list"
)
public
List
<
FinanceZbjTypeListDto
>
baseZbjTypeAllList
(
FinanceSelectCommonVo
commonVo
)
{
return
baseZbjTypeService
.
baseZbjTypeAllList
(
commonVo
);
}
@RequiresPermissions
(
"bi:finance:list"
)
...
...
src/main/java/com/link/bi/pojo/request/FinanceBaseZbjTypeVo.java
0 → 100644
浏览文件 @
f97a2d75
package
com
.
link
.
bi
.
pojo
.
request
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
@Data
public
class
FinanceBaseZbjTypeVo
{
// 入参 分页当前页
private
Integer
pageNum
=
1
;
// 入参 分页大小
private
Integer
pageSize
=
10
;
// 入参 时间开始时间
private
Date
startDate
;
// 入参 时间结束时间
private
Date
endDate
;
// 直播间类型
private
List
<
String
>
zbjQdType
;
// 入参 口味
private
List
<
String
>
flavor
;
// 入参 规格
private
List
<
String
>
specName
;
// 入参 系列
private
List
<
String
>
series
;
// 入参 商品名称
private
List
<
String
>
goodsName
;
// 聚合的维度
// 直播间类型
private
Boolean
zbjQdTypeAll
;
// 入参 口味
private
Boolean
flavorAll
;
// 入参 规格
private
Boolean
specNameAll
;
// 入参 系列
private
Boolean
seriesAll
;
// 入参 商品名称
private
Boolean
goodsNameAll
;
// 可以按照直播间类型和系列展开 null 不是展开查询 0 直播间类 1 系列
private
Integer
subType
;
// 查询详情时 过滤数据
private
String
fenxiaoId
;
// 下载类型 1 达人子分类 2、分销商分类 3、订单详情
private
String
type
;
private
String
typeName
;
}
src/main/java/com/link/bi/pojo/request/FinanceCostVo.java
浏览文件 @
f97a2d75
...
...
@@ -18,8 +18,6 @@ public class FinanceCostVo {
private
Date
endDate
;
// 直播间类型
private
List
<
String
>
zbjQdType
;
// 入参 口味
private
List
<
String
>
flavor
;
// 入参 规格
...
...
@@ -44,5 +42,8 @@ public class FinanceCostVo {
private
Integer
subType
;
// 查询详情时 过滤数据
private
String
fenxiaoId
;
// 下载类型 1 达人子分类 2、分销商分类 3、订单详情
private
String
type
;
private
String
typeName
;
}
src/main/java/com/link/bi/pojo/response/FinanceExportOrderDetailListDto.java
0 → 100644
浏览文件 @
f97a2d75
package
com
.
link
.
bi
.
pojo
.
response
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* 财务聚合后查看的详情信息,来自订单明细DTO
* @author : lvbencai
* @date : 2025-01-15 17:01:00
*/
@Data
public
class
FinanceExportOrderDetailListDto
{
/**
* 订单编号
*/
@ExcelProperty
(
"订单编号"
)
private
String
tradeNo
;
/**
* 店铺名称
*/
@ExcelProperty
(
"店铺名称"
)
private
String
shopName
;
/**
* 原始单号
*/
@ExcelProperty
(
"原始单号"
)
private
String
srcTid
;
/**
* 原始子单号
*/
@ExcelProperty
(
"原始子单号"
)
private
String
srcOid
;
/**
* 订单状态
*/
@ExcelProperty
(
"订单状态"
)
private
String
tradeStatus
;
/**
* 交易时间
*/
@ExcelProperty
(
"交易时间"
)
private
String
tradeTime
;
/**
* 付款时间
*/
@ExcelProperty
(
"付款时间"
)
private
Date
payTime
;
/**
* 发货时间
*/
@ExcelProperty
(
"发货时间"
)
private
Date
consignTime
;
/**
* 省市县(收货地区)
*/
@ExcelProperty
(
"收货地区(省市县)"
)
private
String
receiverArea
;
/**
* 备注
*/
@ExcelProperty
(
"备注"
)
private
String
remark
;
/**
* 应收金额
*/
@ExcelProperty
(
"应收金额"
)
private
BigDecimal
receivable
;
/**
* 货品编号
*/
@ExcelProperty
(
"货品编号"
)
private
String
goodsNo
;
/**
* 货品名称
*/
@ExcelProperty
(
"货品名称"
)
private
String
goodsName
;
/**
* 规格名称
*/
@ExcelProperty
(
"规格名称"
)
private
String
specName
;
/**
* 分类(货品类型)
*/
@ExcelProperty
(
"货品类型"
)
private
Integer
goodsType
;
/**
* 数量
*/
@ExcelProperty
(
"数量"
)
private
BigDecimal
num
;
/**
* 优惠
*/
@ExcelProperty
(
"优惠金额"
)
private
BigDecimal
discount
;
/**
* 分摊后总价
*/
@ExcelProperty
(
"分摊后总价"
)
private
BigDecimal
shareAmount
;
/**
* 组合装编码
*/
@ExcelProperty
(
"组合装编码"
)
private
String
suiteNo
;
/**
* 组合装名称
*/
@ExcelProperty
(
"组合装名称"
)
private
String
suiteName
;
/**
* 组合装数量
*/
@ExcelProperty
(
"组合装数量"
)
private
BigDecimal
suiteNum
;
/**
* 赠品方式
*/
@ExcelProperty
(
"赠品方式"
)
private
Integer
giftType
;
/**
* 分销商名称
*/
@ExcelProperty
(
"分销商名称"
)
private
String
fenxiaoName
;
/**
* 分销商编号
*/
@ExcelProperty
(
"分销商编号"
)
private
String
fenxiaoId
;
/**
* 平台货品名称
*/
@ExcelProperty
(
"平台货品名称"
)
private
String
apiGoodsName
;
}
src/main/java/com/link/bi/pojo/response/FinanceOrderDetailListDto.java
浏览文件 @
f97a2d75
...
...
@@ -21,7 +21,7 @@ public class FinanceOrderDetailListDto {
// 原始子单号
private
String
srcOid
;
// 订单状态
private
Integer
tradeStatus
;
private
String
tradeStatus
;
// 交易时间
private
String
tradeTime
;
// 付款时间
...
...
src/main/java/com/link/bi/pojo/response/FinanceZbjTypeListDto.java
浏览文件 @
f97a2d75
...
...
@@ -10,6 +10,9 @@ import lombok.Data;
*/
@Data
public
class
FinanceZbjTypeListDto
{
// 分销商名称
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
private
Long
fbztId
;
// 分销商名称
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
...
...
src/main/java/com/link/bi/service/FinanceBaseZbjTypeService.java
浏览文件 @
f97a2d75
...
...
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import
com.link.bi.domain.entity.FinanceBaseZbjType
;
import
com.link.bi.pojo.request.FinanceSelectCommonVo
;
import
com.link.bi.pojo.response.FinanceZbjTypeListDto
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -19,4 +20,6 @@ public interface FinanceBaseZbjTypeService extends IService<FinanceBaseZbjType>
List
<
FinanceZbjTypeListDto
>
baseZbjTypeList
(
FinanceSelectCommonVo
commonVo
);
List
<
FinanceZbjTypeListDto
>
baseZbjTypeAllList
(
FinanceSelectCommonVo
commonVo
);
String
importData
(
MultipartFile
file
);
}
src/main/java/com/link/bi/service/impl/FinanceBaseZbjTypeServiceImpl.java
浏览文件 @
f97a2d75
package
com
.
link
.
bi
.
service
.
impl
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.alibaba.excel.EasyExcel
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.link.bi.config.listener.FinanceBaseZbjTypeListener
;
import
com.link.bi.domain.entity.FinanceBaseZbjType
;
import
com.link.bi.domain.mapper.FinanceBaseZbjTypeMapper
;
import
com.link.bi.pojo.request.FinanceSelectCommonVo
;
...
...
@@ -15,7 +19,11 @@ import com.link.bi.service.FinanceBaseZbjTypeService;
import
com.sfa.common.core.utils.bean.BeanUtils
;
import
com.sfa.common.core.web.page.TableSupport
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
...
...
@@ -41,8 +49,6 @@ public class FinanceBaseZbjTypeServiceImpl extends ServiceImpl<FinanceBaseZbjTyp
return
map
;
}
/**
* 分页查询
*
...
...
@@ -98,8 +104,75 @@ public class FinanceBaseZbjTypeServiceImpl extends ServiceImpl<FinanceBaseZbjTyp
list
.
forEach
(
item
->
{
FinanceZbjTypeListDto
dto
=
new
FinanceZbjTypeListDto
();
BeanUtils
.
copyProperties
(
item
,
dto
);
// 如果fenxiaoName为空,设置为- 2025年02月07日10:35:25
if
(
ObjectUtil
.
isEmpty
(
dto
.
getFenxiaoName
())){
dto
.
setFenxiaoName
(
"-"
);
}
result
.
add
(
dto
);
});
return
result
;
}
/**
* 执行Excel数据全量同步
* @param file 上传的Excel文件
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
String
importData
(
MultipartFile
file
)
{
if
(
file
.
isEmpty
())
{
return
"文件为空,请选择有效的 Excel 文件上传。"
;
}
try
(
InputStream
inputStream
=
file
.
getInputStream
())
{
FinanceBaseZbjTypeListener
listener
=
new
FinanceBaseZbjTypeListener
();
EasyExcel
.
read
(
inputStream
,
FinanceBaseZbjType
.
class
,
listener
).
sheet
().
doRead
();
List
<
FinanceBaseZbjType
>
dataList
=
listener
.
getDataList
();
// 3. 删除数据库中不存在于Excel的数据
deleteAbsentProducts
(
dataList
);
// 4. 批量保存或更新数据
batchUpsertProducts
(
dataList
);
return
"文件解析并更新数据成功。"
;
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
return
"文件解析失败,请检查文件格式或内容。"
;
}
}
public
void
deleteAbsentProducts
(
List
<
FinanceBaseZbjType
>
dataList
)
{
// 获取 Excel 中所有数据的 fbztId
List
<
Long
>
excelIds
=
dataList
.
stream
().
map
(
FinanceBaseZbjType:
:
getFbztId
).
collect
(
Collectors
.
toList
());
// 查询数据库中所有数据
List
<
FinanceBaseZbjType
>
allDbRecords
=
this
.
list
();
// 找出数据库中存在但 Excel 中不存在的记录的 fbztId
List
<
Long
>
idsToDelete
=
new
ArrayList
<>();
for
(
FinanceBaseZbjType
dbRecord
:
allDbRecords
)
{
if
(!
excelIds
.
contains
(
dbRecord
.
getFbztId
()))
{
idsToDelete
.
add
(
dbRecord
.
getFbztId
());
}
}
// 删除这些记录
if
(!
idsToDelete
.
isEmpty
())
{
this
.
removeByIds
(
idsToDelete
);
}
}
public
void
batchUpsertProducts
(
List
<
FinanceBaseZbjType
>
dataList
)
{
for
(
FinanceBaseZbjType
data
:
dataList
)
{
if
(
data
.
getFbztId
()
!=
null
)
{
// 如果 fbztId 不为空,尝试更新
UpdateWrapper
<
FinanceBaseZbjType
>
updateWrapper
=
new
UpdateWrapper
<>();
updateWrapper
.
eq
(
"fbzt_id"
,
data
.
getFbztId
());
this
.
update
(
data
,
updateWrapper
);
}
else
{
// 如果 fbztId 为空,进行保存
this
.
save
(
data
);
}
}
}
}
src/main/java/com/link/bi/service/impl/FinanceOrderDetailServiceImpl.java
浏览文件 @
f97a2d75
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论